Fixes for bugs found in Transport Slicing integration 97/116497/2
authorhyu2010 <hyu2010b@gmail.com>
Mon, 21 Dec 2020 15:37:26 +0000 (10:37 -0500)
committerhyu2010 <hyu2010b@gmail.com>
Wed, 23 Dec 2020 20:22:56 +0000 (15:22 -0500)
This update contains for the fixes for the following JIRAs:

SO-3429: Transport Slicing integration: fix resource operation
         status table mapping
SO-3434: Transport Slicing integration: modelUuid and modelInvariantUuid
         are missing from service-instance

Issue-ID: SO-3429
Issue-ID: SO-3434

Signed-off-by: hyu2010 <hyu2010b@gmail.com>
Change-Id: I7a9b7b7a3e40d967c138067a01f2c045fb3e4b56
Signed-off-by: hyu2010 <hyu2010b@gmail.com>
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateTnNssi.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateTnNssiInstance.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateTnNssi.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnAllocateNssi.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy
bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoAllocateTransportNSSI.bpmn
bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateTransportNSSI.bpmn

index 05996d3..37e3df1 100644 (file)
@@ -142,20 +142,15 @@ public class DoActivateTnNssi extends AbstractServiceTaskProcessor {
                                 String status,
                                 String progress,
                                 String statusDescription) {
-        String serviceId = execution.getVariable("sliceServiceInstanceId")
+        String ssInstanceId = execution.getVariable("sliceServiceInstanceId")
+        String modelUuid = execution.getVariable("modelUuid")
         String jobId = execution.getVariable("jobId")
         String nsiId = execution.getVariable("nsiId")
         String operType = execution.getVariable("actionType")
 
+        ResourceOperationStatus roStatus = tnNssmfUtils.buildRoStatus(modelUuid, ssInstanceId,
+                jobId, nsiId, operType, status, progress, statusDescription)
 
-        ResourceOperationStatus roStatus = new ResourceOperationStatus()
-        roStatus.setServiceId(serviceId)
-        roStatus.setOperationId(jobId)
-        roStatus.setResourceTemplateUUID(nsiId)
-        roStatus.setOperType(operType)
-        roStatus.setProgress(progress)
-        roStatus.setStatus(status)
-        roStatus.setStatusDescription(statusDescription)
         requestDBUtil.prepareUpdateResourceOperationStatus(execution, roStatus)
     }
 
index 4eb70a5..0b028e6 100644 (file)
@@ -34,6 +34,8 @@ import org.onap.so.bpmn.core.json.JsonUtils
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
+import static org.apache.commons.lang3.StringUtils.isBlank
+
 class DoCreateTnNssiInstance extends AbstractServiceTaskProcessor {
 
     private static final Logger logger = LoggerFactory.getLogger(DoCreateTnNssiInstance.class);
@@ -109,15 +111,18 @@ class DoCreateTnNssiInstance extends AbstractServiceTaskProcessor {
             org.onap.aai.domain.yang.ServiceInstance ss = new org.onap.aai.domain.yang.ServiceInstance()
             ss.setServiceInstanceId(ssInstanceId)
             String sliceInstanceName = execution.getVariable("sliceServiceInstanceName")
+            if (isBlank(sliceInstanceName)) {
+                logger.error("ERROR: createServiceInstance: sliceInstanceName is null")
+                sliceInstanceName = ssInstanceId
+            }
             ss.setServiceInstanceName(sliceInstanceName)
             ss.setServiceType(serviceType)
-            String serviceStatus = "activated"
+            String serviceStatus = "deactivated"
             ss.setOrchestrationStatus(serviceStatus)
             String modelInvariantUuid = execution.getVariable("modelInvariantUuid")
             String modelUuid = execution.getVariable("modelUuid")
-            //TODO: need valid model ID from the caller, as AAI does not accept invalid IDs
-            //ss.setModelInvariantId(modelInvariantUuid)
-            //ss.setModelVersionId(modelUuid)
+            ss.setModelInvariantId(modelInvariantUuid)
+            ss.setModelVersionId(modelUuid)
             String serviceInstanceLocationid = tnNssmfUtils.getFirstPlmnIdFromSliceProfile(sliceProfileStr)
             ss.setServiceInstanceLocationId(serviceInstanceLocationid)
             String snssai = tnNssmfUtils.getFirstSnssaiFromSliceProfile(sliceProfileStr)
index c817eaa..a8622b9 100644 (file)
@@ -25,7 +25,6 @@ import groovy.json.JsonSlurper
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.delegate.DelegateExecution
 import org.onap.aai.domain.yang.ServiceInstance
-import org.onap.aaiclient.client.aai.AAIObjectType
 import org.onap.aaiclient.client.aai.AAIResourcesClient
 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri
 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
@@ -150,18 +149,15 @@ class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
                                 String status,
                                 String progress,
                                 String statusDescription) {
-        String serviceId = execution.getVariable("sliceServiceInstanceId")
+        String ssInstanceId = execution.getVariable("sliceServiceInstanceId")
+        String modelUuid = execution.getVariable("modelUuid")
         String jobId = execution.getVariable("jobId")
         String nsiId = execution.getVariable("nsiId")
 
-        ResourceOperationStatus roStatus = new ResourceOperationStatus()
-        roStatus.setServiceId(serviceId)
-        roStatus.setOperationId(jobId)
-        roStatus.setResourceTemplateUUID(nsiId)
-        roStatus.setOperType("Deallocate")
-        roStatus.setProgress(progress)
-        roStatus.setStatus(status)
-        roStatus.setStatusDescription(statusDescription)
+        ResourceOperationStatus roStatus = tnNssmfUtils.buildRoStatus(modelUuid, ssInstanceId,
+                jobId, nsiId, "deallocate", status, progress, statusDescription)
+
+        logger.debug("DoDeallocateTnNssi: roStatus={}", roStatus)
         requestDBUtil.prepareUpdateResourceOperationStatus(execution, roStatus)
     }
 }
