Fix bugs found in TN Slicing integration involving OOF
[so.git] / bpmn / so-bpmn-infrastructure-common / src / main / groovy / org / onap / so / bpmn / infrastructure / scripts / DoAllocateNSSI.groovy
index 88014e7..6981d94 100644 (file)
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
 import org.apache.commons.lang3.StringUtils
 import org.camunda.bpm.engine.delegate.DelegateExecution
 import org.onap.so.beans.nsmf.EsrInfo
+import org.onap.so.beans.nsmf.JobStatusResponse
 import org.onap.so.beans.nsmf.NssiResponse
 import org.onap.so.beans.nsmf.NssmfAdapterNBIRequest
 import org.onap.so.beans.nsmf.ResponseDescriptor
@@ -17,7 +18,6 @@ import org.onap.so.bpmn.common.scripts.NssmfAdapterUtils
 import org.onap.so.bpmn.core.json.JsonUtils
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.springframework.http.ResponseEntity
 
 
 class DoAllocateNSSI extends AbstractServiceTaskProcessor {
@@ -34,7 +34,7 @@ class DoAllocateNSSI extends AbstractServiceTaskProcessor {
 
     private static final NSSMF_ALLOCATE_URL = "/api/rest/provMns/v1/NSS/SliceProfiles"
 
-    private static final NSSMF_QUERY_JOB_STATUS_URL = "/NSS/jobs/%s"
+    private static final NSSMF_QUERY_JOB_STATUS_URL = "/api/rest/provMns/v1/NSS/jobs/%s"
 
     @Override
     void preProcessRequest(DelegateExecution execution) {
@@ -62,13 +62,16 @@ class DoAllocateNSSI extends AbstractServiceTaskProcessor {
      */
     void sendCreateRequestNSSMF(DelegateExecution execution) {
         NssmfAdapterNBIRequest nbiRequest = execution.getVariable("nbiRequest") as NssmfAdapterNBIRequest
-        String response = nssmfAdapterUtils.sendPostRequestNSSMF(execution, NSSMF_ALLOCATE_URL,
-                objectMapper.writeValueAsString(nbiRequest))
-        ResponseEntity responseEntity = objectMapper.readValue(response, ResponseEntity.class)
-        String respBody = responseEntity.getBody()
-        NssiResponse result = objectMapper.readValue(respBody, NssiResponse.class)
-        //todo: if success
-        //todo:
+        String nssmfRequest = objectMapper.writeValueAsString(nbiRequest)
+        logger.debug("sendCreateRequestNSSMF: " + nssmfRequest)
+
+        String response = nssmfAdapterUtils.sendPostRequestNSSMF(execution, NSSMF_ALLOCATE_URL, nssmfRequest)
+
+        if (response != null) {
+            NssiResponse nssiResponse = objectMapper.readValue(response, NssiResponse.class)
+            execution.setVariable("nssiAllocateResult", nssiResponse)
+        }
+
         execution.setVariable("serviceInfo", nbiRequest.getServiceInfo())
         execution.setVariable("esrInfo", nbiRequest.getEsrInfo())
     }
@@ -96,13 +99,21 @@ class DoAllocateNSSI extends AbstractServiceTaskProcessor {
         String response =
                 nssmfAdapterUtils.sendPostRequestNSSMF(execution, endpoint, objectMapper.writeValueAsString(nbiRequest))
 
-        ResponseEntity responseEntity = objectMapper.readValue(response, ResponseEntity.class)
-        String result = responseEntity.getBody()
-        //todoï¼›if success
-        ResponseDescriptor responseDescriptor = objectMapper.readValue(result, ResponseDescriptor.class)
+        logger.debug("nssmf response nssiAllocateStatus:" + response)
+
+        if (response != null) {
+            JobStatusResponse jobStatusResponse = objectMapper.readValue(response, JobStatusResponse.class)
+            if (StringUtils.isBlank(nssiId)) {
+                nssiAllocateResult.setNssiId(jobStatusResponse.getResponseDescriptor().getNssiId())
+                execution.setVariable("nssiAllocateResult", nssiAllocateResult)
+            }
 
-        //todo: handle status
-        execution.setVariable("nssiAllocateResult", responseDescriptor)
+            execution.setVariable("nssiAllocateStatus", jobStatusResponse)
+            if (jobStatusResponse.getResponseDescriptor().getProgress() == 100) {
+                nssiAllocateResult.setNssiId(jobStatusResponse.getResponseDescriptor().getNssiId())
+                execution.setVariable("jobFinished", true)
+            }
+        }
     }
 
     void prepareUpdateOrchestrationTask(DelegateExecution execution) {
@@ -111,22 +122,22 @@ class DoAllocateNSSI extends AbstractServiceTaskProcessor {
 
         SliceTaskParamsAdapter sliceParams =
                 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
-        ResponseDescriptor response = execution.getVariable("nssiAllocateResult") as ResponseDescriptor
+        JobStatusResponse jobStatusResponse = execution.getVariable("nssiAllocateStatus") as JobStatusResponse
+        ResponseDescriptor response = jobStatusResponse.getResponseDescriptor()
         SubnetType subnetType = execution.getVariable("subnetType") as SubnetType
 
-
         SliceTaskInfo sliceTaskInfo = execution.getVariable("sliceTaskInfo") as SliceTaskInfo
         sliceTaskInfo.progress = response.getProgress()
-        sliceTaskInfo.status = response.getStatus()
+        sliceTaskInfo.status = response.getStatus().toLowerCase()
         sliceTaskInfo.statusDescription = response.getStatusDescription()
         updateNssiResult(sliceParams, subnetType, sliceTaskInfo)
 
-        String paramJson = sliceParams.convertToJson()
-        execution.setVariable("CSSOT_paramJson", paramJson)
+        execution.setVariable("CSSOT_paramJson", objectMapper.writeValueAsString(sliceParams))
         execution.setVariable("CSSOT_requestMethod", requestMethod)
 
         execution.setVariable("sliceTaskParams", sliceParams)
         execution.setVariable("sliceTaskInfo", sliceTaskInfo)
+
         logger.debug("Finish prepareUpdateOrchestrationTask progress")
     }
 
@@ -136,7 +147,7 @@ class DoAllocateNSSI extends AbstractServiceTaskProcessor {
             case SubnetType.CN:
                 sliceTaskParams.cnSliceTaskInfo = sliceTaskInfo
                 break
-            case SubnetType.AN_NF:
+            case SubnetType.AN:
                 sliceTaskParams.anSliceTaskInfo = sliceTaskInfo
                 break
             case SubnetType.TN_BH: