summaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java
diff options
context:
space:
mode:
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.java286
1 files changed, 99 insertions, 187 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 87f01cd97e..a4d8ac9152 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
@@ -17,17 +17,24 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.be.model.operations.impl;
import fj.data.Either;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+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.JanusGraphGenericDao;
import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels;
import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao;
import org.openecomp.sdc.be.datatypes.elements.InterfaceDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
@@ -43,93 +50,67 @@ import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.openecomp.sdc.common.log.wrappers.Logger;
import org.springframework.stereotype.Component;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
@Component("interface-operation")
public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation {
private static final Logger log = Logger.getLogger(InterfaceLifecycleOperation.class.getName());
private static final String FAILED_TO_FIND_OPERATION = "Failed to find operation {} on interface {}";
private static final String FAILED_TO_FIND_ARTIFACT = "Failed to add artifact {} to interface {}";
-
- public InterfaceLifecycleOperation() {
- super();
- }
-
@javax.annotation.Resource
private ArtifactOperation artifactOperation;
-
@javax.annotation.Resource
private JanusGraphGenericDao janusGraphGenericDao;
+ public InterfaceLifecycleOperation() {
+ super();
+ }
@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, JanusGraphOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName, Operation op, InterfaceData interfaceData) {
-
+ private Either<OperationData, JanusGraphOperationStatus> 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, JanusGraphOperationStatus> createOpNodeResult = janusGraphGenericDao
- .createNode(operationData, OperationData.class);
+ Either<OperationData, JanusGraphOperationStatus> createOpNodeResult = janusGraphGenericDao.createNode(operationData, OperationData.class);
log.debug("After adding operation to graph {}", operationData);
-
if (createOpNodeResult.isRight()) {
JanusGraphOperationStatus opStatus = createOpNodeResult.right().value();
log.error("Failed to add operation {} to graph. status is {}", opName, opStatus);
return Either.right(opStatus);
}
-
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), opName);
Either<GraphRelation, JanusGraphOperationStatus> createRelResult = janusGraphGenericDao
.createRelation(interfaceData, operationData, GraphEdgeLabels.INTERFACE_OPERATION, props);
-
if (createRelResult.isRight()) {
JanusGraphOperationStatus operationStatus = createOpNodeResult.right().value();
log.error("Failed to associate operation {} to property {} in graph. status is {}", interfaceData.getUniqueId(), opName, operationStatus);
-
return Either.right(operationStatus);
}
-
return Either.left(createOpNodeResult.left().value());
-
}
private InterfaceDefinition convertInterfaceDataToInterfaceDefinition(InterfaceData interfaceData) {
-
log.debug("The object returned after create interface is {}", interfaceData);
-
return new InterfaceDefinition(interfaceData.getInterfaceDataDefinition());
-
}
private Operation convertOperationDataToOperation(OperationData operationData) {
-
log.debug("The object returned after create operation is {}", operationData);
-
return new Operation(operationData.getOperationDataDefinition());
-
}
- private Either<InterfaceData, JanusGraphOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, String interfaceName, String resourceId) {
+ private Either<InterfaceData, JanusGraphOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, String interfaceName,
+ String resourceId) {
InterfaceData interfaceData = new InterfaceData(interfaceInfo);
ResourceMetadataData resourceData = new ResourceMetadataData();
resourceData.getMetadataDataDefinition().setUniqueId(resourceId);
-
String interfaceNameSplitted = getShortInterfaceName(interfaceInfo);
interfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted));
-
Either<InterfaceData, JanusGraphOperationStatus> existInterface = janusGraphGenericDao
.getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class);
if (existInterface.isRight()) {
@@ -140,18 +121,17 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
}
- private Either<InterfaceData, JanusGraphOperationStatus> createInterfaceNodeAndRelation(String interfaceName, String resourceId, InterfaceData interfaceData, ResourceMetadataData resourceData) {
+ private Either<InterfaceData, JanusGraphOperationStatus> createInterfaceNodeAndRelation(String interfaceName, String resourceId,
+ InterfaceData interfaceData,
+ ResourceMetadataData resourceData) {
log.debug("Before adding interface to graph {}", interfaceData);
- Either<InterfaceData, JanusGraphOperationStatus> createNodeResult = janusGraphGenericDao
- .createNode(interfaceData, InterfaceData.class);
+ Either<InterfaceData, JanusGraphOperationStatus> createNodeResult = janusGraphGenericDao.createNode(interfaceData, InterfaceData.class);
log.debug("After adding property to graph {}", interfaceData);
-
if (createNodeResult.isRight()) {
JanusGraphOperationStatus operationStatus = createNodeResult.right().value();
log.error("Failed to add interface {} to graph. status is {}", interfaceName, operationStatus);
return Either.right(operationStatus);
}
-
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), interfaceName);
Either<GraphRelation, JanusGraphOperationStatus> createRelResult = janusGraphGenericDao
@@ -159,47 +139,42 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (createRelResult.isRight()) {
JanusGraphOperationStatus operationStatus = createNodeResult.right().value();
log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId, interfaceName, operationStatus);
-
return Either.right(operationStatus);
}
-
return Either.left(createNodeResult.left().value());
}
- private Either<OperationData, JanusGraphOperationStatus> createOperationNodeAndRelation(String operationName, OperationData operationData, InterfaceData interfaceData) {
+ private Either<OperationData, JanusGraphOperationStatus> createOperationNodeAndRelation(String operationName, OperationData operationData,
+ InterfaceData interfaceData) {
log.debug("Before adding operation to graph {}", operationData);
- Either<OperationData, JanusGraphOperationStatus> createNodeResult = janusGraphGenericDao
- .createNode(operationData, OperationData.class);
+ Either<OperationData, JanusGraphOperationStatus> createNodeResult = janusGraphGenericDao.createNode(operationData, OperationData.class);
log.debug("After adding operation to graph {}", interfaceData);
-
if (createNodeResult.isRight()) {
JanusGraphOperationStatus operationStatus = createNodeResult.right().value();
log.error("Failed to add interfoperationce {} to graph. status is {}", operationName, operationStatus);
return Either.right(operationStatus);
}
-
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), operationName);
Either<GraphRelation, JanusGraphOperationStatus> createRelResult = janusGraphGenericDao
.createRelation(interfaceData, operationData, GraphEdgeLabels.INTERFACE_OPERATION, props);
if (createRelResult.isRight()) {
JanusGraphOperationStatus 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);
}
-
return Either.left(createNodeResult.left().value());
}
-
@Override
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<>();
try {
@@ -208,7 +183,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
result = Either.right(StorageOperationStatus.INVALID_ID);
return result;
}
-
JanusGraphOperationStatus findInterfacesRes = JanusGraphOperationStatus.GENERAL_ERROR;
if (recursively) {
findInterfacesRes = findAllInterfacesRecursively(resourceId, interfaces);
@@ -237,9 +211,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
private JanusGraphOperationStatus findAllInterfacesNotRecursively(String resourceId, Map<String, InterfaceDefinition> interfaces) {
Either<List<ImmutablePair<InterfaceData, GraphEdge>>, JanusGraphOperationStatus> interfaceNodes = janusGraphGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.INTERFACE,
- NodeTypeEnum.Interface, InterfaceData.class);
-
+ .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface,
+ InterfaceData.class);
if (interfaceNodes.isRight()) {
JanusGraphOperationStatus status = interfaceNodes.right().value();
if (status != JanusGraphOperationStatus.NOT_FOUND) {
@@ -250,7 +223,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (interfaceList != null) {
for (ImmutablePair<InterfaceData, GraphEdge> interfacePair : interfaceList) {
String interfaceUniqueId = (String) interfacePair.getKey().getUniqueId();
- Either<String, JanusGraphOperationStatus> interfaceNameRes = getPropertyValueFromEdge(interfacePair.getValue(), GraphPropertiesDictionary.NAME);
+ Either<String, JanusGraphOperationStatus> 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();
@@ -262,7 +236,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
log.error("Failed to get interface actions of interface {}", interfaceUniqueId);
return status;
}
-
InterfaceDefinition interfaceDefinition = interfaceDefRes.left().value();
if (interfaces.containsKey(interfaceName)) {
log.debug("The interface {} was already defined in dervied resource. add not overriden operations", interfaceName);
@@ -271,7 +244,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
} else {
interfaces.put(interfaceName, interfaceDefinition);
}
-
}
}
}
@@ -279,16 +251,13 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
public JanusGraphOperationStatus findAllInterfacesRecursively(String resourceId, Map<String, InterfaceDefinition> interfaces) {
- JanusGraphOperationStatus
- findAllInterfacesNotRecursively = findAllInterfacesNotRecursively(resourceId, interfaces);
+ JanusGraphOperationStatus findAllInterfacesNotRecursively = findAllInterfacesNotRecursively(resourceId, interfaces);
if (!findAllInterfacesNotRecursively.equals(JanusGraphOperationStatus.OK)) {
log.error("failed to get interfaces for resource {}. status is {}", resourceId, findAllInterfacesNotRecursively);
}
-
Either<ImmutablePair<ResourceMetadataData, GraphEdge>, JanusGraphOperationStatus> parentNodes = janusGraphGenericDao
.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
ResourceMetadataData.class);
-
if (parentNodes.isRight()) {
JanusGraphOperationStatus parentNodesStatus = parentNodes.right().value();
if (parentNodesStatus == JanusGraphOperationStatus.NOT_FOUND) {
@@ -302,12 +271,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
ImmutablePair<ResourceMetadataData, GraphEdge> parentNodePair = parentNodes.left().value();
String parentUniqueId = parentNodePair.getKey().getMetadataDataDefinition().getUniqueId();
JanusGraphOperationStatus addParentIntStatus = findAllInterfacesRecursively(parentUniqueId, interfaces);
-
if (addParentIntStatus != JanusGraphOperationStatus.OK) {
log.error("Failed to fetch all interfaces of resource {}", parentUniqueId);
return addParentIntStatus;
}
-
return JanusGraphOperationStatus.OK;
}
@@ -326,15 +293,12 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
private Either<InterfaceDefinition, JanusGraphOperationStatus> getNonRecursiveInterface(InterfaceData interfaceData) {
-
log.debug("Going to fetch the operations associate to interface {}", interfaceData.getUniqueId());
InterfaceDefinition interfaceDefinition = new InterfaceDefinition(interfaceData.getInterfaceDataDefinition());
-
String interfaceId = interfaceData.getUniqueId();
Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> operationsRes = janusGraphGenericDao
.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), interfaceId, GraphEdgeLabels.INTERFACE_OPERATION,
NodeTypeEnum.InterfaceOperation, OperationData.class);
-
if (operationsRes.isRight()) {
JanusGraphOperationStatus status = operationsRes.right().value();
if (status != JanusGraphOperationStatus.NOT_FOUND) {
@@ -343,12 +307,12 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return Either.left(interfaceDefinition);
}
}
-
List<ImmutablePair<OperationData, GraphEdge>> operationList = operationsRes.left().value();
if (operationList != null && !operationList.isEmpty()) {
for (ImmutablePair<OperationData, GraphEdge> operationPair : operationList) {
Operation operation = new Operation(operationPair.getKey().getOperationDataDefinition());
- Either<String, JanusGraphOperationStatus> operationNameRes = getPropertyValueFromEdge(operationPair.getValue(), GraphPropertiesDictionary.NAME);
+ Either<String, JanusGraphOperationStatus> 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());
@@ -358,21 +322,19 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
interfaceDefinition.getOperations().put(operationName, operation);
}
}
-
return Either.left(interfaceDefinition);
}
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());
return artifactsRes.right().value();
} else {
Map<String, ArtifactDefinition> artifacts = artifactsRes.left().value();
Iterator<String> iter = artifacts.keySet().iterator();
-
if (iter.hasNext()) {
operation.setImplementation(artifacts.get(iter.next()));
}
@@ -395,44 +357,38 @@ 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) {
-
+ public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, String operationName,
+ Operation operation, boolean inTransaction) {
return updateOperationOnGraph(operation, resourceId, interfaceName, operationName);
}
- 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>>, JanusGraphOperationStatus> childrenNodes = janusGraphGenericDao
.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface,
InterfaceData.class);
-
if (childrenNodes.isRight()) {
return updateOperationFromParentNode(operation, resourceId, interfaceName, operationName);
-
} else {
return updateExistingOperation(resourceId, operation, interfaceName, operationName, childrenNodes);
-
}
-
}
- private Either<Operation, StorageOperationStatus> updateExistingOperation(String resourceId, Operation operation, String interfaceName, String operationName,
- Either<List<ImmutablePair<InterfaceData, GraphEdge>>, JanusGraphOperationStatus> childrenNodes) {
+ private Either<Operation, StorageOperationStatus> updateExistingOperation(String resourceId, Operation operation, String interfaceName,
+ String operationName,
+ Either<List<ImmutablePair<InterfaceData, GraphEdge>>, JanusGraphOperationStatus> childrenNodes) {
Operation newOperation = null;
StorageOperationStatus storageOperationStatus = StorageOperationStatus.GENERAL_ERROR;
-
for (ImmutablePair<InterfaceData, GraphEdge> interfaceDataNode : childrenNodes.left().value()) {
-
GraphEdge interfaceEdge = interfaceDataNode.getRight();
Map<String, Object> interfaceEdgeProp = interfaceEdge.getProperties();
InterfaceData interfaceData = interfaceDataNode.getKey();
-
if (interfaceEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(interfaceName)) {
Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> operationRes = janusGraphGenericDao
.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceDataNode.getLeft().getUniqueId(),
@@ -449,13 +405,15 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(operationName)) {
ArtifactDefinition artifact = operation.getImplementationArtifact();
Either<ImmutablePair<ArtifactData, GraphEdge>, JanusGraphOperationStatus> artifactRes = janusGraphGenericDao
- .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) opData.getUniqueId(), GraphEdgeLabels.ARTIFACT_REF,
- NodeTypeEnum.ArtifactRef, ArtifactData.class);
+ .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()) {
janusGraphGenericDao.rollback();
@@ -464,11 +422,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
} else {
newOperation = this.convertOperationDataToOperation(opData);
newOperation.setImplementation(artStatus.left().value());
-
}
-
}
-
}
if (newOperation == null) {
Either<InterfaceData, JanusGraphOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(resourceId, interfaceName);
@@ -476,7 +431,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
log.debug("Interface {} not exist", interfaceName);
return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(parentInterfaceStatus.right().value()));
}
-
InterfaceData parentInterfaceData = parentInterfaceStatus.left().value();
Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> opRes = janusGraphGenericDao
.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) parentInterfaceData.getUniqueId(),
@@ -484,7 +438,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (opRes.isRight()) {
log.error(FAILED_TO_FIND_OPERATION, operationName, interfaceName);
return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(operationRes.right().value()));
-
} else {
List<ImmutablePair<OperationData, GraphEdge>> parentOperations = opRes.left().value();
for (ImmutablePair<OperationData, GraphEdge> operationPairEdge : parentOperations) {
@@ -492,29 +445,29 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
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);
+ return copyAndCreateNewOperation(operation, interfaceName, operationName, null, interfaceData, operationRes,
+ opData);
}
}
}
-
}
-
}
-
} else {
// not found
storageOperationStatus = StorageOperationStatus.ARTIFACT_NOT_FOUND;
}
-
}
- if (newOperation == null)
+ if (newOperation == null) {
return Either.right(storageOperationStatus);
- else
+ } else {
return Either.left(newOperation);
+ }
}
- private Either<Operation, StorageOperationStatus> copyAndCreateNewOperation(Operation operation, String interfaceName, String operationName, Operation newOperation, InterfaceData interfaceData,
- Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> operationRes, OperationData opData) {
+ private Either<Operation, StorageOperationStatus> copyAndCreateNewOperation(Operation operation, String interfaceName, String operationName,
+ Operation newOperation, InterfaceData interfaceData,
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> operationRes,
+ OperationData opData) {
OperationDataDefinition opDataInfo = opData.getOperationDataDefinition();
OperationDataDefinition newOperationInfo = new OperationDataDefinition(opDataInfo);
newOperationInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(interfaceData.getUniqueId(), operationName.toLowerCase()));
@@ -526,20 +479,21 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
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()) {
janusGraphGenericDao.rollback();
log.error(FAILED_TO_FIND_ARTIFACT, operationName, interfaceName);
} else {
newOperation = this.convertOperationDataToOperation(opData);
newOperation.setImplementation(artStatus.left().value());
-
}
}
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);
@@ -548,28 +502,25 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
log.debug("Interface {} not exist", interfaceName);
return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(parentInterfaceStatus.right().value()));
}
-
InterfaceData interfaceData = parentInterfaceStatus.left().value();
InterfaceDataDefinition intDataDefinition = interfaceData.getInterfaceDataDefinition();
InterfaceDataDefinition newInterfaceInfo = new InterfaceDataDefinition(intDataDefinition);
-
String interfaceNameSplitted = getShortInterfaceName(intDataDefinition);
-
newInterfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted));
InterfaceData updatedInterfaceData = new InterfaceData(newInterfaceInfo);
- Either<InterfaceData, JanusGraphOperationStatus> createStatus = createInterfaceNodeAndRelation(interfaceName, resourceId, updatedInterfaceData, resourceData);
+ Either<InterfaceData, JanusGraphOperationStatus> 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.convertJanusGraphStatusToStorageStatus(createStatus.right().value()));
}
-
InterfaceData newInterfaceNode = createStatus.left().value();
Either<GraphRelation, JanusGraphOperationStatus> createRelResult = janusGraphGenericDao
.createRelation(newInterfaceNode, interfaceData, GraphEdgeLabels.DERIVED_FROM, null);
if (createRelResult.isRight()) {
JanusGraphOperationStatus 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.convertJanusGraphStatusToStorageStatus(operationStatus));
}
Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> operationRes = janusGraphGenericDao
@@ -578,7 +529,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (operationRes.isRight()) {
log.error(FAILED_TO_FIND_OPERATION, operationName, interfaceName);
return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(operationRes.right().value()));
-
} else {
List<ImmutablePair<OperationData, GraphEdge>> operations = operationRes.left().value();
for (ImmutablePair<OperationData, GraphEdge> operationPairEdge : operations) {
@@ -586,12 +536,12 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
OperationData opData = operationPairEdge.getLeft();
Map<String, Object> opEdgeProp = opEdge.getProperties();
if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(operationName)) {
-
return copyAndCreateNewOperation(operation, interfaceName, operationName, null, // changed
- // from
- // newOperation
- newInterfaceNode, operationRes, opData);
+ // from
+
+ // newOperation
+ newInterfaceNode, operationRes, opData);
}
}
}
@@ -599,7 +549,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
private Either<InterfaceData, JanusGraphOperationStatus> findInterfaceOnParentNode(String resourceId, String interfaceName) {
-
Either<ImmutablePair<ResourceMetadataData, GraphEdge>, JanusGraphOperationStatus> parentRes = janusGraphGenericDao
.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
ResourceMetadataData.class);
@@ -608,50 +557,43 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return Either.right(parentRes.right().value());
}
ImmutablePair<ResourceMetadataData, GraphEdge> parenNode = parentRes.left().value();
-
Either<List<ImmutablePair<InterfaceData, GraphEdge>>, JanusGraphOperationStatus> childrenNodes = janusGraphGenericDao
.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);
-
} else {
for (ImmutablePair<InterfaceData, GraphEdge> interfaceDataNode : childrenNodes.left().value()) {
-
GraphEdge interfaceEdge = interfaceDataNode.getRight();
Map<String, Object> interfaceEdgeProp = interfaceEdge.getProperties();
-
if (interfaceEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(interfaceName)) {
return Either.left(interfaceDataNode.getKey());
}
-
}
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, JanusGraphOperationStatus> status = addInterfaceToGraph(interf, interfaceName, resourceId);
if (status.isRight()) {
janusGraphGenericDao.rollback();
log.error("Failed to add interface {} to resource {}", interfaceName, resourceId);
return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status.right().value()));
} else {
-
if (!inTransaction) {
janusGraphGenericDao.commit();
}
InterfaceData interfaceData = status.left().value();
-
InterfaceDefinition interfaceDefResult = convertInterfaceDataToInterfaceDefinition(interfaceData);
Map<String, Operation> operations = interf.getOperationsMap();
if (operations != null && !operations.isEmpty()) {
Set<String> opNames = operations.keySet();
Map<String, Operation> newOperations = new HashMap<>();
for (String operationName : opNames) {
-
Operation op = operations.get(operationName);
Either<OperationData, JanusGraphOperationStatus> opStatus = addOperationToGraph(interf, operationName, op, interfaceData);
if (status.isRight()) {
@@ -663,10 +605,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
OperationData opData = opStatus.left().value();
Operation newOperation = this.convertOperationDataToOperation(opData);
-
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()) {
janusGraphGenericDao.rollback();
log.error(FAILED_TO_FIND_ARTIFACT, operationName, interfaceName);
@@ -682,12 +624,11 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
log.debug("The returned InterfaceDefintion is {}", interfaceDefResult);
return Either.left(interfaceDefResult);
}
-
}
@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, JanusGraphOperationStatus> status = removeOperationOnGraph(resourceId, interfaceName, operationId);
if (status.isRight()) {
if (!inTransaction) {
@@ -699,33 +640,26 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (!inTransaction) {
janusGraphGenericDao.commit();
}
-
Operation opDefResult = status.left().value();
log.debug("The returned Operation is {}", opDefResult);
return Either.left(opDefResult);
}
-
}
private Either<Operation, JanusGraphOperationStatus> removeOperationOnGraph(String resourceId, String interfaceName, String operationId) {
log.debug("Before deleting operation from graph {}", operationId);
-
Either<List<ImmutablePair<InterfaceData, GraphEdge>>, JanusGraphOperationStatus> childrenNodes = janusGraphGenericDao
.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface,
InterfaceData.class);
-
if (childrenNodes.isRight()) {
log.debug("Not found interface {}", interfaceName);
return Either.right(childrenNodes.right().value());
}
OperationData opData = null;
for (ImmutablePair<InterfaceData, GraphEdge> interfaceDataNode : childrenNodes.left().value()) {
-
GraphEdge interfaceEdge = interfaceDataNode.getRight();
Map<String, Object> interfaceEdgeProp = interfaceEdge.getProperties();
-
String interfaceSplitedName = splitType(interfaceName);
-
if (interfaceEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(interfaceSplitedName)) {
Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> operationRes = janusGraphGenericDao
.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceDataNode.getLeft().getUniqueId(),
@@ -735,19 +669,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return Either.right(operationRes.right().value());
}
List<ImmutablePair<OperationData, GraphEdge>> operations = operationRes.left().value();
-
for (ImmutablePair<OperationData, GraphEdge> operationPairEdge : operations) {
-
opData = operationPairEdge.getLeft();
if (opData.getUniqueId().equals(operationId)) {
-
Either<ImmutablePair<ArtifactData, GraphEdge>, JanusGraphOperationStatus> artifactRes = janusGraphGenericDao
.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(JanusGraphOperationStatus.INVALID_ID);
@@ -766,21 +699,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
if (operations.size() <= 1) {
Either<InterfaceData, JanusGraphOperationStatus> deleteInterfaceStatus = janusGraphGenericDao
- .deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDataNode.left.getUniqueId(), InterfaceData.class);
+ .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(JanusGraphOperationStatus.INVALID_ID);
}
-
}
-
return Either.left(operation);
-
}
}
}
}
-
log.debug("Not found operation {}", interfaceName);
return Either.right(JanusGraphOperationStatus.INVALID_ID);
}
@@ -788,13 +718,11 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
private String splitType(String interfaceName) {
String interfaceSplittedName;
String[] packageName = interfaceName.split("\\.");
-
if (packageName.length == 0) {
interfaceSplittedName = interfaceName;
} else {
interfaceSplittedName = packageName[packageName.length - 1];
}
-
return interfaceSplittedName.toLowerCase();
}
@@ -815,44 +743,35 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
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, JanusGraphOperationStatus> existInterface = janusGraphGenericDao
.getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class);
-
if (existInterface.isLeft()) {
// already exist
log.debug("Interface type already exist {}", interfaceData);
result = Either.right(StorageOperationStatus.ENTITY_ALREADY_EXISTS);
return result;
}
-
log.debug("Before adding interface type to graph {}", interfaceData);
- Either<InterfaceData, JanusGraphOperationStatus> createNodeResult = janusGraphGenericDao
- .createNode(interfaceData, InterfaceData.class);
+ Either<InterfaceData, JanusGraphOperationStatus> createNodeResult = janusGraphGenericDao.createNode(interfaceData, InterfaceData.class);
log.debug("After adding property type to graph {}", interfaceData);
-
if (createNodeResult.isRight()) {
JanusGraphOperationStatus operationStatus = createNodeResult.right().value();
log.error("Failed to add interface {} to graph. status is {}", interf.getType(), operationStatus);
result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(operationStatus));
return result;
}
-
InterfaceDefinition interfaceDefResult = convertInterfaceDataToInterfaceDefinition(interfaceData);
Map<String, Operation> operations = interf.getOperationsMap();
-
if (operations != null && !operations.isEmpty()) {
Map<String, Operation> newOperations = new HashMap<>();
-
for (Map.Entry<String, Operation> operation : operations.entrySet()) {
- Either<OperationData, JanusGraphOperationStatus> opStatus = addOperationToGraph(interf, operation.getKey(), operation.getValue(), interfaceData);
+ Either<OperationData, JanusGraphOperationStatus> opStatus = addOperationToGraph(interf, operation.getKey(), operation.getValue(),
+ interfaceData);
if (opStatus.isRight()) {
janusGraphGenericDao.rollback();
log.error("Failed to add operation {} to interface {}", operation.getKey(), interf.getType());
-
result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(opStatus.right().value()));
return result;
} else {
@@ -876,7 +795,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
}
}
-
}
@Override
@@ -911,29 +829,23 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
@Override
public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfaceLifecycleTypes() {
-
- Either<List<InterfaceData>, JanusGraphOperationStatus> allInterfaceLifecycleTypes =
- janusGraphGenericDao
- .getByCriteria(NodeTypeEnum.Interface, Collections.emptyMap(), InterfaceData.class);
+ Either<List<InterfaceData>, JanusGraphOperationStatus> allInterfaceLifecycleTypes = janusGraphGenericDao
+ .getByCriteria(NodeTypeEnum.Interface, Collections.emptyMap(), InterfaceData.class);
if (allInterfaceLifecycleTypes.isRight()) {
- return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus
- (allInterfaceLifecycleTypes.right().value()));
+ return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(allInterfaceLifecycleTypes.right().value()));
}
-
Map<String, InterfaceDefinition> interfaceTypes = new HashMap<>();
List<InterfaceData> interfaceDataList = allInterfaceLifecycleTypes.left().value();
- List<InterfaceDefinition> interfaceDefinitions = interfaceDataList.stream()
- .map(this::convertInterfaceDataToInterfaceDefinition)
+ List<InterfaceDefinition> interfaceDefinitions = interfaceDataList.stream().map(this::convertInterfaceDataToInterfaceDefinition)
.filter(interfaceDefinition -> interfaceDefinition.getUniqueId().equalsIgnoreCase((interfaceDefinition.getType())))
.collect(Collectors.toList());
-
for (InterfaceDefinition interfaceDefinition : interfaceDefinitions) {
- Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus>
- childrenNodes = janusGraphGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- interfaceDefinition.getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class);
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, JanusGraphOperationStatus> childrenNodes = janusGraphGenericDao
+ .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), interfaceDefinition.getUniqueId(),
+ GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class);
if (childrenNodes.isLeft()) {
Map<String, OperationDataDefinition> operationsDataDefinitionMap = new HashMap<>();
- for(ImmutablePair<OperationData, GraphEdge> operation : childrenNodes.left().value()) {
+ for (ImmutablePair<OperationData, GraphEdge> operation : childrenNodes.left().value()) {
OperationData operationData = operation.getLeft();
operationsDataDefinitionMap.put(operationData.getUniqueId(), operationData.getOperationDataDefinition());
}