aboutsummaryrefslogtreecommitdiffstats
path: root/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy')
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy153
1 files changed, 99 insertions, 54 deletions
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy
index 547cb6cad7..0c795b3bd1 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.logging.filter.base.ONAPComponents
import org.onap.so.beans.nsmf.DeAllocateNssi
+import org.onap.so.beans.nsmf.ServiceInfo
import org.onap.so.beans.nsmf.EsrInfo
import org.onap.so.beans.nsmf.JobStatusRequest
import org.onap.so.beans.nsmf.JobStatusResponse
@@ -44,7 +45,7 @@ import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
import org.onap.so.db.request.beans.OperationStatus
import org.slf4j.Logger
import org.slf4j.LoggerFactory
-
+import org.json.JSONObject
import javax.ws.rs.core.Response
@@ -126,7 +127,7 @@ class DoDeallocateNSSI extends AbstractServiceTaskProcessor
}
LOGGER.debug("*****${PREFIX} Exit processDecomposition *****")
}
-
+
/**
* send deallocate request to nssmf
* @param execution
@@ -140,61 +141,106 @@ class DoDeallocateNSSI extends AbstractServiceTaskProcessor
String nssiId = currentNSSI['nssiServiceInstanceId']
String nsiId = currentNSSI['nsiServiceInstanceId']
String scriptName = execution.getVariable("scriptName")
+ boolean modifyAction = execution.getVariable("terminateNSI")
+ String serviceInvariantUuid = currentNSSI['modelInvariantId']
+ String serviceUuid = currentNSSI['modelVersionId']
+ String globalSubscriberId = currentNSSI['globalSubscriberId']
+ String subscriptionServiceType = execution.getVariable("serviceType")
+
DeAllocateNssi deAllocateNssi = new DeAllocateNssi()
deAllocateNssi.setNsiId(nsiId)
deAllocateNssi.setNssiId(nssiId)
deAllocateNssi.setTerminateNssiOption(0)
deAllocateNssi.setSnssaiList(Arrays.asList(snssai))
deAllocateNssi.setScriptName(scriptName)
-
- NssiDeAllocateRequest deAllocateRequest = new NssiDeAllocateRequest()
- deAllocateRequest.setDeAllocateNssi(deAllocateNssi)
- deAllocateRequest.setEsrInfo(getEsrInfo(currentNSSI))
-
- ObjectMapper mapper = new ObjectMapper()
- String nssmfRequest = mapper.writeValueAsString(deAllocateRequest)
-
- String urlStr = String.format("/api/rest/provMns/v1/NSS/SliceProfiles/%s",profileId)
+ deAllocateNssi.setSliceProfileId(profileId)
+ deAllocateNssi.setModifyAction(modifyAction)
+
+ ServiceInfo serviceInfo = new ServiceInfo()
+ serviceInfo.setServiceInvariantUuid(serviceInvariantUuid)
+ serviceInfo.setServiceUuid(serviceUuid)
+ serviceInfo.setGlobalSubscriberId(globalSubscriberId)
+ serviceInfo.setSubscriptionServiceType(subscriptionServiceType)
+
+ EsrInfo esrInfo = getEsrInfo(currentNSSI)
+
+ execution.setVariable("deAllocateNssi",deAllocateNssi)
+ execution.setVariable("esrInfo",esrInfo)
+ execution.setVariable("serviceInfo",serviceInfo)
+ String nssmfRequest = """
+ {
+ "deAllocateNssi": "${execution.getVariable("deAllocateNssi") as JSONObject}",
+ "esrInfo": ${execution.getVariable("esrInfo") as JSONObject},
+ "serviceInfo": ${execution.getVariable("serviceInfo") as JSONObject}
+ }
+ """
+
+ String urlStr = String.format("/api/rest/provMns/v1/NSS/nssi/%s",nssiId)
NssiResponse nssmfResponse = nssmfAdapterUtils.sendPostRequestNSSMF(execution, urlStr, nssmfRequest, NssiResponse.class)
if (nssmfResponse != null) {
- currentNSSI['jobId']= nssmfResponse.getJobId() ?: ""
- currentNSSI['jobProgress'] = 0
- execution.setVariable("currentNSSI", currentNSSI)
-
- LOGGER.debug("*****${PREFIX} Exit sendRequestToNSSMF *****")
- } else {
+ currentNSSI['jobId']= nssmfResponse.getJobId() ?: ""
+ currentNSSI['jobProgress'] = 0
+ execution.setVariable("currentNSSI", currentNSSI)
+ }
+ else {
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, "Received a Bad Response from NSSMF.")
}
-
+ LOGGER.debug("*****${PREFIX} Exit sendRequestToNSSMF *****")
}
- /**
+/**
* send to nssmf query progress
* @param execution
*/
- void getJobStatus(DelegateExecution execution)
+ void prepareJobStatusRequest(DelegateExecution execution)
{
def currentNSSI = execution.getVariable("currentNSSI")
String jobId = currentNSSI['jobId']
String nssiId = currentNSSI['nssiServiceInstanceId']
String nsiId = currentNSSI['nsiServiceInstanceId']
+ String serviceInvariantUuid = currentNSSI['modelInvariantId']
+ String serviceUuid = currentNSSI['modelVersionId']
+ String globalSubscriberId = currentNSSI['globalSubscriberId']
+ String subscriptionServiceType = execution.getVariable("serviceType")
+ String sST = currentNSSI['sST']
+ String PLMNIdList = currentNSSI['PLMNIdList']
+ String nssiName = currentNSSI['nssiName']
+
+ execution.setVariable("responseId", "3")
+ execution.setVariable("esrInfo", getEsrInfo(currentNSSI))
+ execution.setVariable("jobId", jobId)
+
+ Map<String, ?> serviceInfoMap = new HashMap<>()
+ serviceInfoMap.put("nssiId", nssiId)
+ serviceInfoMap.put("nsiId", nsiId)
+ serviceInfoMap.put("nssiName", nssiName)
+ serviceInfoMap.put("sST", sST)
+ serviceInfoMap.put("PLMNIdList", PLMNIdList)
+ serviceInfoMap.put("globalSubscriberId", globalSubscriberId)
+ serviceInfoMap.put("subscriptionServiceType", subscriptionServiceType)
+ serviceInfoMap.put("serviceInvariantUuid", serviceInvariantUuid)
+ serviceInfoMap.put("serviceUuid", serviceUuid)
+
+ execution.setVariable("serviceInfo", serviceInfoMap)
+ }
- JobStatusRequest jobStatusRequest = new JobStatusRequest()
- jobStatusRequest.setNssiId(nssiId)
- jobStatusRequest.setNsiId(nsiId)
- jobStatusRequest.setEsrInfo(getEsrInfo(currentNSSI))
-
- ObjectMapper mapper = new ObjectMapper()
- String nssmfRequest = mapper.writeValueAsString(jobStatusRequest)
-
- String urlStr = String.format("/api/rest/provMns/v1/NSS/jobs/%s", jobId)
-
- JobStatusResponse jobStatusResponse = nssmfAdapterUtils.sendPostRequestNSSMF(execution, urlStr, nssmfRequest, JobStatusResponse.class)
-
- if (jobStatusResponse != null) {
- def progress = jobStatusResponse?.getResponseDescriptor()?.getProgress()
+
+ /**
+ * send to nssmf query progress
+ * @param execution
+ */
+ void handleJobStatus(DelegateExecution execution)
+ {
+ try
+ {
+ String jobStatusResponse = execution.getVariable("responseDescriptor")
+ String status = jsonUtil.getJsonValue(jobStatusResponse,"status")
+ def statusDescription = jsonUtil.getJsonValue(jobStatusResponse,"statusDescription")
+ def progress = jsonUtil.getJsonValue(jobStatusResponse,"progress")
+ if(!status.equalsIgnoreCase("failed"))
+ {
if(!progress)
{
LOGGER.error("job progress is null or empty!")
@@ -206,61 +252,60 @@ class DoDeallocateNSSI extends AbstractServiceTaskProcessor
execution.setVariable("isNSSIDeAllocated", (currentProgress == 100))
execution.setVariable("isNeedUpdateDB", (oldProgress != currentProgress))
currentNSSI['jobProgress'] = currentProgress
-
- def statusDescription = jobStatusResponse?.getResponseDescriptor()?.getStatusDescription()
+ currentNSSI['status'] = status
currentNSSI['statusDescription'] = statusDescription
LOGGER.debug("job status result: nsiId = ${nsiId}, nssiId=${nssiId}, oldProgress=${oldProgress}, progress = ${currentProgress}" )
-
- } else {
+ }
+ else {
+ execution.setVariable("isNeedUpdateDB", "true")
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, "Received a Bad Response from NSSMF.")
}
-
+ }
+ catch (any)
+ {
+ String msg = "Received a Bad Response from NSSMF." cause-"+any.getCause()"
+ LOGGER.error(any.printStackTrace())
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
}
private EsrInfo getEsrInfo(def currentNSSI)
{
String domaintype = currentNSSI['domainType']
String vendor = currentNSSI['vendor']
-
+
EsrInfo info = new EsrInfo()
info.setNetworkType(NetworkType.fromString(domaintype))
info.setVendor(vendor)
return info
}
- /**
+ /**
* handle job status
* prepare update requestdb
* @param execution
*/
- void handleJobStatus(DelegateExecution execution)
+ void prepareUpdateOperationStatus(DelegateExecution execution)
{
def currentNSSI = execution.getVariable("currentNSSI")
int currentProgress = currentNSSI["jobProgress"]
def proportion = currentNSSI['proportion']
def statusDes = currentNSSI["statusDescription"]
int progress = (currentProgress as int) == 0 ? 0 : (currentProgress as int) / 100 * (proportion as int)
-
+ def status = currentNSSI['status']
+
OperationStatus operationStatus = new OperationStatus()
operationStatus.setServiceId(currentNSSI['e2eServiceInstanceId'] as String)
operationStatus.setOperationId(currentNSSI['operationId'] as String)
operationStatus.setOperation("DELETE")
- operationStatus.setResult("processing")
+ operationStatus.setResult(status as String)
operationStatus.setProgress(progress as String)
operationStatus.setOperationContent(statusDes as String)
requestDBUtil.prepareUpdateOperationStatus(execution, operationStatus)
LOGGER.debug("update operation, currentProgress=${currentProgress}, proportion=${proportion}, progress = ${progress}" )
}
-
- void timeDelay(DelegateExecution execution) {
- try {
- Thread.sleep(10000);
- } catch(InterruptedException e) {
- LOGGER.error("Time Delay exception" + e)
- }
- }
-
+
/**
* delete slice profile from aai
* @param execution
@@ -291,4 +336,4 @@ class DoDeallocateNSSI extends AbstractServiceTaskProcessor
}
LOGGER.debug("*****${PREFIX} Exist delSliceProfileFromAAI *****")
}
-} \ No newline at end of file
+}