Fix issues in AN NSSMF for activate flow 72/118372/1
authordeepikasatheesh <deepika.s84@wipro.com>
Wed, 24 Feb 2021 11:46:36 +0000 (11:46 +0000)
committerdeepikasatheesh <deepika.s84@wipro.com>
Wed, 24 Feb 2021 11:46:36 +0000 (11:46 +0000)
Issue-ID: SO-3554

Signed-off-by: deepikasatheesh <deepika.s84@wipro.com>
Change-Id: I1bce6e7c48e9fcb92505304727ed1a04aed5be05

bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSliceSubnet.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy
bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn

index eabe584..7e30d79 100644 (file)
@@ -35,6 +35,7 @@ class ActivateSliceSubnet extends AbstractServiceTaskProcessor {
     String Prefix="ActivateSliceSubnet_"
     ExceptionUtil exceptionUtil = new ExceptionUtil()
     JsonUtils jsonUtil = new JsonUtils()
+    AnNssmfUtils anNssmfUtils = new AnNssmfUtils()
     RequestDBUtil requestDBUtil = new RequestDBUtil()
 
     private static final Logger logger = LoggerFactory.getLogger(ActivateSliceSubnet.class)
@@ -136,16 +137,19 @@ class ActivateSliceSubnet extends AbstractServiceTaskProcessor {
     def prepareInitOperationStatus = { DelegateExecution execution ->
         logger.debug(Prefix + "prepareInitOperationStatus Start")
 
-        String serviceId = execution.getVariable("serviceInstanceID")
+        String nssiId = execution.getVariable("serviceInstanceID")
         String jobId = execution.getVariable("jobId")
         String nsiId = execution.getVariable("nsiId")
         String operationType = execution.getVariable("operationType")
-        logger.debug("Generated new job for Service Instance serviceId:" + serviceId + " jobId:" + jobId)
+        String modelUuid = anNssmfUtils.getModelUuid(execution, nssiId)
+        logger.debug("Generated new job for Service Instance serviceId:" + nsiId + " jobId:" + jobId)
 
         ResourceOperationStatus initStatus = new ResourceOperationStatus()
-        initStatus.setServiceId(serviceId)
+
+        initStatus.setServiceId(nsiId)
         initStatus.setOperationId(jobId)
-        initStatus.setResourceTemplateUUID(nsiId)
+        initStatus.setResourceTemplateUUID(modelUuid)
+        initStatus.setResourceInstanceID(nssiId)
         initStatus.setOperType(operationType)
         requestDBUtil.prepareInitResourceOperationStatus(execution, initStatus)
 
@@ -153,7 +157,6 @@ class ActivateSliceSubnet extends AbstractServiceTaskProcessor {
     }
 
 
-
     /**
      * return sync response
      */
index 7500636..5d952b6 100644 (file)
@@ -450,4 +450,22 @@ private SliceProfile createSliceProfile(String domainType, DelegateExecution exe
                return json.toString()
           
        }
+
+        public String getModelUuid(DelegateExecution execution, String instanceId) {
+               String globalSubscriberId = execution.getVariable("globalSubscriberId")
+               String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+               ServiceInstance serviceInstance = new ServiceInstance()
+               AAIResourcesClient client = new AAIResourcesClient()
+               AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalSubscriberId).serviceSubscription(subscriptionServiceType).serviceInstance(instanceId))
+               if (!client.exists(uri)) {
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Service Instance was not found in aai : ${instanceId}")
+               }
+               AAIResultWrapper wrapper = client.get(uri, NotFoundException.class)
+               Optional<ServiceInstance> si = wrapper.asBean(ServiceInstance.class)
+               
+               if(si.isPresent()) {
+                       serviceInstance = si.get()
+               }
+               return serviceInstance.getModelVersionId()
+       }
 }
index 897cdfc..1d75cf5 100644 (file)
@@ -63,6 +63,7 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
        RequestDBUtil requestDBUtil = new RequestDBUtil()
        JsonUtils jsonUtil = new JsonUtils()
        ObjectMapper objectMapper = new ObjectMapper()
+       AnNssmfUtils anNssmfUtils = new AnNssmfUtils()
        private NssmfAdapterUtils nssmfAdapterUtils = new NssmfAdapterUtils(httpClientFactory, jsonUtil)
 
        private static final Logger logger = LoggerFactory.getLogger(DoActivateAccessNSSI.class)
@@ -197,15 +198,11 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
                callbackURL.append("/").append(messageType).append("/").append(reqId)
 
                JsonObject input = new JsonObject()
+               String sliceProfileId = execution.getVariable("anNfSPId")
+                input.addProperty("sliceProfileId",sliceProfileId)
                input.addProperty("RANNFNSSIId", anNfNssiId)
                input.addProperty("callbackURL", callbackURL.toString())
-               input.addProperty("s-NSSAI", sNssai.toString())
-
-               JsonObject Payload = new JsonObject()
-               Payload.addProperty("version", "1.0")
-               Payload.addProperty("rpc-name", "activateRANSlice")
-               Payload.addProperty("correlation-id", reqId)
-               Payload.addProperty("type", "request")
+               input.addProperty("sNSSAI", sNssai.toString())
 
                JsonObject wrapinput = new JsonObject()
                wrapinput.addProperty("Action", action)
@@ -220,11 +217,16 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
                body.add("input", wrapinput)
 
                JsonObject sdnrRequest = new JsonObject()
-               Payload.addProperty("input", input.toString())
-               wrapinput.add("Payload", Payload)
+               JsonObject payload = new JsonObject()
+               payload.add("input", input)
+               wrapinput.addProperty("Payload", payload.toString())
                wrapinput.add("CommonHeader", CommonHeader)
                body.add("input", wrapinput)
                sdnrRequest.add("body", body)
+                sdnrRequest.addProperty("version", "1.0")
+               sdnrRequest.addProperty("rpc-name", "activateRANSlice")
+               sdnrRequest.addProperty("correlation-id", reqId)
+               sdnrRequest.addProperty("type", "request")
 
                String json = sdnrRequest.toString()
                execution.setVariable("sdnrRequest", json)
@@ -395,27 +397,29 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
                String globalSubscriberId = execution.getVariable("globalSubscriberId")
                String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
 
-               EsrInfo esrInfo = new EsrInfo()
-               esrInfo.setNetworkType(networkType)
-               esrInfo.setVendor(VENDOR_ONAP)
+                JsonObject esrInfo = new JsonObject()
+                esrInfo.addProperty("networkType", networkType)
+                esrInfo.addProperty("vendor", VENDOR_ONAP)
 
-               ServiceInfo serviceInfo = new ServiceInfo()
-               serviceInfo.setNssiId(instanceId)
-               serviceInfo.setNsiId(execution.getVariable("nsiId"))
-               serviceInfo.setGlobalSubscriberId(globalSubscriberId)
-               serviceInfo.setSubscriptionServiceType(subscriptionServiceType)
+                JsonObject serviceInfo = new JsonObject()
+                serviceInfo.addProperty("nsiId", execution.getVariable("nsiId"))
+               serviceInfo.addProperty("nssiId", instanceId)
+                serviceInfo.addProperty("globalSubscriberId", globalSubscriberId)
+               serviceInfo.addProperty("subscriptionServiceType", subscriptionServiceType)
 
-               execution.setVariable("${networkType}_esrInfo", esrInfo)
+               execution.setVariable("${networkType}_esrInfo", esrInfo.toString())
                execution.setVariable("${networkType}_responseId", responseId)
