diff options
4 files changed, 65 insertions, 37 deletions
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSliceSubnet.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSliceSubnet.groovy index eabe58488e..7e30d79152 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSliceSubnet.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSliceSubnet.groovy @@ -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 */ diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy index 75006365f2..5d952b6b8d 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy @@ -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() + } } diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy index 897cdfcd7b..1d75cf5216 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy @@ -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) diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn index 2301b47639..841a23b3eb 100644 --- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn +++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn @@ -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"> |