summaryrefslogtreecommitdiffstats
path: root/bpmn/so-bpmn-infrastructure-common/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/so-bpmn-infrastructure-common/src/main')
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSDNCNetworkResource.groovy294
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy482
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeActivateSDNCNetworkResource.groovy269
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteSDNCNetworkResource.groovy358
4 files changed, 838 insertions, 565 deletions
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSDNCNetworkResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSDNCNetworkResource.groovy
index 545cba7f8c..c48d000ab3 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSDNCNetworkResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ActivateSDNCNetworkResource.groovy
@@ -32,14 +32,16 @@ import org.onap.so.bpmn.core.json.JsonUtils
import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
import org.onap.so.logger.MsoLogger
+import org.onap.so.bpmn.common.scripts.MsoUtils
+import org.onap.so.logger.MsoLogger
/**
* This groovy class supports the <class>ActivateSDNCCNetworkResource.bpmn</class> process.
* flow for SDNC Network Resource Activate
*/
public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
- private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, CreateSDNCNetworkResource.class);
-
+ private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, ActivateSDNCNetworkResource.class);
+
String Prefix = "ACTSDNCRES_"
ExceptionUtil exceptionUtil = new ExceptionUtil()
@@ -48,18 +50,19 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ MsoUtils msoUtils = new MsoUtils()
+
+
public void preProcessRequest(DelegateExecution execution) {
- msoLogger.trace("Started preProcessRequest ")
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started preProcessRequest *****")
try {
//get bpmn inputs from resource request.
String requestId = execution.getVariable("mso-request-id")
String requestAction = execution.getVariable("requestAction")
- msoLogger.info("The requestAction is: " + requestAction)
String recipeParamsFromRequest = execution.getVariable("recipeParams")
- msoLogger.info("The recipeParams is: " + recipeParamsFromRequest)
String resourceInput = execution.getVariable("resourceInput")
- msoLogger.info("The resourceInput is: " + resourceInput)
//Get ResourceInput Object
ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
execution.setVariable(Prefix + "resourceInput", resourceInputObj)
@@ -78,9 +81,41 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
operationType = jsonUtil.getJsonValue(recipeParamsFromWf, "operationType")
}
- // TODO: based on the resource type decide action and operation type
String sdnc_svcAction = "activate"
- operationType = "SOTNConnectivity"
+ switch (resourceInputObj.getResourceModelInfo().getModelName()) {
+ case ~/[\w\s\W]*SOTNConnectivity[\w\s\W]*/ :
+ operationType = "SOTNConnectivity"
+ break
+
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
+ operationType = "SOTNAttachment"
+ break
+
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/ :
+ operationType = "Site"
+ break
+
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ operationType = "SDWANDevice"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ operationType = "SDWANPort"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SDWANConnectivity[\w\s\W]*/ :
+ operationType = "SDWANConnectivity"
+ break
+
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ operationType = "SDWANAttachment"
+ break
+
+ default:
+ break
+ }
String sdnc_requestAction = StringUtils.capitalize(sdnc_svcAction) + operationType +"Instance"
execution.setVariable(Prefix + "svcAction", sdnc_svcAction)
@@ -92,38 +127,39 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
throw e;
} catch (Exception ex){
msg = "Exception in preProcessRequest " + ex.getMessage()
- msoLogger.debug(msg)
+ msoLogger.debug( msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
}
public void prepareUpdateAfterActivateSDNCResource(DelegateExecution execution) {
- msoLogger.trace("started prepareUpdateAfterActivateSDNCResource ")
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info("started prepareUpdateAfterActivateSDNCResource ")
ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
String operType = resourceInputObj.getOperationType()
String resourceCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
String ServiceInstanceId = resourceInputObj.getServiceInstanceId()
String operationId = resourceInputObj.getOperationId()
- String progress = "100"
- String status = "finished"
- String statusDescription = "SDCN resource creation completed"
+ String progress = "80"
+ String status = "activated"
+ String statusDescription = "SDCN resource activation completed"
execution.getVariable("operationId")
String body = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:ns="http://org.onap.so/requestsdb">
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
<soapenv:Header/>
<soapenv:Body>
<ns:updateResourceOperationStatus>
- <operType>${MsoUtils.xmlEscape(operType)}</operType>
- <operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <progress>${MsoUtils.xmlEscape(progress)}</progress>
- <resourceTemplateUUID>${MsoUtils.xmlEscape(resourceCustomizationUuid)}</resourceTemplateUUID>
- <serviceId>${MsoUtils.xmlEscape(ServiceInstanceId)}</serviceId>
- <status>${MsoUtils.xmlEscape(status)}</status>
- <statusDescription>${MsoUtils.xmlEscape(statusDescription)}</statusDescription>
+ <operType>${msoUtils.xmlEncode(operType)}</operType>
+ <operationId>${msoUtils.xmlEncode(operationId)}</operationId>
+ <progress>${msoUtils.xmlEncode(progress)}</progress>
+ <resourceTemplateUUID>${msoUtils.xmlEncode(resourceCustomizationUuid)}</resourceTemplateUUID>
+ <serviceId>${msoUtils.xmlEncode(ServiceInstanceId)}</serviceId>
+ <status>${msoUtils.xmlEncode(status)}</status>
+ <statusDescription>${msoUtils.xmlEncode(statusDescription)}</statusDescription>
</ns:updateResourceOperationStatus>
</soapenv:Body>
</soapenv:Envelope>""";
@@ -131,8 +167,32 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
setProgressUpdateVariables(execution, body)
}
+ 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)
+ }
+
+ 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 prepareSDNCRequest (DelegateExecution execution) {
- msoLogger.trace("Started prepareSDNCRequest ")
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info("Started prepareSDNCRequest ")
try {
// get variables
@@ -141,11 +201,13 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
String sdncCallback = execution.getVariable("URN_mso_workflow_sdncadapter_callback")
String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String parentServiceInstanceId = execution.getVariable("parentServiceInstanceId")
String hdrRequestId = execution.getVariable("mso-request-id")
String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
String source = execution.getVariable("source")
String sdnc_service_id = execution.getVariable(Prefix + "sdncServiceId")
ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
+ String networkInstanceId = execution.getVariable("networkInstanceId")
String serviceType = resourceInputObj.getServiceType()
String serviceModelInvariantUuid = resourceInputObj.getServiceModelInfo().getModelInvariantUuid()
String serviceModelUuid = resourceInputObj.getServiceModelInfo().getModelUuid()
@@ -165,172 +227,169 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
String sdncTopologyActivateRequest = ""
switch (modelName) {
- case ~/^Site$/:
- sdncTopologyActivateRequest =
- """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
- xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/:
+ sdncTopologyActivateRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
+ xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
+ <subscriber-name>${msoUtils.xmlEncode(globalCustomerId)}</subscriber-name>
</service-information>
<vnf-information>
- <vnf-id></vnf-id>
+ <vnf-id>${msoUtils.xmlEncode(networkInstanceId)}</vnf-id>
<vnf-type></vnf-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</vnf-information>
- <vnf-input-parameters>
- <param>${MsoUtils.xmlEscape(netowrkInputParameters)}</param>
- </vnf-input-parameters>
<vnf-request-input>
- <request-version></request-version>
- <vnf-name></vnf-name>
- <neutron-id></neutron-id>
- <contrail-network-fqdn></contrail-network-fqdn>
- <subnets-data>
- <subnet-data>
- <element>
- <ip-version></ip-version>
- <subnet-id></subnet-id>
- </subnet-data>
- </subnets-data>
- </vnf-request-input>
+ <vnf-input-parameters>
+ $netowrkInputParameters
+ </vnf-input-parameters>
+ <request-version></request-version>
+ <vnf-name></vnf-name>
+ <vnf-networks>
+ </vnf-networks>
+ </vnf-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
- case ~/^SOTNAttachment$/:
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/:
sdncTopologyActivateRequest =
"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>connection-attachment-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
</service-information>
<allotted-resource-information>
<!-- TODO: to be filled as per the request input -->
- <allotted-resource-input></allotted-resource-input>
+ <allotted-resource-id>${msoUtils.xmlEncode(networkInstanceId)}</allotted-resource-id>
<allotted-resource-type></allotted-resource-type>
- <parent-service-instance-id><parent-service-instance-id>
+ <parent-service-instance-id>$parentServiceInstanceId</parent-service-instance-id>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</allotted-resource-information>
<connection-attachment-request-input>
- <param>${MsoUtils.xmlEscape(netowrkInputParameters)}</param>
+ $netowrkInputParameters
</connection-attachment-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
+ // for SDWANConnectivity and SOTN Connectivity
default:
sdncTopologyActivateRequest =
"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
<sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
</service-information>
<network-information>
<!-- TODO: to be filled by response from create -->
- <network-id></network-id>
+ <network-id>${msoUtils.xmlEncode(networkInstanceId)}</network-id>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</network-information>
<network-request-input>
- <network-input-parameters>${MsoUtils.xmlEscape(netowrkInputParameters)}</network-input-parameters>
+ <network-input-parameters>$netowrkInputParameters</network-input-parameters>
</network-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
@@ -338,21 +397,20 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
}
String sdncTopologyActivateRequesAsString = utils.formatXml(sdncTopologyActivateRequest)
- msoLogger.debug(sdncTopologyActivateRequesAsString)
execution.setVariable("sdncAdapterWorkflowRequest", sdncTopologyActivateRequesAsString)
- msoLogger.debug("sdncAdapterWorkflowRequest - " + "\n" + sdncTopologyActivateRequesAsString)
} catch (Exception ex) {
String exceptionMessage = " Bpmn error encountered in CreateSDNCCNetworkResource flow. prepareSDNCRequest() - " + ex.getMessage()
- msoLogger.debug(exceptionMessage)
+ msoLogger.debug( exceptionMessage)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
}
- msoLogger.trace("Exit prepareSDNCRequest ")
+ msoLogger.info(" ***** Exit prepareSDNCRequest *****")
}
- public void postCreateSDNCCall(DelegateExecution execution) {
- msoLogger.trace("started postCreateSDNCCall ")
+ public void postActivateSDNCCall(DelegateExecution execution) {
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info("started postCreateSDNCCall ")
String responseCode = execution.getVariable(Prefix + "sdncCreateReturnCode")
String responseObj = execution.getVariable(Prefix + "SuccessIndicator")
@@ -361,24 +419,22 @@ public class ActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
}
public void sendSyncResponse(DelegateExecution execution) {
- msoLogger.trace("started sendSyncResponse ")
-
def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- utils.log("DEBUG", " *** sendSyncResponse *** ", isDebugEnabled)
+ msoLogger.dubug(" *** sendSyncResponse *** ")
try {
String operationStatus = "finished"
// RESTResponse for main flow
String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
- utils.log("DEBUG", " sendSyncResponse to APIH:" + "\n" + resourceOperationResp, isDebugEnabled)
+ msoLogger.dubug(" sendSyncResponse to APIH:" + "\n" + resourceOperationResp)
sendWorkflowResponse(execution, 202, resourceOperationResp)
execution.setVariable("sentSyncResponse", true)
} catch (Exception ex) {
String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
- utils.log("DEBUG", msg, isDebugEnabled)
+ msoLogger.debug( msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
- utils.log("DEBUG"," ***** Exit sendSyncResopnse *****", isDebugEnabled)
+ msoLogger.dubug(" ***** Exit sendSyncResopnse *****")
}
} \ No newline at end of file
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy
index c819da4be4..5255b37bb0 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy
@@ -20,40 +20,54 @@
package org.onap.so.bpmn.infrastructure.scripts
+import org.json.JSONObject
+import org.json.XML
+import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiResponse;
+
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;
+import org.onap.so.bpmn.common.resource.ResourceRequestBuilder
+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.common.scripts.MsoUtils
+import org.onap.so.bpmn.common.scripts.AaiUtil
-import org.apache.commons.lang3.*
-import org.camunda.bpm.engine.delegate.BpmnError
+import java.util.UUID;
+
+import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.json.JSONObject
-import org.json.XML;
-import org.onap.so.bpmn.common.recipe.ResourceInput;
-import org.onap.so.bpmn.common.resource.ResourceRequestBuilder
-import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
-import org.onap.so.bpmn.common.scripts.ExceptionUtil
+import org.apache.commons.lang3.*
import org.onap.so.bpmn.common.scripts.MsoUtils
-import org.onap.so.bpmn.core.json.JsonUtils
import org.onap.so.logger.MsoLogger
-import groovy.json.*
-
/**
* This groovy class supports the <class>CreateSDNCCNetworkResource.bpmn</class> process.
* flow for SDNC Network Resource Create
*/
public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
- private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, CreateSDNCNetworkResource.class);
+ private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, CreateSDNCNetworkResource.class);
String Prefix="CRESDNCRES_"
-
+
ExceptionUtil exceptionUtil = new ExceptionUtil()
JsonUtils jsonUtil = new JsonUtils()
-
+
+ MsoUtils msoUtils = new MsoUtils()
+
public void preProcessRequest(DelegateExecution execution){
- msoLogger.trace("Started preProcessRequest ")
- try {
-
+
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started preProcessRequest *****")
+ try {
+
//get bpmn inputs from resource request.
String requestId = execution.getVariable("mso-request-id")
String requestAction = execution.getVariable("requestAction")
@@ -65,12 +79,12 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
//Get ResourceInput Object
ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
execution.setVariable(Prefix + "resourceInput", resourceInputObj)
-
+
//Deal with recipeParams
String recipeParamsFromWf = execution.getVariable("recipeParamXsd")
- String resourceName = resourceInputObj.getResourceInstanceName()
+ String resourceName = resourceInputObj.getResourceInstanceName()
//For sdnc requestAction default is "createNetworkInstance"
- String operationType = "Network"
+ String operationType = "Network"
if(!StringUtils.isBlank(recipeParamsFromRequest)){
//the operationType from worflow(first node) is second priority.
operationType = jsonUtil.getJsonValue(recipeParamsFromRequest, "operationType")
@@ -79,27 +93,70 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
//the operationType from worflow(first node) is highest priority.
operationType = jsonUtil.getJsonValue(recipeParamsFromWf, "operationType")
}
-
-
+
+
//For sdnc, generate svc_action and request_action
String sdnc_svcAction = "create"
- if(StringUtils.containsIgnoreCase(resourceInputObj.getResourceInstanceName(), "overlay")){
- //This will be resolved in R3.
- sdnc_svcAction ="activate"
- operationType = "NCINetwork"
+ switch (resourceInputObj.getResourceInstanceName()) {
+
+ case ~/[\w\s\W]*overlay[\w\s\W]*/ :
+ //This will be resolved in R3.
+ sdnc_svcAction ="activate"
+ operationType = "NCINetwork"
+ break
+
+ case ~/[\w\s\W]*underlay[\w\s\W]*/ :
+ //This will be resolved in R3.
+ operationType ="Network"
+ break
+
+ case ~/[\w\s\W]*SOTNConnectivity[\w\s\W]*/ :
+ operationType = "SOTNConnectivity"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
+ operationType = "SOTNAttachment"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/ :
+ operationType = "Site"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ operationType = "SDWANDevice"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ operationType = "SDWANPort"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SDWANConnectivity[\w\s\W]*/ :
+ operationType = "SDWANConnectivity"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ operationType = "SDWANAttachment"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ default:
+ break
}
- if(StringUtils.containsIgnoreCase(resourceInputObj.getResourceInstanceName(), "underlay")){
- //This will be resolved in R3.
- operationType ="Network"
- }
- String sdnc_requestAction = StringUtils.capitalize(sdnc_svcAction) + operationType +"Instance"
- execution.setVariable(Prefix + "svcAction", sdnc_svcAction)
+
+ String sdnc_requestAction = StringUtils.capitalize(sdnc_svcAction) + operationType +"Instance"
+ execution.setVariable(Prefix + "svcAction", sdnc_svcAction)
execution.setVariable(Prefix + "requestAction", sdnc_requestAction)
execution.setVariable(Prefix + "serviceInstanceId", resourceInputObj.getServiceInstanceId())
execution.setVariable("mso-request-id", requestId)
execution.setVariable("mso-service-instance-id", resourceInputObj.getServiceInstanceId())
//TODO Here build networkrequest
-
+
} catch (BpmnError e) {
throw e;
} catch (Exception ex){
@@ -108,7 +165,7 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
}
-
+
String customizeResourceParam(String networkInputParametersJson) {
List<Map<String, Object>> paramList = new ArrayList();
JSONObject jsonObject = new JSONObject(networkInputParametersJson);
@@ -125,7 +182,65 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
return new JSONObject(paramMap).toString();
}
-
+
+ /**
+ * This method updates the resource input by collecting required info from AAI
+ * @param execution
+ */
+ public void updateResourceInput(DelegateExecution execution) {
+ ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
+ String modelName = resourceInputObj.getResourceModelInfo().getModelName()
+
+ switch (modelName) {
+ case ~/[\w\s\W]*SOTNConnectivity[\w\s\W]*/:
+
+ def resourceInput = resourceInputObj.getResourceParameters()
+ String incomingRequest = resourceInputObj.getRequestsInputs()
+ String serviceParameters = JsonUtils.getJsonValue(incomingRequest, "service.parameters")
+ String requestInputs = JsonUtils.getJsonValue(serviceParameters, "requestInputs")
+ JSONObject inputParameters = new JSONObject(requestInputs)
+ if(inputParameters.has("local-access-provider-id")) {
+ String uResourceInput = jsonUtil.addJsonValue(resourceInput, "requestInputs.access-provider-id", inputParameters.get("local-access-provider-id"))
+ uResourceInput = jsonUtil.addJsonValue(uResourceInput, "requestInputs.access-client-id", inputParameters.get("local-access-client-id"))
+ uResourceInput = jsonUtil.addJsonValue(uResourceInput, "requestInputs.access-topology-id", inputParameters.get("local-access-topology-id"))
+ uResourceInput = jsonUtil.addJsonValue(uResourceInput, "requestInputs.access-ltp-id", inputParameters.get("local-access-ltp-id"))
+ uResourceInput = jsonUtil.addJsonValue(uResourceInput, "requestInputs.access-node-id", inputParameters.get("local-access-node-id"))
+ resourceInputObj.setResourceParameters(uResourceInput)
+ execution.setVariable(Prefix + "resourceInput", resourceInputObj)
+ }
+
+ break
+
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
+ // fill attachment TP in networkInputParamJson
+ String customer = resourceInputObj.getGlobalSubscriberId()
+ String serviceType = resourceInputObj.getServiceType()
+
+ def vpnName = StringUtils.containsIgnoreCase(modelName, "sotnvpnattachment") ? "sotnvpnattachmentvf_sotncondition_sotnVpnName" : "sdwanvpnattachmentvf_sdwancondition_sdwanVpnName"
+ String parentServiceName = jsonUtil.getJsonValueForKey(resourceInputObj.getRequestsInputs(), vpnName)
+
+ AaiUtil aaiUtil = new AaiUtil(this)
+ String aai_endpoint = execution.getVariable("URN_aai_endpoint")
+ String customerUri = aaiUtil.getBusinessCustomerUri(execution) + "/" + customer
+ String aai_service_query_url = aai_endpoint + customerUri + "/service-subscriptions/service-subscription/" + serviceType + "/service-instances?service-instance-name=" + parentServiceName
+
+ APIResponse aaiResponse = aaiUtil.executeAAIGetCall(execution, aai_service_query_url)
+ def parentServiceInstanceId = getParentServiceInstnaceId(aaiResponse)
+ execution.setVariable("parentServiceInstanceId", parentServiceInstanceId)
+ break
+
+ default:
+ break
+ }
+ }
+
+ private String getParentServiceInstnaceId(APIResponse aaiResponse) {
+ String response = aaiResponse.getResponseBodyAsString()
+ def xmlResp = new XmlParser().parseText(response)
+ return "${xmlResp?."service-instance"[0]?."service-instance-id"[0]?.text()}"
+ }
+
/**
* Pre Process the BPMN Flow Request
* Inclouds:
@@ -133,15 +248,17 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
* generate the nsParameters
*/
public void prepareSDNCRequest (DelegateExecution execution) {
- msoLogger.trace("Started prepareSDNCRequest ")
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started prepareSDNCRequest *****")
try {
// get variables
- String sdnc_svcAction = execution.getVariable(Prefix + "svcAction")
+ String sdnc_svcAction = execution.getVariable(Prefix + "svcAction")
String sdnc_requestAction = execution.getVariable(Prefix + "requestAction")
String sdncCallback = execution.getVariable("URN_mso_workflow_sdncadapter_callback")
String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String parentServiceInstanceId = execution.getVariable("parentServiceInstanceId")
String hdrRequestId = execution.getVariable("mso-request-id")
String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
String source = execution.getVariable("source")
@@ -166,176 +283,173 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
String sdncTopologyCreateRequest = ""
switch (modelName) {
- case ~/^Site$/:
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/:
sdncTopologyCreateRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
+ <subscriber-name>${msoUtils.xmlEncode(globalCustomerId)}</subscriber-name>
</service-information>
- <subscriber-name>${MsoUtils.xmlEscape(globalCustomerId)}</subscriber-name>
<vnf-information>
- <!-- TODO: to be filled as per the request input -->
<vnf-id></vnf-id>
<vnf-type></vnf-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
- </network-information>
- <vnf-input-parameters>
- <network-input-parameters>${MsoUtils.xmlEscape(netowrkInputParameters)}</network-input-parameters>
- </vnf-input-parameters>
+ </vnf-information>
<vnf-request-input>
- <request-version></request-version>
- <vnf-name></vnf-name>
- <neutron-id></neutron-id>
- <contrail-network-fqdn></contrail-network-fqdn>
- <subnets-data>
- <subnet-data>
- <element>
- <ip-version></ip-version>
- <subnet-id></subnet-id>
- </subnet-data>
- </subnets-data>
- </vnf-request-input>
+ <vnf-input-parameters>
+ $netowrkInputParameters
+ </vnf-input-parameters>
+ <request-version></request-version>
+ <vnf-name></vnf-name>
+ <vnf-networks>
+ </vnf-networks>
+ </vnf-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
- case ~/^SOTNAttachment$/:
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
sdncTopologyCreateRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>connection-attachment-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
+ <subscriber-name>${msoUtils.xmlEncode(globalCustomerId)}</subscriber-name>
</service-information>
- <subscriber-name>${MsoUtils.xmlEscape(globalCustomerId)}</subscriber-name>
<allotted-resource-information>
<!-- TODO: to be filled as per the request input -->
+ <allotted-resource-id></allotted-resource-id>
<allotted-resource-type></allotted-resource-type>
- <parent-service-instance-id><parent-service-instance-id>
+ <parent-service-instance-id>$parentServiceInstanceId</parent-service-instance-id>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</allotted-resource-information>
<connection-attachment-request-input>
- <param>${MsoUtils.xmlEscape(netowrkInputParameters)}</param>
+ $netowrkInputParameters
</connection-attachment-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
+ // for SDWANConnectivity and SOTNConnectivity:
default:
sdncTopologyCreateRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:RequestId>${hdrRequestId}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
<sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
</service-information>
<network-information>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</network-information>
<network-request-input>
- <network-input-parameters>${MsoUtils.xmlEscape(netowrkInputParameters)}</network-input-parameters>
+ <network-input-parameters>$netowrkInputParameters</network-input-parameters>
</network-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
}
-
+
String sndcTopologyCreateRequesAsString = utils.formatXml(sdncTopologyCreateRequest)
- msoLogger.debug(sndcTopologyCreateRequesAsString)
+ utils.logAudit(sndcTopologyCreateRequesAsString)
execution.setVariable("sdncAdapterWorkflowRequest", sndcTopologyCreateRequesAsString)
msoLogger.debug("sdncAdapterWorkflowRequest - " + "\n" + sndcTopologyCreateRequesAsString)
@@ -345,8 +459,8 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
}
- msoLogger.trace("Exit prepareSDNCRequest ")
- }
+ msoLogger.info(" ***** Exit prepareSDNCRequest *****")
+ }
private void setProgressUpdateVariables(DelegateExecution execution, String body) {
def dbAdapterEndpoint = execution.getVariable("URN_mso_adapters_openecomp_db_endpoint")
@@ -368,17 +482,17 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
String body = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:ns="http://org.onap.so/requestsdb">
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
<soapenv:Header/>
<soapenv:Body>
<ns:updateResourceOperationStatus>
- <operType>${MsoUtils.xmlEscape(operType)}</operType>
- <operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <progress>${MsoUtils.xmlEscape(progress)}</progress>
- <resourceTemplateUUID>${MsoUtils.xmlEscape(resourceCustomizationUuid)}</resourceTemplateUUID>
- <serviceId>${MsoUtils.xmlEscape(ServiceInstanceId)}</serviceId>
- <status>${MsoUtils.xmlEscape(status)}</status>
- <statusDescription>${MsoUtils.xmlEscape(statusDescription)}</statusDescription>
+ <operType>${msoUtils.xmlEncode(operType)}</operType>
+ <operationId>${msoUtils.xmlEncode(operationId)}</operationId>
+ <progress>${msoUtils.xmlEncode(progress)}</progress>
+ <resourceTemplateUUID>${msoUtils.xmlEncode(resourceCustomizationUuid)}</resourceTemplateUUID>
+ <serviceId>${msoUtils.xmlEncode(ServiceInstanceId)}</serviceId>
+ <status>${msoUtils.xmlEncode(status)}</status>
+ <statusDescription>${msoUtils.xmlEncode(statusDescription)}</statusDescription>
</ns:updateResourceOperationStatus>
</soapenv:Body>
</soapenv:Envelope>""";
@@ -395,23 +509,23 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
String operationId = resourceInputObj.getOperationId()
String progress = "100"
String status = "finished"
- String statusDescription = "SDCN resource creation completed"
+ String statusDescription = "SDCN resource creation and activation completed"
execution.getVariable("operationId")
String body = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:ns="http://org.onap.so/requestsdb">
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
<soapenv:Header/>
<soapenv:Body>
<ns:updateResourceOperationStatus>
- <operType>${MsoUtils.xmlEscape(operType)}</operType>
- <operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <progress>${MsoUtils.xmlEscape(progress)}</progress>
- <resourceTemplateUUID>${MsoUtils.xmlEscape(resourceCustomizationUuid)}</resourceTemplateUUID>
- <serviceId>${MsoUtils.xmlEscape(ServiceInstanceId)}</serviceId>
- <status>${MsoUtils.xmlEscape(status)}</status>
- <statusDescription>${MsoUtils.xmlEscape(statusDescription)}</statusDescription>
+ <operType>${msoUtils.xmlEncode(operType)}</operType>
+ <operationId>${msoUtils.xmlEncode(operationId)}</operationId>
+ <progress>${msoUtils.xmlEncode(progress)}</progress>
+ <resourceTemplateUUID>${msoUtils.xmlEncode(resourceCustomizationUuid)}</resourceTemplateUUID>
+ <serviceId>${msoUtils.xmlEncode(ServiceInstanceId)}</serviceId>
+ <status>${msoUtils.xmlEncode(status)}</status>
+ <statusDescription>${msoUtils.xmlEncode(statusDescription)}</statusDescription>
</ns:updateResourceOperationStatus>
</soapenv:Body>
</soapenv:Envelope>""";
@@ -419,32 +533,70 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
setProgressUpdateVariables(execution, body)
}
- public void postCreateSDNCCall(DelegateExecution execution){
- msoLogger.trace("Started prepareSDNCRequest ")
+ public void afterCreateSDNCCall(DelegateExecution execution){
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started prepareSDNCRequest *****")
String responseCode = execution.getVariable(Prefix + "sdncCreateReturnCode")
String responseObj = execution.getVariable(Prefix + "SuccessIndicator")
-
+
+ def isActivateRequried = execution.getVariable("isActivateRequired")
+ if (StringUtils.equalsIgnoreCase(isActivateRequried, "true")) {
+ def instnaceId = getInstnaceId(execution)
+ execution.setVariable("networkInstanceId", instnaceId)
+ }
+
msoLogger.info("response from sdnc, response code :" + responseCode + " response object :" + responseObj)
- msoLogger.trace("Exit prepareSDNCRequest ")
+ msoLogger.info(" ***** Exit prepareSDNCRequest *****")
+ }
+
+ private def getInstnaceId(DelegateExecution execution) {
+ def responce = new XmlSlurper().parseText(execution.getVariable("CRENWKI_createSDNCResponse"))
+ def data = responce.toString()
+ data = data.substring(data.indexOf("<"))
+
+ def resp = new XmlSlurper().parseText(data)
+ ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
+ String modelName = resourceInputObj.getResourceModelInfo().getModelName()
+ def val = ""
+
+ switch (modelName) {
+ case ~/[\w\s\W]*SOTNConnectivity[\w\s\W]*/ :
+ case ~/[\w\s\W]*SDWANConnectivity[\w\s\W]*/ :
+ val = resp."network-response-information"."instance-id"
+ break
+
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*Site[\w\s\W]*/:
+ val = resp."vnf-response-information"."instance-id"
+ break
+
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/:
+ val = resp."connection-attachment-response-information"."instance-id"
+ break
+ }
+
+ return val.toString()
+ }
+
+ public void sendSyncResponse (DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ msoLogger.debug(" *** sendSyncResponse *** ")
+
+ try {
+ String operationStatus = "finished"
+ // RESTResponse for main flow
+ String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
+ msoLogger.debug(" sendSyncResponse to APIH:" + "\n" + resourceOperationResp)
+ sendWorkflowResponse(execution, 202, resourceOperationResp)
+ execution.setVariable("sentSyncResponse", true)
+
+ } catch (Exception ex) {
+ String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
+ msoLogger.debug(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ msoLogger.debug(" ***** Exit sendSyncResopnse *****")
}
-
- public void sendSyncResponse (DelegateExecution execution) {
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- utils.log("DEBUG", " *** sendSyncResponse *** ", isDebugEnabled)
-
- try {
- String operationStatus = "finished"
- // RESTResponse for main flow
- String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
- utils.log("DEBUG", " sendSyncResponse to APIH:" + "\n" + resourceOperationResp, isDebugEnabled)
- sendWorkflowResponse(execution, 202, resourceOperationResp)
- execution.setVariable("sentSyncResponse", true)
-
- } catch (Exception ex) {
- String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
- utils.log("DEBUG", msg, isDebugEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
- }
- utils.log("DEBUG"," ***** Exit sendSyncResopnse *****", isDebugEnabled)
- }
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeActivateSDNCNetworkResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeActivateSDNCNetworkResource.groovy
index a63aad14a2..b6ea9f3fef 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeActivateSDNCNetworkResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeActivateSDNCNetworkResource.groovy
@@ -32,14 +32,15 @@ import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.so.bpmn.core.json.JsonUtils
import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
+import org.onap.so.bpmn.common.scripts.MsoUtils
+import org.onap.so.logger.MsoLogger
/**
* This groovy class supports the <class>ActivateSDNCCNetworkResource.bpmn</class> process.
* flow for SDNC Network Resource Activate
*/
public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor {
- private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL,
- CreateSDNCNetworkResource.class);
+ private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, DeActivateSDNCNetworkResource.class);
String Prefix = "DEACTSDNCRES_"
ExceptionUtil exceptionUtil = new ExceptionUtil()
@@ -48,21 +49,22 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ MsoUtils msoUtils = new MsoUtils()
+
public void preProcessRequest(DelegateExecution execution) {
- msoLogger.info(" ***** started preProcessRequest*****")
+
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started preProcessRequest *****")
try {
//get bpmn inputs from resource request.
String requestId = execution.getVariable("mso-request-id")
String requestAction = execution.getVariable("requestAction")
- msoLogger.info("The requestAction is: " + requestAction)
String recipeParamsFromRequest = execution.getVariable("recipeParams")
- msoLogger.info("The recipeParams is: " + recipeParamsFromRequest)
String resourceInput = execution.getVariable("resourceInput")
- msoLogger.info("The resourceInput is: " + resourceInput)
//Get ResourceInput Object
- org.onap.so.bpmn.common.recipe.ResourceInput resourceInputObj = org.onap.so.bpmn.common.resource.ResourceRequestBuilder.getJsonObject(resourceInput, org.onap.so.bpmn.common.recipe.ResourceInput.class)
+ ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
execution.setVariable(Prefix + "resourceInput", resourceInputObj)
//Deal with recipeParams
@@ -82,7 +84,40 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
// TODO: based on the resource type decide action and operation type
String sdnc_svcAction = "deactivate"
- operationType = "SOTNConnectivity"
+ switch (resourceInputObj.getResourceModelInfo().getModelName()) {
+ case ~/[\w\s\W]*SOTNConnectivity[\w\s\W]*/ :
+ operationType = "SOTNConnectivity"
+ break
+
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
+ operationType = "SOTNAttachment"
+ break
+
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/ :
+ operationType = "Site"
+ break
+
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ operationType = "SDWANDevice"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SDWANConnectivity[\w\s\W]*/ :
+ operationType = "SDWANConnectivity"
+ break
+
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ operationType = "SDWANAttachment"
+ break
+
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ operationType = "SDWANPort"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ default:
+ break
+ }
String sdnc_requestAction = StringUtils.capitalize(sdnc_svcAction) + operationType +"Instance"
execution.setVariable(Prefix + "svcAction", sdnc_svcAction)
@@ -102,7 +137,8 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
}
public void prepareSDNCRequest(DelegateExecution execution) {
- msoLogger.info(" ***** started prepareSDNCRequest *****")
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started prepareSDNCRequest *****")
try {
// get variables
@@ -115,7 +151,7 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
String source = execution.getVariable("source")
String sdnc_service_id = execution.getVariable(Prefix + "sdncServiceId")
- org.onap.so.bpmn.common.recipe.ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
+ ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
String serviceType = resourceInputObj.getServiceType()
String serviceModelInvariantUuid = resourceInputObj.getServiceModelInfo().getModelInvariantUuid()
String serviceModelUuid = resourceInputObj.getServiceModelInfo().getModelUuid()
@@ -127,175 +163,164 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
String modelUuid = resourceInputObj.getResourceModelInfo().getModelUuid()
String modelName = resourceInputObj.getResourceModelInfo().getModelName()
String modelVersion = resourceInputObj.getResourceModelInfo().getModelVersion()
+ String resourceInstnaceId = resourceInputObj.getResourceInstancenUuid()
// 1. prepare assign topology via SDNC Adapter SUBFLOW call
String sdncTopologyDeleteRequest = ""
switch (modelName) {
- case ~/^Site$/:
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/:
sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
- <subscriber-name></subscriber-name>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
+ <subscriber-name>${msoUtils.xmlEncode(globalCustomerId)}</subscriber-name>
</service-information>
<vnf-information>
- <!-- TODO: to be filled as per the request input -->
- <vnf-id></vnf-id>
+ <vnf-id>$resourceInstnaceId</vnf-id>
<vnf-type></vnf-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
- </network-information>
+ </vnf-information>
<vnf-request-input>
- <request-version></request-version>
- <vnf-name></vnf-name>
- <vnf-networks>
- <vnf-network>
- <network-role></network-role>
- <network-name></network-name>
- <neutron-id></neutron-id>
- <network-id></network-id>
- <contrail-network-fqdn></contrail-network-fqdn>
- <subnets-data>
- <subnet-data>
- <ip-version></ip-version>
- <subnet-id></subnet-id>
- </subnet-data>
- </subnets-data>
- </vnf-network>
+ <vnf-input-parameters>
+ </vnf-input-parameters>
+ <request-version></request-version>
+ <vnf-name></vnf-name>
+ <vnf-networks>
</vnf-networks>
- </vnf-request-input>
- <vnf-input-parameters>
- <param></param>
- </vnf-input-parameters>
+ </vnf-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
- case ~/^SOTNAttachment$/:
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>connection-attachment-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
<subscriber-name></subscriber-name>
</service-information>
<allotted-resource-information>
- <!-- TODO: to be filled as per the request input -->
- <allotted-resource-id></allotted-resource-id>
+ <allotted-resource-id>$resourceInstnaceId</allotted-resource-id>
<allotted-resource-type></allotted-resource-type>
<parent-service-instance-id></parent-service-instance-id>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</allotted-resource-information>
<connection-attachment-request-input>
- <param></param>
</connection-attachment-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
+
default:
sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
<sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
</service-information>
<network-information>
+ <network-id>$resourceInstnaceId</network-id>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</network-information>
<network-request-input>
@@ -305,10 +330,10 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
}
- String sndcTopologyDeleteRequesAsString = utils.formatXml(sdncTopologyDeleteRequest)
- utils.logAudit(sndcTopologyDeleteRequesAsString)
- execution.setVariable("sdncAdapterWorkflowRequest", sndcTopologyDeleteRequesAsString)
- msoLogger.info("sdncAdapterWorkflowRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
+ String sdncTopologyDeleteRequesAsString = utils.formatXml(sdncTopologyDeleteRequest)
+ utils.logAudit(sdncTopologyDeleteRequesAsString)
+ execution.setVariable("sdncAdapterWorkflowRequest", sdncTopologyDeleteRequesAsString)
+ msoLogger.info("sdncAdapterWorkflowRequest - " + "\n" + sdncTopologyDeleteRequesAsString)
} catch (Exception ex) {
String exceptionMessage = " Bpmn error encountered in DeleteSDNCCNetworkResource flow. prepareSDNCRequest() - " + ex.getMessage()
@@ -320,32 +345,30 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
}
public void prepareUpdateAfterDeActivateSDNCResource(DelegateExecution execution) {
- msoLogger.info("***** started prepareUpdateAfterDeActivateSDNCResource *****")
-
ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
String operType = resourceInputObj.getOperationType()
String resourceCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
String serviceInstanceId = resourceInputObj.getServiceInstanceId()
String operationId = resourceInputObj.getOperationId()
- String progress = "100"
- String status = "finished"
- String statusDescription = "SDCN resource delete completed"
+ String progress = "50"
+ String status = "deactivated"
+ String statusDescription = "SDCN resource deactivation completed"
//String operationId = execution.getVariable("operationId")
String body = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:ns="http://org.onap.so/requestsdb">
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
<soapenv:Header/>
<soapenv:Body>
<ns:updateResourceOperationStatus>
- <operType>${MsoUtils.xmlEscape(operType)}</operType>
- <operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <progress>${MsoUtils.xmlEscape(progress)}</progress>
- <resourceTemplateUUID>${MsoUtils.xmlEscape(resourceCustomizationUuid)}</resourceTemplateUUID>
- <serviceId>${MsoUtils.xmlEscape(serviceInstanceId)}</serviceId>
- <status>${MsoUtils.xmlEscape(status)}</status>
- <statusDescription>${MsoUtils.xmlEscape(statusDescription)}</statusDescription>
+ <operType>${msoUtils.xmlEncode(operType)}</operType>
+ <operationId>${msoUtils.xmlEncode(operationId)}</operationId>
+ <progress>${msoUtils.xmlEncode(progress)}</progress>
+ <resourceTemplateUUID>${msoUtils.xmlEncode(resourceCustomizationUuid)}</resourceTemplateUUID>
+ <serviceId>${msoUtils.xmlEncode(serviceInstanceId)}</serviceId>
+ <status>${msoUtils.xmlEncode(status)}</status>
+ <statusDescription>${msoUtils.xmlEncode(statusDescription)}</statusDescription>
</ns:updateResourceOperationStatus>
</soapenv:Body>
</soapenv:Envelope>""";
@@ -353,9 +376,15 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
setProgressUpdateVariables(execution, body)
}
+ 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 postDeactivateSDNCCall(DelegateExecution execution) {
- msoLogger.info(" ***** started postDeactivateSDNCCall *****")
- String responseCode = execution.getVariable(Prefix + "sdncDeleteReturnCode")
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started prepareSDNCRequest *****") String responseCode = execution.getVariable(Prefix + "sdncDeleteReturnCode")
String responseObj = execution.getVariable(Prefix + "SuccessIndicator")
msoLogger.info("response from sdnc, response code :" + responseCode + " response object :" + responseObj)
@@ -363,8 +392,8 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
}
public void sendSyncResponse(DelegateExecution execution) {
- def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
- msoLogger.info(" ***** started sendSyncResponse *****")
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ msoLogger.debug(" *** sendSyncResponse *** ")
try {
String operationStatus = "finished"
@@ -379,7 +408,7 @@ public class DeActivateSDNCNetworkResource extends AbstractServiceTaskProcessor
msoLogger.debug(msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
- msoLogger.debug(" ***** Exit sendSyncResopnse *****")
+ msoLogger("DEBUG"," ***** Exit sendSyncResopnse *****")
}
} \ No newline at end of file
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteSDNCNetworkResource.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteSDNCNetworkResource.groovy
index 04b62d7f73..192788a4ca 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteSDNCNetworkResource.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteSDNCNetworkResource.groovy
@@ -34,6 +34,8 @@ import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.bpmn.common.scripts.MsoUtils
import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
import org.onap.so.bpmn.core.json.JsonUtils
+import org.onap.so.bpmn.common.scripts.MsoUtils
+import org.onap.so.logger.MsoLogger
import groovy.json.*
@@ -42,21 +44,23 @@ import groovy.json.*
* flow for SDNC Network Resource
*/
public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
- private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL,
- CreateSDNCNetworkResource.class);
+ private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, DeleteSDNCNetworkResource.class);
String Prefix="DELSDNCRES_"
-
+
ExceptionUtil exceptionUtil = new ExceptionUtil()
JsonUtils jsonUtil = new JsonUtils()
SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
-
+
+ MsoUtils msoUtils = new MsoUtils()
+
public void preProcessRequest(DelegateExecution execution){
- msoLogger.info("***** Started preProcessRequest *****")
- try {
-
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started preProcessRequest *****")
+ try {
+
//get bpmn inputs from resource request.
String requestId = execution.getVariable("mso-request-id")
String requestAction = execution.getVariable("requestAction")
@@ -68,12 +72,12 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
//Get ResourceInput Object
ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
execution.setVariable(Prefix + "resourceInput", resourceInputObj)
-
+
//Deal with recipeParams
String recipeParamsFromWf = execution.getVariable("recipeParamXsd")
- String resourceModelName = resourceInputObj.getResourceModelInfo().getModelName()
+ String resourceModelName = resourceInputObj.getResourceModelInfo().getModelName()
//For sdnc requestAction default is "NetworkInstance"
- String operationType = "Network"
+ String operationType = "Network"
if(!StringUtils.isBlank(recipeParamsFromRequest) && "null" != recipeParamsFromRequest){
//the operationType from worflow(first node) is second priority.
operationType = jsonUtil.getJsonValue(recipeParamsFromRequest, "operationType")
@@ -82,36 +86,78 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
//the operationType from worflow(first node) is highest priority.
operationType = jsonUtil.getJsonValue(recipeParamsFromWf, "operationType")
}
-
-
+
+
//For sdnc, generate svc_action and request_action
String sdnc_svcAction = "delete"
- if(StringUtils.containsIgnoreCase(resourceModelName, "overlay")){
- //This will be resolved in R3.
- sdnc_svcAction ="deactivate"
- operationType = "NCINetwork"
+ switch (resourceInputObj.getResourceModelInfo().getModelName()) {
+
+ case ~/[\w\s\W]*overlay[\w\s\W]*/ :
+ ///This will be resolved in R3.
+ sdnc_svcAction ="deactivate"
+ operationType = "NCINetwork"
+ break
+
+ case ~/[\w\s\W]*underlay[\w\s\W]*/ :
+ //This will be resolved in R3.
+ operationType ="Network"
+ break
+
+ case ~/[\w\s\W]*SOTNConnectivity[\w\s\W]*/ :
+ operationType = "SOTNConnectivity"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
+ operationType = "SOTNAttachment"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/ :
+ operationType = "Site"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ operationType = "SDWANDevice"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SDWANConnectivity[\w\s\W]*/ :
+ operationType = "SDWANConnectivity"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ operationType = "SDWANAttachment"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ operationType = "SDWANPort"
+ execution.setVariable("isActivateRequired", "true")
+ break
+
+ default:
+ break
}
- if(StringUtils.containsIgnoreCase(resourceModelName, "underlay")){
- //This will be resolved in R3.
- operationType ="Network"
- }
- String sdnc_requestAction = StringUtils.capitalize(sdnc_svcAction) + operationType +"Instance"
- execution.setVariable(Prefix + "svcAction", sdnc_svcAction)
+ String sdnc_requestAction = StringUtils.capitalize(sdnc_svcAction) + operationType +"Instance"
+ execution.setVariable(Prefix + "svcAction", sdnc_svcAction)
execution.setVariable(Prefix + "requestAction", sdnc_requestAction)
execution.setVariable(Prefix + "serviceInstanceId", resourceInputObj.getServiceInstanceId())
execution.setVariable("mso-request-id", requestId)
execution.setVariable("mso-service-instance-id", resourceInputObj.getServiceInstanceId())
//TODO Here build networkrequest
-
+
} catch (BpmnError e) {
throw e;
} catch (Exception ex){
msg = "Exception in preProcessRequest " + ex.getMessage()
- msoLogger.debug(msg)
+ msoLogger.debug( msg)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
}
}
-
+
/**
* Pre Process the BPMN Flow Request
* Inclouds:
@@ -119,11 +165,12 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
* generate the nsParameters
*/
public void prepareSDNCRequest (DelegateExecution execution) {
- msoLogger.info("***** Started prepareSDNCRequest *****")
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+ msoLogger.info(" ***** Started prepareSDNCRequest *****")
try {
// get variables
- String sdnc_svcAction = execution.getVariable(Prefix + "svcAction")
+ String sdnc_svcAction = execution.getVariable(Prefix + "svcAction")
String sdnc_requestAction = execution.getVariable(Prefix + "requestAction")
String sdncCallback = execution.getVariable("URN_mso_workflow_sdncadapter_callback")
String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
@@ -144,177 +191,164 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
String modelUuid = resourceInputObj.getResourceModelInfo().getModelUuid()
String modelName = resourceInputObj.getResourceModelInfo().getModelName()
String modelVersion = resourceInputObj.getResourceModelInfo().getModelVersion()
+ String resourceInstnaceId = resourceInputObj.getResourceInstancenUuid()
// 1. prepare assign topology via SDNC Adapter SUBFLOW call
- String sndcTopologyDeleteRequest = ""
+ String sdncTopologyDeleteRequest = ""
switch (modelName) {
- case ~/^Site$/:
- sndcTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
+ case ~/[\w\s\W]*deviceVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteWANVF[\w\s\W]*/ :
+ case ~/[\w\s\W]*SiteVF[\w\s\W]*/:
+ sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
- <subscriber-name></subscriber-name>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
+ <subscriber-name>${msoUtils.xmlEncode(globalCustomerId)}</subscriber-name>
</service-information>
<vnf-information>
- <!-- TODO: to be filled as per the request input -->
- <vnf-id></vnf-id>
+ <vnf-id>$resourceInstnaceId</vnf-id>
<vnf-type></vnf-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</vnf-information>
<vnf-request-input>
- <request-version></request-version>
- <vnf-name></vnf-name>
- <vnf-networks>
- <vnf-network>
- <network-role></network-role>
- <network-name></network-name>
- <neutron-id></neutron-id>
- <network-id></network-id>
- <contrail-network-fqdn></contrail-network-fqdn>
- <subnets-data>
- <subnet-data>
- <ip-version></ip-version>
- <subnet-id></subnet-id>
- </subnet-data>
- </subnets-data>
- </vnf-network>
+ <vnf-input-parameters>
+ </vnf-input-parameters>
+ <request-version></request-version>
+ <vnf-name></vnf-name>
+ <vnf-networks>
</vnf-networks>
- </vnf-request-input>
- <vnf-input-parameters>
- <param></param>
- </vnf-input-parameters>
+ </vnf-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
- case ~/^SOTNAttachment$/:
- sndcTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
+ case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
+ case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
+ sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:SvcOperation>connection-attachment-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
<subscriber-name></subscriber-name>
</service-information>
<allotted-resource-information>
- <allotted-resource-id></allotted-resource-id>
+ <allotted-resource-id>$resourceInstnaceId</allotted-resource-id>
<allotted-resource-type></allotted-resource-type>
<parent-service-instance-id></parent-service-instance-id>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</allotted-resource-information>
<connection-attachment-request-input>
- <param></param>
</connection-attachment-request-input>
</sdncadapterworkflow:SDNCRequestData>
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
break
default:
- sndcTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
+ sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
+ <sdncadapter:RequestId>${msoUtils.xmlEncode(hdrRequestId)}</sdncadapter:RequestId>
+ <sdncadapter:SvcInstanceId>${msoUtils.xmlEncode(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+ <sdncadapter:SvcAction>${msoUtils.xmlEncode(sdnc_svcAction)}</sdncadapter:SvcAction>
<sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
<sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
</sdncadapter:RequestHeader>
<sdncadapterworkflow:SDNCRequestData>
<request-information>
- <request-id>${MsoUtils.xmlEscape(hdrRequestId)}</request-id>
- <request-action>${MsoUtils.xmlEscape(sdnc_requestAction)}</request-action>
- <source>${MsoUtils.xmlEscape(source)}</source>
+ <request-id>${msoUtils.xmlEncode(hdrRequestId)}</request-id>
+ <request-action>${msoUtils.xmlEncode(sdnc_requestAction)}</request-action>
+ <source>${msoUtils.xmlEncode(source)}</source>
<notification-url></notification-url>
<order-number></order-number>
<order-version></order-version>
</request-information>
<service-information>
- <service-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-id>
- <subscription-service-type>${MsoUtils.xmlEscape(serviceType)}</subscription-service-type>
+ <service-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-id>
+ <subscription-service-type>${msoUtils.xmlEncode(serviceType)}</subscription-service-type>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(serviceModelInvariantUuid)}</model-invariant-uuid>
- <model-uuid>${MsoUtils.xmlEscape(serviceModelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(serviceModelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(serviceModelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(serviceModelInvariantUuid)}</model-invariant-uuid>
+ <model-uuid>${msoUtils.xmlEncode(serviceModelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(serviceModelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(serviceModelName)}</model-name>
</onap-model-information>
- <service-instance-id>${MsoUtils.xmlEscape(serviceInstanceId)}</service-instance-id>
- <global-customer-id>${MsoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
+ <service-instance-id>${msoUtils.xmlEncode(serviceInstanceId)}</service-instance-id>
+ <global-customer-id>${msoUtils.xmlEncode(globalCustomerId)}</global-customer-id>
</service-information>
<network-information>
- <!-- TODO: to be filled as per the request input -->
- <network-id></network-id>
+ <network-id>$resourceInstnaceId</network-id>
<onap-model-information>
- <model-invariant-uuid>${MsoUtils.xmlEscape(modelInvariantUuid)}</model-invariant-uuid>
- <model-customization-uuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</model-customization-uuid>
- <model-uuid>${MsoUtils.xmlEscape(modelUuid)}</model-uuid>
- <model-version>${MsoUtils.xmlEscape(modelVersion)}</model-version>
- <model-name>${MsoUtils.xmlEscape(modelName)}</model-name>
+ <model-invariant-uuid>${msoUtils.xmlEncode(modelInvariantUuid)}</model-invariant-uuid>
+ <model-customization-uuid>${msoUtils.xmlEncode(modelCustomizationUuid)}</model-customization-uuid>
+ <model-uuid>${msoUtils.xmlEncode(modelUuid)}</model-uuid>
+ <model-version>${msoUtils.xmlEncode(modelVersion)}</model-version>
+ <model-name>${msoUtils.xmlEncode(modelName)}</model-name>
</onap-model-information>
</network-information>
<network-request-input>
@@ -324,19 +358,19 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
</aetgt:SDNCAdapterWorkflowRequest>""".trim()
}
- String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
- utils.logAudit(sndcTopologyDeleteRequesAsString)
- execution.setVariable("sdncAdapterWorkflowRequest", sndcTopologyDeleteRequesAsString)
- msoLogger.info("sdncAdapterWorkflowRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
+ String sdncTopologyDeleteRequesAsString = utils.formatXml(sdncTopologyDeleteRequest)
+ utils.logAudit(sdncTopologyDeleteRequesAsString)
+ execution.setVariable("sdncAdapterWorkflowRequest", sdncTopologyDeleteRequesAsString)
+ msoLogger.info("sdncAdapterWorkflowRequest - " + "\n" + sdncTopologyDeleteRequesAsString)
} catch (Exception ex) {
String exceptionMessage = " Bpmn error encountered in DeleteSDNCCNetworkResource flow. prepareSDNCRequest() - " + ex.getMessage()
- msoLogger.debug(exceptionMessage)
+ msoLogger.debug( exceptionMessage)
exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
}
msoLogger.info(" ***** Exit prepareSDNCRequest *****")
- }
+ }
private void setProgressUpdateVariables(DelegateExecution execution, String body) {
def dbAdapterEndpoint = execution.getVariable("URN_mso_adapters_openecomp_db_endpoint")
@@ -358,17 +392,17 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
String body = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:ns="http://org.onap.so/requestsdb">
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
<soapenv:Header/>
<soapenv:Body>
<ns:updateResourceOperationStatus>
- <operType>${MsoUtils.xmlEscape(operType)}</operType>
- <operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <progress>${MsoUtils.xmlEscape(progress)}</progress>
- <resourceTemplateUUID>${MsoUtils.xmlEscape(resourceCustomizationUuid)}</resourceTemplateUUID>
- <serviceId>${MsoUtils.xmlEscape(serviceInstanceId)}</serviceId>
- <status>${MsoUtils.xmlEscape(status)}</status>
- <statusDescription>${MsoUtils.xmlEscape(statusDescription)}</statusDescription>
+ <operType>${msoUtils.xmlEncode(operType)}</operType>
+ <operationId>${msoUtils.xmlEncode(operationId)}</operationId>
+ <progress>${msoUtils.xmlEncode(progress)}</progress>
+ <resourceTemplateUUID>${msoUtils.xmlEncode(resourceCustomizationUuid)}</resourceTemplateUUID>
+ <serviceId>${msoUtils.xmlEncode(serviceInstanceId)}</serviceId>
+ <status>${msoUtils.xmlEncode(status)}</status>
+ <statusDescription>${msoUtils.xmlEncode(statusDescription)}</statusDescription>
</ns:updateResourceOperationStatus>
</soapenv:Body>
</soapenv:Envelope>""";
@@ -385,23 +419,23 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
String operationId = resourceInputObj.getOperationId()
String progress = "100"
String status = "finished"
- String statusDescription = "SDCN resource delete completed"
+ String statusDescription = "SDCN resource delete and deactivation completed"
//String operationId = execution.getVariable("operationId")
String body = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:ns="http://org.onap.so/requestsdb">
+ xmlns:ns="http://org.openecomp.mso/requestsdb">
<soapenv:Header/>
<soapenv:Body>
<ns:updateResourceOperationStatus>
- <operType>${MsoUtils.xmlEscape(operType)}</operType>
- <operationId>${MsoUtils.xmlEscape(operationId)}</operationId>
- <progress>${MsoUtils.xmlEscape(progress)}</progress>
- <resourceTemplateUUID>${MsoUtils.xmlEscape(resourceCustomizationUuid)}</resourceTemplateUUID>
- <serviceId>${MsoUtils.xmlEscape(serviceInstanceId)}</serviceId>
- <status>${MsoUtils.xmlEscape(status)}</status>
- <statusDescription>${MsoUtils.xmlEscape(statusDescription)}</statusDescription>
+ <operType>${msoUtils.xmlEncode(operType)}</operType>
+ <operationId>${msoUtils.xmlEncode(operationId)}</operationId>
+ <progress>${msoUtils.xmlEncode(progress)}</progress>
+ <resourceTemplateUUID>${msoUtils.xmlEncode(resourceCustomizationUuid)}</resourceTemplateUUID>
+ <serviceId>${msoUtils.xmlEncode(serviceInstanceId)}</serviceId>
+ <status>${msoUtils.xmlEncode(status)}</status>
+ <statusDescription>${msoUtils.xmlEncode(statusDescription)}</statusDescription>
</ns:updateResourceOperationStatus>
</soapenv:Body>
</soapenv:Envelope>""";
@@ -410,6 +444,7 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
}
public void postDeleteSDNCCall(DelegateExecution execution){
+ def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
msoLogger.info(" ***** Started prepareSDNCRequest *****")
String responseCode = execution.getVariable(Prefix + "sdncDeleteReturnCode")
String responseObj = execution.getVariable(Prefix + "SuccessIndicator")
@@ -417,23 +452,24 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
msoLogger.info("response from sdnc, response code :" + responseCode + " response object :" + responseObj)
msoLogger.info(" ***** Exit prepareSDNCRequest *****")
}
-
- public void sendSyncResponse (DelegateExecution execution) {
- msoLogger.info(" *** sendSyncResponse *** ")
-
- try {
- String operationStatus = "finished"
- // RESTResponse for main flow
- String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
- utils.log("DEBUG", " sendSyncResponse to APIH:" + "\n" + resourceOperationResp, isDebugEnabled)
- sendWorkflowResponse(execution, 202, resourceOperationResp)
- execution.setVariable("sentSyncResponse", true)
-
- } catch (Exception ex) {
- String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
- msoLogger.debug(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
- }
- msoLogger.info(" ***** Exit sendSyncResopnse *****")
- }
+
+ public void sendSyncResponse (DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ msoLogger.debug( " *** sendSyncResponse *** ")
+
+ try {
+ String operationStatus = "finished"
+ // RESTResponse for main flow
+ String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
+ msoLogger.debug( " sendSyncResponse to APIH:" + "\n" + resourceOperationResp)
+ sendWorkflowResponse(execution, 202, resourceOperationResp)
+ execution.setVariable("sentSyncResponse", true)
+
+ } catch (Exception ex) {
+ String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
+ msoLogger.debug( msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ msoLogger.debug(" ***** Exit sendSyncResopnse *****")
+ }
}