Upgrade SDC from Titan to Janus Graph
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / jsonjanusgraph / operations / ArtifactsOperations.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdc.be.model.jsontitan.operations;
+package org.openecomp.sdc.be.model.jsonjanusgraph.operations;
 
 import fj.data.Either;
 import org.apache.commons.collections.MapUtils;
@@ -26,11 +26,11 @@ import org.apache.commons.lang3.tuple.ImmutableTriple;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.openecomp.sdc.be.config.BeEcompErrorManager;
+import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
 import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
 import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
 import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
-import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
 import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.InterfaceDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition;
@@ -153,7 +153,7 @@ public class ArtifactsOperations extends BaseOperation {
 
     }
        private ArtifactDataDefinition findInterfaceArtifact(String parentId, String id) {
-               Either<Map<String, InterfaceDefinition>, TitanOperationStatus> dataFromGraph = getDataFromGraph(parentId, EdgeLabelEnum.INTERFACE);
+               Either<Map<String, InterfaceDefinition>, JanusGraphOperationStatus> dataFromGraph = getDataFromGraph(parentId, EdgeLabelEnum.INTERFACE);
                if (dataFromGraph.isRight()){
                        log.debug("failed to fetch interfaces {} for tosca element with id {}, error {}", id, parentId ,dataFromGraph.right().value());
                        return null;
@@ -214,12 +214,12 @@ public class ArtifactsOperations extends BaseOperation {
         Triple<EdgeLabelEnum, Boolean, VertexTypeEnum> triple = getEdgeLabelEnumFromArtifactGroupType(groupType, parentType);
         EdgeLabelEnum edgeLabelEnum = triple.getLeft();
 
-        Either<Map<String, ArtifactDefinition>, TitanOperationStatus> foundArtifact = null;
+        Either<Map<String, ArtifactDefinition>, JanusGraphOperationStatus> foundArtifact = null;
         Map<String, ArtifactDefinition> resMap = new HashMap<>();
         foundArtifact = getArtifactByLabel(parentId, instanceId, edgeLabelEnum);
         if (foundArtifact.isRight()) {
             log.debug("Failed to find artifact in component {} with label {} ", parentId, edgeLabelEnum);
-            return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(foundArtifact.right().value()));
+            return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(foundArtifact.right().value()));
         }
 
         resMap.putAll(foundArtifact.left().value());
@@ -234,13 +234,13 @@ public class ArtifactsOperations extends BaseOperation {
      */
     public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getAllInstanceArtifacts(String parentId, String instanceId) {
         Map<String, ArtifactDataDefinition> resMap = new HashMap<>();
-        Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> instArtifacts = getInstanceArtifactsByLabel(parentId, instanceId, EdgeLabelEnum.INSTANCE_ARTIFACTS);
+        Either<Map<String, ArtifactDataDefinition>, JanusGraphOperationStatus> instArtifacts = getInstanceArtifactsByLabel(parentId, instanceId, EdgeLabelEnum.INSTANCE_ARTIFACTS);
         if (instArtifacts.isRight()) {
-            return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(instArtifacts.right().value()));
+            return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(instArtifacts.right().value()));
         }
-        Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> deployInstArtifacts = getInstanceArtifactsByLabel(parentId, instanceId, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS);
+        Either<Map<String, ArtifactDataDefinition>, JanusGraphOperationStatus> deployInstArtifacts = getInstanceArtifactsByLabel(parentId, instanceId, EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS);
         if (deployInstArtifacts.isRight()) {
-            return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(deployInstArtifacts.right().value()));
+            return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(deployInstArtifacts.right().value()));
         }
         resMap.putAll(instArtifacts.left().value());
         resMap.putAll(deployInstArtifacts.left().value());
