Add nssiId for AllocateTNNSSI request
[so.git] / bpmn / so-bpmn-infrastructure-common / src / main / groovy / org / onap / so / bpmn / infrastructure / scripts / DoDeallocateTnNssi.groovy
index 7681bf9..b09161d 100644 (file)
@@ -25,10 +25,11 @@ 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
+import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder
+import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types
 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
 import org.onap.so.bpmn.common.scripts.ExceptionUtil
 import org.onap.so.bpmn.common.scripts.RequestDBUtil
@@ -37,6 +38,9 @@ import org.onap.so.db.request.beans.ResourceOperationStatus
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
+import static org.apache.commons.lang3.StringUtils.isBlank
+import static org.apache.commons.lang3.StringUtils.isEmpty
+
 class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
     String Prefix = "TNDEALLOC_"
 
@@ -67,10 +71,11 @@ class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
         String sliceServiceInstanceName = execution.getVariable("servicename")
         execution.setVariable("sliceServiceInstanceName", sliceServiceInstanceName)
 
-
         String modelInvariantUuid = execution.getVariable("modelInvariantUuid")
         String modelUuid = execution.getVariable("modelUuid")
-        //here modelVersion is not set, we use modelUuid to decompose the service.
+        if (isEmpty(modelUuid)) {
+            modelUuid = tnNssmfUtils.getModelUuidFromServiceInstance(execution.getVariable("serviceInstanceID"))
+        }
         def isDebugLogEnabled = true
         execution.setVariable("isDebugLogEnabled", isDebugLogEnabled)
         String serviceModelInfo = """{
@@ -79,6 +84,15 @@ class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
             "modelVersion":""
              }"""
         execution.setVariable("serviceModelInfo", serviceModelInfo)
+
+        String additionalPropJsonStr = execution.getVariable("sliceParams")
+        if (isBlank(additionalPropJsonStr) ||
+                isBlank(tnNssmfUtils.setExecVarFromJsonIfExists(execution,
+                        additionalPropJsonStr,
+                        "enableSdnc", "enableSdnc"))) {
+            tnNssmfUtils.setEnableSdncConfig(execution)
+        }
+
         logger.debug("Finish preProcessRequest")
     }
 
@@ -91,7 +105,7 @@ class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
         try {
             String serviceInstanceId = execution.getVariable("serviceInstanceID")
 
-            String sdncRequest = tnNssmfUtils.buildSDNCRequest(execution, serviceInstanceId, "deallocate")
+            String sdncRequest = tnNssmfUtils.buildSDNCRequest(execution, serviceInstanceId, "delete")
 
             execution.setVariable("TNNSSMF_SDNCRequest", sdncRequest)
             logger.debug("Outgoing SDNCRequest is: \n" + sdncRequest)
@@ -111,10 +125,7 @@ class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
     void deleteServiceInstance(DelegateExecution execution) {
         try {
             AAIResourcesClient client = getAAIClient()
-            AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
-                    execution.getVariable("globalSubscriberId"),
-                    execution.getVariable("subscriptionServiceType"),
-                    execution.getVariable("serviceInstanceID"))
+            AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId")).serviceSubscription(execution.getVariable("subscriptionServiceType")).serviceInstance(execution.getVariable("serviceInstanceID")))
             client.delete(uri)
         } catch (BpmnError e) {
             throw e
@@ -127,14 +138,14 @@ class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
 
     public void updateAAIOrchStatus(DelegateExecution execution) {
         logger.debug("Start updateAAIOrchStatus")
-        String tnNssiId = execution.getVariable("serviceInstanceID")
+        String tnNssiId = execution.getVariable("sliceServiceInstanceId")
         String orchStatus = execution.getVariable("orchestrationStatus")
 
         try {
             ServiceInstance si = new ServiceInstance()
             si.setOrchestrationStatus(orchStatus)
             AAIResourcesClient client = getAAIClient()
-            AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, tnNssiId)
+            AAIResourceUri uri = AAIUriFactory.createResourceUri(Types.SERVICE_INSTANCE.getFragment(tnNssiId))
             client.update(uri, si)
         } catch (BpmnError e) {
             throw e
@@ -151,19 +162,16 @@ class DoDeallocateTnNssi extends AbstractServiceTaskProcessor {
                                 String status,
                                 String progress,
                                 String statusDescription) {
-        String serviceId = execution.getVariable("serviceInstanceID")
+        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)
-        requestDBUtil.prepareUpdateResourceOperationStatus(execution, status)
+        ResourceOperationStatus roStatus = tnNssmfUtils.buildRoStatus(modelUuid, ssInstanceId,
+                jobId, nsiId, "DEALLOCATE", status, progress, statusDescription)
+
+        logger.debug("DoDeallocateTnNssi: roStatus={}", roStatus)
+        requestDBUtil.prepareUpdateResourceOperationStatus(execution, roStatus)
     }
 }