index 88db216..deeec94 100644 (file)
@@ -72,7 +72,7 @@ class TnAllocateNssi extends AbstractServiceTaskProcessor {
 
             String additionalPropJsonStr = execution.getVariable("sliceParams")
 
-            String tnNssiId = execution.getVariable("serviceInstanceID")
+            String tnNssiId = jsonUtil.getJsonValue(additionalPropJsonStr, "serviceInstanceID") //for debug
             if (isBlank(tnNssiId)) {
                 tnNssiId = UUID.randomUUID().toString()
             }
index d97f416..cfee1aa 100644 (file)
@@ -32,6 +32,7 @@ import org.onap.so.bpmn.core.RollbackData
 import org.onap.so.bpmn.core.UrnPropertiesReader
 import org.onap.so.bpmn.core.WorkflowException
 import org.onap.so.bpmn.core.json.JsonUtils
+import org.onap.so.db.request.beans.ResourceOperationStatus
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
@@ -122,7 +123,7 @@ class TnNssmfUtils {
         }
 
         String sdncRequest =
-        """<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.onap/so/request/types/v1"
+                """<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.onap/so/request/types/v1"
                                                     xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1"
                                                     xmlns:sdncadapter="http://org.onap/workflow/sdnc/adapter/schema/v1">
          <sdncadapter:RequestHeader>
@@ -332,4 +333,25 @@ class TnNssmfUtils {
         createRelationShipInAAI(execution, aaiResourceUri, relationship)
 
     }
+
+    ResourceOperationStatus buildRoStatus(String nsstId,
+                                          String nssiId,
+                                          String jobId,
+                                          String nsiId,
+                                          String action,
+                                          String status,
+                                          String progress,
+                                          String statusDescription) {
+        ResourceOperationStatus roStatus = new ResourceOperationStatus()
+        roStatus.setResourceTemplateUUID(nsstId)
+        roStatus.setResourceInstanceID(nssiId)
+        roStatus.setServiceId(nsiId)
+        roStatus.setOperationId(jobId)
+        roStatus.setOperType(action)
+        roStatus.setProgress(progress)
+        roStatus.setStatus(status)
+        roStatus.setStatusDescription(statusDescription)
+
+        return roStatus
+    }
 }
index 4f83c87..f3bd700 100644 (file)
@@ -164,7 +164,7 @@ css.prepareOofSelection(execution)</bpmn:script>
       <bpmn:incoming>SequenceFlow_0n4xku8</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0kixzdj</bpmn:outgoing>
       <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
-execution.setVariable("orchestrationStatus", "activated")
+execution.setVariable("orchestrationStatus", "deactivated")
 def runScript = new TnAllocateNssi()
 runScript.updateAAIOrchStatus(execution)</bpmn:script>
     </bpmn:scriptTask>
index bd759ca..9dbc990 100644 (file)
@@ -29,7 +29,7 @@ ex.processJavaException(execution)</bpmn:script>
       <bpmn:incoming>SequenceFlow_1jygjln</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1qv8qw1</bpmn:outgoing>
       <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
-def runScript = new TnAllocateNssi()
+def runScript = new DoDeallocateTnNssi()
 runScript.prepareUpdateJobStatus(execution,"finished","100","Deallocated TN NSSI successfully")</bpmn:script>
     </bpmn:scriptTask>
     <bpmn:sequenceFlow id="SequenceFlow_03s744c" sourceRef="StartEvent_1nbljfd" targetRef="ScriptTask_1tc44ge" />