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.slf4j.Logger
 
  18 import org.slf4j.LoggerFactory
 
  19 import org.springframework.http.ResponseEntity
 
  21 import static org.apache.commons.lang3.StringUtils.isBlank
 
  23 class DoAllocateNSSI extends AbstractServiceTaskProcessor {
 
  25     private static final Logger logger = LoggerFactory.getLogger(DoAllocateNSSI.class);
 
  27     ExceptionUtil exceptionUtil = new ExceptionUtil()
 
  29     JsonUtils jsonUtil = new JsonUtils()
 
  31     ObjectMapper objectMapper = new ObjectMapper()
 
  33     private NssmfAdapterUtils nssmfAdapterUtils = new NssmfAdapterUtils(httpClientFactory, jsonUtil)
 
  35     private static final NSSMF_ALLOCATE_URL = "/api/rest/provMns/v1/NSS/SliceProfiles"
 
  37     private static final NSSMF_QUERY_JOB_STATUS_URL = "/NSS/jobs/%s"
 
  40     void preProcessRequest(DelegateExecution execution) {
 
  41         logger.trace("Enter preProcessRequest()")
 
  43         NssmfAdapterNBIRequest nbiRequest = execution.getVariable("nbiRequest") as NssmfAdapterNBIRequest
 
  45         //SliceTaskInfo sliceTaskInfo = execution.getVariable("sliceTaskInfo") as SliceTaskInfo
 
  46         boolean isNSIOptionAvailable = execution.getVariable("isNSIOptionAvailable") as Boolean
 
  48         if (isNSIOptionAvailable) {
 
  49             nbiRequest.serviceInfo.setActionType("modify")
 
  51             nbiRequest.serviceInfo.setActionType("allocate")
 
  53         execution.setVariable("nbiRequest", nbiRequest)
 
  54         logger.trace("Exit preProcessRequest")
 
  58      * send Create Request NSSMF
 
  61     void sendCreateRequestNSSMF(DelegateExecution execution) {
 
  62         NssmfAdapterNBIRequest nbiRequest = execution.getVariable("nbiRequest") as NssmfAdapterNBIRequest
 
  63         String response = nssmfAdapterUtils.sendPostRequestNSSMF(execution, NSSMF_ALLOCATE_URL,
 
  64                 objectMapper.writeValueAsString(nbiRequest))
 
  65         ResponseEntity responseEntity = objectMapper.readValue(response, ResponseEntity.class)
 
  66         String respBody = responseEntity.getBody()
 
  67         NssiResponse result = objectMapper.readValue(respBody, NssiResponse.class)
 
  70         execution.setVariable("serviceInfo", nbiRequest.getServiceInfo())
 
  71         execution.setVariable("esrInfo", nbiRequest.getEsrInfo())
 
  75      * query nssi allocate status
 
  78     void queryNSSIStatus(DelegateExecution execution) {
 
  79         NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
 
  80         NssiResponse nssiAllocateResult = execution.getVariable("nssiAllocateResult") as NssiResponse
 
  81         String jobId = nssiAllocateResult.getJobId()
 
  82         String nssiId = nssiAllocateResult.getNssiId()
 
  84         ServiceInfo serviceInfo = execution.getVariable("serviceInfo") as ServiceInfo
 
  85         serviceInfo.setNssiId(nssiId)
 
  86         EsrInfo esrInfo = execution.getVariable("esrInfo") as EsrInfo
 
  88         //nbiRequest.setResponseId(jobId)
 
  89         nbiRequest.setServiceInfo(serviceInfo)
 
  90         nbiRequest.setEsrInfo(esrInfo)
 
  92         String endpoint = String.format(NSSMF_QUERY_JOB_STATUS_URL, jobId)
 
  95                 nssmfAdapterUtils.sendPostRequestNSSMF(execution, endpoint, objectMapper.writeValueAsString(nbiRequest))
 
  97         ResponseEntity responseEntity = objectMapper.readValue(response, ResponseEntity.class)
 
  98         String result = responseEntity.getBody()
 
 100         ResponseDescriptor responseDescriptor = objectMapper.readValue(result, ResponseDescriptor.class)
 
 102         //todo: handle status
 
 103         execution.setVariable("nssiAllocateResult", responseDescriptor)
 
 106     void prepareUpdateOrchestrationTask(DelegateExecution execution) {
 
 107         //todo;update orchestration task
 
 110     void timeDelay(DelegateExecution execution) {