@@ -249,7 +249,7 @@ public class ArtifactsOperations extends BaseOperation {
 
     public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getArtifacts(String parentId) {
 
-        Either<Map<String, ArtifactDefinition>, TitanOperationStatus> foundArtifact = null;
+        Either<Map<String, ArtifactDefinition>, JanusGraphOperationStatus> foundArtifact = null;
         Map<String, ArtifactDefinition> resMap = new HashMap<>();
         foundArtifact = getArtifactByLabel(parentId, null, EdgeLabelEnum.ARTIFACTS);
         if (foundArtifact.isLeft()) {
@@ -367,10 +367,10 @@ public class ArtifactsOperations extends BaseOperation {
 
     public Either<ArtifactDefinition, StorageOperationStatus> updateHeatEnvArtifact(String id, ArtifactDefinition artifactEnvInfo, String artifactId, String newArtifactId, NodeTypeEnum type, String instanceId) {
 
-        Either<Map<String, ArtifactDefinition>, TitanOperationStatus> artifactsEither = getArtifactByLabel(id, instanceId, EdgeLabelEnum.DEPLOYMENT_ARTIFACTS);
+        Either<Map<String, ArtifactDefinition>, JanusGraphOperationStatus> artifactsEither = getArtifactByLabel(id, instanceId, EdgeLabelEnum.DEPLOYMENT_ARTIFACTS);
         if (artifactsEither.isRight()) {
             log.debug("Failed to find artifacts in component {} with id {} ", id, artifactsEither.right().value());
-            return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(artifactsEither.right().value()));
+            return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(artifactsEither.right().value()));
         }
 
         Map<String, ArtifactDefinition> artifacts = artifactsEither.left().value();
@@ -410,7 +410,7 @@ public class ArtifactsOperations extends BaseOperation {
 
     private ArtifactDataDefinition getInstanceArtifactByLabelAndId(String parentId, String id, String containerId, EdgeLabelEnum edgeLabelEnum) {
         ArtifactDataDefinition foundArtifact = null;
-        Either<Map<String, MapArtifactDataDefinition>, TitanOperationStatus> artifactsEither = getDataFromGraph(containerId, edgeLabelEnum);
+        Either<Map<String, MapArtifactDataDefinition>, JanusGraphOperationStatus> artifactsEither = getDataFromGraph(containerId, edgeLabelEnum);
         if (artifactsEither.isRight()) {
             log.debug(FAILED_TO_FETCH_FOR_TOSCA_ELEMENT_WITH_ID_ERROR, edgeLabelEnum, containerId, artifactsEither.right().value());
             return null;
@@ -432,7 +432,7 @@ public class ArtifactsOperations extends BaseOperation {
 
     private ArtifactDataDefinition getArtifactByLabelAndId(String parentId, String id, EdgeLabelEnum edgeLabelEnum) {
         ArtifactDataDefinition foundArtifact = null;
-        Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> artifactsEither = getDataFromGraph(parentId, edgeLabelEnum);
+        Either<Map<String, ArtifactDataDefinition>, JanusGraphOperationStatus> artifactsEither = getDataFromGraph(parentId, edgeLabelEnum);
         if (artifactsEither.isRight()) {
             log.debug(FAILED_TO_FETCH_FOR_TOSCA_ELEMENT_WITH_ID_ERROR, edgeLabelEnum, parentId, artifactsEither.right().value());
             return null;
@@ -446,8 +446,8 @@ public class ArtifactsOperations extends BaseOperation {
         return foundArtifact;
     }
 
-    private Either<Map<String, ArtifactDefinition>, TitanOperationStatus> getArtifactByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
-        Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> artifactsEither = getArtifactsDataByLabel(parentId, instanceId, edgeLabelEnum);
+    private Either<Map<String, ArtifactDefinition>, JanusGraphOperationStatus> getArtifactByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
+        Either<Map<String, ArtifactDataDefinition>, JanusGraphOperationStatus> artifactsEither = getArtifactsDataByLabel(parentId, instanceId, edgeLabelEnum);
         if (artifactsEither.isRight()) {
             log.debug(FAILED_TO_FETCH_FOR_TOSCA_ELEMENT_WITH_ID_ERROR, edgeLabelEnum, parentId, artifactsEither.right().value());
             return Either.right(artifactsEither.right().value());
@@ -456,7 +456,7 @@ public class ArtifactsOperations extends BaseOperation {
         return Either.left(convertArtifactMapToArtifactDefinitionMap(artifactDataMap));
     }
 
-    private Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> getArtifactsDataByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
+    private Either<Map<String, ArtifactDataDefinition>, JanusGraphOperationStatus> getArtifactsDataByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
         return edgeLabelEnum.isInstanceArtifactsLabel() ? getInstanceArtifactsByLabel(parentId, instanceId, edgeLabelEnum) : getDataFromGraph(parentId, edgeLabelEnum);
     }
 
@@ -468,8 +468,8 @@ public class ArtifactsOperations extends BaseOperation {
         return artMap;
     }
 
-    private Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> getInstanceArtifactsByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
-        Either<Map<String, MapArtifactDataDefinition>, TitanOperationStatus> resultEither = getDataFromGraph(parentId, edgeLabelEnum);
+    private Either<Map<String, ArtifactDataDefinition>, JanusGraphOperationStatus> getInstanceArtifactsByLabel(String parentId, String instanceId, EdgeLabelEnum edgeLabelEnum) {
+        Either<Map<String, MapArtifactDataDefinition>, JanusGraphOperationStatus> resultEither = getDataFromGraph(parentId, edgeLabelEnum);
         if (resultEither.isRight()) {
             log.debug(FAILED_TO_FETCH_FOR_TOSCA_ELEMENT_WITH_ID_ERROR, edgeLabelEnum, parentId, resultEither.right().value());
             return Either.right(resultEither.right().value());
@@ -555,7 +555,7 @@ public class ArtifactsOperations extends BaseOperation {
         Map<String, MapArtifactDataDefinition> artifactInst = null;
         if (edgeLabelEnum != EdgeLabelEnum.INST_DEPLOYMENT_ARTIFACTS && edgeLabelEnum != EdgeLabelEnum.INSTANCE_ARTIFACTS) {
 
-            Either<Map<String, ArtifactDataDefinition>, TitanOperationStatus> artifactsEither = this.getDataFromGraph(componentId, edgeLabelEnum);
+            Either<Map<String, ArtifactDataDefinition>, JanusGraphOperationStatus> artifactsEither = this.getDataFromGraph(componentId, edgeLabelEnum);
 
             if (artifactsEither.isLeft() && artifactsEither.left().value() != null && !artifactsEither.left().value().isEmpty()) {
                 artifacts = artifactsEither.left().value();
@@ -565,7 +565,7 @@ public class ArtifactsOperations extends BaseOperation {
             }
         } else {
 
-            Either<Map<String, MapArtifactDataDefinition>, TitanOperationStatus> artifactsEither = this.getDataFromGraph(componentId, edgeLabelEnum);
+            Either<Map<String, MapArtifactDataDefinition>, JanusGraphOperationStatus> artifactsEither = this.getDataFromGraph(componentId, edgeLabelEnum);
             if (artifactsEither.isLeft()) {
                 artifactInst = artifactsEither.left().value();
                 if (isNeedToClone && artifactInst != null) {
@@ -708,18 +708,19 @@ public class ArtifactsOperations extends BaseOperation {
         Boolean deleteElement = deleteMandatoryArtifact || !(artifactToDelete.getMandatory() || artifactToDelete.getServiceApi());
         Map<String, ToscaDataDefinition> artifacts = null;
         GraphVertex parentVertex = null;
-        Either<Map<String, ToscaDataDefinition>, TitanOperationStatus> getArtifactsRes = null;
+        Either<Map<String, ToscaDataDefinition>, JanusGraphOperationStatus> getArtifactsRes = null;
 
-        Either<GraphVertex, TitanOperationStatus> getToscaElementRes = titanDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
+        Either<GraphVertex, JanusGraphOperationStatus> getToscaElementRes = janusGraphDao
+            .getVertexById(componentId, JsonParseFlagEnum.NoParse);
         if (getToscaElementRes.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get tosca element {} upon getting tosca data from graph. Status is {}. ", componentId, getToscaElementRes.right().value());
-            result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getToscaElementRes.right().value()));
+            result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getToscaElementRes.right().value()));
         }
         if (result == null) {
             parentVertex = getToscaElementRes.left().value();
             getArtifactsRes = this.getDataFromGraph(parentVertex, edgeLabel);
             if (getArtifactsRes.isRight()) {
-                result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getArtifactsRes.right().value()));
+                result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getArtifactsRes.right().value()));
             }
         }
         if (result == null) {
@@ -739,9 +740,10 @@ public class ArtifactsOperations extends BaseOperation {
             artifactToDelete.setDuplicated(Boolean.TRUE);
         }
         if (artifacts != null) {
-            TitanOperationStatus status = titanDao.deleteEdgeByDirection(parentVertex, Direction.OUT, edgeLabel);
-            if (status != TitanOperationStatus.OK) {
-                result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+            JanusGraphOperationStatus
+                status = janusGraphDao.deleteEdgeByDirection(parentVertex, Direction.OUT, edgeLabel);
+            if (status != JanusGraphOperationStatus.OK) {
+                result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status));
             } else if (MapUtils.isNotEmpty(artifacts)) {
                 Either<GraphVertex, StorageOperationStatus> associateResult = associateElementToData(parentVertex, vertexLabel, edgeLabel, artifacts);
                 if (associateResult.isRight()) {