Interface operations Bug Fix 73/59473/1
authorpriyanshu <pagarwal@amdocs.com>
Tue, 7 Aug 2018 13:52:05 +0000 (19:22 +0530)
committerpriyanshu <pagarwal@amdocs.com>
Tue, 7 Aug 2018 13:52:05 +0000 (19:22 +0530)
modify operation bug fix

Change-Id: I510b19013a050b02bf3b1c959a1340a1ce1b3566
Issue-ID: SDC-1535
Signed-off-by: priyanshu <pagarwal@amdocs.com>
catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/operations/InterfaceOperation.java

index 0456253..3b1b6e5 100644 (file)
@@ -30,6 +30,7 @@ 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.enums.JsonPresentationFields;
 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
 import org.openecomp.sdc.be.model.ArtifactDefinition;
@@ -115,9 +116,10 @@ public class InterfaceOperation extends BaseOperation {
       return Either.right(statusRes);
     }
     GraphVertex interfaceVertex = getToscaElementInt.left().value();
-    if (!isUpdateAction) {
+    if (!isUpdateAction)
       initNewOperation(operation);
-    }
+    else
+      operation.setImplementation(getArtifactImplFromOperation(operation, interfaceDef));
 
     statusRes = performUpdateToscaAction(isUpdateAction, interfaceVertex, Arrays.asList(operation),
         EdgeLabelEnum.INTERFACE_OPERATION, VertexTypeEnum.INTERFACE_OPERATION);
@@ -214,15 +216,24 @@ public class InterfaceOperation extends BaseOperation {
     }
   }
 
-  private void initNewOperation(Operation operation){
+  private ArtifactDefinition createNewArtifactDefForOperation(){
     ArtifactDefinition artifactDefinition = new ArtifactDefinition();
     String artifactUUID = UUID.randomUUID().toString();
     artifactDefinition.setArtifactUUID(artifactUUID);
     artifactDefinition.setUniqueId(artifactUUID);
     artifactDefinition.setArtifactType(ArtifactTypeEnum.PLAN.getType());
     artifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.LIFE_CYCLE);
-    operation.setImplementation(artifactDefinition);
+    return artifactDefinition;
+  }
+
+  private ArtifactDataDefinition getArtifactImplFromOperation(Operation operation, InterfaceDefinition interfaceDef){
+    Either<Operation, StorageOperationStatus> operationData = getInterfaceOperation(interfaceDef, operation.getUniqueId());
+    return operationData.isLeft()? operationData.left().value().getImplementation() : createNewArtifactDefForOperation();
+  }
+
+  private void initNewOperation(Operation operation){
     operation.setUniqueId(UUID.randomUUID().toString());
+    operation.setImplementation(createNewArtifactDefForOperation());
   }
 
   private InterfaceDefinition getUpdatedInterfaceDef(InterfaceDefinition interfaceDef, Operation operation, String operationId){