-               execution.setVariable("${networkType}_serviceInfo", serviceInfo)
+               execution.setVariable("${networkType}_serviceInfo", serviceInfo.toString())
                
        }
        
        void validateJobStatus(DelegateExecution execution,String responseDescriptor) {
                logger.debug("validateJobStatus ${responseDescriptor}")
-               String status = jsonUtil.getJsonValue(responseDescriptor, "responseDescriptor.status")
-               String statusDescription = jsonUtil.getJsonValue(responseDescriptor, "responseDescriptor.statusDescription")
-               if("finished".equalsIgnoreCase(status)) {
+               String jobResponse = execution.getVariable("tn_responseDescriptor")
+               logger.debug("Job status response "+jobResponse)
+               String status = jsonUtil.getJsonValue(jobResponse, "status")
+               String statusDescription = jsonUtil.getJsonValue(jobResponse, "statusDescription")
+                if("finished".equalsIgnoreCase(status)) {
                        execution.setVariable("isSuccess", true)
                }else {
                        execution.setVariable("isSuccess", false)
@@ -458,15 +462,18 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
        
        void prepareUpdateJobStatus(DelegateExecution execution,String status,String progress,String statusDescription) {
                logger.debug("${Prefix} Start prepareUpdateJobStatus : ${statusDescription}")
-               String serviceId = execution.getVariable("anNssiId")
+               String nssiId = execution.getVariable("anNssiId")
                String jobId = execution.getVariable("jobId")
                String nsiId = execution.getVariable("nsiId")
+               //String modelUuid = execution.getVariable("modelUuid")
+                String modelUuid = anNssmfUtils.getModelUuid(execution, nssiId)
                String operationType = execution.getVariable("operationType")
 
                ResourceOperationStatus roStatus = new ResourceOperationStatus()
-               roStatus.setServiceId(serviceId)
+               roStatus.setServiceId(nsiId)
                roStatus.setOperationId(jobId)
-               roStatus.setResourceTemplateUUID(nsiId)
+               roStatus.setResourceTemplateUUID(modelUuid)
+               roStatus.setResourceInstanceID(nssiId)
                roStatus.setOperType(operationType)
                roStatus.setProgress(progress)
                roStatus.setStatus(status)
@@ -562,7 +569,7 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
                String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
                Map<String, ServiceInstance> relatedNssis = execution.getVariable("relatedNssis")
 
-               String anNssiId = execution.getVariable("anNssiId")
+               String nsiId = execution.getVariable("nsiId")
                List<String> sNssaiList =  execution.getVariable("sNssaiList")
 
                ServiceInstance tnNssi = relatedNssis.get(serviceFunction)
@@ -572,11 +579,11 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor {
 
                ActDeActNssi actDeactNssi = new ActDeActNssi()
                actDeactNssi.setNssiId(nssiId)
-               actDeactNssi.setNsiId(anNssiId)
+               actDeactNssi.setNsiId(nsiId)
                actDeactNssi.setSliceProfileId(relatedSPs.get(serviceFunction).getServiceInstanceId())
                actDeactNssi.setSnssaiList(sNssaiList)
 
-               JsonObject esrInfo = new JsonObject()
+                JsonObject esrInfo = new JsonObject()
                 esrInfo.addProperty("networkType", "tn")
                esrInfo.addProperty("vendor", VENDOR_ONAP)
 
index 2301b47..841a23b 100644 (file)
@@ -284,7 +284,7 @@ String jobId = execution.getVariable("TN_FH_jobId")
 String networkType="tn"
 String nssiid=execution.getVariable("tnFhNssiId")
 
-def def activator = new DoActivateAccessNSSI()
+def activator = new DoActivateAccessNSSI()
 activator.prepareQueryJobStatus(execution, jobId,networkType, nssiid)</bpmn:script>
     </bpmn:scriptTask>
     <bpmn:callActivity id="Activity_03hbxfi" name="QueryJobStatus" calledElement="QueryJobStatus">
@@ -385,7 +385,7 @@ String jobId = execution.getVariable("TN_MH_jobId")
 String networkType="tn"
 String nssiid=execution.getVariable("tnMhNssiId")
 
-def def activator = new DoActivateAccessNSSI()
+def activator = new DoActivateAccessNSSI()
 activator.prepareQueryJobStatus(execution, jobId,networkType, nssiid)</bpmn:script>
     </bpmn:scriptTask>
     <bpmn:callActivity id="Activity_09jt4b0" name="QueryJobStatus" calledElement="QueryJobStatus">
@@ -466,13 +466,13 @@ activator.prepareUpdateJobStatus(execution,"processing","80","TN MH NSSI activat
 def activator = new DoActivateAccessNSSI()
 activator.updateTNFHStatus(execution)</bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:scriptTask id="Activity_0xmezab" name="Update TN FH SP and NSSI Orch Status" scriptFormat="groovy">
+    <bpmn:scriptTask id="Activity_0xmezab" name="Update TN MH SP and NSSI Orch Status" scriptFormat="groovy">
       <bpmn:incoming>Flow_1i4cc7e</bpmn:incoming>
       <bpmn:outgoing>Flow_0k5cyz7</bpmn:outgoing>
       <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
 
 def activator = new DoActivateAccessNSSI()
-activator.updateTNFHStatus(execution)</bpmn:script>
+activator.updateTNMHStatus(execution)</bpmn:script>
     </bpmn:scriptTask>
     <bpmn:sequenceFlow id="Flow_0k5cyz7" sourceRef="Activity_0xmezab" targetRef="Activity_0ftm8b6" />
     <bpmn:scriptTask id="Activity_1j0xkqc" name="Check Orch status for AN NSSI activation" scriptFormat="groovy">