1 package org.onap.so.bpmn.infrastructure.scripts
3 import com.fasterxml.jackson.databind.ObjectMapper
4 import org.camunda.bpm.engine.delegate.DelegateExecution
5 import org.onap.so.beans.nsmf.EsrInfo
6 import org.onap.so.beans.nsmf.NssiResponse
7 import org.onap.so.beans.nsmf.NssmfAdapterNBIRequest
8 import org.onap.so.beans.nsmf.ResponseDescriptor
9 import org.onap.so.beans.nsmf.ServiceInfo
10 import org.onap.so.beans.nsmf.SliceTaskInfo
11 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
12 import org.onap.so.bpmn.common.scripts.ExceptionUtil
13 import org.onap.so.bpmn.common.scripts.NssmfAdapterUtils
14 import org.onap.so.bpmn.core.domain.ModelInfo
15 import org.onap.so.bpmn.core.domain.ServiceDecomposition
16 import org.onap.so.bpmn.core.json.JsonUtils
17 import org.onap.aaiclient.client.aai.AAIObjectType
18 import org.onap.aaiclient.client.aai.AAIResourcesClient
19 import org.onap.aaiclient.client.aai.entities.AAIEdgeLabel
20 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri
21 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
22 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder
23 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types
24 import org.slf4j.Logger
25 import org.slf4j.LoggerFactory
26 import org.springframework.http.ResponseEntity
28 import static org.apache.commons.lang3.StringUtils.isBlank
30 class DoAllocateNSSI extends AbstractServiceTaskProcessor {
32 private static final Logger logger = LoggerFactory.getLogger(DoAllocateNSSI.class);
34 ExceptionUtil exceptionUtil = new ExceptionUtil()
36 JsonUtils jsonUtil = new JsonUtils()
38 ObjectMapper objectMapper = new ObjectMapper()
40 private NssmfAdapterUtils nssmfAdapterUtils = new NssmfAdapterUtils(httpClientFactory, jsonUtil)
42 private static final NSSMF_ALLOCATE_URL = "/api/rest/provMns/v1/NSS/SliceProfiles"
44 private static final NSSMF_QUERY_JOB_STATUS_URL = "/NSS/jobs/%s"
47 void preProcessRequest(DelegateExecution execution) {
48 logger.trace("Enter preProcessRequest()")
50 NssmfAdapterNBIRequest nbiRequest = execution.getVariable("nbiRequest") as NssmfAdapterNBIRequest
52 //SliceTaskInfo sliceTaskInfo = execution.getVariable("sliceTaskInfo") as SliceTaskInfo
53 boolean isNSIOptionAvailable = execution.getVariable("isNSIOptionAvailable") as Boolean
55 if (isNSIOptionAvailable) {
56 nbiRequest.serviceInfo.setActionType("modify")
58 nbiRequest.serviceInfo.setActionType("allocate")
60 execution.setVariable("nbiRequest", nbiRequest)
61 logger.trace("Exit preProcessRequest")
65 * send Create Request NSSMF
68 void sendCreateRequestNSSMF(DelegateExecution execution) {
69 NssmfAdapterNBIRequest nbiRequest = execution.getVariable("nbiRequest") as NssmfAdapterNBIRequest
70 String response = nssmfAdapterUtils.sendPostRequestNSSMF(execution, NSSMF_ALLOCATE_URL,
71 objectMapper.writeValueAsString(nbiRequest))
72 ResponseEntity responseEntity = objectMapper.readValue(response, ResponseEntity.class)
73 String respBody = responseEntity.getBody()
74 NssiResponse result = objectMapper.readValue(respBody, NssiResponse.class)
77 execution.setVariable("serviceInfo", nbiRequest.getServiceInfo())
78 execution.setVariable("esrInfo", nbiRequest.getEsrInfo())
82 * query nssi allocate status
85 void queryNSSIStatus(DelegateExecution execution) {
86 NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
87 NssiResponse nssiAllocateResult = execution.getVariable("nssiAllocateResult") as NssiResponse
88 String jobId = nssiAllocateResult.getJobId()
89 String nssiId = nssiAllocateResult.getNssiId()
91 ServiceInfo serviceInfo = execution.getVariable("serviceInfo") as ServiceInfo
92 serviceInfo.setNssiId(nssiId)
93 EsrInfo esrInfo = execution.getVariable("esrInfo") as EsrInfo
95 //nbiRequest.setResponseId(jobId)
96 nbiRequest.setServiceInfo(serviceInfo)
97 nbiRequest.setEsrInfo(esrInfo)
99 String endpoint = String.format(NSSMF_QUERY_JOB_STATUS_URL, jobId)
102 nssmfAdapterUtils.sendPostRequestNSSMF(execution, endpoint, objectMapper.writeValueAsString(nbiRequest))
104 ResponseEntity responseEntity = objectMapper.readValue(response, ResponseEntity.class)
105 String result = responseEntity.getBody()
107 ResponseDescriptor responseDescriptor = objectMapper.readValue(result, ResponseDescriptor.class)
109 //todo: handle status
110 execution.setVariable("nssiAllocateResult", responseDescriptor)
113 void prepareUpdateOrchestrationTask(DelegateExecution execution) {
114 //todo;update orchestration task
117 void timeDelay(DelegateExecution execution) {