diff options
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java')
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java | 468 |
1 files changed, 165 insertions, 303 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java index 0d29c18a95..a7c883b14e 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java @@ -27,12 +27,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import com.thinkaurelius.titan.core.TitanTransaction; -import com.thinkaurelius.titan.core.TitanVertex; - -import org.apache.cassandra.transport.Event.StatusChange; import org.apache.commons.lang3.tuple.ImmutablePair; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge; import org.openecomp.sdc.be.dao.graph.datatype.GraphNode; import org.openecomp.sdc.be.dao.graph.datatype.GraphRelation; @@ -56,6 +51,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import com.thinkaurelius.titan.core.TitanVertex; + import fj.data.Either; @Component("interface-operation") @@ -74,45 +71,40 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation private TitanGenericDao titanGenericDao; @Override - public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, - String resourceId, String interfaceName) { + public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, String resourceId, String interfaceName) { return addInterfaceToResource(interf, resourceId, interfaceName, false); } @Override - public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, - String resourceId, String interfaceName, boolean inTransaction) { + public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean inTransaction) { return createInterfaceOnResource(interf, resourceId, interfaceName, true, inTransaction); } - private Either<OperationData, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName, - Operation op, InterfaceData interfaceData) { + private Either<OperationData, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName, Operation op, InterfaceData interfaceData) { op.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId((String) interfaceData.getUniqueId(), opName)); OperationData operationData = new OperationData(op); log.debug("Before adding operation to graph {}", operationData); - Either<OperationData, TitanOperationStatus> createOpNodeResult = titanGenericDao.createNode(operationData, - OperationData.class); + Either<OperationData, TitanOperationStatus> createOpNodeResult = titanGenericDao.createNode(operationData, OperationData.class); log.debug("After adding operation to graph {}", operationData); if (createOpNodeResult.isRight()) { TitanOperationStatus opStatus = createOpNodeResult.right().value(); - log.error("Failed to add operation {} to graph. Status is {}", opName, opStatus); + log.error("Failed to add operation {} to graph. status is {}", opName, opStatus); return Either.right(opStatus); } Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.NAME.getProperty(), opName); - Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData, - operationData, GraphEdgeLabels.INTERFACE_OPERATION, props); + Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData, operationData, GraphEdgeLabels.INTERFACE_OPERATION, props); if (createRelResult.isRight()) { TitanOperationStatus operationStatus = createOpNodeResult.right().value(); - log.error("Failed to associate operation {} to property {} in graph. Status is {}", interfaceData.getUniqueId(), opName, operationStatus); + log.error("Failed to associate operation {} to property {} in graph. status is {}", interfaceData.getUniqueId(), opName, operationStatus); return Either.right(operationStatus); } @@ -121,11 +113,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } - private Either<TitanVertex, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName, - Operation op, TitanVertex interfaceVertex) { + private Either<TitanVertex, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName, Operation op, TitanVertex interfaceVertex) { - String interfaceId = (String) titanGenericDao.getProperty(interfaceVertex, - GraphPropertiesDictionary.UNIQUE_ID.getProperty()); + String interfaceId = (String) titanGenericDao.getProperty(interfaceVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty()); op.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(interfaceId, opName)); OperationData operationData = new OperationData(op); @@ -141,12 +131,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.NAME.getProperty(), opName); TitanVertex operationVertex = createOpNodeResult.left().value(); - TitanOperationStatus createRelResult = titanGenericDao.createEdge(interfaceVertex, operationVertex, - GraphEdgeLabels.INTERFACE_OPERATION, props); + TitanOperationStatus createRelResult = titanGenericDao.createEdge(interfaceVertex, operationVertex, GraphEdgeLabels.INTERFACE_OPERATION, props); if (!createRelResult.equals(TitanOperationStatus.OK)) { - log.error("Failed to associate operation {} to property {} in graph. status is {}", interfaceId, opName, - createRelResult); + log.error("Failed to associate operation {} to property {} in graph. status is {}", interfaceId, opName, createRelResult); return Either.right(createRelResult); } @@ -173,8 +161,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } - private Either<InterfaceData, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, - String interfaceName, String resourceId) { + private Either<InterfaceData, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, String interfaceName, String resourceId) { InterfaceData interfaceData = new InterfaceData(interfaceInfo); @@ -185,8 +172,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation interfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted)); - Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao - .getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class); + Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao.getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class); if (existInterface.isRight()) { @@ -197,8 +183,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } } - private Either<TitanVertex, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, - String interfaceName, String resourceId, TitanVertex metadataVertex) { + private Either<TitanVertex, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, String interfaceName, String resourceId, TitanVertex metadataVertex) { InterfaceData interfaceData = new InterfaceData(interfaceInfo); @@ -206,8 +191,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation interfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted)); - Either<TitanVertex, TitanOperationStatus> existInterface = titanGenericDao - .getVertexByProperty(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId()); + Either<TitanVertex, TitanOperationStatus> existInterface = titanGenericDao.getVertexByProperty(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId()); if (existInterface.isRight()) { @@ -218,26 +202,23 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } } - private Either<InterfaceData, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName, - String resourceId, InterfaceData interfaceData, ResourceMetadataData resourceData) { + private Either<InterfaceData, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName, String resourceId, InterfaceData interfaceData, ResourceMetadataData resourceData) { log.debug("Before adding interface to graph {}", interfaceData); - Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData, - InterfaceData.class); + Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData, InterfaceData.class); log.debug("After adding property to graph {}", interfaceData); if (createNodeResult.isRight()) { TitanOperationStatus operationStatus = createNodeResult.right().value(); - log.error("Failed to add interface {} to graph. Status is {}", interfaceName, operationStatus); + log.error("Failed to add interface {} to graph. status is {}", interfaceName, operationStatus); return Either.right(operationStatus); } Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.NAME.getProperty(), interfaceName); - Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceData, - interfaceData, GraphEdgeLabels.INTERFACE, props); + Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceData, interfaceData, GraphEdgeLabels.INTERFACE, props); if (createRelResult.isRight()) { TitanOperationStatus operationStatus = createNodeResult.right().value(); - log.error("Failed to associate resource {} to property {} in graph. Status is {}", resourceId, interfaceName, operationStatus); + log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId, interfaceName, operationStatus); return Either.right(operationStatus); } @@ -245,8 +226,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation return Either.left(createNodeResult.left().value()); } - private Either<TitanVertex, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName, - String resourceId, InterfaceData interfaceData, TitanVertex metadataVertex) { + private Either<TitanVertex, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName, String resourceId, InterfaceData interfaceData, TitanVertex metadataVertex) { log.debug("Before adding interface to graph {}", interfaceData); Either<TitanVertex, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData); @@ -259,35 +239,30 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.NAME.getProperty(), interfaceName); TitanVertex interfaceVertex = createNodeResult.left().value(); - TitanOperationStatus createRelResult = titanGenericDao.createEdge(metadataVertex, interfaceVertex, - GraphEdgeLabels.INTERFACE, props); + TitanOperationStatus createRelResult = titanGenericDao.createEdge(metadataVertex, interfaceVertex, GraphEdgeLabels.INTERFACE, props); if (!createRelResult.equals(TitanOperationStatus.OK)) { - log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId, - interfaceName, createRelResult); + log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId, interfaceName, createRelResult); } return Either.left(interfaceVertex); } - private Either<OperationData, TitanOperationStatus> createOperationNodeAndRelation(String operationName, - OperationData operationData, InterfaceData interfaceData) { + private Either<OperationData, TitanOperationStatus> createOperationNodeAndRelation(String operationName, OperationData operationData, InterfaceData interfaceData) { log.debug("Before adding operation to graph {}", operationData); - Either<OperationData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(operationData, - OperationData.class); + Either<OperationData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(operationData, OperationData.class); log.debug("After adding operation to graph {}", interfaceData); if (createNodeResult.isRight()) { TitanOperationStatus operationStatus = createNodeResult.right().value(); - log.error("Failed to add interfoperationce {} to graph. Status is {}", operationName, operationStatus); + log.error("Failed to add interfoperationce {} to graph. status is {}", operationName, operationStatus); return Either.right(operationStatus); } Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.NAME.getProperty(), operationName); - Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData, - operationData, GraphEdgeLabels.INTERFACE_OPERATION, props); + Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData, operationData, GraphEdgeLabels.INTERFACE_OPERATION, props); if (createRelResult.isRight()) { TitanOperationStatus operationStatus = createNodeResult.right().value(); - log.error("Failed to associate operation {} to interface {} in graph. Status is {}", operationName, interfaceData.getUniqueId(), operationStatus); + log.error("Failed to associate operation {} to interface {} in graph. status is {}", operationName, interfaceData.getUniqueId(), operationStatus); return Either.right(operationStatus); } @@ -307,7 +282,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation // * InterfaceData propertyData = getResult.left().value(); return // * Either.left(convertPropertyDataToPropertyDefinition(propertyData)); } // * else { TitanOperationStatus titanStatus = getResult.right().value(); - // * log.debug("Node with id {} was not found in the graph. Status: {}", propertyId, titanStatus); + // * log.debug("Node with id " + propertyId + + // * " was not found in the graph. status: " + titanStatus); // * StorageOperationStatus storageOperationStatus = // * DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus); // * return Either.right(storageOperationStatus); } @@ -323,14 +299,12 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation // } @Override - public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource( - String resourceIdn, boolean recursively) { + public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(String resourceIdn, boolean recursively) { return getAllInterfacesOfResource(resourceIdn, recursively, false); } @Override - public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource( - String resourceId, boolean recursively, boolean inTransaction) { + public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(String resourceId, boolean recursively, boolean inTransaction) { Either<Map<String, InterfaceDefinition>, StorageOperationStatus> result = null; Map<String, InterfaceDefinition> interfaces = new HashMap<String, InterfaceDefinition>(); @@ -348,7 +322,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation findInterfacesRes = findAllInterfacesNotRecursively(resourceId, interfaces); } if (!findInterfacesRes.equals(TitanOperationStatus.OK)) { - log.error("Failed to get all interfaces of resource {}. Status is {}", resourceId, findInterfacesRes); + log.error("Failed to get all interfaces of resource {}. status is {}", resourceId, findInterfacesRes); result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(findInterfacesRes)); return result; } @@ -367,12 +341,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } } - private TitanOperationStatus findAllInterfacesNotRecursively(String resourceId, - Map<String, InterfaceDefinition> interfaces) { + private TitanOperationStatus findAllInterfacesNotRecursively(String resourceId, Map<String, InterfaceDefinition> interfaces) { - Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> interfaceNodes = titanGenericDao - .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, - GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class); + Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> interfaceNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.INTERFACE, + NodeTypeEnum.Interface, InterfaceData.class); if (interfaceNodes.isRight()) { TitanOperationStatus status = interfaceNodes.right().value(); @@ -384,15 +356,13 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation if (interfaceList != null) { for (ImmutablePair<InterfaceData, GraphEdge> interfacePair : interfaceList) { String interfaceUniqueId = (String) interfacePair.getKey().getUniqueId(); - Either<String, TitanOperationStatus> interfaceNameRes = getPropertyValueFromEdge( - interfacePair.getValue(), GraphPropertiesDictionary.NAME); + Either<String, TitanOperationStatus> interfaceNameRes = getPropertyValueFromEdge(interfacePair.getValue(), GraphPropertiesDictionary.NAME); if (interfaceNameRes.isRight()) { log.error("The requirement name is missing on the edge of requirement {}", interfaceUniqueId); return interfaceNameRes.right().value(); } String interfaceName = interfaceNameRes.left().value(); - Either<InterfaceDefinition, TitanOperationStatus> interfaceDefRes = getNonRecursiveInterface( - interfacePair.getKey()); + Either<InterfaceDefinition, TitanOperationStatus> interfaceDefRes = getNonRecursiveInterface(interfacePair.getKey()); if (interfaceDefRes.isRight()) { TitanOperationStatus status = interfaceDefRes.right().value(); log.error("Failed to get interface actions of interface {}", interfaceUniqueId); @@ -401,7 +371,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation InterfaceDefinition interfaceDefinition = interfaceDefRes.left().value(); if (true == interfaces.containsKey(interfaceName)) { - log.debug("The interface {} was already defined in derived resource. add not overriden operations", interfaceName); + log.debug("The interface {} was already defined in dervied resource. add not overriden operations", interfaceName); InterfaceDefinition existInterface = interfaces.get(interfaceName); addMissingOperationsToInterface(interfaceDefinition, existInterface); } else { @@ -414,17 +384,15 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation return TitanOperationStatus.OK; } - public TitanOperationStatus findAllInterfacesRecursively(String resourceId, - Map<String, InterfaceDefinition> interfaces) { + public TitanOperationStatus findAllInterfacesRecursively(String resourceId, Map<String, InterfaceDefinition> interfaces) { TitanOperationStatus findAllInterfacesNotRecursively = findAllInterfacesNotRecursively(resourceId, interfaces); if (!findAllInterfacesNotRecursively.equals(TitanOperationStatus.OK)) { - log.error("failed to get interfaces for resource {}. Status is {}", resourceId, findAllInterfacesNotRecursively); + log.error("failed to get interfaces for resource {}. status is {}", resourceId, findAllInterfacesNotRecursively); } - Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao - .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, - GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource, ResourceMetadataData.class); + Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource, + ResourceMetadataData.class); if (parentNodes.isRight()) { TitanOperationStatus parentNodesStatus = parentNodes.right().value(); @@ -432,7 +400,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation log.debug("Finish to lookup for parnet interfaces"); return TitanOperationStatus.OK; } else { - log.error("Failed to find parent interfaces of resource {}. Status is {}", resourceId, parentNodesStatus); + log.error("Failed to find parent interfaces of resource {}. status is {}", resourceId, parentNodesStatus); return parentNodesStatus; } } @@ -448,8 +416,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation return TitanOperationStatus.OK; } - private Either<String, TitanOperationStatus> getPropertyValueFromEdge(GraphEdge edge, - GraphPropertiesDictionary property) { + private Either<String, TitanOperationStatus> getPropertyValueFromEdge(GraphEdge edge, GraphPropertiesDictionary property) { Map<String, Object> edgeProps = edge.getProperties(); String interfaceName = null; if (edgeProps != null) { @@ -469,9 +436,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation InterfaceDefinition interfaceDefinition = new InterfaceDefinition(interfaceData.getInterfaceDataDefinition()); String interfaceId = interfaceData.getUniqueId(); - Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationsRes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), interfaceId, - GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class); + Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationsRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), interfaceId, GraphEdgeLabels.INTERFACE_OPERATION, + NodeTypeEnum.InterfaceOperation, OperationData.class); if (operationsRes.isRight()) { TitanOperationStatus status = operationsRes.right().value(); @@ -486,8 +452,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation if (operationList != null && !operationList.isEmpty()) { for (ImmutablePair<OperationData, GraphEdge> operationPair : operationList) { Operation operation = new Operation(operationPair.getKey().getOperationDataDefinition()); - Either<String, TitanOperationStatus> operationNameRes = getPropertyValueFromEdge( - operationPair.getValue(), GraphPropertiesDictionary.NAME); + Either<String, TitanOperationStatus> operationNameRes = getPropertyValueFromEdge(operationPair.getValue(), GraphPropertiesDictionary.NAME); if (operationNameRes.isRight()) { log.error("The operation name is missing on the edge of operation {}", operationPair.getKey().getUniqueId()); return Either.right(operationNameRes.right().value()); @@ -504,11 +469,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation private StorageOperationStatus findOperationImplementation(Operation operation) { String operationId = operation.getUniqueId(); - Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifactsRes = artifactOperation - .getArtifacts(operationId, NodeTypeEnum.InterfaceOperation, true); + Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifactsRes = artifactOperation.getArtifacts(operationId, NodeTypeEnum.InterfaceOperation, true); if (artifactsRes.isRight() || artifactsRes.left().value() == null) { - log.error("failed to get artifact from graph for operation id {}. status is {}", operationId, - artifactsRes.right().value()); + log.error("failed to get artifact from graph for operation id {}. status is {}", operationId, artifactsRes.right().value()); return artifactsRes.right().value(); } else { Map<String, ArtifactDefinition> artifacts = artifactsRes.left().value(); @@ -521,10 +484,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation return StorageOperationStatus.OK; } - private StorageOperationStatus addMissingOperationsToInterface(InterfaceDefinition interfaceDefinition, - InterfaceDefinition existInterface) { - Map<String, Operation> existOperations = existInterface.getOperations(); - Map<String, Operation> operations = interfaceDefinition.getOperations(); + private StorageOperationStatus addMissingOperationsToInterface(InterfaceDefinition interfaceDefinition, InterfaceDefinition existInterface) { + Map<String, Operation> existOperations = existInterface.getOperationsMap(); + Map<String, Operation> operations = interfaceDefinition.getOperationsMap(); if (operations != null && !operations.isEmpty()) { Set<Entry<String, Operation>> operationsSet = operations.entrySet(); for (Entry<String, Operation> operation : operationsSet) { @@ -537,29 +499,22 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } @Override - public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, - String operationName, Operation interf) { + public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, String operationName, Operation interf) { return updateInterfaceOperation(resourceId, interfaceName, operationName, interf, false); } @Override - public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, - String operationName, Operation operation, boolean inTransaction) { - Either<Operation, StorageOperationStatus> status = updateOperationOnGraph(operation, resourceId, interfaceName, - operationName); + public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, String operationName, Operation operation, boolean inTransaction) { + Either<Operation, StorageOperationStatus> status = updateOperationOnGraph(operation, resourceId, interfaceName, operationName); /* - * if (status.isRight()) { if (false == inTransaction) { - * titanGenericDao.rollback(); } log.error("Failed to update operation " - * + operationName + " of interfaceName " + interfaceName + - * " of resource" + resourceId); return Either.right(DaoStatusConverter - * .convertTitanStatusToStorageStatus(status.right().value())); } else { - * if (false == inTransaction) { titanGenericDao.commit(); } - * OperationData operationData = status.left().value(); + * if (status.isRight()) { if (false == inTransaction) { titanGenericDao.rollback(); } + * log.error("Failed to update operation {} of interfaceName {} of resource {}", operationName, interfaceName, resourceId); + * return + * Either.right(DaoStatusConverter .convertTitanStatusToStorageStatus(status.right().value())); } else { if (false == inTransaction) { titanGenericDao.commit(); } OperationData operationData = status.left().value(); * - * Operation operationDefResult = - * convertOperationDataToOperation(operationData); + * Operation operationDefResult = convertOperationDataToOperation(operationData); * * * log.debug("The returned OperationDefintion is {}", operationDefResult); return Either.left(operationDefResult); } @@ -567,26 +522,16 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation return status; } - private Either<Operation, StorageOperationStatus> updateOperationOnGraph(Operation operation, String resourceId, - String interfaceName, String operationName) { + private Either<Operation, StorageOperationStatus> updateOperationOnGraph(Operation operation, String resourceId, String interfaceName, String operationName) { - Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, - GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class); + Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, + InterfaceData.class); if (childrenNodes.isRight()) { /* - * InterfaceDefinition intDef = new InterfaceDefinition(); - * intDef.setType(interfaceName); Map<String, Operation> opMap = new - * HashMap<String, Operation>(); opMap.put(operationName, - * operation); intDef.setOperations(opMap); - * Either<InterfaceDefinition, StorageOperationStatus> statusRes = - * this .createInterfaceOnResource(intDef, resourceId, - * interfaceName, true); if (statusRes.isRight()) return - * Either.right(statusRes.right().value()); else { - * InterfaceDefinition newDef = statusRes.left().value(); Operation - * res = newDef.getOperations().get(operationName); return - * Either.left(res); } + * InterfaceDefinition intDef = new InterfaceDefinition(); intDef.setType(interfaceName); Map<String, Operation> opMap = new HashMap<String, Operation>(); opMap.put(operationName, operation); intDef.setOperations(opMap); + * Either<InterfaceDefinition, StorageOperationStatus> statusRes = this .createInterfaceOnResource(intDef, resourceId, interfaceName, true); if (statusRes.isRight()) return Either.right(statusRes.right().value()); else { + * InterfaceDefinition newDef = statusRes.left().value(); Operation res = newDef.getOperations().get(operationName); return Either.left(res); } */ return updateOperationFromParentNode(operation, resourceId, interfaceName, operationName); @@ -597,8 +542,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } - private Either<Operation, StorageOperationStatus> updateExistingOperation(String resourceId, Operation operation, - String interfaceName, String operationName, + private Either<Operation, StorageOperationStatus> updateExistingOperation(String resourceId, Operation operation, String interfaceName, String operationName, Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes) { Operation newOperation = null; StorageOperationStatus storageOperationStatus = StorageOperationStatus.GENERAL_ERROR; @@ -610,14 +554,11 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation InterfaceData interfaceData = interfaceDataNode.getKey(); if (interfaceEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(interfaceName)) { - Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), - (String) interfaceDataNode.getLeft().getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION, - NodeTypeEnum.InterfaceOperation, OperationData.class); + Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceDataNode.getLeft().getUniqueId(), + GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class); if (operationRes.isRight()) { - log.error("Failed to find operation {} on interface {}", operationName, interfaceName); - return Either - .right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value())); + log.error("Failed to find operation {} on interface {}", operationName, interfaceName); + return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value())); } else { List<ImmutablePair<OperationData, GraphEdge>> operations = operationRes.left().value(); for (ImmutablePair<OperationData, GraphEdge> operationPairEdge : operations) { @@ -625,25 +566,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation OperationData opData = operationPairEdge.getLeft(); Map<String, Object> opEdgeProp = opEdge.getProperties(); if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(operationName)) { - ArtifactDefinition artifact = operation.getImplementation(); - Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao - .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), - (String) opData.getUniqueId(), GraphEdgeLabels.ARTIFACT_REF, - NodeTypeEnum.ArtifactRef, ArtifactData.class); + ArtifactDefinition artifact = operation.getImplementationArtifact(); + Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) opData.getUniqueId(), GraphEdgeLabels.ARTIFACT_REF, + NodeTypeEnum.ArtifactRef, ArtifactData.class); Either<ArtifactDefinition, StorageOperationStatus> artStatus; if (artifactRes.isRight()) { - artStatus = artifactOperation.addArifactToComponent(artifact, - (String) operationPairEdge.getLeft().getUniqueId(), - NodeTypeEnum.InterfaceOperation, true, true); + artStatus = artifactOperation.addArifactToComponent(artifact, (String) operationPairEdge.getLeft().getUniqueId(), NodeTypeEnum.InterfaceOperation, true, true); } else { - artStatus = artifactOperation.updateArifactOnResource(artifact, - (String) operationPairEdge.getLeft().getUniqueId(), - (String) artifactRes.left().value().getLeft().getUniqueId(), - NodeTypeEnum.InterfaceOperation, true); + artStatus = artifactOperation.updateArifactOnResource(artifact, (String) operationPairEdge.getLeft().getUniqueId(), (String) artifactRes.left().value().getLeft().getUniqueId(), NodeTypeEnum.InterfaceOperation, true); } if (artStatus.isRight()) { titanGenericDao.rollback(); - log.error("Failed to add artifact {}", operationName, interfaceName); + log.error("Failed to add artifact {} to interface {}", operationName, interfaceName); return Either.right(artStatus.right().value()); } else { newOperation = this.convertOperationDataToOperation(opData); @@ -655,23 +589,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } if (newOperation == null) { - Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode( - resourceId, interfaceName); + Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(resourceId, interfaceName); if (parentInterfaceStatus.isRight()) { log.debug("Interface {} not exist", interfaceName); - return Either.right(DaoStatusConverter - .convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value())); + return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value())); } InterfaceData parentInterfaceData = parentInterfaceStatus.left().value(); - Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> opRes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), - (String) parentInterfaceData.getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION, - NodeTypeEnum.InterfaceOperation, OperationData.class); + Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> opRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) parentInterfaceData.getUniqueId(), + GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class); if (opRes.isRight()) { - log.error("Failed to find operation {} on interface", operationName, interfaceName); - return Either.right( - DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value())); + log.error("Failed to find operation {} on interface {}", operationName, interfaceName); + return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value())); } else { List<ImmutablePair<OperationData, GraphEdge>> parentOperations = opRes.left().value(); @@ -679,10 +608,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation GraphEdge opEdge = operationPairEdge.getRight(); OperationData opData = operationPairEdge.getLeft(); Map<String, Object> opEdgeProp = opEdge.getProperties(); - if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()) - .equals(operationName)) { - return copyAndCreateNewOperation(operation, interfaceName, operationName, null, - interfaceData, operationRes, opData); + if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(operationName)) { + return copyAndCreateNewOperation(operation, interfaceName, operationName, null, interfaceData, operationRes, opData); } } } @@ -703,26 +630,20 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation return Either.left(newOperation); } - private Either<Operation, StorageOperationStatus> copyAndCreateNewOperation(Operation operation, - String interfaceName, String operationName, Operation newOperation, InterfaceData interfaceData, - Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes, - OperationData opData) { + private Either<Operation, StorageOperationStatus> copyAndCreateNewOperation(Operation operation, String interfaceName, String operationName, Operation newOperation, InterfaceData interfaceData, + Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes, OperationData opData) { OperationDataDefinition opDataInfo = opData.getOperationDataDefinition(); OperationDataDefinition newOperationInfo = new OperationDataDefinition(opDataInfo); - newOperationInfo.setUniqueId( - UniqueIdBuilder.buildPropertyUniqueId(interfaceData.getUniqueId(), operationName.toLowerCase())); + newOperationInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(interfaceData.getUniqueId(), operationName.toLowerCase())); OperationData newopData = new OperationData(newOperationInfo); - Either<OperationData, TitanOperationStatus> operationStatus = createOperationNodeAndRelation(operationName, - newopData, interfaceData); + Either<OperationData, TitanOperationStatus> operationStatus = createOperationNodeAndRelation(operationName, newopData, interfaceData); if (operationStatus.isRight()) { - log.error("Failed to create operation {} on interface {}", operationName, interfaceName); + log.error("Failed to create operation {} on interface {}", operationName, interfaceName); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value())); } - ArtifactDefinition artifact = operation.getImplementation(); + ArtifactDefinition artifact = operation.getImplementationArtifact(); if (artifact != null) { - Either<ArtifactDefinition, StorageOperationStatus> artStatus = artifactOperation.addArifactToComponent( - artifact, (String) operationStatus.left().value().getUniqueId(), NodeTypeEnum.InterfaceOperation, - true, true); + Either<ArtifactDefinition, StorageOperationStatus> artStatus = artifactOperation.addArifactToComponent(artifact, (String) operationStatus.left().value().getUniqueId(), NodeTypeEnum.InterfaceOperation, true, true); if (artStatus.isRight()) { titanGenericDao.rollback(); log.error("Failed to add artifact {} to interface {}", operationName, interfaceName); @@ -735,17 +656,14 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation return Either.left(newOperation); } - private Either<Operation, StorageOperationStatus> updateOperationFromParentNode(Operation operation, - String resourceId, String interfaceName, String operationName) { + private Either<Operation, StorageOperationStatus> updateOperationFromParentNode(Operation operation, String resourceId, String interfaceName, String operationName) { // Operation newOperation = null; ResourceMetadataData resourceData = new ResourceMetadataData(); resourceData.getMetadataDataDefinition().setUniqueId(resourceId); - Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(resourceId, - interfaceName); + Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(resourceId, interfaceName); if (parentInterfaceStatus.isRight()) { log.debug("Interface {} not exist", interfaceName); - return Either - .right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value())); + return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value())); } InterfaceData interfaceData = parentInterfaceStatus.left().value(); @@ -756,28 +674,24 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation newInterfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted)); InterfaceData updatedInterfaceData = new InterfaceData(newInterfaceInfo); - Either<InterfaceData, TitanOperationStatus> createStatus = createInterfaceNodeAndRelation(interfaceName, - resourceId, updatedInterfaceData, resourceData); + Either<InterfaceData, TitanOperationStatus> createStatus = createInterfaceNodeAndRelation(interfaceName, resourceId, updatedInterfaceData, resourceData); if (createStatus.isRight()) { - log.debug("failed to create interface node {} on resource {}", interfaceName, resourceId); + log.debug("failed to create interface node {} on resource {}", interfaceName, resourceId); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(createStatus.right().value())); } InterfaceData newInterfaceNode = createStatus.left().value(); - Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(newInterfaceNode, - interfaceData, GraphEdgeLabels.DERIVED_FROM, null); + Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(newInterfaceNode, interfaceData, GraphEdgeLabels.DERIVED_FROM, null); if (createRelResult.isRight()) { TitanOperationStatus operationStatus = createRelResult.right().value(); - log.error("Failed to associate interface {} to interface {} in graph. Status is {}", interfaceData.getUniqueId(), newInterfaceNode.getUniqueId(), operationStatus); + log.error("Failed to associate interface {} to interface {} in graph. status is {}", interfaceData.getUniqueId(), newInterfaceNode.getUniqueId(), operationStatus); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationStatus)); } - Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), - (String) interfaceData.getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION, - NodeTypeEnum.InterfaceOperation, OperationData.class); + Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceData.getUniqueId(), + GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class); if (operationRes.isRight()) { - log.error("Failed to find operation {} on interface {}", operationName, interfaceName); + log.error("Failed to find operation {} on interface {}", operationName, interfaceName); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value())); } else { @@ -802,25 +716,20 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation // return Either.left(newOperation); } - private Either<InterfaceData, TitanOperationStatus> findInterfaceOnParentNode(String resourceId, - String interfaceName) { + private Either<InterfaceData, TitanOperationStatus> findInterfaceOnParentNode(String resourceId, String interfaceName) { - Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentRes = titanGenericDao - .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.DERIVED_FROM, - NodeTypeEnum.Resource, ResourceMetadataData.class); + Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentRes = titanGenericDao.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource, + ResourceMetadataData.class); if (parentRes.isRight()) { - log.debug("interface {} not found", interfaceName); + log.debug("interface {} not found ", interfaceName); return Either.right(parentRes.right().value()); } ImmutablePair<ResourceMetadataData, GraphEdge> parenNode = parentRes.left().value(); - Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), - parenNode.getKey().getMetadataDataDefinition().getUniqueId(), GraphEdgeLabels.INTERFACE, - NodeTypeEnum.Interface, InterfaceData.class); + Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), parenNode.getKey().getMetadataDataDefinition().getUniqueId(), + GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class); if (childrenNodes.isRight()) { - return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(), - interfaceName); + return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(), interfaceName); } else { for (ImmutablePair<InterfaceData, GraphEdge> interfaceDataNode : childrenNodes.left().value()) { @@ -833,15 +742,13 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } } - return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(), - interfaceName); + return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(), interfaceName); } } @Override - public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceOnResource(InterfaceDefinition interf, - String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction) { + public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceOnResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction) { Either<InterfaceData, TitanOperationStatus> status = addInterfaceToGraph(interf, interfaceName, resourceId); @@ -857,15 +764,14 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation InterfaceData interfaceData = status.left().value(); InterfaceDefinition interfaceDefResult = convertInterfaceDataToInterfaceDefinition(interfaceData); - Map<String, Operation> operations = interf.getOperations(); + Map<String, Operation> operations = interf.getOperationsMap(); if (operations != null && !operations.isEmpty()) { Set<String> opNames = operations.keySet(); Map<String, Operation> newOperations = new HashMap<String, Operation>(); for (String operationName : opNames) { Operation op = operations.get(operationName); - Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf, operationName, - op, interfaceData); + Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf, operationName, op, interfaceData); if (status.isRight()) { titanGenericDao.rollback(); log.error("Failed to add operation {} to interface {}", operationName, interfaceName); @@ -876,11 +782,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation OperationData opData = opStatus.left().value(); Operation newOperation = this.convertOperationDataToOperation(opData); - ArtifactDefinition art = op.getImplementation(); + ArtifactDefinition art = op.getImplementationArtifact(); if (art != null) { - Either<ArtifactDefinition, StorageOperationStatus> artRes = artifactOperation - .addArifactToComponent(art, (String) opData.getUniqueId(), - NodeTypeEnum.InterfaceOperation, failIfExist, true); + Either<ArtifactDefinition, StorageOperationStatus> artRes = artifactOperation.addArifactToComponent(art, (String) opData.getUniqueId(), NodeTypeEnum.InterfaceOperation, failIfExist, true); if (artRes.isRight()) { titanGenericDao.rollback(); log.error("Failed to add artifact {} to interface {}", operationName, interfaceName); @@ -891,7 +795,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } } } - interfaceDefResult.setOperations(newOperations); + interfaceDefResult.setOperationsMap(newOperations); } log.debug("The returned InterfaceDefintion is {}", interfaceDefResult); return Either.left(interfaceDefResult); @@ -900,11 +804,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } @Override - public StorageOperationStatus createInterfaceOnResource(InterfaceDefinition interf, String resourceId, - String interfaceName, boolean failIfExist, boolean inTransaction, TitanVertex metadataVertex) { + public StorageOperationStatus createInterfaceOnResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction, TitanVertex metadataVertex) { - Either<TitanVertex, TitanOperationStatus> interfaceResult = addInterfaceToGraph(interf, interfaceName, - resourceId, metadataVertex); + Either<TitanVertex, TitanOperationStatus> interfaceResult = addInterfaceToGraph(interf, interfaceName, resourceId, metadataVertex); if (interfaceResult.isRight()) { if (false == inTransaction) { @@ -921,14 +823,13 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation // InterfaceDefinition interfaceDefResult = // convertInterfaceDataToInterfaceDefinition(interfaceData); - Map<String, Operation> operations = interf.getOperations(); + Map<String, Operation> operations = interf.getOperationsMap(); if (operations != null && !operations.isEmpty()) { Set<String> opNames = operations.keySet(); for (String operationName : opNames) { Operation op = operations.get(operationName); - Either<TitanVertex, TitanOperationStatus> operationResult = addOperationToGraph(interf, - operationName, op, interfaceVertex); + Either<TitanVertex, TitanOperationStatus> operationResult = addOperationToGraph(interf, operationName, op, interfaceVertex); if (operationResult.isRight()) { if (false == inTransaction) { titanGenericDao.rollback(); @@ -941,12 +842,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } TitanVertex operationVertex = operationResult.left().value(); - ArtifactDefinition art = op.getImplementation(); + ArtifactDefinition art = op.getImplementationArtifact(); if (art != null) { - String opId = (String) titanGenericDao.getProperty(operationVertex, - GraphPropertiesDictionary.UNIQUE_ID.getProperty()); - StorageOperationStatus artRes = artifactOperation.addArifactToComponent(art, opId, - NodeTypeEnum.InterfaceOperation, failIfExist, operationVertex); + String opId = (String) titanGenericDao.getProperty(operationVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty()); + StorageOperationStatus artRes = artifactOperation.addArifactToComponent(art, opId, NodeTypeEnum.InterfaceOperation, failIfExist, operationVertex); if (!artRes.equals(StorageOperationStatus.OK)) { if (false == inTransaction) { titanGenericDao.rollback(); @@ -964,14 +863,12 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } @Override - public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, - String operationId) { + public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, String operationId) { return deleteInterfaceOperation(resourceId, interfaceName, operationId, false); } @Override - public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, - String operationId, boolean inTransaction) { + public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, String operationId, boolean inTransaction) { Either<Operation, TitanOperationStatus> status = removeOperationOnGraph(resourceId, interfaceName, operationId); if (status.isRight()) { @@ -993,17 +890,15 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } @Override - public Either<InterfaceDefinition, StorageOperationStatus> deleteInterfaceOfResourceOnGraph(String resourceId, - InterfaceDefinition interfaceDef, boolean inTransaction) { + public Either<InterfaceDefinition, StorageOperationStatus> deleteInterfaceOfResourceOnGraph(String resourceId, InterfaceDefinition interfaceDef, boolean inTransaction) { - Map<String, Operation> operations = interfaceDef.getOperations(); + Map<String, Operation> operations = interfaceDef.getOperationsMap(); String interfaceNameSplitted = getShortInterfaceName(interfaceDef); if (operations != null) { for (Entry<String, Operation> entry : operations.entrySet()) { Operation op = entry.getValue(); - Either<Operation, StorageOperationStatus> removeOperationFromResource = deleteInterfaceOperation( - resourceId, interfaceNameSplitted, op.getUniqueId(), true); + Either<Operation, StorageOperationStatus> removeOperationFromResource = deleteInterfaceOperation(resourceId, interfaceNameSplitted, op.getUniqueId(), true); if (removeOperationFromResource.isRight()) { if (false == inTransaction) { titanGenericDao.rollback(); @@ -1017,13 +912,11 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } - private Either<Operation, TitanOperationStatus> removeOperationOnGraph(String resourceId, String interfaceName, - String operationId) { + private Either<Operation, TitanOperationStatus> removeOperationOnGraph(String resourceId, String interfaceName, String operationId) { log.debug("Before deleting operation from graph {}", operationId); - Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, - GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class); + Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, + InterfaceData.class); if (childrenNodes.isRight()) { log.debug("Not found interface {}", interfaceName); @@ -1038,12 +931,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation String interfaceSplitedName = splitType(interfaceName); if (interfaceEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(interfaceSplitedName)) { - Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao - .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), - (String) interfaceDataNode.getLeft().getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION, - NodeTypeEnum.InterfaceOperation, OperationData.class); + Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceDataNode.getLeft().getUniqueId(), + GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class); if (operationRes.isRight()) { - log.error("Failed to find operation {}", operationId, interfaceName); + log.error("Failed to find operation {} on interface {}", operationId, interfaceName); return Either.right(operationRes.right().value()); } List<ImmutablePair<OperationData, GraphEdge>> operations = operationRes.left().value(); @@ -1053,24 +944,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation opData = operationPairEdge.getLeft(); if (opData.getUniqueId().equals(operationId)) { - Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao - .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), - (String) operationPairEdge.getLeft().getUniqueId(), - GraphEdgeLabels.ARTIFACT_REF, NodeTypeEnum.ArtifactRef, ArtifactData.class); + Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) operationPairEdge.getLeft().getUniqueId(), + GraphEdgeLabels.ARTIFACT_REF, NodeTypeEnum.ArtifactRef, ArtifactData.class); Either<ArtifactDefinition, StorageOperationStatus> arStatus = null; if (artifactRes.isLeft()) { ArtifactData arData = artifactRes.left().value().getKey(); - arStatus = artifactOperation.removeArifactFromResource( - (String) operationPairEdge.getLeft().getUniqueId(), (String) arData.getUniqueId(), - NodeTypeEnum.InterfaceOperation, true, true); + arStatus = artifactOperation.removeArifactFromResource((String) operationPairEdge.getLeft().getUniqueId(), (String) arData.getUniqueId(), NodeTypeEnum.InterfaceOperation, true, true); if (arStatus.isRight()) { log.debug("failed to delete artifact {}", arData.getUniqueId()); return Either.right(TitanOperationStatus.INVALID_ID); } } - Either<OperationData, TitanOperationStatus> deleteOpStatus = titanGenericDao.deleteNode( - UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.InterfaceOperation), opData.getUniqueId(), - OperationData.class); + Either<OperationData, TitanOperationStatus> deleteOpStatus = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.InterfaceOperation), opData.getUniqueId(), OperationData.class); if (deleteOpStatus.isRight()) { log.debug("failed to delete operation {}", opData.getUniqueId()); return Either.right(TitanOperationStatus.INVALID_ID); @@ -1081,9 +966,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation operation.setImplementation(arStatus.left().value()); } if (operations.size() <= 1) { - Either<InterfaceData, TitanOperationStatus> deleteInterfaceStatus = titanGenericDao - .deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), - interfaceDataNode.left.getUniqueId(), InterfaceData.class); + Either<InterfaceData, TitanOperationStatus> deleteInterfaceStatus = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDataNode.left.getUniqueId(), InterfaceData.class); if (deleteInterfaceStatus.isRight()) { log.debug("failed to delete interface {}", interfaceDataNode.left.getUniqueId()); return Either.right(TitanOperationStatus.INVALID_ID); @@ -1100,8 +983,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation log.debug("Not found operation {}", interfaceName); return Either.right(TitanOperationStatus.INVALID_ID); - // } - } private String splitType(String interfaceName) { @@ -1131,16 +1012,14 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } @Override - public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf, - boolean inTransaction) { + public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf, boolean inTransaction) { Either<InterfaceDefinition, StorageOperationStatus> result = null; try { InterfaceData interfaceData = new InterfaceData(interf); interf.setUniqueId(interf.getType().toLowerCase()); - Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao - .getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class); + Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao.getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class); if (existInterface.isLeft()) { // already exist @@ -1150,32 +1029,29 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } log.debug("Before adding interface type to graph {}", interfaceData); - Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData, - InterfaceData.class); + Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData, InterfaceData.class); log.debug("After adding property type to graph {}", interfaceData); if (createNodeResult.isRight()) { TitanOperationStatus operationStatus = createNodeResult.right().value(); - log.error("Failed to add interface {} to graph. Status is {}", interf.getType(), operationStatus); + log.error("Failed to add interface {} to graph. status is {}", interf.getType(), operationStatus); result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationStatus)); return result; } InterfaceDefinition interfaceDefResult = convertInterfaceDataToInterfaceDefinition(interfaceData); - Map<String, Operation> operations = interf.getOperations(); + Map<String, Operation> operations = interf.getOperationsMap(); if (operations != null && !operations.isEmpty()) { Map<String, Operation> newOperations = new HashMap<String, Operation>(); for (Map.Entry<String, Operation> operation : operations.entrySet()) { - Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf, - operation.getKey(), operation.getValue(), interfaceData); + Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf, operation.getKey(), operation.getValue(), interfaceData); if (opStatus.isRight()) { titanGenericDao.rollback(); log.error("Failed to add operation {} to interface {}", operation.getKey(), interf.getType()); - result = Either - .right(DaoStatusConverter.convertTitanStatusToStorageStatus(opStatus.right().value())); + result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(opStatus.right().value())); return result; } else { OperationData opData = opStatus.left().value(); @@ -1183,7 +1059,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation newOperations.put(operation.getKey(), newOperation); } } - interfaceDefResult.setOperations(newOperations); + interfaceDefResult.setOperationsMap(newOperations); } result = Either.left(interfaceDefResult); return result; @@ -1203,26 +1079,22 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation @Override public Either<InterfaceDefinition, StorageOperationStatus> getInterface(String interfaceId) { - Either<InterfaceData, TitanOperationStatus> getResult = titanGenericDao - .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceId, InterfaceData.class); + Either<InterfaceData, TitanOperationStatus> getResult = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceId, InterfaceData.class); if (getResult.isLeft()) { InterfaceData interfaceData = getResult.left().value(); return Either.left(convertInterfaceDataToInterfaceDefinition(interfaceData)); } else { TitanOperationStatus titanStatus = getResult.right().value(); - log.debug("Node with id {} was not found in the graph. Status: {}", interfaceId, titanStatus); - StorageOperationStatus storageOperationStatus = DaoStatusConverter - .convertTitanStatusToStorageStatus(titanStatus); + log.debug("Node with id {} was not found in the graph. status: {}", interfaceId, titanStatus); + StorageOperationStatus storageOperationStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus); return Either.right(storageOperationStatus); } } @Override - public StorageOperationStatus associateInterfaceToNode(GraphNode node, InterfaceDefinition interfaceDefinition, - TitanVertex metadataVertex) { + public StorageOperationStatus associateInterfaceToNode(GraphNode node, InterfaceDefinition interfaceDefinition, TitanVertex metadataVertex) { - Either<TitanVertex, TitanOperationStatus> interfaceData = titanGenericDao.getVertexByProperty( - UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId()); + Either<TitanVertex, TitanOperationStatus> interfaceData = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId()); if (interfaceData.isRight()) { return DaoStatusConverter.convertTitanStatusToStorageStatus(interfaceData.right().value()); } @@ -1232,8 +1104,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation String interfaceName = getShortInterfaceName(interfaceDefinition); properties.put(GraphPropertiesDictionary.NAME.getProperty(), interfaceName.toLowerCase()); - TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, interfaceData.left().value(), - GraphEdgeLabels.INTERFACE, properties); + TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, interfaceData.left().value(), GraphEdgeLabels.INTERFACE, properties); if (!createRelation.equals(TitanOperationStatus.OK)) { return DaoStatusConverter.convertTitanStatusToStorageStatus(createRelation); } @@ -1260,19 +1131,15 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } @Override - public Either<Operation, StorageOperationStatus> getSpecificOperation(String resourceId, String interfaceType, - String operationName) { - log.trace("Getting operation, resourceId {}, interfaceType {}, operationName {}", resourceId, interfaceType, - operationName); - Either<Map<String, InterfaceDefinition>, StorageOperationStatus> allInterfacesOfResource = getAllInterfacesOfResource( - resourceId, false); - if (allInterfacesOfResource.isRight() || allInterfacesOfResource.left().value() == null - || allInterfacesOfResource.left().value().get(interfaceType) == null) { + public Either<Operation, StorageOperationStatus> getSpecificOperation(String resourceId, String interfaceType, String operationName) { + log.trace("Getting operation, resourceId {}, interfaceType {}, operationName {}", resourceId, interfaceType, operationName); + Either<Map<String, InterfaceDefinition>, StorageOperationStatus> allInterfacesOfResource = getAllInterfacesOfResource(resourceId, false); + if (allInterfacesOfResource.isRight() || allInterfacesOfResource.left().value() == null || allInterfacesOfResource.left().value().get(interfaceType) == null) { log.debug("Couldn't find interface definition of type {} for resource id {}", interfaceType, resourceId); return Either.right(allInterfacesOfResource.right().value()); } InterfaceDefinition interfaceDefinition = allInterfacesOfResource.left().value().get(interfaceType); - Map<String, Operation> operations = interfaceDefinition.getOperations(); + Map<String, Operation> operations = interfaceDefinition.getOperationsMap(); if (operations == null || operations.get(operationName) == null) { log.debug("Couldn't find operation for operation name {}, interface type {}", operationName, interfaceType); return Either.right(StorageOperationStatus.GENERAL_ERROR); @@ -1281,24 +1148,19 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation } @Override - public Either<InterfaceDefinition, StorageOperationStatus> dissociateInterfaceFromNode(GraphNode node, - InterfaceDefinition interfaceDefinition) { + public Either<InterfaceDefinition, StorageOperationStatus> dissociateInterfaceFromNode(GraphNode node, InterfaceDefinition interfaceDefinition) { - Either<InterfaceData, TitanOperationStatus> interfaceData = titanGenericDao.getNode( - UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId(), - InterfaceData.class); + Either<InterfaceData, TitanOperationStatus> interfaceData = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId(), InterfaceData.class); if (interfaceData.isRight()) { log.debug("Couldn't find interface {}", interfaceDefinition); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(interfaceData.right().value())); } InterfaceData value = interfaceData.left().value(); - Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(node, value, - GraphEdgeLabels.INTERFACE); + Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(node, value, GraphEdgeLabels.INTERFACE); if (deleteRelation.isRight()) { TitanOperationStatus status = deleteRelation.right().value(); - log.debug("Couldn't dissociate interface between node {} to node {}. Status is {}", node.getUniqueId(), - value.getUniqueId(), status); + log.debug("Couldn't dissociate interface between node {} to node {}. Status is {}", node.getUniqueId(), value.getUniqueId(), status); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); } |