diff options
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java')
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java | 106 |
1 files changed, 57 insertions, 49 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java index 382a2e00f7..ed635d1a0a 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java @@ -36,11 +36,11 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.tuple.ImmutablePair; import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge; import org.openecomp.sdc.be.dao.graph.datatype.GraphRelation; +import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels; import org.openecomp.sdc.be.dao.neo4j.GraphEdgePropertiesDictionary; import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; -import org.openecomp.sdc.be.dao.titan.HealingTitanGenericDao; -import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.model.CapabilityDefinition; import org.openecomp.sdc.be.model.CapabilityTypeDefinition; @@ -71,11 +71,11 @@ public class CapabilityOperation extends AbstractOperation { @VisibleForTesting - public void setTitanGenericDao(HealingTitanGenericDao titanGenericDao) { - this.titanGenericDao = titanGenericDao; + public void setJanusGraphGenericDao(HealingJanusGraphGenericDao janusGraphGenericDao) { + this.janusGraphGenericDao = janusGraphGenericDao; } - public Either<CapabilityData, TitanOperationStatus> addCapabilityToGraph(String resourceId, CapabilityTypeData capTypeData, CapabilityDefinition capabilityDefinition) { + public Either<CapabilityData, JanusGraphOperationStatus> addCapabilityToGraph(String resourceId, CapabilityTypeData capTypeData, CapabilityDefinition capabilityDefinition) { log.debug("#addCapabilityToGraph - capabilityDefinition={}", capabilityDefinition); @@ -83,11 +83,12 @@ public class CapabilityOperation extends AbstractOperation { CapabilityData capabilityData = buildCapabilityData(capabilityDefinition, capUniqueId); log.debug("addCapabilityToGraph - Before adding capability to graph. capabilityTypeData = {}", capabilityData); - Either<CapabilityData, TitanOperationStatus> createCapResult = titanGenericDao.createNode(capabilityData, CapabilityData.class); + Either<CapabilityData, JanusGraphOperationStatus> createCapResult = janusGraphGenericDao + .createNode(capabilityData, CapabilityData.class); log.debug("addCapabilityToGraph - After adding capability to graph. status is = {}", createCapResult); if (createCapResult.isRight()) { - TitanOperationStatus operationStatus = createCapResult.right().value(); + JanusGraphOperationStatus operationStatus = createCapResult.right().value(); log.error("addCapabilityToGraph - Failed to add capability of type {} to graph. status is {}", capabilityDefinition.getType(), operationStatus); return createCapResult; } @@ -101,14 +102,15 @@ public class CapabilityOperation extends AbstractOperation { return createCapResult; } - private Either<GraphRelation, TitanOperationStatus> connectToCapabilityType(CapabilityData capabilityData, CapabilityTypeData capabilityTypeData) { + private Either<GraphRelation, JanusGraphOperationStatus> connectToCapabilityType(CapabilityData capabilityData, CapabilityTypeData capabilityTypeData) { Map<String, Object> properties = new HashMap<>(); String capabilityName = capabilityData.getCapabilityDataDefinition().getName(); properties.put(GraphEdgePropertiesDictionary.NAME.getProperty(), capabilityName); - return titanGenericDao.createRelation(capabilityData, capabilityTypeData, GraphEdgeLabels.CAPABILITY_IMPL, properties); + return janusGraphGenericDao + .createRelation(capabilityData, capabilityTypeData, GraphEdgeLabels.CAPABILITY_IMPL, properties); } @@ -117,13 +119,13 @@ public class CapabilityOperation extends AbstractOperation { * @param capabilites * @return */ - public Either<List<CapabilityDefinition>, TitanOperationStatus> getCapabilitiesWithProps(List<ImmutablePair<CapabilityData, GraphEdge>> capabilites) { - List<Either<CapabilityDefinition, TitanOperationStatus>> listFilledCapabilitiesResults = capabilites.stream() + public Either<List<CapabilityDefinition>, JanusGraphOperationStatus> getCapabilitiesWithProps(List<ImmutablePair<CapabilityData, GraphEdge>> capabilites) { + List<Either<CapabilityDefinition, JanusGraphOperationStatus>> listFilledCapabilitiesResults = capabilites.stream() .map(ImmutablePair::getLeft) .map(this::toCapabilityDefinitionWithProps) .collect(Collectors.toList()); - Optional<TitanOperationStatus> status = listFilledCapabilitiesResults.stream().filter(Either::isRight) + Optional<JanusGraphOperationStatus> status = listFilledCapabilitiesResults.stream().filter(Either::isRight) .map(res -> res.right().value()) .findFirst(); @@ -138,7 +140,7 @@ public class CapabilityOperation extends AbstractOperation { return Either.left(listCapabilities); } - private Either<CapabilityDefinition, TitanOperationStatus> toCapabilityDefinitionWithProps(CapabilityData capabilityData) { + private Either<CapabilityDefinition, JanusGraphOperationStatus> toCapabilityDefinitionWithProps(CapabilityData capabilityData) { CapabilityDefinition capabilityDefinition = new CapabilityDefinition(capabilityData.getCapabilityDataDefinition()); return getCapabilityProperties(capabilityDefinition.getUniqueId(), capabilityDefinition.getType()) .left() @@ -157,33 +159,34 @@ public class CapabilityOperation extends AbstractOperation { * @param capabilityUid * @return */ - private Either<List<ComponentInstanceProperty>, TitanOperationStatus> getCapabilityProperties(String capabilityUid, String capabilityType) { - Either<CapabilityTypeDefinition, TitanOperationStatus> capabilityTypeRes = capabilityTypeOperation.getCapabilityTypeByType(capabilityType); + private Either<List<ComponentInstanceProperty>, JanusGraphOperationStatus> getCapabilityProperties(String capabilityUid, String capabilityType) { + Either<CapabilityTypeDefinition, JanusGraphOperationStatus> capabilityTypeRes = capabilityTypeOperation.getCapabilityTypeByType(capabilityType); if (capabilityTypeRes.isRight()) { - TitanOperationStatus status = capabilityTypeRes.right().value(); + JanusGraphOperationStatus status = capabilityTypeRes.right().value(); return Either.right(status); } CapabilityTypeDefinition capabilityTypeDefinition = capabilityTypeRes.left().value(); - Either<Map<String, PropertyDefinition>, TitanOperationStatus> typesPropsRes = getPropertiesOfCapabilityTypeAndAcestors(capabilityTypeDefinition); + Either<Map<String, PropertyDefinition>, JanusGraphOperationStatus> typesPropsRes = getPropertiesOfCapabilityTypeAndAcestors(capabilityTypeDefinition); if (typesPropsRes.isRight()) { - TitanOperationStatus status = typesPropsRes.right().value(); + JanusGraphOperationStatus status = typesPropsRes.right().value(); return Either.right(status); } Map<String, PropertyDefinition> capabilityTypeProperties = typesPropsRes.left().value(); if (isEmpty(capabilityTypeProperties)) { - return Either.right(TitanOperationStatus.OK); + return Either.right(JanusGraphOperationStatus.OK); } Map<String, PropertyDefinition> uidToPropDefMap = capabilityTypeProperties.values().stream() .collect(Collectors.toMap(PropertyDefinition::getUniqueId, Function.identity())); // Find all properties values on the capability - Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> propertyValNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Capability), capabilityUid, GraphEdgeLabels.PROPERTY_VALUE, + Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, JanusGraphOperationStatus> propertyValNodes = janusGraphGenericDao + .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Capability), capabilityUid, GraphEdgeLabels.PROPERTY_VALUE, NodeTypeEnum.PropertyValue, PropertyValueData.class); if (propertyValNodes.isRight()) { @@ -192,7 +195,7 @@ public class CapabilityOperation extends AbstractOperation { List<ImmutablePair<PropertyValueData, GraphEdge>> propValsRelationPairs = propertyValNodes.left().value(); if (isEmpty(propValsRelationPairs)) { - return Either.right(TitanOperationStatus.OK); + return Either.right(JanusGraphOperationStatus.OK); } List<ComponentInstanceProperty> capabilityProperties = new ArrayList<>(); @@ -200,12 +203,13 @@ public class CapabilityOperation extends AbstractOperation { for (ImmutablePair<PropertyValueData, GraphEdge> propValRelPair : propValsRelationPairs) { PropertyValueData propertyValueData = propValRelPair.getLeft(); - Either<ImmutablePair<PropertyData, GraphEdge>, TitanOperationStatus> propertyDefRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PropertyValue), propertyValueData.getUniqueId(), GraphEdgeLabels.PROPERTY_IMPL, + Either<ImmutablePair<PropertyData, GraphEdge>, JanusGraphOperationStatus> propertyDefRes = janusGraphGenericDao + .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PropertyValue), propertyValueData.getUniqueId(), GraphEdgeLabels.PROPERTY_IMPL, NodeTypeEnum.Property, PropertyData.class); if (propertyDefRes.isRight()) { - TitanOperationStatus status = propertyDefRes.right().value(); - if (status == TitanOperationStatus.NOT_FOUND) { - status = TitanOperationStatus.INVALID_ID; + JanusGraphOperationStatus status = propertyDefRes.right().value(); + if (status == JanusGraphOperationStatus.NOT_FOUND) { + status = JanusGraphOperationStatus.INVALID_ID; } return Either.right(status); } @@ -242,8 +246,8 @@ public class CapabilityOperation extends AbstractOperation { .collect(Collectors.toSet()); } - private Either<List<ComponentInstanceProperty>, TitanOperationStatus> onLoadPropValuesFailure(TitanOperationStatus status, Map<String, PropertyDefinition> capabilityTypeProperties) { - if (status == TitanOperationStatus.NOT_FOUND) { + private Either<List<ComponentInstanceProperty>, JanusGraphOperationStatus> onLoadPropValuesFailure(JanusGraphOperationStatus status, Map<String, PropertyDefinition> capabilityTypeProperties) { + if (status == JanusGraphOperationStatus.NOT_FOUND) { return Either.left(buildPropsFromCapabilityTypeProps(capabilityTypeProperties)); } else { return Either.right(status); @@ -267,15 +271,15 @@ public class CapabilityOperation extends AbstractOperation { * @param capabilityTypeDefinition * @return */ - private Either<Map<String, PropertyDefinition>, TitanOperationStatus> getPropertiesOfCapabilityTypeAndAcestors(CapabilityTypeDefinition capabilityTypeDefinition) { + private Either<Map<String, PropertyDefinition>, JanusGraphOperationStatus> getPropertiesOfCapabilityTypeAndAcestors(CapabilityTypeDefinition capabilityTypeDefinition) { // Get the properties on the group type of this capability Map<String, PropertyDefinition> capabilityTypeProperties = capabilityTypeDefinition.getProperties(); String derivedFrom = capabilityTypeDefinition.getDerivedFrom(); if (!Strings.isNullOrEmpty(derivedFrom)) { - Either<Map<String, PropertyDefinition>, TitanOperationStatus> parentPropsRes = capabilityTypeOperation.getAllCapabilityTypePropertiesFromAllDerivedFrom(derivedFrom); + Either<Map<String, PropertyDefinition>, JanusGraphOperationStatus> parentPropsRes = capabilityTypeOperation.getAllCapabilityTypePropertiesFromAllDerivedFrom(derivedFrom); if(parentPropsRes.isRight()) { - TitanOperationStatus status = parentPropsRes.right().value(); + JanusGraphOperationStatus status = parentPropsRes.right().value(); return Either.right(status); } if (capabilityTypeProperties != null) { @@ -297,15 +301,15 @@ public class CapabilityOperation extends AbstractOperation { * @param capabilityTypeData * @return */ - private Either<List<ComponentInstanceProperty>, TitanOperationStatus> createCapabilityProperties(CapabilityData capabilityData, - CapabilityTypeData capabilityTypeData) { + private Either<List<ComponentInstanceProperty>, JanusGraphOperationStatus> createCapabilityProperties(CapabilityData capabilityData, + CapabilityTypeData capabilityTypeData) { CapabilityDefinition capabilityDefintion = (CapabilityDefinition)capabilityData.getCapabilityDataDefinition(); CapabilityTypeDefinition capabilityTypeDefinition = (CapabilityTypeDefinition)capabilityTypeData.getCapabilityTypeDataDefinition(); - Either<Map<String, PropertyDefinition>, TitanOperationStatus> typesPropsRes = getPropertiesOfCapabilityTypeAndAcestors(capabilityTypeDefinition); + Either<Map<String, PropertyDefinition>, JanusGraphOperationStatus> typesPropsRes = getPropertiesOfCapabilityTypeAndAcestors(capabilityTypeDefinition); if (typesPropsRes.isRight()) { - TitanOperationStatus status = typesPropsRes.right().value(); + JanusGraphOperationStatus status = typesPropsRes.right().value(); return Either.right(status); } @@ -313,10 +317,10 @@ public class CapabilityOperation extends AbstractOperation { if (isEmpty(capabilityTypeProperties) && !isEmpty(capabilityDefintion.getProperties())) { log.debug("#createCapabilityProperties - It's not valid if group capability has properties while corresponding capability type doesn't."); - return Either.right(TitanOperationStatus.MATCH_NOT_FOUND); + return Either.right(JanusGraphOperationStatus.MATCH_NOT_FOUND); } - Optional<TitanOperationStatus> error = capabilityDefintion.getProperties().stream() + Optional<JanusGraphOperationStatus> error = capabilityDefintion.getProperties().stream() .map(property -> createPropertyValue(property, capabilityData, capabilityTypeProperties.get(property.getName()))) .filter(Either::isRight) .map(result -> result.right().value()) @@ -342,11 +346,11 @@ public class CapabilityOperation extends AbstractOperation { .collect(Collectors.toList()); } - private Either<PropertyValueData, TitanOperationStatus> createPropertyValue(ComponentInstanceProperty capabilityProperty, - CapabilityData capabilityData, - PropertyDefinition capTypePropertyDefinition) { + private Either<PropertyValueData, JanusGraphOperationStatus> createPropertyValue(ComponentInstanceProperty capabilityProperty, + CapabilityData capabilityData, + PropertyDefinition capTypePropertyDefinition) { if (capTypePropertyDefinition == null) { - return Either.right(TitanOperationStatus.MATCH_NOT_FOUND); + return Either.right(JanusGraphOperationStatus.MATCH_NOT_FOUND); } CapabilityDefinition capabilityDefintion = (CapabilityDefinition)capabilityData.getCapabilityDataDefinition(); @@ -357,7 +361,8 @@ public class CapabilityOperation extends AbstractOperation { PropertyValueData propertyValueData = new PropertyValueData(); propertyValueData.setUniqueId(uniqueId); propertyValueData.setValue(capabilityProperty.getValue()); - Either<PropertyValueData, TitanOperationStatus> propResult = titanGenericDao.createNode(propertyValueData, PropertyValueData.class); + Either<PropertyValueData, JanusGraphOperationStatus> propResult = janusGraphGenericDao + .createNode(propertyValueData, PropertyValueData.class); // It's not accepted if Capability Type doesn't have suitable property propResult = propResult.left() .bind(propValueData -> connectToProperty(propValueData, capTypePropertyDefinition)) @@ -372,22 +377,23 @@ public class CapabilityOperation extends AbstractOperation { return propResult; } - private Either<GraphRelation, TitanOperationStatus> connectCapability(PropertyValueData propValueData, String name, CapabilityData capabilityData) { + private Either<GraphRelation, JanusGraphOperationStatus> connectCapability(PropertyValueData propValueData, String name, CapabilityData capabilityData) { Map<String, Object> properties = new HashMap<>(); properties.put(GraphEdgePropertiesDictionary.NAME.getProperty(), name); - return titanGenericDao.createRelation(capabilityData, propValueData, GraphEdgeLabels.PROPERTY_VALUE, properties); + return janusGraphGenericDao.createRelation(capabilityData, propValueData, GraphEdgeLabels.PROPERTY_VALUE, properties); } - private Either<GraphRelation, TitanOperationStatus> connectToProperty(PropertyValueData propValueData, PropertyDefinition propertyDefinition) { - Either<PropertyData, TitanOperationStatus> dataTypesRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Property), + private Either<GraphRelation, JanusGraphOperationStatus> connectToProperty(PropertyValueData propValueData, PropertyDefinition propertyDefinition) { + Either<PropertyData, JanusGraphOperationStatus> dataTypesRes = janusGraphGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Property), propertyDefinition.getUniqueId(), PropertyData.class); Map<String, Object> properties = new HashMap<>(); properties.put(GraphEdgePropertiesDictionary.NAME.getProperty(), propertyDefinition.getName()); return dataTypesRes.left() - .bind(propertyData -> titanGenericDao.createRelation(propValueData, propertyData, GraphEdgeLabels.PROPERTY_IMPL, properties)); + .bind(propertyData -> janusGraphGenericDao + .createRelation(propValueData, propertyData, GraphEdgeLabels.PROPERTY_IMPL, properties)); } @@ -408,12 +414,14 @@ public class CapabilityOperation extends AbstractOperation { public StorageOperationStatus deleteCapability(CapabilityDefinition capabilityDef) { - return titanGenericDao.deleteChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), capabilityDef.getUniqueId(), GraphEdgeLabels.PROPERTY_VALUE, + return janusGraphGenericDao + .deleteChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), capabilityDef.getUniqueId(), GraphEdgeLabels.PROPERTY_VALUE, NodeTypeEnum.PropertyValue, PropertyValueData.class) .left() - .bind(props -> titanGenericDao.deleteNode(new CapabilityData(capabilityDef), CapabilityData.class)) + .bind(props -> janusGraphGenericDao + .deleteNode(new CapabilityData(capabilityDef), CapabilityData.class)) .right() - .map(DaoStatusConverter::convertTitanStatusToStorageStatus) + .map(DaoStatusConverter::convertJanusGraphStatusToStorageStatus) .right() .on(capData -> StorageOperationStatus.OK); } |