Set Certification Field Dynamically (#18874)

This commit is contained in:
IceS2 2024-12-04 15:36:07 +01:00 committed by GitHub
parent dbd9311a2c
commit e2789da9dc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 3 deletions

View File

@ -16,11 +16,10 @@ import org.flowable.engine.delegate.JavaDelegate;
import org.openmetadata.schema.EntityInterface;
import org.openmetadata.schema.type.AssetCertification;
import org.openmetadata.schema.type.Include;
import org.openmetadata.schema.type.TagLabel;
import org.openmetadata.service.Entity;
import org.openmetadata.service.jdbi3.EntityRepository;
import org.openmetadata.service.resources.feeds.MessageParser;
import org.openmetadata.service.resources.tags.TagLabelUtil;
import org.openmetadata.service.util.EntityUtil;
import org.openmetadata.service.util.JsonUtils;
@Slf4j
@ -76,7 +75,12 @@ public class SetEntityCertificationImpl implements JavaDelegate {
AssetCertification assetCertification =
new AssetCertification()
.withTagLabel(EntityUtil.toTagLabel(TagLabelUtil.getTag(certification)));
.withTagLabel(
new TagLabel()
.withTagFQN(certification)
.withSource(TagLabel.TagSource.CLASSIFICATION)
.withLabelType(TagLabel.LabelType.AUTOMATED)
.withState(TagLabel.State.CONFIRMED));
entity.setCertification(assetCertification);
}

View File

@ -917,6 +917,7 @@ public abstract class EntityRepository<T extends EntityInterface> {
public final T setFieldsInternal(T entity, Fields fields) {
entity.setOwners(fields.contains(FIELD_OWNERS) ? getOwners(entity) : entity.getOwners());
entity.setTags(fields.contains(FIELD_TAGS) ? getTags(entity) : entity.getTags());
entity.setCertification(fields.contains(FIELD_TAGS) ? getCertification(entity) : null);
entity.setExtension(
fields.contains(FIELD_EXTENSION) ? getExtension(entity) : entity.getExtension());
// Always return domains of entity
@ -1715,6 +1716,22 @@ public abstract class EntityRepository<T extends EntityInterface> {
}
}
protected AssetCertification getCertification(T entity) {
return !supportsCertification ? null : getCertification(entity.getCertification());
}
protected AssetCertification getCertification(AssetCertification certification) {
if (certification == null) {
return null;
}
String certificationTagFqn = certification.getTagLabel().getTagFQN();
TagLabel certificationTagLabel =
EntityUtil.toTagLabel(TagLabelUtil.getTag(certificationTagFqn));
certification.setTagLabel(certificationTagLabel);
return certification;
}
protected List<TagLabel> getTags(T entity) {
return !supportsTags ? null : getTags(entity.getFullyQualifiedName());
}