Repository: atlas Updated Branches: refs/heads/master 880ea4b69 -> bb82e0df3
ATLAS-2565: Remove REST API to disable propagated classification in entity Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/bb82e0df Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/bb82e0df Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/bb82e0df Branch: refs/heads/master Commit: bb82e0df3e6aa613b4ded0f6802880f6dfdd4eda Parents: 880ea4b Author: Sarath Subramanian <ssubraman...@hortonworks.com> Authored: Mon May 7 12:20:17 2018 -0700 Committer: Sarath Subramanian <ssubraman...@hortonworks.com> Committed: Mon May 7 12:20:17 2018 -0700 ---------------------------------------------------------------------- .../model/instance/AtlasClassification.java | 2 - .../atlas/model/instance/AtlasEntity.java | 19 +------- .../atlas/repository/graph/GraphHelper.java | 14 ------ .../store/graph/AtlasEntityStore.java | 2 - .../store/graph/v1/AtlasEntityStoreV1.java | 17 ------- .../store/graph/v1/DeleteHandlerV1.java | 10 +--- .../store/graph/v1/EntityGraphMapper.java | 49 -------------------- .../store/graph/v1/EntityGraphRetriever.java | 16 +------ .../org/apache/atlas/web/rest/EntityREST.java | 46 ------------------ 9 files changed, 6 insertions(+), 169 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/intg/src/main/java/org/apache/atlas/model/instance/AtlasClassification.java ---------------------------------------------------------------------- diff --git a/intg/src/main/java/org/apache/atlas/model/instance/AtlasClassification.java b/intg/src/main/java/org/apache/atlas/model/instance/AtlasClassification.java index 74f7347..3132379 100644 --- a/intg/src/main/java/org/apache/atlas/model/instance/AtlasClassification.java +++ b/intg/src/main/java/org/apache/atlas/model/instance/AtlasClassification.java @@ -57,8 +57,6 @@ public class AtlasClassification extends AtlasStruct implements Serializable { private Boolean propagate = null; private List<TimeBoundary> validityPeriods = null; - public enum PropagationState { ACTIVE, DELETED } - public AtlasClassification() { this(null, null); } http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/intg/src/main/java/org/apache/atlas/model/instance/AtlasEntity.java ---------------------------------------------------------------------- diff --git a/intg/src/main/java/org/apache/atlas/model/instance/AtlasEntity.java b/intg/src/main/java/org/apache/atlas/model/instance/AtlasEntity.java index e6a7f19..7f36a10 100644 --- a/intg/src/main/java/org/apache/atlas/model/instance/AtlasEntity.java +++ b/intg/src/main/java/org/apache/atlas/model/instance/AtlasEntity.java @@ -82,7 +82,6 @@ public class AtlasEntity extends AtlasStruct implements Serializable { private Map<String, Object> relationshipAttributes; private List<AtlasClassification> classifications; - private List<AtlasClassification> propagationDisabledClassifications; private List<AtlasTermAssignmentHeader> meanings; @JsonIgnore @@ -166,7 +165,6 @@ public class AtlasEntity extends AtlasStruct implements Serializable { setUpdateTime(other.getUpdateTime()); setVersion(other.getVersion()); setClassifications(other.getClassifications()); - setPropagationDisabledClassifications(other.getPropagationDisabledClassifications()); } } @@ -261,14 +259,6 @@ public class AtlasEntity extends AtlasStruct implements Serializable { public void setClassifications(List<AtlasClassification> classifications) { this.classifications = classifications; } - public List<AtlasClassification> getPropagationDisabledClassifications() { - return propagationDisabledClassifications; - } - - public void setPropagationDisabledClassifications(List<AtlasClassification> propagationDisabledClassifications) { - this.propagationDisabledClassifications = propagationDisabledClassifications; - } - public void addClassifications(List<AtlasClassification> classifications) { List<AtlasClassification> c = this.classifications; @@ -307,7 +297,6 @@ public class AtlasEntity extends AtlasStruct implements Serializable { setCreateTime(null); setUpdateTime(null); setClassifications(null); - setPropagationDisabledClassifications(null); setMeanings(null); } @@ -336,9 +325,6 @@ public class AtlasEntity extends AtlasStruct implements Serializable { sb.append(", classifications=["); AtlasBaseTypeDef.dumpObjects(classifications, sb); sb.append(']'); - sb.append(", propagationDisabledClassifications=["); - AtlasBaseTypeDef.dumpObjects(propagationDisabledClassifications, sb); - sb.append(']'); sb.append(", meanings=["); AtlasBaseTypeDef.dumpObjects(meanings, sb); sb.append(']'); @@ -362,14 +348,13 @@ public class AtlasEntity extends AtlasStruct implements Serializable { Objects.equals(updateTime, that.updateTime) && Objects.equals(version, that.version) && Objects.equals(relationshipAttributes, that.relationshipAttributes) && - Objects.equals(classifications, that.classifications) && - Objects.equals(propagationDisabledClassifications, that.propagationDisabledClassifications); + Objects.equals(classifications, that.classifications); } @Override public int hashCode() { return Objects.hash(super.hashCode(), guid, status, createdBy, updatedBy, createTime, updateTime, version, - relationshipAttributes, classifications, propagationDisabledClassifications); + relationshipAttributes, classifications); } @Override http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java b/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java index edf10da..063eb03 100755 --- a/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java +++ b/repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java @@ -195,7 +195,6 @@ public final class GraphHelper { if (ret != null) { AtlasGraphUtilsV1.setProperty(ret, CLASSIFICATION_EDGE_NAME_PROPERTY_KEY, getTypeName(classificationVertex)); AtlasGraphUtilsV1.setProperty(ret, CLASSIFICATION_EDGE_IS_PROPAGATED_PROPERTY_KEY, isPropagated); - AtlasGraphUtilsV1.setProperty(ret, CLASSIFICATION_EDGE_STATE_PROPERTY_KEY, AtlasClassification.PropagationState.ACTIVE); } return ret; @@ -1171,19 +1170,6 @@ public final class GraphHelper { return AtlasGraphUtilsV1.getProperty(classificationVertex, CLASSIFICATION_ENTITY_GUID, String.class); } - public static AtlasClassification.PropagationState getClassificationEdgeState(AtlasEdge edge) { - AtlasClassification.PropagationState ret = null; - - if (edge != null) { - String state = edge.getProperty(Constants.CLASSIFICATION_EDGE_STATE_PROPERTY_KEY, String.class); - - ret = (StringUtils.isEmpty(state)) ? AtlasClassification.PropagationState.ACTIVE : - AtlasClassification.PropagationState.valueOf(state); - } - - return ret; - } - public static boolean isPropagatedClassificationEdge(AtlasEdge edge) { boolean ret = false; http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java index ac3bd82..82a82fb 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java @@ -166,6 +166,4 @@ public interface AtlasEntityStore { List<AtlasClassification> getClassifications(String guid) throws AtlasBaseException; AtlasClassification getClassification(String guid, String classificationName) throws AtlasBaseException; - - void setPropagatedClassificationState(String guid, String classificationName, String sourceEntityGuid, boolean disablePropagation) throws AtlasBaseException; } http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java index e0f97e8..528065c 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java @@ -476,23 +476,6 @@ public class AtlasEntityStoreV1 implements AtlasEntityStore { @Override @GraphTransaction - public void setPropagatedClassificationState(String entityGuid, String classificationName, String sourceEntityGuid, boolean disablePropagation) throws AtlasBaseException { - AtlasEntityHeader entityHeader = entityRetriever.toAtlasEntityHeaderWithClassifications(entityGuid); - - AtlasAuthorizationUtils.verifyAccess(new AtlasEntityAccessRequest(typeRegistry, AtlasPrivilege.ENTITY_UPDATE_CLASSIFICATION, entityHeader, new AtlasClassification(classificationName)), - "change propagated classification state: guid=", entityGuid, ", classification=", classificationName); - - if (LOG.isDebugEnabled()) { - LOG.debug("Toggle propagated classification={}, sourceEntityGuid={} for entity={}, disablePropagation={}", classificationName, sourceEntityGuid, entityGuid, disablePropagation); - } - - GraphTransactionInterceptor.lockObjectAndReleasePostCommit(entityGuid); - - entityGraphMapper.setPropagatedClassificationState(entityGuid, classificationName, sourceEntityGuid, disablePropagation); - } - - @Override - @GraphTransaction public void deleteClassifications(final String guid, final List<String> classificationNames) throws AtlasBaseException { if (StringUtils.isEmpty(guid)) { throw new AtlasBaseException(AtlasErrorCode.INVALID_PARAMETERS, "Guid(s) not specified"); http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java index d8eb07f..f28d771 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerV1.java @@ -51,7 +51,6 @@ import org.slf4j.LoggerFactory; import java.util.*; -import static org.apache.atlas.model.instance.AtlasClassification.PropagationState.ACTIVE; import static org.apache.atlas.model.instance.AtlasEntity.Status.DELETED; import static org.apache.atlas.model.typedef.AtlasRelationshipDef.PropagateTags.ONE_TO_TWO; import static org.apache.atlas.repository.Constants.CLASSIFICATION_EDGE_NAME_PROPERTY_KEY; @@ -64,7 +63,6 @@ import static org.apache.atlas.repository.graph.GraphHelper.addToPropagatedTrait import static org.apache.atlas.repository.graph.GraphHelper.getAllClassificationEdges; import static org.apache.atlas.repository.graph.GraphHelper.getAssociatedEntityVertex; import static org.apache.atlas.repository.graph.GraphHelper.getClassificationEdge; -import static org.apache.atlas.repository.graph.GraphHelper.getClassificationEdgeState; import static org.apache.atlas.repository.graph.GraphHelper.getClassificationEntityGuid; import static org.apache.atlas.repository.graph.GraphHelper.getClassificationName; import static org.apache.atlas.repository.graph.GraphHelper.getClassificationVertices; @@ -584,9 +582,7 @@ public abstract class DeleteHandlerV1 { graphHelper.removeEdge(propagatedEdge); - if (getClassificationEdgeState(propagatedEdge) == ACTIVE) { - removeFromPropagatedTraitNames(impactedEntityVertex, classificationName); - } + removeFromPropagatedTraitNames(impactedEntityVertex, classificationName); } else { if (LOG.isDebugEnabled()) { LOG.debug(" --> Not removing propagated classification edge from [{}] --> [{}][{}] using edge label: [{}], since edge doesn't exist", @@ -607,9 +603,7 @@ public abstract class DeleteHandlerV1 { getTypeName(entityVertex), GraphHelper.getGuid(entityVertex), CLASSIFICATION_LABEL); } - if (getClassificationEdgeState(edge) == ACTIVE) { - removeFromPropagatedTraitNames(entityVertex, classificationName); - } + removeFromPropagatedTraitNames(entityVertex, classificationName); deleteEdge(edge, true); http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphMapper.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphMapper.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphMapper.java index d51adad..1728549 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphMapper.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphMapper.java @@ -25,7 +25,6 @@ import org.apache.atlas.exception.AtlasBaseException; import org.apache.atlas.model.TimeBoundary; import org.apache.atlas.model.TypeCategory; import org.apache.atlas.model.instance.AtlasClassification; -import org.apache.atlas.model.instance.AtlasClassification.PropagationState; import org.apache.atlas.model.instance.AtlasEntity; import org.apache.atlas.model.instance.AtlasEntity.AtlasEntityWithExtInfo; import org.apache.atlas.model.instance.AtlasEntityHeader; @@ -75,22 +74,17 @@ import static org.apache.atlas.model.instance.EntityMutations.EntityOperation.DE import static org.apache.atlas.model.instance.EntityMutations.EntityOperation.PARTIAL_UPDATE; import static org.apache.atlas.model.instance.EntityMutations.EntityOperation.UPDATE; import static org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef.Cardinality.SET; -import static org.apache.atlas.repository.Constants.CLASSIFICATION_EDGE_STATE_PROPERTY_KEY; import static org.apache.atlas.repository.Constants.CLASSIFICATION_LABEL; import static org.apache.atlas.repository.Constants.STATE_PROPERTY_KEY; import static org.apache.atlas.repository.Constants.TRAIT_NAMES_PROPERTY_KEY; -import static org.apache.atlas.repository.graph.GraphHelper.addToPropagatedTraitNames; import static org.apache.atlas.repository.graph.GraphHelper.getClassificationEdge; -import static org.apache.atlas.repository.graph.GraphHelper.getClassificationEdgeState; import static org.apache.atlas.repository.graph.GraphHelper.getClassificationVertex; -import static org.apache.atlas.repository.graph.GraphHelper.getPropagatedClassificationEdge; import static org.apache.atlas.repository.graph.GraphHelper.getTraitLabel; import static org.apache.atlas.repository.graph.GraphHelper.getTraitNames; import static org.apache.atlas.repository.graph.GraphHelper.getTypeName; import static org.apache.atlas.repository.graph.GraphHelper.getTypeNames; import static org.apache.atlas.repository.graph.GraphHelper.isPropagationEnabled; import static org.apache.atlas.repository.graph.GraphHelper.isRelationshipEdge; -import static org.apache.atlas.repository.graph.GraphHelper.removeFromPropagatedTraitNames; import static org.apache.atlas.repository.graph.GraphHelper.string; import static org.apache.atlas.repository.graph.GraphHelper.updateModificationMetadata; import static org.apache.atlas.repository.store.graph.v1.AtlasGraphUtilsV1.getIdFromVertex; @@ -1697,49 +1691,6 @@ public class EntityGraphMapper { } } - public void setPropagatedClassificationState(String entityGuid, String classificationName, String sourceEntityGuid, boolean disablePropagation) throws AtlasBaseException { - AtlasVertex entityVertex = AtlasGraphUtilsV1.findByGuid(entityGuid); - - if (entityVertex == null) { - throw new AtlasBaseException(AtlasErrorCode.INSTANCE_GUID_NOT_FOUND, entityGuid); - } - - AtlasEdge propagatedEdge = getPropagatedClassificationEdge(entityVertex, classificationName, sourceEntityGuid); - - if (propagatedEdge == null) { - throw new AtlasBaseException(AtlasErrorCode.PROPAGATED_CLASSIFICATION_NOT_ASSOCIATED_WITH_ENTITY, classificationName); - } - - PropagationState currentState = getClassificationEdgeState(propagatedEdge); - PropagationState updatedState = (disablePropagation) ? PropagationState.DELETED : PropagationState.ACTIVE; - - if (currentState != updatedState) { - AtlasGraphUtilsV1.setProperty(propagatedEdge, CLASSIFICATION_EDGE_STATE_PROPERTY_KEY, updatedState); - - if (disablePropagation) { - removeFromPropagatedTraitNames(entityVertex, classificationName); - } else { - addToPropagatedTraitNames(entityVertex, classificationName); - } - - updateModificationMetadata(entityVertex); - - AtlasEntityWithExtInfo entityWithExtInfo = instanceConverter.getAndCacheEntity(entityGuid); - AtlasEntity entity = (entityWithExtInfo != null) ? entityWithExtInfo.getEntity() : null; - AtlasClassification classification; - - if (updatedState == PropagationState.DELETED) { - classification = entityRetriever.toAtlasClassification(getClassificationVertex(entityVertex, classificationName)); - - entityChangeNotifier.onClassificationDeletedFromEntity(entity, Collections.singletonList(classification)); - } else { - classification = entityRetriever.toAtlasClassification(propagatedEdge.getInVertex()); - - entityChangeNotifier.onClassificationAddedToEntity(entity, Collections.singletonList(classification)); - } - } - } - private AtlasEdge mapClassification(EntityOperation operation, final EntityMutationContext context, AtlasClassification classification, AtlasEntityType entityType, AtlasVertex parentInstanceVertex, AtlasVertex traitInstanceVertex) throws AtlasBaseException { http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java index 919ac9c..c7a61a2 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java @@ -24,7 +24,6 @@ import org.apache.atlas.model.TimeBoundary; import org.apache.atlas.model.glossary.enums.AtlasTermAssignmentStatus; import org.apache.atlas.model.glossary.relations.AtlasTermAssignmentHeader; import org.apache.atlas.model.instance.AtlasClassification; -import org.apache.atlas.model.instance.AtlasClassification.PropagationState; import org.apache.atlas.model.instance.AtlasEntity; import org.apache.atlas.model.instance.AtlasEntity.AtlasEntitiesWithExtInfo; import org.apache.atlas.model.instance.AtlasEntity.AtlasEntityExtInfo; @@ -78,8 +77,6 @@ import static org.apache.atlas.glossary.GlossaryUtils.TERM_ASSIGNMENT_ATTR_EXPRE import static org.apache.atlas.glossary.GlossaryUtils.TERM_ASSIGNMENT_ATTR_SOURCE; import static org.apache.atlas.glossary.GlossaryUtils.TERM_ASSIGNMENT_ATTR_STATUS; import static org.apache.atlas.glossary.GlossaryUtils.TERM_ASSIGNMENT_ATTR_STEWARD; -import static org.apache.atlas.model.instance.AtlasClassification.PropagationState.ACTIVE; -import static org.apache.atlas.model.instance.AtlasClassification.PropagationState.DELETED; import static org.apache.atlas.model.typedef.AtlasBaseTypeDef.ATLAS_TYPE_BIGDECIMAL; import static org.apache.atlas.model.typedef.AtlasBaseTypeDef.ATLAS_TYPE_BIGINTEGER; import static org.apache.atlas.model.typedef.AtlasBaseTypeDef.ATLAS_TYPE_BOOLEAN; @@ -100,7 +97,6 @@ import static org.apache.atlas.repository.graph.GraphHelper.getAdjacentEdgesByLa import static org.apache.atlas.repository.graph.GraphHelper.getAllClassificationEdges; import static org.apache.atlas.repository.graph.GraphHelper.getAllTraitNames; import static org.apache.atlas.repository.graph.GraphHelper.getBlockedClassificationIds; -import static org.apache.atlas.repository.graph.GraphHelper.getClassificationEdgeState; import static org.apache.atlas.repository.graph.GraphHelper.getClassificationVertices; import static org.apache.atlas.repository.graph.GraphHelper.getGuid; import static org.apache.atlas.repository.graph.GraphHelper.getIncomingEdgesByLabel; @@ -108,7 +104,6 @@ import static org.apache.atlas.repository.graph.GraphHelper.getOutGoingEdgesByLa import static org.apache.atlas.repository.graph.GraphHelper.getPropagateTags; import static org.apache.atlas.repository.graph.GraphHelper.getRelationshipGuid; import static org.apache.atlas.repository.graph.GraphHelper.getTypeName; -import static org.apache.atlas.repository.graph.GraphHelper.isPropagatedClassificationEdge; import static org.apache.atlas.repository.graph.GraphHelper.isPropagationEnabled; import static org.apache.atlas.repository.store.graph.v1.AtlasGraphUtilsV1.getIdFromVertex; import static org.apache.atlas.type.AtlasStructType.AtlasAttribute.AtlasRelationshipEdgeDirection; @@ -582,21 +577,14 @@ public final class EntityGraphRetriever { if (CollectionUtils.isNotEmpty(edges)) { List<AtlasClassification> allClassifications = new ArrayList<>(); - List<AtlasClassification> propagationDisabledClassifications = new ArrayList<>(); for (AtlasEdge edge : edges) { - PropagationState edgeState = getClassificationEdgeState(edge); - AtlasVertex classificationVertex = edge.getInVertex(); + AtlasVertex classificationVertex = edge.getInVertex(); - if (edgeState == ACTIVE) { - allClassifications.add(toAtlasClassification(classificationVertex)); - } else if (edgeState == DELETED && isPropagatedClassificationEdge(edge)) { - propagationDisabledClassifications.add(toAtlasClassification(classificationVertex)); - } + allClassifications.add(toAtlasClassification(classificationVertex)); } entity.setClassifications(allClassifications); - entity.setPropagationDisabledClassifications(propagationDisabledClassifications); } } http://git-wip-us.apache.org/repos/asf/atlas/blob/bb82e0df/webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java ---------------------------------------------------------------------- diff --git a/webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java b/webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java index ca4d26d..6267d3a 100644 --- a/webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java +++ b/webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java @@ -575,52 +575,6 @@ public class EntityREST { } } - - /** - * Disable/Enable propagated classification for an existing entity represented by its guid. - * @param guid globally unique identifier for the entity - * @param classificationName name of the propagated classification - * @param sourceEntityGuid source entity guid of the propagated classification - * @param disablePropagation disable/enable propagation - */ - @PUT - @Path("/guid/{guid}/propagatedClassifications/{classificationName}") - @Produces(Servlets.JSON_MEDIA_TYPE) - public void setPropagatedClassificationState(@PathParam("guid") String guid, - @PathParam("classificationName") final String classificationName, - @QueryParam("sourceEntityGuid") String sourceEntityGuid, - @QueryParam("disablePropagation") boolean disablePropagation) throws AtlasBaseException { - Servlets.validateQueryParamLength("guid", guid); - Servlets.validateQueryParamLength("classificationName", classificationName); - Servlets.validateQueryParamLength("sourceEntityGuid", sourceEntityGuid); - - AtlasPerfTracer perf = null; - - try { - if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) { - perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityREST.setPropagatedClassificationState(" + guid + "," + classificationName + "," + sourceEntityGuid + "," + disablePropagation + ")"); - } - - if (StringUtils.isEmpty(guid)) { - throw new AtlasBaseException(AtlasErrorCode.INSTANCE_GUID_NOT_FOUND, guid); - } - - if (StringUtils.isEmpty(classificationName)) { - throw new AtlasBaseException(AtlasErrorCode.INVALID_PARAMETERS, "propagated classification not specified"); - } - - if (StringUtils.isEmpty(sourceEntityGuid)) { - throw new AtlasBaseException(AtlasErrorCode.INSTANCE_GUID_NOT_FOUND, sourceEntityGuid); - } - - ensureClassificationType(classificationName); - - entitiesStore.setPropagatedClassificationState(guid, classificationName, sourceEntityGuid, disablePropagation); - } finally { - AtlasPerfTracer.log(perf); - } - } - /******************************************************************/ /** Bulk API operations **/ /******************************************************************/