summaryrefslogtreecommitdiffstats
path: root/bpmn/so-bpmn-infrastructure-common
diff options
context:
space:
mode:
authorSeshu Kumar M <seshu.kumar.m@huawei.com>2018-09-20 10:19:36 +0000
committerGerrit Code Review <gerrit@onap.org>2018-09-20 10:19:36 +0000
commit0e36e8738487b27b9530f446cea12b11cc4f87b4 (patch)
treee4c6d79148c94ecc6259b4c4e7deafb5c0587109 /bpmn/so-bpmn-infrastructure-common
parenta7663d0d51174edf53d4eb4ebc9d929e82af4ef2 (diff)
parente992debb39f00fb701ce8c116fafe9d40641ce40 (diff)
Merge "bug fix for ccvpn uc after integration test"
Diffstat (limited to 'bpmn/so-bpmn-infrastructure-common')
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy279
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateDeviceResource.groovy123
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy215
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy135
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy32
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy43
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy121
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy12
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/service/ServicePluginFactory.java77
9 files changed, 658 insertions, 379 deletions
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
index ec8df3daa1..d2903f5396 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
@@ -4,7 +4,7 @@
* ================================================================================
* Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
* ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Apache License, Version 2.0 (the "License")
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
@@ -20,12 +20,12 @@
package org.onap.so.bpmn.infrastructure.scripts
+import org.json.JSONArray
import org.json.JSONObject
import org.json.XML
import static org.apache.commons.lang3.StringUtils.*
import groovy.xml.XmlUtil
-import groovy.json.*
import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.bpmn.common.scripts.ExternalAPIUtil
@@ -39,6 +39,7 @@ import org.onap.so.bpmn.infrastructure.workflow.serviceTask.client.builder.Abstr
import org.onap.so.rest.APIResponse
import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
import org.onap.so.bpmn.infrastructure.workflow.service.ServicePluginFactory
+import java.util.Map
import java.util.UUID
import org.onap.so.logger.MsoLogger
@@ -62,7 +63,7 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
ExceptionUtil exceptionUtil = new ExceptionUtil()
JsonUtils jsonUtil = new JsonUtils()
-
+
private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, Create3rdONAPE2EServiceInstance.class)
public void checkSPPartnerInfo (DelegateExecution execution) {
@@ -77,19 +78,19 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String resourceInput = execution.getVariable("resourceInput")
msoLogger.info("The resourceInput is: " + resourceInput)
//Get ResourceInput Object
- ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
+ ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
String resourceInputPrameters = resourceInputObj.getResourceParameters()
- String inputParametersJson = jsonUtil.getJsonValue(resourceInputPrameters, "requestInputs")
- JSONObject inputParameters = new JSONObject(customizeResourceParam(inputParametersJson))
+ String inputParametersJson = JsonUtils.getJsonValue(resourceInputPrameters, "requestInputs")
+ JSONObject inputParameters = new JSONObject(inputParametersJson)
// set local resourceInput
execution.setVariable(Prefix + "ResourceInput", resourceInputObj)
boolean is3rdONAPExist = false
- if(inputParameters.has("url"))
+ if(inputParameters.has("sppartner_url"))
{
- String sppartnerUrl = inputParameters.get("url")
+ String sppartnerUrl = inputParameters.get("sppartner_url")
if(!isBlank(sppartnerUrl)) {
execution.setVariable(Prefix + "SppartnerUrl", sppartnerUrl)
is3rdONAPExist = true
@@ -100,32 +101,32 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
msoLogger.debug(msg)
}
}
- if(inputParameters.has("providingServiceInvarianteUuid"))
+ if(inputParameters.has("sppartner_providingServiceUuid"))
{
- String sppartnerInvarianteUUID = inputParameters.get("providingServiceInvarianteUuid")
- execution.setVariable(Prefix + "SppartnerInvarianteUUID", sppartnerInvarianteUUID)
+ String sppartnerUUID= inputParameters.get("sppartner_providingServiceUuid")
+ execution.setVariable(Prefix + "SppartnerUUID", sppartnerUUID)
is3rdONAPExist = true
}
else {
is3rdONAPExist = false
- String msg = "sppartner providingServiceInvarianteUuid is blank."
+ String msg = "sppartner providingServiceUuid is blank."
msoLogger.debug(msg)
}
- if(inputParameters.has("providingServiceUuid"))
+ if(inputParameters.has("sppartner_providingServiceInvariantUuid"))
{
- String sppartnerUUID = inputParameters.get("providingServiceUuid")
- execution.setVariable(Prefix + "SppartnerUUID", sppartnerUUID)
+ String sppartnerInvarianteUUID = inputParameters.get("sppartner_providingServiceInvariantUuid")
+ execution.setVariable(Prefix + "SppartnerInvarianteUUID", sppartnerInvarianteUUID)
is3rdONAPExist = true
}
else {
is3rdONAPExist = false
- String msg = "sppartner providingServiceUuid is blank."
+ String msg = "sppartner providingServiceInvarianteUuid is blank."
msoLogger.debug(msg)
}
- if(inputParameters.has("handoverMode"))
+ if(inputParameters.has("sppartner_handoverMode"))
{
- String handoverMode = inputParameters.get("handoverMode")
+ String handoverMode = inputParameters.get("sppartner_handoverMode")
execution.setVariable(Prefix + "HandoverMode", handoverMode)
is3rdONAPExist = true
}
@@ -134,7 +135,7 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String msg = "sppartner handoverMode is blank."
msoLogger.debug(msg)
}
-
+
execution.setVariable("Is3rdONAPExist", is3rdONAPExist)
execution.setVariable(Prefix + "ServiceInstanceId", resourceInputObj.getServiceInstanceId())
execution.setVariable("mso-request-id", requestId)
@@ -150,7 +151,6 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
}
public void checkLocallCall (DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started checkLocallCall *****")
try {
@@ -159,9 +159,9 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
//uuiRequest
String incomingRequest = resourceInputObj.getRequestsInputs()
- String serviceParameters = jsonUtil.getJsonValue(incomingRequest, "service.parameters")
+ String serviceParameters = JsonUtils.getJsonValue(incomingRequest, "service.parameters")
String requestInputs = JsonUtils.getJsonValue(serviceParameters, "requestInputs")
- JSONObject inputParameters = new JSONObject(customizeResourceParam(requestInputs))
+ JSONObject inputParameters = new JSONObject(requestInputs)
execution.setVariable(Prefix + "ServiceParameters", inputParameters)
// CallSource is added only when ONAP SO calling 3rdONAP(External API) SO(Remote call)
@@ -189,17 +189,16 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
}
public void preProcessRequest(DelegateExecution execution){
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started preProcessRequest *****")
+ String msg = ""
+
try {
ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
- String msg = ""
String globalSubscriberId = resourceInputObj.getGlobalSubscriberId()
if (isBlank(globalSubscriberId)) {
msg = "Input globalSubscriberId is null"
- msoLogger.info(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error(msg)
}
//set local variable
execution.setVariable("globalSubscriberId", globalSubscriberId)
@@ -208,8 +207,7 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String serviceType = resourceInputObj.getServiceType()
if (isBlank(serviceType)) {
msg = "Input serviceType is null"
- msoLogger.info(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error(msg)
}
execution.setVariable("serviceType", serviceType)
msoLogger.info("serviceType:" + serviceType)
@@ -217,8 +215,7 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String resourceName = resourceInputObj.getResourceInstanceName()
if (isBlank(resourceName)) {
msg = "Input resourceName is null"
- msoLogger.info(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error(msg)
}
execution.setVariable("resourceName", resourceName)
msoLogger.info("resourceName:" + resourceName)
@@ -230,23 +227,45 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String serviceInstanceId = resourceInputObj.getServiceInstanceId()
if (isBlank(serviceInstanceId)) {
msg = "Input serviceInstanceId is null"
- msoLogger.info(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error(msg)
}
execution.setVariable(Prefix + "ServiceInstanceId", serviceInstanceId)
msoLogger.info("serviceInstanceId:" + serviceInstanceId)
+ String resourceModelInvariantUuid = resourceInputObj.getResourceModelInfo().getModelInvariantUuid()
+ if (isBlank(resourceModelInvariantUuid)) {
+ msg = "Input resourceModelInvariantUuid is null"
+ msoLogger.error(msg)
+ }
+ execution.setVariable(Prefix + "ResourceModelInvariantUuid", resourceModelInvariantUuid)
+ msoLogger.info("resourceModelInvariantUuid:" + resourceModelInvariantUuid)
+
+ String resourceModelUuid = resourceInputObj.getResourceModelInfo().getModelUuid()
+ if (isBlank(resourceModelUuid)) {
+ msg = "Input resourceModelUuid is null"
+ msoLogger.error(msg)
+ }
+ execution.setVariable(Prefix + "ResourceModelUuid", resourceModelUuid)
+ msoLogger.info("resourceModelUuid:" + resourceModelUuid)
+
+ String resourceModelCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
+ if (isBlank(resourceModelCustomizationUuid)) {
+ msg = "Input resourceModelCustomizationUuid is null"
+ msoLogger.error(msg)
+ }
+ execution.setVariable(Prefix + "ResourceModelCustomizationUuid", resourceModelCustomizationUuid)
+ msoLogger.info("resourceModelCustomizationUuid:" + resourceModelCustomizationUuid)
+
} catch (BpmnError e) {
throw e
} catch (Exception ex){
- String msg = "Exception in preProcessRequest " + ex.getMessage()
+ msg = "Exception in preProcessRequest " + ex.getMessage()
msoLogger.debug(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
}
public void prepareUpdateProgress(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started prepareUpdateProgress *****")
ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
String operType = resourceInputObj.getOperationType()
@@ -280,7 +299,6 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
}
public void allocateCrossONAPResource(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started allocateCrossONAPResource *****")
//get TP links from AAI for SOTN handoverMode only
@@ -288,42 +306,45 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
if("SOTN".equalsIgnoreCase(handoverMode)) {
// Put TP Link info into serviceParameters
JSONObject inputParameters = execution.getVariable(Prefix + "ServiceParameters")
-
- Map<String, Object> crossTPs = new HashMap<String, Object>();
- crossTPs.put("local-access-provider-id", inputParameters.get("remote-access-provider-id"));
- crossTPs.put("local-access-client-id", inputParameters.get("remote-access-client-id"));
- crossTPs.put("local-access-topology-id", inputParameters.get("remote-access-topology-id"));
- crossTPs.put("local-access-node-id", inputParameters.get("remote-access-node-id"));
- crossTPs.put("local-access-ltp-id", inputParameters.get("remote-access-ltp-id"));
- crossTPs.put("remote-access-provider-id", inputParameters.get("local-access-provider-id"));
- crossTPs.put("remote-access-client-id", inputParameters.get("local-client-id"));
- crossTPs.put("remote-access-topology-id", inputParameters.get("local-topology-id"));
- crossTPs.put("remote-access-node-id", inputParameters.get("local-node-id"));
- crossTPs.put("remote-access-ltp-id", inputParameters.get("local-ltp-id"));
-
- inputParameters.put("local-access-provider-id", crossTPs.get("local-access-provider-id"));
- inputParameters.put("local-access-client-id", crossTPs.get("local-access-client-id"));
- inputParameters.put("local-access-topology-id", crossTPs.get("local-access-topology-id"));
- inputParameters.put("local-access-node-id", crossTPs.get("local-access-node-id"));
- inputParameters.put("local-access-ltp-id", crossTPs.get("local-access-ltp-id"));
- inputParameters.put("remote-access-provider-id", crossTPs.get("remote-access-provider-id"));
- inputParameters.put("remote-access-client-id", crossTPs.get("remote-client-id"));
- inputParameters.put("remote-access-topology-id", crossTPs.get("remote-topology-id"));
- inputParameters.put("remote-access-node-id", crossTPs.get("remote-node-id"));
- inputParameters.put("remote-access-ltp-id", crossTPs.get("remote-ltp-id"));
-
- execution.setVariable(Prefix + "ServiceParameters", inputParameters)
+ if(inputParameters.has("remote-access-provider-id")) {
+ Map<String, Object> crossTPs = new HashMap<String, Object>();
+ crossTPs.put("local-access-provider-id", inputParameters.get("remote-access-provider-id"));
+ crossTPs.put("local-access-client-id", inputParameters.get("remote-access-client-id"));
+ crossTPs.put("local-access-topology-id", inputParameters.get("remote-access-topology-id"));
+ crossTPs.put("local-access-node-id", inputParameters.get("remote-access-node-id"));
+ crossTPs.put("local-access-ltp-id", inputParameters.get("remote-access-ltp-id"));
+ crossTPs.put("remote-access-provider-id", inputParameters.get("local-access-provider-id"));
+ crossTPs.put("remote-access-client-id", inputParameters.get("local-access-client-id"));
+ crossTPs.put("remote-access-topology-id", inputParameters.get("local-access-topology-id"));
+ crossTPs.put("remote-access-node-id", inputParameters.get("local-access-node-id"));
+ crossTPs.put("remote-access-ltp-id", inputParameters.get("local-access-ltp-id"));
+
+ inputParameters.put("local-access-provider-id", crossTPs.get("local-access-provider-id"));
+ inputParameters.put("local-access-client-id", crossTPs.get("local-access-client-id"));
+ inputParameters.put("local-access-topology-id", crossTPs.get("local-access-topology-id"));
+ inputParameters.put("local-access-node-id", crossTPs.get("local-access-node-id"));
+ inputParameters.put("local-access-ltp-id", crossTPs.get("local-access-ltp-id"));
+ inputParameters.put("remote-access-provider-id", crossTPs.get("remote-access-provider-id"));
+ inputParameters.put("remote-access-client-id", crossTPs.get("remote-access-client-id"));
+ inputParameters.put("remote-access-topology-id", crossTPs.get("remote-access-topology-id"));
+ inputParameters.put("remote-access-node-id", crossTPs.get("remote-access-node-id"));
+ inputParameters.put("remote-access-ltp-id", crossTPs.get("remote-access-ltp-id"));
+
+ execution.setVariable(Prefix + "ServiceParameters", inputParameters)
+ }
+ else {
+ msoLogger.error("No allocated CrossONAPResource found in ServiceParameters")
+ }
}
msoLogger.info("Exit " + allocateCrossONAPResource)
}
public void prepare3rdONAPRequest(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started prepare3rdONAPRequest *****")
String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
- String extAPIPath = sppartnerUrl + 'serviceOrder'
+ String extAPIPath = sppartnerUrl + '/serviceOrder'
execution.setVariable("ExternalAPIURL", extAPIPath)
// ExternalAPI message format
@@ -334,14 +355,14 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String requestedCompletionDate = utils.generateCurrentTimeInUtc()
String priority = "1" // 0-4 0:highest
String subscriberId = execution.getVariable("globalSubscriberId")
- String customerRole = ""
- String subscriberName = ""
+ String customerRole = "ONAPcustomer"
+ String subscriberName = subscriberId
String referredType = "Consumer"
String orderItemId = "1"
String action = "add" //for create
String serviceState = "active"
String serviceName = execution.getVariable("serviceInstanceName")
- String serviceUuId = execution.setVariable(Prefix + "SppartnerUUID")
+ String serviceUuId = execution.getVariable(Prefix + "SppartnerUUID")
Map<String, String> valueMap = new HashMap<>()
valueMap.put("externalId", '"' + externalId + '"')
@@ -357,29 +378,29 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
valueMap.put("orderItemId", '"' + orderItemId + '"')
valueMap.put("action", '"' + action + '"')
valueMap.put("serviceState", '"' + serviceState + '"')
- valueMap.put("serviceId", '""')//To be confirmed
+ valueMap.put("serviceId", "null") //null for add
valueMap.put("serviceName", '"' + serviceName + '"')
valueMap.put("serviceUuId", '"' + serviceUuId + '"')
- ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil()
// insert CallSource='ExternalAPI' to uuiRequest
Map<String, String> requestInputsMap = new HashMap<>()
- requestInputsMap.put("inputName", "CallSource")
- requestInputsMap.put("inputValue", "ExternalAPI")
+ requestInputsMap.put("inputName", '"CallSource"')
+ requestInputsMap.put("inputValue", '"ExternalAPI"')
String _requestInputs_ = externalAPIUtil.setTemplate(ExternalAPIUtil.RequestInputsTemplate, requestInputsMap)
- requestInputsMap.clear()
+ requestInputsMap.clear()
String serviceInstanceId = execution.getVariable(Prefix + "ServiceInstanceId")
- requestInputsMap.put("inputName", "SppartnerServiceId")
- requestInputsMap.put("inputValue", serviceInstanceId)
+ requestInputsMap.put("inputName", '"SppartnerServiceId"')
+ requestInputsMap.put("inputValue", '"' + serviceInstanceId + '"')
_requestInputs_ += ",\n" + externalAPIUtil.setTemplate(ExternalAPIUtil.RequestInputsTemplate, requestInputsMap)
requestInputsMap.clear()
String serviceType = execution.getVariable("serviceType")
- requestInputsMap.put("inputName", "serviceType")
- requestInputsMap.put("inputValue", serviceType)
- _requestInputs_ += ",\n" + externalAPIUtil.setTemplate(ExternalAPIUtil.RequestInputsTemplate, requestInputsMap)
+ requestInputsMap.put("inputName", '"serviceType"')
+ requestInputsMap.put("inputValue", '"' + serviceType + '"')
+ _requestInputs_ += ",\n" + externalAPIUtil.setTemplate(ExternalAPIUtil.RequestInputsTemplate, requestInputsMap)
// Transfer all uuiRequest incomeParameters to ExternalAPI format
JSONObject inputParameters = execution.getVariable(Prefix + "ServiceParameters")
@@ -390,7 +411,7 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
requestInputsMap.put("inputName", '"' + inputName+ '"')
requestInputsMap.put("inputValue", '"' + inputValue + '"')
_requestInputs_ += ",\n" + externalAPIUtil.setTemplate(ExternalAPIUtil.RequestInputsTemplate, requestInputsMap)
- }
+ }
valueMap.put("_requestInputs_", _requestInputs_)
String payload = externalAPIUtil.setTemplate(ExternalAPIUtil.PostServiceOrderRequestsTemplate, valueMap)
@@ -399,13 +420,14 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
}
public void doCreateE2ESIin3rdONAP(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started doCreateE2ESIin3rdONAP *****")
String extAPIPath = execution.getVariable("ExternalAPIURL")
String payload = execution.getVariable(Prefix + "Payload")
+ msoLogger.debug("doCreateE2ESIin3rdONAP externalAPIURL is: " + extAPIPath)
+ msoLogger.debug("doCreateE2ESIin3rdONAP payload is: " + payload)
- ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil()
APIResponse response = externalAPIUtil.executeExternalAPIPostCall(execution, extAPIPath, payload)
@@ -416,18 +438,22 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String extApiResponse = response.getResponseBodyAsString()
JSONObject responseObj = new JSONObject(extApiResponse)
execution.setVariable(Prefix + "PostServiceOrderResponse", extApiResponse)
+
+ msoLogger.debug("doCreateE2ESIin3rdONAP response body is: " + extApiResponse)
+
//Process Response
if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
//200 OK 201 CREATED 202 ACCEPTED
{
msoLogger.debug("Post ServiceOrder Received a Good Response")
- String serviceOrderId = responseObj.get("ServiceOrderId")
+ String serviceOrderId = responseObj.get("id")
execution.setVariable(Prefix + "SuccessIndicator", true)
- execution.setVariable("serviceOrderId", serviceOrderId)
+ execution.setVariable("ServiceOrderId", serviceOrderId)
+ msoLogger.info("Post ServiceOrderid is: " + serviceOrderId)
}
else{
- msoLogger.debug("Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Post ServiceOrder Received a bad response from 3rdONAP External API")
+ msoLogger.error("Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
+// exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Post ServiceOrder Received a bad response from 3rdONAP External API")
}
msoLogger.info("Exit " + doCreateE2ESIin3rdONAP)
@@ -435,13 +461,13 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
public void getE2ESIProgressin3rdONAP(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started getE2ESIProgressin3rdONAP *****")
String extAPIPath = execution.getVariable("ExternalAPIURL")
extAPIPath += "/" + execution.getVariable("ServiceOrderId")
+ utils.log("DEBUG", "getE2ESIProgressin3rdONAP create externalAPIURL is: " + extAPIPath, isDebugEnabled)
- ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil()
APIResponse response = externalAPIUtil.executeExternalAPIGetCall(execution, extAPIPath)
@@ -453,48 +479,72 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
JSONObject responseObj = new JSONObject(extApiResponse)
execution.setVariable(Prefix + "GetServiceOrderResponse", extApiResponse)
+ msoLogger.debug("getE2ESIProgressin3rdONAP create response body is: " + extApiResponse)
+
//Process Response //200 OK 201 CREATED 202 ACCEPTED
- if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
+ if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
{
- msoLogger.debug("Get ServiceOrder Received a Good Response")
-
- String sppartnerServiceId = responseObj.get("orderIterm.service.id")
+ msoLogger.debug("Get Create ServiceOrder Received a Good Response")
+
+ String orderState = responseObj.get("state")
+ if("REJECTED".equalsIgnoreCase(orderState)) {
+ execution.setVariable("progress", 100)
+ execution.setVariable("status", "error")
+ execution.setVariable("statusDescription", "Create Service Order Status is REJECTED")
+ return
+ }
+
+ JSONArray items = responseObj.getJSONArray("orderItem")
+ JSONObject item = items[0]
+ JSONObject service = item.get("service")
+ String sppartnerServiceId = service.get("id")
+ if(sppartnerServiceId == null || sppartnerServiceId.equals("null")) {
+ execution.setVariable("progress", 100)
+ execution.setVariable("status", "error")
+ execution.setVariable("statusDescription", "Create Service Order Status get null sppartnerServiceId")
+ msoLogger.error("null sppartnerServiceId while getting progress from externalAPI")
+ return
+ }
+
execution.setVariable(Prefix + "SppartnerServiceId", sppartnerServiceId)
- String serviceOrderState = responseObj.get("orderIterm.state")
+ String serviceOrderState = item.get("state")
execution.setVariable(Prefix + "SuccessIndicator", true)
- execution.setVariable("serviceOrderState", serviceOrderState)
+ execution.setVariable("ServiceOrderState", serviceOrderState)
// Get serviceOrder State and process progress
if("ACKNOWLEDGED".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 15)
- execution.setVariable("status", "processing")
+ execution.setVariable("status", "processing")
+ execution.setVariable("statusDescription", "Create Service Order Status is " + serviceOrderState)
}
- if("INPROGRESS".equalsIgnoreCase(serviceOrderState)) {
+ else if("INPROGRESS".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 40)
execution.setVariable("status", "processing")
+ execution.setVariable("statusDescription", "Create Service Order Status is " + serviceOrderState)
}
- if("COMPLETED".equalsIgnoreCase(serviceOrderState)) {
+ else if("COMPLETED".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 100)
execution.setVariable("status", "finished")
+ execution.setVariable("statusDescription", "Create Service Order Status is " + serviceOrderState)
}
- if("FAILED".equalsIgnoreCase(serviceOrderState)) {
+ else if("FAILED".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 100)
execution.setVariable("status", "error")
+ execution.setVariable("statusDescription", "Create Service Order Status is " + serviceOrderState)
}
else {
execution.setVariable("progress", 100)
execution.setVariable("status", "error")
execution.setVariable("statusDescription", "Create Service Order Status is unknown")
}
- execution.setVariable("statusDescription", "Create Service Order Status is " + serviceOrderState)
}
else{
msoLogger.debug("Get ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
execution.setVariable("progress", 100)
execution.setVariable("status", "error")
- execution.setVariable("statusDescription", "Get ServiceOrder Received a bad response")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get ServiceOrder Received a bad response from 3rdONAP External API")
+ execution.setVariable("statusDescription", "Get Create ServiceOrder Received a bad response")
+ exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get Create ServiceOrder Received a bad response from 3rdONAP External API")
}
msoLogger.info("Exit " + getE2ESIProgressin3rdONAP)
@@ -504,17 +554,15 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
* delay 5 sec
*/
public void timeDelay(DelegateExecution execution) {
- def isDebugEnabled= execution.getVariable("isDebugLogEnabled")
try {
Thread.sleep(5000)
} catch(InterruptedException e) {
- utils.log("ERROR", "Time Delay exception" + e )
+ msoLogger.error("Time Delay exception" + e)
}
}
public void saveSPPartnerInAAI(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
- msoLogger.info(" ***** Started postCreateE2ESIin3rdONAP *****")
+ msoLogger.info(" ***** Started saveSPPartnerInAAI *****")
String sppartnerId = execution.getVariable(Prefix + "SppartnerServiceId")
String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
@@ -522,8 +570,11 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String serviceInstanceId = execution.getVariable(Prefix + "ServiceInstanceId")
String globalSubscriberId = execution.getVariable("globalSubscriberId")
String serviceType = execution.getVariable("serviceType")
+ String resourceModelInvariantUuid = execution.getVariable(Prefix + "ResourceModelInvariantUuid")
+ String resourceModelUuid = execution.getVariable(Prefix + "ResourceModelUuid")
+ String resourceModelCustomizationUuid = execution.getVariable(Prefix + "ResourceModelCustomizationUuid")
- AaiUtil aaiUriUtil = new AaiUtil(this)
+ AaiUtil aaiUriUtil = new AaiUtil()
String aai_uri = aaiUriUtil.getBusinessSPPartnerUri(execution)
String namespace = aaiUriUtil.getNamespaceFromUri(aai_uri)
@@ -532,6 +583,9 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
<id>${sppartnerId}</id>
<url>${sppartnerUrl}</url>
<callsource>${callSource}</callsource>
+ <model-invariant-id>${resourceModelInvariantUuid}</model-invariant-id>
+ <model-version-id>${resourceModelUuid}</model-version-id>
+ <model-customization-id>${resourceModelCustomizationUuid}</model-customization-id>
<relationship-list>
<relationship>
<related-to>service-instance</related-to>
@@ -551,7 +605,7 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
APIResponse response = aaiUriUtil.executeAAIPutCall(execution, serviceAaiPath, payload)
int responseCode = response.getStatusCode()
execution.setVariable(Prefix + "PutSppartnerResponseCode", responseCode)
- msoLogger.debug(" Put sppartner response code is: " + responseCode)
+ msoLogger.debug("Put sppartner response code is: " + responseCode)
String aaiResponse = response.getResponseBodyAsString()
aaiResponse = StringEscapeUtils.unescapeXml(aaiResponse)
@@ -581,7 +635,6 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
}
public void postProcess(DelegateExecution execution){
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started postProcess *****")
String responseCode = execution.getVariable(Prefix + "PutSppartnerResponseCode")
String responseObj = execution.getVariable(Prefix + "PutSppartnerResponse")
@@ -591,7 +644,6 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
}
public void sendSyncResponse (DelegateExecution execution) {
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
msoLogger.debug(" *** sendSyncResponse *** ")
try {
@@ -609,21 +661,4 @@ public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
}
msoLogger.debug(" ***** Exit sendSyncResopnse *****")
}
-
- String customizeResourceParam(String inputParametersJson) {
- List<Map<String, Object>> paramList = new ArrayList()
- JSONObject jsonObject = new JSONObject(inputParametersJson)
- Iterator iterator = jsonObject.keys()
- while (iterator.hasNext()) {
- String key = iterator.next()
- HashMap<String, String> hashMap = new HashMap()
- hashMap.put("name", key)
- hashMap.put("value", jsonObject.get(key))
- paramList.add(hashMap)
- }
- Map<String, List<Map<String, Object>>> paramMap = new HashMap()
- paramMap.put("param", paramList)
-
- return new JSONObject(paramMap).toString()
- }
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateDeviceResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateDeviceResource.groovy
index 15b63fb5ab..89a6239be7 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateDeviceResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateDeviceResource.groovy
@@ -65,6 +65,7 @@ public class CreateDeviceResource extends AbstractServiceTaskProcessor {
public void preProcessRequest(DelegateExecution execution){
msoLogger.info(" ***** Started preProcessRequest *****")
+ String msg = ""
try {
//get bpmn inputs from resource request.
@@ -77,25 +78,52 @@ public class CreateDeviceResource extends AbstractServiceTaskProcessor {
msoLogger.info("The resourceInput is: " + resourceInput)
//Get ResourceInput Object
ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
- execution.setVariable(Prefix + "resourceInput", resourceInputObj)
- String resourceInputPrameters = resourceInputObj.getResourceParameters()
- String inputParametersJson = jsonUtil.getJsonValue(resourceInputPrameters, "requestInputs")
- JSONObject inputParameters = new JSONObject(customizeResourceParam(inputParametersJson))
- execution.setVariable(Prefix + "resourceRequestInputs", inputParameters)
+ execution.setVariable(Prefix + "ResourceInput", resourceInputObj)
+
+ String resourceInputPrameters = resourceInputObj.getResourceParameters()
+ String inputParametersJson = jsonUtil.getJsonValue(resourceInputPrameters, "requestInputs")
+ JSONObject inputParameters = new JSONObject(inputParametersJson)
+ execution.setVariable(Prefix + "ResourceRequestInputs", inputParameters)
+
+// String incomingRequest = resourceInputObj.getRequestsInputs()
+// String serviceParameters = JsonUtils.getJsonValue(incomingRequest, "service.parameters")
+// String requestInputs = JsonUtils.getJsonValue(serviceParameters, "requestInputs")
+// JSONObject serviceInputParameters = new JSONObject(requestInputs)
+// execution.setVariable(Prefix + "ServiceParameters", serviceInputParameters)
//Deal with recipeParams
String recipeParamsFromWf = execution.getVariable("recipeParamXsd")
- String resourceName = resourceInputObj.getResourceInstanceName()
- //For sdnc requestAction default is "createNetworkInstance"
- String operationType = "Network"
- if(!StringUtils.isBlank(recipeParamsFromRequest)){
- //the operationType from worflow(first node) is second priority.
- operationType = jsonUtil.getJsonValue(recipeParamsFromRequest, "operationType")
+ String resourceName = resourceInputObj.getResourceInstanceName()
+ if (isBlank(resourceName)) {
+ msg = "Input resourceName is null"
+ msoLogger.error(msg)
}
- if(!StringUtils.isBlank(recipeParamsFromWf)){
- //the operationType from worflow(first node) is highest priority.
- operationType = jsonUtil.getJsonValue(recipeParamsFromWf, "operationType")
+ execution.setVariable("resourceName", resourceName)
+ msoLogger.info("resourceName:" + resourceName)
+
+ String resourceModelInvariantUuid = resourceInputObj.getResourceModelInfo().getModelInvariantUuid()
+ if (isBlank(resourceModelInvariantUuid)) {
+ msg = "Input resourceModelInvariantUuid is null"
+ msoLogger.error(msg)
+ }
+ execution.setVariable(Prefix + "ResourceModelInvariantUuid", resourceModelInvariantUuid)
+ msoLogger.info("resourceModelInvariantUuid:" + resourceModelInvariantUuid)
+
+ String resourceModelUuid = resourceInputObj.getResourceModelInfo().getModelUuid()
+ if (isBlank(resourceModelUuid)) {
+ msg = "Input resourceModelUuid is null"
+ msoLogger.error(msg)
+ }
+ execution.setVariable(Prefix + "ResourceModelUuid", resourceModelUuid)
+ msoLogger.info("resourceModelUuid:" + resourceModelUuid)
+
+ String resourceModelCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
+ if (isBlank(resourceModelCustomizationUuid)) {
+ msg = "Input resourceModelCustomizationUuid is null"
+ msoLogger.error(msg)
}
+ execution.setVariable(Prefix + "ResourceModelCustomizationUuid", resourceModelCustomizationUuid)
+ msoLogger.info("resourceModelCustomizationUuid:" + resourceModelCustomizationUuid)
execution.setVariable(Prefix + "serviceInstanceId", resourceInputObj.getServiceInstanceId())
execution.setVariable("mso-request-id", requestId)
@@ -103,40 +131,26 @@ public class CreateDeviceResource extends AbstractServiceTaskProcessor {
} catch (BpmnError e) {
throw e;
} catch (Exception ex){
- String msg = "Exception in preProcessRequest " + ex.getMessage()
+ msg = "Exception in preProcessRequest " + ex.getMessage()
msoLogger.debug(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
}
- String customizeResourceParam(String networkInputParametersJson) {
- List<Map<String, Object>> paramList = new ArrayList();
- JSONObject jsonObject = new JSONObject(networkInputParametersJson);
- Iterator iterator = jsonObject.keys();
- while (iterator.hasNext()) {
- String key = iterator.next();
- HashMap<String, String> hashMap = new HashMap();
- hashMap.put("name", key);
- hashMap.put("value", jsonObject.get(key))
- paramList.add(hashMap)
- }
- Map<String, List<Map<String, Object>>> paramMap = new HashMap();
- paramMap.put("param", paramList);
-
- return new JSONObject(paramMap).toString();
- }
-
public void checkDevType(DelegateExecution execution){
msoLogger.info(" ***** Started checkDevType *****")
try {
-
- JSONObject inputParameters = execution.getVariable(Prefix + "resourceRequestInputs")
- String devType = inputParameters.get("device_class")
+ JSONObject resourceInputParameters = execution.getVariable(Prefix + "ResourceRequestInputs")
+ String devType = resourceInputParameters.get("device_class")
if(StringUtils.isBlank(devType)) {
devType = "OTHER"
}
+ // support VNF as PNF, to modify
+ else if(StringUtils.equalsIgnoreCase(devType, "VNF")) {
+ devType = "PNF"
+ }
execution.setVariable("device_class", devType)
@@ -147,6 +161,45 @@ public class CreateDeviceResource extends AbstractServiceTaskProcessor {
}
}
+ private void setProgressUpdateVariables(DelegateExecution execution, String body) {
+ def dbAdapterEndpoint = execution.getVariable("URN_mso_adapters_openecomp_db_endpoint")
+ execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)
+ execution.setVariable("CVFMI_updateResOperStatusRequest", body)
+ }
+
+ public void prepareUpdateProgress(DelegateExecution execution) {
+ msoLogger.info(" ***** Started prepareUpdateProgress *****")
+ ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
+ String operType = resourceInputObj.getOperationType()
+ String resourceCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
+ String ServiceInstanceId = resourceInputObj.getServiceInstanceId()
+ String modelName = resourceInputObj.getResourceModelInfo().getModelName()
+ String operationId = resourceInputObj.getOperationId()
+ String progress = execution.getVariable("progress")
+ String status = execution.getVariable("status")
+ String statusDescription = execution.getVariable("statusDescription")
+
+ String body = """
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ns:updateResourceOperationStatus>
+ <operType>${operType}</operType>
+ <operationId>${operationId}</operationId>
+ <progress>${progress}</progress>
+ <resourceTemplateUUID>${resourceCustomizationUuid}</resourceTemplateUUID>
+ <serviceId>${ServiceInstanceId}</serviceId>
+ <status>${status}</status>
+ <statusDescription>${statusDescription}</statusDescription>
+ </ns:updateResourceOperationStatus>
+ </soapenv:Body>
+ </soapenv:Envelope>"""
+
+ setProgressUpdateVariables(execution, body)
+ msoLogger.info(" ***** Exit prepareUpdateProgress *****")
+ }
+
public void getVNFTemplatefromSDC(DelegateExecution execution){
msoLogger.info(" ***** Started getVNFTemplatefromSDC *****")
try {
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
index 37c7d4d29a..06346ea81e 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
@@ -4,7 +4,7 @@
* ================================================================================
* Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
* ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Apache License, Version 2.0 (the "License")
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
@@ -20,12 +20,12 @@
package org.onap.so.bpmn.infrastructure.scripts
+import org.json.JSONArray
import org.json.JSONObject
import org.json.XML
import static org.apache.commons.lang3.StringUtils.*
import groovy.xml.XmlUtil
-import groovy.json.*
import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.bpmn.common.scripts.ExternalAPIUtil
@@ -37,7 +37,6 @@ import org.onap.so.bpmn.core.WorkflowException
import org.onap.so.bpmn.core.json.JsonUtils
import org.onap.so.bpmn.infrastructure.workflow.serviceTask.client.builder.AbstractBuilder
import org.onap.so.rest.APIResponse
-import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
import org.onap.so.bpmn.infrastructure.workflow.service.ServicePluginFactory
import java.util.UUID
import org.onap.so.logger.MsoLogger
@@ -77,26 +76,29 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String resourceInput = execution.getVariable("resourceInput")
msoLogger.info("The resourceInput is: " + resourceInput)
//Get ResourceInput Object
- ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
+ ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
// set local resourceInput
execution.setVariable(Prefix + "ResourceInput", resourceInputObj)
String resourceInstanceId = resourceInputObj.getResourceInstancenUuid()
+ String sppartnerId = resourceInstanceId
+ execution.setVariable(Prefix + "SppartnerId", sppartnerId)
// Get Sppartner from AAI
- AaiUtil aaiUriUtil = new AaiUtil(this)
+ AaiUtil aaiUriUtil = new AaiUtil()
String aai_uri = aaiUriUtil.getBusinessSPPartnerUri(execution)
String namespace = aaiUriUtil.getNamespaceFromUri(aai_uri)
String aai_endpoint = execution.getVariable("URN_aai_endpoint")
String serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(sppartnerId,"UTF-8")
- execution.setVariable(Prefix + "serviceAaiPath", serviceAaiPath)
+ execution.setVariable(Prefix + "ServiceAaiPath", serviceAaiPath)
getSPPartnerInAAI(execution)
String callSource = "UUI"
String sppartnerUrl = ""
- if(execution.getVariable(Prefix + "SuccessIndicator")) {
+ if(execution.hasVariable(Prefix + "CallSource")) {
callSource = execution.getVariable(Prefix + "CallSource")
+ sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
}
boolean is3rdONAPExist = false
@@ -131,15 +133,15 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
public void preProcessRequest(DelegateExecution execution){
msoLogger.info(" ***** Started preProcessRequest *****")
+ String msg = ""
+
try {
- ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
- String msg = ""
+ ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
String globalSubscriberId = resourceInputObj.getGlobalSubscriberId()
if (isBlank(globalSubscriberId)) {
msg = "Input globalSubscriberId is null"
- msoLogger.info( msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error( msg)
}
//set local variable
execution.setVariable("globalSubscriberId", globalSubscriberId)
@@ -148,8 +150,7 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String serviceType = resourceInputObj.getServiceType()
if (isBlank(serviceType)) {
msg = "Input serviceType is null"
- msoLogger.info( msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error( msg)
}
execution.setVariable("serviceType", serviceType)
msoLogger.info( "serviceType:" + serviceType)
@@ -157,26 +158,23 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String operationId = resourceInputObj.getOperationId()
if (isBlank(operationId)) {
msg = "Input operationId is null"
- msoLogger.info( msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error( msg)
}
execution.setVariable("operationId", operationId)
msoLogger.info( "operationId:" + operationId)
- String resourceName = resourceInputObj.getResourceInstanceName()
+ String resourceName = resourceInputObj.getResourceInstanceName()
if (isBlank(resourceName)) {
msg = "Input resourceName is null"
- msoLogger.info( msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error( msg)
}
execution.setVariable("resourceName", resourceName)
- msoLogger.info( "resourceInstanceId:" + resourceName)
+ msoLogger.info("resourceName:" + resourceName)
String resourceTemplateId = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
if (isBlank(resourceTemplateId)) {
msg = "Input resourceTemplateId is null"
- msoLogger.info( msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+ msoLogger.error( msg)
}
execution.setVariable("resourceTemplateId", resourceTemplateId)
msoLogger.info( "resourceTemplateId:" + resourceTemplateId)
@@ -184,7 +182,7 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
} catch (BpmnError e) {
throw e
} catch (Exception ex){
- String msg = "Exception in preProcessRequest " + ex.getMessage()
+ msg = "Exception in preProcessRequest " + ex.getMessage()
msoLogger.debug(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
@@ -227,7 +225,7 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
msoLogger.info(" ***** Started prepare3rdONAPRequest *****")
String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
- String extAPIPath = sppartnerUrl + 'serviceOrder'
+ String extAPIPath = sppartnerUrl + '/serviceOrder'
execution.setVariable("ExternalAPIURL", extAPIPath)
// ExternalAPI message format
@@ -238,8 +236,8 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String requestedCompletionDate = utils.generateCurrentTimeInUtc()
String priority = "1" // 0-4 0:highest
String subscriberId = execution.getVariable("globalSubscriberId")
- String customerRole = ""
- String subscriberName = ""
+ String customerRole = "ONAPcustomer"
+ String subscriberName = subscriberId
String referredType = "Consumer"
String orderItemId = "1"
String action = "delete" //for delete
@@ -249,7 +247,7 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String serviceId = execution.getVariable(Prefix + "SppartnerId")
queryServicefrom3rdONAP(execution)
- String serviceUuId = execution.getVariable(Prefix + "serviceSpecificationId")
+ String serviceSpecificationId = execution.getVariable(Prefix + "ServiceSpecificationId")
Map<String, String> valueMap = new HashMap<>()
valueMap.put("externalId", '"' + externalId + '"')
@@ -266,11 +264,10 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
valueMap.put("action", '"' + action + '"')
valueMap.put("serviceState", '"' + serviceState + '"')
valueMap.put("serviceId", '"' + serviceId + '"')
- valueMap.put("serviceName", '"' + serviceName + '"')
- valueMap.put("serviceType", '"' + serviceType + '"')
- valueMap.put("serviceUuId", '"' + serviceUuId + '"')
+ valueMap.put("serviceName", "null")
+ valueMap.put("serviceUuId", '"' + serviceSpecificationId + '"')
- ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil()
valueMap.put("_requestInputs_", "")
@@ -283,32 +280,45 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
{
msoLogger.info(" ***** Started queryServicefrom3rdONAP *****")
- //https://{api_url}/nbi/api/v1/service/{serviceinstanceid}
+ String globalSubscriberId = execution.getVariable("globalSubscriberId")
+ String SppartnerServiceId = execution.getVariable(Prefix + "SppartnerId")
+
+ //https://{api_url}/nbi/api/v1/service?relatedParty.id=${globalSubscriberId}
String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
- String extAPIPath = sppartnerUrl + "service/" + execution.setVariable(Prefix + "SppartnerId")
-
- ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+ String extAPIPath = sppartnerUrl + "/service?relatedParty.id=" + globalSubscriberId
+ msoLogger.debug("queryServicefrom3rdONAP externalAPIURL is: " + extAPIPath)
+
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil()
APIResponse response = externalAPIUtil.executeExternalAPIGetCall(execution, extAPIPath)
int responseCode = response.getStatusCode()
- execution.setVariable(Prefix + "getServiceResponseCode", responseCode)
- utils.log("DEBUG", "Get Service response code is: " + responseCode)
+ execution.setVariable(Prefix + "GetServiceResponseCode", responseCode)
+ msoLogger.debug("Get Service response code is: " + responseCode)
String extApiResponse = response.getResponseBodyAsString()
- JSONObject responseObj = new JSONObject(extApiResponse)
- execution.setVariable(Prefix + "getServiceResponse", extApiResponse)
+
+ execution.setVariable(Prefix + "GetServiceResponse", extApiResponse)
+ msoLogger.debug("queryServicefrom3rdONAP response body is: " + extApiResponse)
//Process Response //200 OK 201 CREATED 202 ACCEPTED
if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
{
- utils.log("DEBUG", "Get Service Received a Good Response")
- String serviceUuid = responseObj.get("serviceSpecification.id")
- execution.setVariable(Prefix + "serviceSpecificationId", serviceUuid)
+ msoLogger.debug("Get Service Received a Good Response")
+ JSONArray responseList = new JSONArray(extApiResponse)
+ for(JSONObject obj : responseList) {
+ String svcId = obj.get("id")
+ if(StringUtils.equalsIgnoreCase(SppartnerServiceId, svcId)) {
+ JSONObject serviceSpecification = obj.get("serviceSpecification")
+ String serviceUuid = serviceSpecification.get("id")
+ execution.setVariable(Prefix + "ServiceSpecificationId", serviceUuid)
+ break
+ }
+ }
}
else{
- utils.log("DEBUG", "Get Service Received a Bad Response Code. Response Code is: " + responseCode)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get Service Received a bad response from 3rdONAP External API")
+ msoLogger.error("Get Service Received a Bad Response Code. Response Code is: " + responseCode)
+// exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get Service Received a bad response from 3rdONAP External API")
}
msoLogger.info( "Exit " + queryServicefrom3rdONAP)
@@ -319,29 +329,35 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String extAPIPath = execution.getVariable("ExternalAPIURL")
String payload = execution.getVariable(Prefix + "Payload")
+ msoLogger.debug("doDeleteE2ESIin3rdONAP externalAPIURL is: " + extAPIPath)
+ msoLogger.debug("doDeleteE2ESIin3rdONAP payload is: " + payload)
- ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil()
APIResponse response = externalAPIUtil.executeExternalAPIPostCall(execution, extAPIPath, payload)
int responseCode = response.getStatusCode()
- execution.setVariable(Prefix + "postServiceOrderResponseCode", responseCode)
+ execution.setVariable(Prefix + "PostServiceOrderResponseCode", responseCode)
msoLogger.debug("Post ServiceOrder response code is: " + responseCode)
String extApiResponse = response.getResponseBodyAsString()
JSONObject responseObj = new JSONObject(extApiResponse)
- execution.setVariable(Prefix + "postServiceOrderResponse", extApiResponse)
+ execution.setVariable(Prefix + "PostServiceOrderResponse", extApiResponse)
+
+ msoLogger.debug("doDeleteE2ESIin3rdONAP response body is: " + extApiResponse)
+
//Process Response
if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
//200 OK 201 CREATED 202 ACCEPTED
{
msoLogger.debug("Post ServiceOrder Received a Good Response")
- String serviceOrderId = responseObj.get("ServiceOrderId")
+ String serviceOrderId = responseObj.get("id")
execution.setVariable(Prefix + "SuccessIndicator", true)
- execution.setVariable("serviceOrderId", serviceOrderId)
+ execution.setVariable("ServiceOrderId", serviceOrderId)
+ msoLogger.info("Post ServiceOrderid is: " + serviceOrderId)
}
else{
- msoLogger.debug("Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
+ msoLogger.error("Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Post ServiceOrder Received a bad response from 3rdONAP External API")
}
@@ -354,57 +370,85 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
String extAPIPath = execution.getVariable("ExternalAPIURL")
extAPIPath += "/" + execution.getVariable("ServiceOrderId")
+ msoLogger.debug("getE2ESIProgressin3rdONAP delete externalAPIURL is: " + extAPIPath)
- ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil()
APIResponse response = externalAPIUtil.executeExternalAPIGetCall(execution, extAPIPath)
int responseCode = response.getStatusCode()
- execution.setVariable(Prefix + "getServiceOrderResponseCode", responseCode)
+ execution.setVariable(Prefix + "GetServiceOrderResponseCode", responseCode)
msoLogger.debug("Get ServiceOrder response code is: " + responseCode)
String extApiResponse = response.getResponseBodyAsString()
JSONObject responseObj = new JSONObject(extApiResponse)
- execution.setVariable(Prefix + "getServiceOrderResponse", extApiResponse)
+ execution.setVariable(Prefix + "GetServiceOrderResponse", extApiResponse)
+ utils.log("DEBUG", "getE2ESIProgressin3rdONAP delete response body is: " + extApiResponse, isDebugEnabled)
+
//Process Response //200 OK 201 CREATED 202 ACCEPTED
- if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
+ if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
{
msoLogger.debug("Get ServiceOrder Received a Good Response")
- String serviceOrderState = responseObj.get("State")
+
+ String orderState = responseObj.get("state")
+ if("REJECTED".equalsIgnoreCase(orderState)) {
+ execution.setVariable("progress", 100)
+ execution.setVariable("status", "error")
+ execution.setVariable("statusDescription", "Delete Service Order Status is REJECTED")
+ return
+ }
+
+ JSONArray items = responseObj.getJSONArray("orderItem")
+ JSONObject item = items[0]
+ JSONObject service = item.get("service")
+ String sppartnerServiceId = service.get("id")
+ if(sppartnerServiceId == null || sppartnerServiceId.equals("null")) {
+ execution.setVariable("progress", 100)
+ execution.setVariable("status", "error")
+ execution.setVariable("statusDescription", "Delete Service Order Status get null sppartnerServiceId")
+ msoLogger.error("null sppartnerServiceId while getting progress from externalAPI")
+ return
+ }
+ execution.setVariable(Prefix + "SppartnerServiceId", sppartnerServiceId)
+
+ String serviceOrderState = item.get("state")
execution.setVariable(Prefix + "SuccessIndicator", true)
- execution.setVariable("serviceOrderState", serviceOrderState)
-
+ execution.setVariable("ServiceOrderState", serviceOrderState)
+
// Get serviceOrder State and process progress
if("ACKNOWLEDGED".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 15)
- execution.setVariable("status", "processing")
+ execution.setVariable("status", "processing")
+ execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
}
- if("INPROGRESS".equalsIgnoreCase(serviceOrderState)) {
+ else if("INPROGRESS".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 40)
execution.setVariable("status", "processing")
+ execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
}
- if("COMPLETED".equalsIgnoreCase(serviceOrderState)) {
+ else if("COMPLETED".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 100)
execution.setVariable("status", "finished")
+ execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
}
- if("FAILED".equalsIgnoreCase(serviceOrderState)) {
+ else if("FAILED".equalsIgnoreCase(serviceOrderState)) {
execution.setVariable("progress", 100)
execution.setVariable("status", "error")
+ execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
}
else {
execution.setVariable("progress", 100)
execution.setVariable("status", "error")
execution.setVariable("statusDescription", "Delete Service Order Status is unknown")
}
- execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
}
else{
msoLogger.debug("Get ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
execution.setVariable("progress", 100)
execution.setVariable("status", "error")
- execution.setVariable("statusDescription", "Get ServiceOrder Received a bad response")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get ServiceOrder Received a bad response from 3rdONAP External API")
+ execution.setVariable("statusDescription", "Get Delete ServiceOrder Received a bad response")
+ exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get Delete ServiceOrder Received a bad response from 3rdONAP External API")
}
msoLogger.info( "Exit " + getE2ESIProgressin3rdONAP)
@@ -417,15 +461,15 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
try {
Thread.sleep(5000)
} catch(InterruptedException e) {
- utils.log("ERROR", "Time Delay exception" + e )
+ msoLogger.error("Time Delay exception" + e )
}
}
private void getSPPartnerInAAI(DelegateExecution execution) {
- msoLogger.info(" ***** Started postDeleteE2ESIin3rdONAP *****")
+ msoLogger.info(" ***** Started getSPPartnerInAAI *****")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String serviceAaiPath = execution.getVariable(Prefix + "serviceAaiPath")
+ AaiUtil aaiUriUtil = new AaiUtil()
+ String serviceAaiPath = execution.getVariable(Prefix + "ServiceAaiPath")
APIResponse response = aaiUriUtil.executeAAIGetCall(execution, serviceAaiPath)
int responseCode = response.getStatusCode()
execution.setVariable(Prefix + "GetSppartnerResponseCode", responseCode)
@@ -444,13 +488,13 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
execution.setVariable(Prefix + "SuccessIndicator", true)
execution.setVariable(Prefix + "FoundIndicator", true)
- String sppartnerId = utils.getNodeText1(aaiResponse, "sppartner-id")
+ String sppartnerId = utils.getNodeText1(aaiResponse, "sp-partner-id")
execution.setVariable(Prefix + "SppartnerId", sppartnerId)
msoLogger.debug(" SppartnerId is: " + sppartnerId)
- String sppartnerUrl = utils.getNodeText1(aaiResponse, "sppartner-url")
+ String sppartnerUrl = utils.getNodeText1(aaiResponse, "url")
execution.setVariable(Prefix + "SppartnerUrl", sppartnerUrl)
msoLogger.debug(" SppartnerUrl is: " + sppartnerUrl)
- String callSource = utils.getNodeText1(aaiResponse, "sppartner-callsource")
+ String callSource = utils.getNodeText1(aaiResponse, "callsource")
execution.setVariable(Prefix + "CallSource", callSource)
msoLogger.debug(" CallSource is: " + callSource)
String sppartnerVersion = utils.getNodeText1(aaiResponse, "resource-version")
@@ -460,22 +504,22 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
else
{
msoLogger.debug("Get sppartner Received a Bad Response Code. Response Code is: " + responseCode)
- exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
- throw new BpmnError("MSOWorkflowException")
+// exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
+// throw new BpmnError("MSOWorkflowException")
}
- msoLogger.info( "Exit " + deleteSPPartnerInAAI)
+ msoLogger.info( "Exit " + getSPPartnerInAAI)
}
public void deleteSPPartnerInAAI(DelegateExecution execution) {
- msoLogger.info(" ***** Started postDeleteE2ESIin3rdONAP *****")
+ msoLogger.info(" ***** Started deleteSPPartnerInAAI *****")
String sppartnerId = execution.getVariable(Prefix + "SppartnerId")
- String sppartnerUrl = execution.getVariable(Prefix + "sppartnerUrl")
- String sppartnerVersion = execution.getVariable(Prefix + "sppartnerVersion")
+ String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
+ String sppartnerVersion = execution.getVariable(Prefix + "SppartnerVersion")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String serviceAaiPath = execution.getVariable(Prefix + "serviceAaiPath") + "?resource-version=${sppartnerVersion}"
+ AaiUtil aaiUriUtil = new AaiUtil()
+ String serviceAaiPath = execution.getVariable(Prefix + "ServiceAaiPath") + "?resource-version=${sppartnerVersion}"
APIResponse response = aaiUriUtil.executeAAIDeleteCall(execution, serviceAaiPath)
int responseCode = response.getStatusCode()
execution.setVariable(Prefix + "DeleteSppartnerResponseCode", responseCode)
@@ -486,8 +530,7 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
execution.setVariable(Prefix + "DeleteSppartnerResponse", aaiResponse)
//Process Response
- if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
- //200 OK 201 CREATED 202 ACCEPTED
+ if(responseCode == 200 || responseCode == 204 )
{
msoLogger.debug("Delete sppartner Received a Good Response")
execution.setVariable(Prefix + "SuccessIndicator", true)
@@ -499,13 +542,13 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
else
{
msoLogger.debug("Delete sppartner Received a Bad Response Code. Response Code is: " + responseCode)
- exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
- throw new BpmnError("MSOWorkflowException")
+// exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
+// throw new BpmnError("MSOWorkflowException")
}
msoLogger.info( "Exit " + deleteSPPartnerInAAI)
}
-
+
private void setProgressUpdateVariables(DelegateExecution execution, String body) {
def dbAdapterEndpoint = execution.getVariable("URN_mso_adapters_openecomp_db_endpoint")
execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)
@@ -514,8 +557,8 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
public void postProcess(DelegateExecution execution){
msoLogger.info(" ***** Started postProcess *****")
- String responseCode = execution.getVariable(Prefix + "putSppartnerResponseCode")
- String responseObj = execution.getVariable(Prefix + "putSppartnerResponse")
+ String responseCode = execution.getVariable(Prefix + "PutSppartnerResponseCode")
+ String responseObj = execution.getVariable(Prefix + "PutSppartnerResponse")
msoLogger.info("response from AAI for put sppartner, response code :" + responseCode + " response object :" + responseObj)
msoLogger.info(" ***** Exit postProcess *****")
@@ -535,7 +578,7 @@ public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcesso
} catch (Exception ex) {
String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
msoLogger.debug(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+// exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
msoLogger.debug(" ***** Exit sendSyncResopnse *****")
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy
index 5a21fd7396..71ce28d7d3 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteDeviceResource.groovy
@@ -25,7 +25,6 @@ import org.json.XML;
import static org.apache.commons.lang3.StringUtils.*;
import groovy.xml.XmlUtil
-import groovy.json.*
import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.bpmn.common.recipe.ResourceInput;
@@ -50,8 +49,8 @@ import org.onap.so.rest.APIResponse;
import org.onap.so.bpmn.common.scripts.AaiUtil
/**
- * This groovy class supports the <class>CreateDeviceResource.bpmn</class> process.
- * flow for Device Resource Create
+ * This groovy class supports the <class>DeleteDeviceResource.bpmn</class> process.
+ * flow for Device Resource Delete
*/
public class DeleteDeviceResource extends AbstractServiceTaskProcessor {
@@ -77,25 +76,21 @@ public class DeleteDeviceResource extends AbstractServiceTaskProcessor {
msoLogger.info("The resourceInput is: " + resourceInput)
//Get ResourceInput Object
ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
- execution.setVariable(Prefix + "resourceInput", resourceInputObj)
+ execution.setVariable(Prefix + "ResourceInput", resourceInputObj)
String resourceInputPrameters = resourceInputObj.getResourceParameters()
String inputParametersJson = jsonUtil.getJsonValue(resourceInputPrameters, "requestInputs")
- JSONObject inputParameters = new JSONObject(customizeResourceParam(inputParametersJson))
- execution.setVariable(Prefix + "resourceRequestInputs", inputParameters)
+ JSONObject inputParameters = new JSONObject(inputParametersJson)
+ execution.setVariable(Prefix + "ResourceRequestInputs", inputParameters)
//Deal with recipeParams
String recipeParamsFromWf = execution.getVariable("recipeParamXsd")
String resourceName = resourceInputObj.getResourceInstanceName()
- //For sdnc requestAction default is "createNetworkInstance"
- String operationType = "Network"
- if(!StringUtils.isBlank(recipeParamsFromRequest)){
- //the operationType from worflow(first node) is second priority.
- operationType = jsonUtil.getJsonValue(recipeParamsFromRequest, "operationType")
- }
- if(!StringUtils.isBlank(recipeParamsFromWf)){
- //the operationType from worflow(first node) is highest priority.
- operationType = jsonUtil.getJsonValue(recipeParamsFromWf, "operationType")
- }
+
+ String resourceInstanceId = resourceInputObj.getResourceInstancenUuid()
+ String deviceId = resourceInstanceId
+ execution.setVariable(Prefix + "DeviceId", deviceId)
+
+ getDeviceInAAI(execution)
execution.setVariable(Prefix + "serviceInstanceId", resourceInputObj.getServiceInstanceId())
execution.setVariable("mso-request-id", requestId)
@@ -104,35 +99,58 @@ public class DeleteDeviceResource extends AbstractServiceTaskProcessor {
throw e;
} catch (Exception ex){
String msg = "Exception in preProcessRequest " + ex.getMessage()
- msoLogger.debug( msg)
+ msoLogger.debug(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
}
- String customizeResourceParam(String networkInputParametersJson) {
- List<Map<String, Object>> paramList = new ArrayList();
- JSONObject jsonObject = new JSONObject(networkInputParametersJson);
- Iterator iterator = jsonObject.keys();
- while (iterator.hasNext()) {
- String key = iterator.next();
- HashMap<String, String> hashMap = new HashMap();
- hashMap.put("name", key);
- hashMap.put("value", jsonObject.get(key))
- paramList.add(hashMap)
- }
- Map<String, List<Map<String, Object>>> paramMap = new HashMap();
- paramMap.put("param", paramList);
-
- return new JSONObject(paramMap).toString();
- }
+ private void getDeviceInAAI(DelegateExecution execution) {
+ msoLogger.info(" ***** Started getDeviceInAAI *****")
+
+ String deviceId = execution.getVariable(Prefix + "DeviceId")
+ AaiUtil aaiUriUtil = new AaiUtil()
+ String aai_uri = aaiUriUtil.getNetworkDeviceUri(execution)
+ String aai_endpoint = execution.getVariable("URN_aai_endpoint")
+ String serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(deviceId,"UTF-8")
+ execution.setVariable(Prefix + "ServiceAaiPath", serviceAaiPath)
+
+ APIResponse response = aaiUriUtil.executeAAIGetCall(execution, serviceAaiPath)
+ int responseCode = response.getStatusCode()
+ execution.setVariable(Prefix + "GetDeviceResponseCode", responseCode)
+ msoLogger.debug(" Get device response code is: " + responseCode)
+
+ String aaiResponse = response.getResponseBodyAsString()
+ aaiResponse = StringEscapeUtils.unescapeXml(aaiResponse)
+ aaiResponse = aaiResponse.replaceAll("&", "&amp;")
+ execution.setVariable(Prefix + "GetDeviceResponse", aaiResponse)
+
+ //Process Response
+ if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
+ //200 OK 201 CREATED 202 ACCEPTED
+ {
+ msoLogger.debug("GET Device Received a Good Response")
+ execution.setVariable(Prefix + "SuccessIndicator", true)
+ execution.setVariable(Prefix + "FoundIndicator", true)
+
+ String devClass = utils.getNodeText1(aaiResponse, "device_class")
+ execution.setVariable(Prefix + "DeviceClass", devClass)
+ msoLogger.debug(" DeviceClass is: " + devClass)
+
+ }
+ else
+ {
+ msoLogger.debug("Get DeviceInAAI Received a Bad Response Code. Response Code is: " + responseCode)
+
+ }
+
+ msoLogger.info(" ***** Exit getDeviceInAAI *****")
+ }
public void checkDevType(DelegateExecution execution){
- utils.log("INFO"," ***** Started checkDevType *****")
+ msoLogger.info(" ***** Started checkDevType *****")
try {
- JSONObject inputParameters = execution.getVariable(Prefix + "resourceRequestInputs")
-
- String devType = inputParameters.get("device_class")
+ String devType = execution.getVariable(Prefix + "DeviceClass")
if(StringUtils.isBlank(devType)) {
devType = "OTHER"
@@ -147,8 +165,47 @@ public class DeleteDeviceResource extends AbstractServiceTaskProcessor {
}
}
+ private void setProgressUpdateVariables(DelegateExecution execution, String body) {
+ def dbAdapterEndpoint = execution.getVariable("URN_mso_adapters_openecomp_db_endpoint")
+ execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)
+ execution.setVariable("CVFMI_updateResOperStatusRequest", body)
+ }
+
+ public void prepareUpdateProgress(DelegateExecution execution) {
+ msoLogger.info(" ***** Started prepareUpdateProgress *****")
+ ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
+ String operType = resourceInputObj.getOperationType()
+ String resourceCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
+ String ServiceInstanceId = resourceInputObj.getServiceInstanceId()
+ String modelName = resourceInputObj.getResourceModelInfo().getModelName()
+ String operationId = resourceInputObj.getOperationId()
+ String progress = execution.getVariable("progress")
+ String status = execution.getVariable("status")
+ String statusDescription = execution.getVariable("statusDescription")
+
+ String body = """
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ns:updateResourceOperationStatus>
+ <operType>${operType}</operType>
+ <operationId>${operationId}</operationId>
+ <progress>${progress}</progress>
+ <resourceTemplateUUID>${resourceCustomizationUuid}</resourceTemplateUUID>
+ <serviceId>${ServiceInstanceId}</serviceId>
+ <status>${status}</status>
+ <statusDescription>${statusDescription}</statusDescription>
+ </ns:updateResourceOperationStatus>
+ </soapenv:Body>
+ </soapenv:Envelope>"""
+
+ setProgressUpdateVariables(execution, body)
+ msoLogger.info(" ***** Exit prepareUpdateProgress *****")
+ }
+
public void getVNFTemplatefromSDC(DelegateExecution execution){
- utils.log("INFO"," ***** Started getVNFTemplatefromSDC *****")
+ msoLogger.info(" ***** Started getVNFTemplatefromSDC *****")
try {
// To do
@@ -161,7 +218,7 @@ public class DeleteDeviceResource extends AbstractServiceTaskProcessor {
}
public void postVNFInfoProcess(DelegateExecution execution){
- utils.log("INFO"," ***** Started postVNFInfoProcess *****")
+ msoLogger.info(" ***** Started postVNFInfoProcess *****")
try {
// To do
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy
index 26b0fea6a2..4b848024d6 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy
@@ -332,38 +332,6 @@ public class DoCreateE2EServiceInstance extends AbstractServiceTaskProcessor {
}
}
-
- public void saveServiceInputToAAI(DelegateExecution execution) {
- AaiUtil aaiUriUtil = new AaiUtil(this)
-
- // create url for AAI requestInput
- String aai_uri = aaiUriUtil.getAAIServiceInstanceUri(execution)
- String namespace = aaiUriUtil.getNamespaceFromUri(aai_uri)
-
- String serviceInstanceId = execution.getVariable("serviceInstanceId")
- String serviceInstanceName = execution.getVariable("serviceInstanceName")
- String serviceType = execution.getVariable("serviceType")
- String uuiRequest = execution.getVariable("uuiRequest")
-
- String payload =
- """< xmlns=\"${namespace}\">
- <service-instance>
- <service-instance-id>${serviceInstanceId}</service-instance-id>
- <service-instance-name>${serviceInstanceName}</service-instance-name>
- <service-type>${serviceType}</service-type>
- <customer-request>${uuiRequest}</customer-request>
- </service-instance>""".trim()
- utils.logAudit(payload)
-
- String aai_endpoint = execution.getVariable("URN_aai_endpoint")
- String serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(serviceInstanceId,"UTF-8")
-
- APIResponse response = aaiUriUtil.executeAAIPutCall(execution, serviceAaiPath, payload)
- int responseCode = response.getStatusCode()
- execution.setVariable(Prefix + "PutSppartnerResponseCode", responseCode)
- }
-
-
public void postProcessAAIGET2(DelegateExecution execution) {
msoLogger.trace("postProcessAAIGET2 ")
String msg = ""
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
index 17dbe50cc5..482da23b33 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
@@ -104,7 +104,7 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
String serviceModelUUID = execution.getVariable("modelUuid")
- List<Resource> addResourceList = execution.getVariable("addResourceList")
+ List<Resource> addResourceList = execution.getVariable("addResourceList")
List<NetworkResource> networkResourceList = new ArrayList<NetworkResource>()
@@ -149,17 +149,22 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
}
String isContainsWanResource = networkResourceList.isEmpty() ? "false" : "true"
+ //if no networkResource, get SDNC config from properties file
+ if( "false".equals(isContainsWanResource)) {
+ String serviceNeedSDNC = "mso.workflow.custom." + serviceModelName + ".sdnc.need";
+ isContainsWanResource = BPMNProperties.getProperty(serviceNeedSDNC, isContainsWanResource)
+ }
+
execution.setVariable("isContainsWanResource", isContainsWanResource)
execution.setVariable("currentResourceIndex", 0)
execution.setVariable("sequencedResourceList", sequencedResourceList)
msoLogger.info("sequencedResourceList: " + sequencedResourceList)
msoLogger.trace("COMPLETED sequenceResoure Process ")
- }
-
+ }
+
public prepareServiceTopologyRequest(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
- utils.log("INFO", "======== Start prepareServiceTopologyRequest Process ======== ", isDebugEnabled)
+ msoLogger.trace("======== Start prepareServiceTopologyRequest Process ======== ")
String serviceDecompose = execution.getVariable("serviceDecomposition")
@@ -174,7 +179,7 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
execution.setVariable("modelUuid", serviceUuid)
execution.setVariable("serviceModelName", serviceModelName)
- utils.log("INFO", "======== End prepareServiceTopologyRequest Process ======== ", isDebugEnabled)
+ msoLogger.trace("======== End prepareServiceTopologyRequest Process ======== ")
}
public void getCurrentResoure(DelegateExecution execution){
@@ -205,7 +210,7 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
msoLogger.trace("Start prepareResourceRecipeRequest Process ")
ResourceInput resourceInput = new ResourceInput()
String serviceInstanceName = execution.getVariable("serviceInstanceName")
- String resourceType = execution.getVariable("resourceType")
+ String resourceType = execution.getVariable("resourceType")
String resourceInstanceName = resourceType + "_" + serviceInstanceName
resourceInput.setResourceInstanceName(resourceInstanceName)
msoLogger.info("Prepare Resource Request resourceInstanceName:" + resourceInstanceName)
@@ -252,19 +257,19 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
String requestAction = "createInstance"
JSONObject resourceRecipe = cutils.getResourceRecipe(execution, resourceInput.getResourceModelInfo().getModelUuid(), requestAction)
- if (resourceRecipe != null) {
- String recipeURL = BPMNProperties.getProperty("bpelURL", "http://mso:8080") + resourceRecipe.getString("orchestrationUri")
- int recipeTimeOut = resourceRecipe.getInt("recipeTimeout")
- String recipeParamXsd = resourceRecipe.get("paramXSD")
- HttpResponse resp = BpmnRestClient.post(recipeURL, requestId, recipeTimeOut, requestAction, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
- } else {
- String exceptionMessage = "Resource receipe is not found for resource modeluuid: " +
+ if (resourceRecipe != null) {
+ String recipeURL = BPMNProperties.getProperty("bpelURL", "http://mso:8080") + resourceRecipe.getString("orchestrationUri")
+ int recipeTimeOut = resourceRecipe.getInt("recipeTimeout")
+ String recipeParamXsd = resourceRecipe.get("paramXSD")
+ HttpResponse resp = BpmnRestClient.post(recipeURL, requestId, recipeTimeOut, requestAction, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
+ } else {
+ String exceptionMessage = "Resource receipe is not found for resource modeluuid: " +
resourceInput.getResourceModelInfo().getModelUuid()
- msoLogger.trace(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, exceptionMessage)
- }
+ msoLogger.trace(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 500, exceptionMessage)
+ }
- msoLogger.trace("======== end executeResourceRecipe Process ======== ")
+ msoLogger.trace("======== end executeResourceRecipe Process ======== ")
}catch(BpmnError b){
msoLogger.debug("Rethrowing MSOWorkflowException")
throw b
@@ -273,7 +278,7 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured during DoCreateResources executeResourceRecipe Catalog")
}
}
-
+
public void postConfigRequest(DelegateExecution execution){
//now do noting
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
index 76dba27890..66bd1ece90 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
@@ -28,13 +28,15 @@ import org.apache.commons.lang3.*
import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.json.JSONArray
-import org.json.JSONObject;
+import org.json.JSONObject
+import org.onap.so.bpmn.common.scripts.AaiUtil
import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.bpmn.common.scripts.MsoUtils
import org.onap.so.bpmn.core.WorkflowException
import org.onap.so.bpmn.core.domain.Resource
-import org.onap.so.bpmn.core.domain.ServiceDecomposition;
+import org.onap.so.bpmn.core.domain.ServiceDecomposition
+import org.onap.so.rest.APIResponse
import org.onap.so.bpmn.core.json.JsonUtils
import org.springframework.web.util.UriUtils;
import org.w3c.dom.Document
@@ -314,9 +316,9 @@ public class DoDeleteE2EServiceInstance extends AbstractServiceTaskProcessor {
JSONObject jObj = new JSONObject()
def relation = utils.nodeToString(node)
- def rt = utils.getNodeText1(relation, "related-to")
+ def rt = utils.getNodeText(relation, "related-to")
- def rl = utils.getNodeText1(relation, "related-link")
+ def rl = utils.getNodeText(relation, "related-link")
utils.log("INFO", "ServiceInstance Related NS/Configuration :" + rl, isDebugEnabled)
def rl_datas = utils.getIdenticalChildren(node, "relationship-data")
@@ -331,16 +333,13 @@ public class DoDeleteE2EServiceInstance extends AbstractServiceTaskProcessor {
jObj.put("resourceInstanceId", eValue)
}
// for sp-partner and others
- else if(eKey.equals(rt + ".id")){
- jObj.put("resourceInstanceId", eValue)
- String resourceName = rt + eValue;
- jObj.put("resourceType", resourceName)
- }
- else if(eKey.equals(rt + ".id")){
+ else if(eKey.endsWith("-id")){
jObj.put("resourceInstanceId", eValue)
String resourceName = rt + eValue;
jObj.put("resourceType", resourceName)
}
+
+ jObj.put("resourceLinkUrl", rl)
}
def rl_props = utils.getIdenticalChildren(node, "related-to-property")
@@ -398,6 +397,71 @@ public class DoDeleteE2EServiceInstance extends AbstractServiceTaskProcessor {
}
}
+ private void generateRelatedResourceInfo(String response, JSONObject jObj){
+
+ def xml = new XmlSlurper().parseText(response)
+ def rtn = xml.childNodes()
+ while (rtn.hasNext()) {
+ groovy.util.slurpersupport.Node node = rtn.next()
+ def key = node.name()
+ def value = node.text()
+ jObj.put(key, value)
+ }
+ }
+
+ private JSONObject getRelatedResourceInAAI (DelegateExecution execution, JSONObject jObj)
+ {
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ utils.log("INFO"," ***** Started getRelatedResourceInAAI *****", isDebugEnabled)
+
+ AaiUtil aaiUriUtil = new AaiUtil()
+ String aai_endpoint = execution.getVariable("URN_aai_endpoint")
+ String urlLink = jObj.get("resourceLinkUrl")
+ String serviceAaiPath = "${aai_endpoint}${urlLink}"
+ APIResponse response = aaiUriUtil.executeAAIGetCall(execution, serviceAaiPath)
+ int responseCode = response.getStatusCode()
+ execution.setVariable(Prefix + "GeRelatedResourceResponseCode", responseCode)
+ utils.log("DEBUG", " Get RelatedResource code is: " + responseCode, isDebugEnabled)
+
+ String aaiResponse = response.getResponseBodyAsString()
+ aaiResponse = StringEscapeUtils.unescapeXml(aaiResponse)
+ aaiResponse = aaiResponse.replaceAll("&", "&amp;")
+ execution.setVariable(Prefix + "GetRelatedResourceResponse", aaiResponse)
+
+ //Process Response
+ if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
+ //200 OK 201 CREATED 202 ACCEPTED
+ {
+ utils.log("DEBUG", "GET RelatedResource Received a Good Response", isDebugEnabled)
+ execution.setVariable(Prefix + "SuccessIndicator", true)
+ execution.setVariable(Prefix + "FoundIndicator", true)
+
+ generateRelatedResourceInfo(aaiResponse, jObj)
+
+ //get model-invariant-uuid and model-uuid
+ String modelInvariantId = ""
+ String modelUuid = ""
+ String modelCustomizationId = ""
+ if(jObj.has("model-invariant-id")) {
+ modelInvariantId = jObj.get("model-invariant-id")
+ modelUuid = jObj.get("model-version-id")
+ modelCustomizationId = jObj.get("model-customization-id")
+ }
+
+ jObj.put("modelInvariantId", modelInvariantId)
+ jObj.put("modelVersionId", modelUuid)
+ jObj.put("modelCustomizationId", modelCustomizationId)
+ }
+ else
+ {
+ utils.log("ERROR", "Get RelatedResource Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+ }
+
+ utils.log("INFO", " ***** Exit getRelatedResourceInAAI *****", isDebugEnabled)
+ return jObj;
+
+ }
+
public void postDecomposeService(DelegateExecution execution) {
def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
@@ -417,27 +481,38 @@ public class DoDeleteE2EServiceInstance extends AbstractServiceTaskProcessor {
if (serviceRelationShip != null) {
relationShipList = jsonSlurper.parseText(serviceRelationShip)
}
-
- List<Resource> deleteRealResourceList = new ArrayList<Resource>();
+
+ List<Resource> deleteRealResourceList = new ArrayList<Resource>()
//Set the real resource instance id to the decomosed resource list
- for (Resource resource: deleteResourceList) {
- //reset the resource instance id , because in the decompose flow ,its a random one.
- resource.setResourceId("");
- //match the resource-instance-name and the model name
- if (relationShipList != null) {
- relationShipList.each {
- if (StringUtils.containsIgnoreCase(it.resourceType, resource.getModelInfo().getModelName())) {
- resource.setResourceId(it.resourceInstanceId)
+ //reset the resource instance id , because in the decompose flow ,its a random one.
+ //match the resource-instance-name and the model name
+ if (relationShipList != null) {
+ relationShipList.each {
+
+ JSONObject obj = getRelatedResourceInAAI(execution, (JSONObject)it)
+
+ for (Resource resource : deleteResourceList) {
+
+ String modelName = resource.getModelInfo().getModelName()
+
+ String modelCustomizationUuid = resource.getModelInfo().getModelCustomizationUuid()
+ if (StringUtils.containsIgnoreCase(obj.get("resourceType"), modelName)) {
+ resource.setResourceId(obj.get("resourceInstanceId"))
+ deleteRealResourceList.add(resource)
+ }
+ else if (modelCustomizationUuid.equals(obj.get("modelCustomizationId"))) {
+ resource.setResourceId(obj.get("resourceInstanceId"))
+ resource.setResourceInstanceName(obj.get("resourceType"))
deleteRealResourceList.add(resource)
}
}
}
- }
-
+ }
+
// only delete real existing resources
execution.setVariable("deleteResourceList", deleteRealResourceList)
-
+
utils.log("DEBUG", "delete resource list : " + deleteRealResourceList, isDebugEnabled)
} catch (Exception ex) {
String exceptionMessage = "Bpmn error encountered in create generic e2e service flow. processDecomposition() - " + ex.getMessage()
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy
index a5a96f3bd3..cf0bd3f6fe 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy
@@ -150,8 +150,11 @@ public class DoDeleteResourcesV1 extends AbstractServiceTaskProcessor {
// get delete resource list and order list
List<Resource> delResourceList = execution.getVariable("deleteResourceList")
+
+ ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
+ String serviceModelName = serviceDecomposition.getModelInfo().getModelName();
- def resourceSequence = BPMNProperties.getResourceSequenceProp()
+ def resourceSequence = BPMNProperties.getResourceSequenceProp(serviceModelName)
if(resourceSequence != null) {
for (resourceType in resourceSequence.reverse()) {
@@ -186,6 +189,11 @@ public class DoDeleteResourcesV1 extends AbstractServiceTaskProcessor {
}
String isContainsWanResource = wanResources.isEmpty() ? "false" : "true"
+ //if no networkResource, get SDNC config from properties file
+ if( "false".equals(isContainsWanResource)) {
+ String serviceNeedSDNC = "mso.workflow.custom." + serviceModelName + ".sdnc.need";
+ isContainsWanResource = BPMNProperties.getProperty(serviceNeedSDNC, isContainsWanResource)
+ }
execution.setVariable("isContainsWanResource", isContainsWanResource)
execution.setVariable("currentResourceIndex", 0)
execution.setVariable("sequencedResourceList", sequencedResourceList)
@@ -244,7 +252,7 @@ public class DoDeleteResourcesV1 extends AbstractServiceTaskProcessor {
resourceInput.setResourceInstanceName(currentResource.getResourceInstanceName())
resourceInput.setResourceInstancenUuid(currentResource.getResourceId())
resourceInput.setOperationId(execution.getVariable("operationId"))
- resourceInput.setOperationType(execution.getVariable("operationType"))
+ resourceInput.setOperationType(execution.getVariable("operationType"))
String globalSubscriberId = execution.getVariable("globalSubscriberId")
resourceInput.setGlobalSubscriberId(globalSubscriberId)
resourceInput.setResourceModelInfo(currentResource.getModelInfo());
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/service/ServicePluginFactory.java b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/service/ServicePluginFactory.java
index 39df3d62ae..5fe28b918b 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/service/ServicePluginFactory.java
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/service/ServicePluginFactory.java
@@ -21,6 +21,7 @@
package org.onap.so.bpmn.infrastructure.workflow.service;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -54,6 +55,7 @@ import org.onap.so.bpmn.common.scripts.AaiUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
+import org.springframework.web.util.UriUtils;
public class ServicePluginFactory {
@@ -79,6 +81,10 @@ public class ServicePluginFactory {
}
return instance;
}
+
+ private ServicePluginFactory() {
+
+ }
private String getInventoryOSSEndPoint(){
return UrnPropertiesReader.getVariable("mso.service-plugin.inventory-oss-endpoint", INVENTORY_OSS_DEFAULT_ENDPOINT);
@@ -110,13 +116,18 @@ public class ServicePluginFactory {
return newRequest;
}
- List<Resource> addResourceList = serviceDecomposition.getServiceResources();
+ List<Resource> addResourceList = new ArrayList<Resource>();
+ addResourceList.addAll(serviceDecomposition.getServiceResources());
+
+ serviceDecomposition.setVnfResources(null);
+ serviceDecomposition.setAllottedResources(null);
+ serviceDecomposition.setNetworkResources(null);
+ serviceDecomposition.setConfigResources(null);
for (Resource resource : addResourceList) {
String resourcemodelName = resource.getModelInfo().getModelName();
- if (!StringUtils.containsIgnoreCase(resourcemodelName, "sp-partner")
- || !StringUtils.containsIgnoreCase(resourcemodelName, "sppartner")) {
+ if (StringUtils.containsIgnoreCase(resourcemodelName, "sppartner")) {
// change serviceDecomposition
- serviceDecomposition.deleteResource(resource);
+ serviceDecomposition.addResource(resource);
break;
}
}
@@ -149,7 +160,7 @@ public class ServicePluginFactory {
accessTPInfo.put("access-ltp-id", tpInfoMap.get("access-ltp-id"));
// change resources
- String resourceName = (String) accessTPInfo.get("resourceName");
+ String resourceName = (String) tpInfoMap.get("resourceName");
for(Object curResource : resources) {
Map<String, Object> resource = (Map<String, Object>)curResource;
String curResourceName = (String) resource.get("resourceName");
@@ -165,9 +176,9 @@ public class ServicePluginFactory {
@SuppressWarnings("unchecked")
private Map<String, Object> getTPforVPNAttachment(Map<String, Object> serviceRequestInputs) {
- Object location = "";
- Object clientSignal = "";
- String vpnAttachmentResourceName = "";
+ Object location = null;
+ Object clientSignal = null;
+ String vpnAttachmentResourceName = null;
// support R2 uuiReq and R1 uuiReq
// logic for R2 uuiRequest params in service level
@@ -185,7 +196,7 @@ public class ServicePluginFactory {
Map<String, Object> tpInfoMap = new HashMap<String, Object>();
// Site resource has location param and SOTNAttachment resource has clientSignal param
- if("".equals(location) || "".equals(clientSignal) ) {
+ if(location == null || clientSignal == null ) {
return tpInfoMap;
}
@@ -193,9 +204,16 @@ public class ServicePluginFactory {
String locationAddress = (String) location;
List<Object> locationTPList = queryAccessTPbyLocationFromInventoryOSS(locationAddress);
if(locationTPList != null && !locationTPList.isEmpty()) {
- tpInfoMap = (Map<String, Object>) locationTPList.get(0);
- // add resourceName
- tpInfoMap.put("resourceName", vpnAttachmentResourceName);
+ for(Object tp: locationTPList) {
+ Map<String, Object> tpJson = (Map<String, Object>) tp;
+ String loc = (String)tpJson.get ("location");
+ if(StringUtils.equalsIgnoreCase (locationAddress, loc)) {
+ tpInfoMap = tpJson;
+ // add resourceName
+ tpInfoMap.put("resourceName", vpnAttachmentResourceName);
+ break;
+ }
+ }
LOGGER.debug("Get Terminal TP from InventoryOSS");
return tpInfoMap;
}
@@ -205,11 +223,14 @@ public class ServicePluginFactory {
@SuppressWarnings("unchecked")
private List<Object> queryAccessTPbyLocationFromInventoryOSS(String locationAddress) {
- Map<String, String> locationSrc = new HashMap<String, String>();
- locationSrc.put("location", locationAddress);
- String reqContent = getJsonString(locationSrc);
String url = getInventoryOSSEndPoint();
- String responseContent = sendRequest(url, "POST", reqContent);
+ try {
+ url += "/oss/inventory?location=" + UriUtils.encode(locationAddress,"UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ String responseContent = sendRequest(url, "GET", "");
List<Object> accessTPs = new ArrayList<Object>();
if (null != responseContent) {
accessTPs = getJsonObject(responseContent, List.class);
@@ -227,8 +248,14 @@ public class ServicePluginFactory {
if(resource.containsKey("parameters")) {
Map<String, Object> resParametersObject = (Map<String, Object>) resource.get("parameters");
if(resParametersObject.containsKey("requestInputs")) {
- Map<String, Object> resRequestInputs = (Map<String, Object>) resourceParametersObject.get("requestInputs");
- resRequestInputs.putAll(resourceInputs);
+ Map<String, Object> resRequestInputs = (Map<String, Object>) resourceRequestInputs.get("requestInputs");
+ Map<String, Object> oldRequestInputs = (Map<String, Object>) resParametersObject.get("requestInputs");
+ if(oldRequestInputs != null) {
+ oldRequestInputs.putAll(resRequestInputs);
+ }
+ else {
+ resParametersObject.put("requestInputs", resRequestInputs);
+ }
}
else {
resParametersObject.putAll(resourceRequestInputs);
@@ -267,14 +294,20 @@ public class ServicePluginFactory {
if("ExternalAPI".equalsIgnoreCase(callSource)) {
return false;
}
- }
- return true;
+ }
+ for (String input : serviceRequestInputs.keySet())
+ {
+ if(input.toLowerCase().contains("sotnconnectivity")) {
+ return true;
+ }
+ }
+ return false;
}
@SuppressWarnings("unchecked")
private void allocateCrossTPResources(DelegateExecution execution, Map<String, Object> serviceRequestInputs) {
- AaiUtil aai = new AaiUtil(null);
+ AaiUtil aai = new AaiUtil();
Map<String, Object> crossTPs = aai.getTPsfromAAI(execution);
if(crossTPs == null || crossTPs.isEmpty()) {
@@ -584,6 +617,8 @@ public class ServicePluginFactory {
} else if ("GET".equals(methodType.toUpperCase())) {
HttpGet httpGet = new HttpGet(msbUrl);
httpGet.setConfig(requestConfig);
+ httpGet.addHeader("X-FromAppId", "MSO");
+ httpGet.addHeader("Accept","application/json");
method = httpGet;
} else if ("DELETE".equals(methodType.toUpperCase())) {
HttpDelete httpDelete = new HttpDelete(msbUrl);