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/DoCreateNetworkInstance.groovy2200
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy611
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy1672
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceRollback.groovy338
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy1784
-rw-r--r--bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceRollback.groovy312
6 files changed, 3028 insertions, 3889 deletions
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy
index 5c8ece88fe..4d1807b796 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy
@@ -78,1355 +78,1323 @@ import groovy.xml.XmlUtil
public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
private static final Logger logger = LoggerFactory.getLogger( DoCreateNetworkInstance.class);
- String Prefix="CRENWKI_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- JsonUtils jsonUtil = new JsonUtils()
- VidUtils vidUtils = new VidUtils(this)
- NetworkUtils networkUtils = new NetworkUtils()
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
-
- def className = getClass().getSimpleName()
-
- /**
- * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstance.bpmn</class> process.
- * @param execution
- */
- public InitializeProcessVariables(DelegateExecution execution){
- /* Initialize all the process variables in this block */
-
- execution.setVariable(Prefix + "networkRequest", "")
- execution.setVariable(Prefix + "rollbackEnabled", null)
- execution.setVariable(Prefix + "networkInputs", "")
- //execution.setVariable(Prefix + "requestId", "")
- execution.setVariable(Prefix + "messageId", "")
- execution.setVariable(Prefix + "source", "")
- execution.setVariable("BasicAuthHeaderValuePO", "")
- execution.setVariable("BasicAuthHeaderValueSDNC", "")
- execution.setVariable(Prefix + "serviceInstanceId","")
- execution.setVariable("GENGS_type", "")
- execution.setVariable(Prefix + "rsrc_endpoint", null)
- execution.setVariable(Prefix + "networkOutputs", "")
- execution.setVariable(Prefix + "networkId","")
- execution.setVariable(Prefix + "networkName","")
-
- // AAI query Name
- execution.setVariable(Prefix + "queryNameAAIRequest","")
- execution.setVariable(Prefix + "queryNameAAIResponse", "")
- execution.setVariable(Prefix + "aaiNameReturnCode", "")
- execution.setVariable(Prefix + "isAAIqueryNameGood", false)
-
- // AAI query Cloud Region
- execution.setVariable(Prefix + "queryCloudRegionRequest","")
- execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
- execution.setVariable(Prefix + "queryCloudRegionResponse","")
- execution.setVariable(Prefix + "cloudRegionPo","")
- execution.setVariable(Prefix + "cloudRegionSdnc","")
- execution.setVariable(Prefix + "isCloudRegionGood", false)
-
- // AAI query Id
- execution.setVariable(Prefix + "queryIdAAIRequest","")
- execution.setVariable(Prefix + "queryIdAAIResponse", "")
- execution.setVariable(Prefix + "aaiIdReturnCode", "")
-
- // AAI query vpn binding
- execution.setVariable(Prefix + "queryVpnBindingAAIRequest","")
- execution.setVariable(Prefix + "queryVpnBindingAAIResponse", "")
- execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")
- execution.setVariable(Prefix + "vpnBindings", null)
- execution.setVariable(Prefix + "vpnCount", 0)
- execution.setVariable(Prefix + "routeCollection", "")
-
- // AAI query network policy
- execution.setVariable(Prefix + "queryNetworkPolicyAAIRequest","")
- execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")
- execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")
- execution.setVariable(Prefix + "networkPolicyUriList", null)
- execution.setVariable(Prefix + "networkPolicyCount", 0)
- execution.setVariable(Prefix + "networkCollection", "")
-
- // AAI query route table reference
- execution.setVariable(Prefix + "queryNetworkTableRefAAIRequest","")
- execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")
- execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")
- execution.setVariable(Prefix + "networkTableRefUriList", null)
- execution.setVariable(Prefix + "networkTableRefCount", 0)
- execution.setVariable(Prefix + "tableRefCollection", "")
-
- // AAI requery Id
- execution.setVariable(Prefix + "requeryIdAAIRequest","")
- execution.setVariable(Prefix + "requeryIdAAIResponse", "")
- execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "")
-
- // AAI update contrail
- execution.setVariable(Prefix + "updateContrailAAIUrlRequest","")
- execution.setVariable(Prefix + "updateContrailAAIPayloadRequest","")
- execution.setVariable(Prefix + "updateContrailAAIResponse", "")
- execution.setVariable(Prefix + "aaiUpdateContrailReturnCode", "")
-
- execution.setVariable(Prefix + "createNetworkRequest", "")
- execution.setVariable(Prefix + "createNetworkResponse", "")
- execution.setVariable(Prefix + "rollbackNetworkRequest", "")
- //execution.setVariable(Prefix + "rollbackNetworkResponse", "")
- execution.setVariable(Prefix + "networkReturnCode", "")
- //execution.setVariable(Prefix + "rollbackNetworkReturnCode", "")
- execution.setVariable(Prefix + "isNetworkRollbackNeeded", false)
-
- execution.setVariable(Prefix + "assignSDNCRequest", "")
- execution.setVariable(Prefix + "assignSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackSDNCRequest", "")
- //execution.setVariable(Prefix + "rollbackSDNCResponse", "")
- execution.setVariable(Prefix + "sdncReturnCode", "")
- //execution.setVariable(Prefix + "rollbackSDNCReturnCode", "")
- execution.setVariable(Prefix + "isSdncRollbackNeeded", false)
- execution.setVariable(Prefix + "sdncResponseSuccess", false)
-
- execution.setVariable(Prefix + "activateSDNCRequest", "")
- execution.setVariable(Prefix + "activateSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackActivateSDNCRequest", "")
- //execution.setVariable(Prefix + "rollbackActivateSDNCResponse", "")
- execution.setVariable(Prefix + "sdncActivateReturnCode", "")
- //execution.setVariable(Prefix + "rollbackActivateSDNCReturnCode", "")
- execution.setVariable(Prefix + "isSdncActivateRollbackNeeded", false)
- execution.setVariable(Prefix + "sdncActivateResponseSuccess", false)
-
- execution.setVariable(Prefix + "orchestrationStatus", "")
- execution.setVariable(Prefix + "isVnfBindingPresent", false)
- execution.setVariable(Prefix + "Success", false)
-
- execution.setVariable(Prefix + "isException", false)
-
- }
-
- // **************************************************
- // Pre or Prepare Request Section
- // **************************************************
- /**
- * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstance.bpmn</class> process.
- * @param execution
- */
- public void preProcessRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
- logger.trace("Inside preProcessRequest() of " + className + ".groovy")
-
- try {
- // initialize flow variables
- InitializeProcessVariables(execution)
-
- // GET Incoming request & validate 3 kinds of format.
- execution.setVariable("action", "CREATE")
- String networkRequest = execution.getVariable("bpmnRequest")
- if (networkRequest != null) {
- if (networkRequest.contains("requestDetails")) {
- // JSON format request is sent, create xml
- try {
- def prettyJson = JsonOutput.prettyPrint(networkRequest.toString())
- logger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
- networkRequest = vidUtils.createXmlNetworkRequestInfra(execution, networkRequest)
-
- } catch (Exception ex) {
- String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
- } else {
- // XML format request is sent
-
- }
- } else {
- // vIPR format request is sent, create xml from individual variables
- networkRequest = vidUtils.createXmlNetworkRequestInstance(execution)
- }
-
- networkRequest = utils.formatXml(networkRequest)
- execution.setVariable(Prefix + "networkRequest", networkRequest)
- logger.debug(Prefix + "networkRequest - " + '\n' + networkRequest)
-
- // validate 'backout-on-failure' to override 'mso.rollback'
- boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, networkRequest)
- execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
- logger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
-
- String networkInputs = utils.getNodeXml(networkRequest, "network-inputs", false).replace("tag0:","").replace(":tag0","")
- execution.setVariable(Prefix + "networkInputs", networkInputs)
- logger.debug(Prefix + "networkInputs - " + '\n' + networkInputs)
-
- // prepare messageId
- String messageId = execution.getVariable("testMessageId") // for testing
- if (messageId == null || messageId == "") {
- messageId = UUID.randomUUID()
- logger.debug(Prefix + "messageId, random generated: " + messageId)
- } else {
- logger.debug(Prefix + "messageId, pre-assigned: " + messageId)
- }
- execution.setVariable(Prefix + "messageId", messageId)
-
- String source = utils.getNodeText(networkRequest, "source")
- execution.setVariable(Prefix + "source", source)
- logger.debug(Prefix + "source - " + source)
-
- // validate cloud region
- String lcpCloudRegionId = utils.getNodeText(networkRequest, "aic-cloud-region")
- if ((lcpCloudRegionId == null) || (lcpCloudRegionId == "") || (lcpCloudRegionId == "null")) {
- String dataErrorMessage = "Missing value/element: 'lcpCloudRegionId' or 'cloudConfiguration' or 'aic-cloud-region'."
- logger.debug(" Invalid Request - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- // validate service instance id
- String serviceInstanceId = utils.getNodeText(networkRequest, "service-instance-id")
- if ((serviceInstanceId == null) || (serviceInstanceId == "") || (serviceInstanceId == "null")) {
- String dataErrorMessage = "Missing value/element: 'serviceInstanceId'."
- logger.debug(" Invalid Request - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- // PO Authorization Info / headers Authorization=
- String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
-
- try {
- def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey",execution))
- execution.setVariable("BasicAuthHeaderValuePO",encodedString)
- execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
-
- } catch (IOException ex) {
- String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "
- String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- // Set variables for Generic Get Sub Flow use
- execution.setVariable(Prefix + "serviceInstanceId", serviceInstanceId)
- logger.debug(Prefix + "serviceInstanceId - " + serviceInstanceId)
-
- execution.setVariable("GENGS_type", "service-instance")
- logger.debug("GENGS_type - " + "service-instance")
- logger.debug(" Url for SDNC adapter: " + UrnPropertiesReader.getVariable("mso.adapters.sdnc.endpoint",execution))
-
- String sdncVersion = execution.getVariable("sdncVersion")
- logger.debug("sdncVersion? : " + sdncVersion)
-
- // build 'networkOutputs'
- String networkId = utils.getNodeText(networkRequest, "network-id")
- if ((networkId == null) || (networkId == "null")) {
- networkId = ""
- }
- String networkName = utils.getNodeText(networkRequest, "network-name")
- if ((networkName == null) || (networkName == "null")) {
- networkName = ""
- }
- String networkOutputs =
- """<network-outputs>
+ String Prefix="CRENWKI_"
+ ExceptionUtil exceptionUtil = new ExceptionUtil()
+ JsonUtils jsonUtil = new JsonUtils()
+ VidUtils vidUtils = new VidUtils(this)
+ NetworkUtils networkUtils = new NetworkUtils()
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+
+ def className = getClass().getSimpleName()
+
+ /**
+ * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstance.bpmn</class> process.
+ * @param execution
+ */
+ public InitializeProcessVariables(DelegateExecution execution){
+ /* Initialize all the process variables in this block */
+
+ execution.setVariable(Prefix + "networkRequest", "")
+ execution.setVariable(Prefix + "rollbackEnabled", null)
+ execution.setVariable(Prefix + "networkInputs", "")
+ //execution.setVariable(Prefix + "requestId", "")
+ execution.setVariable(Prefix + "messageId", "")
+ execution.setVariable(Prefix + "source", "")
+ execution.setVariable("BasicAuthHeaderValuePO", "")
+ execution.setVariable("BasicAuthHeaderValueSDNC", "")
+ execution.setVariable(Prefix + "serviceInstanceId","")
+ execution.setVariable("GENGS_type", "")
+ execution.setVariable(Prefix + "rsrc_endpoint", null)
+ execution.setVariable(Prefix + "networkOutputs", "")
+ execution.setVariable(Prefix + "networkId","")
+ execution.setVariable(Prefix + "networkName","")
+
+ // AAI query Name
+ execution.setVariable(Prefix + "queryNameAAIRequest","")
+ execution.setVariable(Prefix + "queryNameAAIResponse", "")
+ execution.setVariable(Prefix + "aaiNameReturnCode", "")
+ execution.setVariable(Prefix + "isAAIqueryNameGood", false)
+
+ // AAI query Cloud Region
+ execution.setVariable(Prefix + "queryCloudRegionRequest","")
+ execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
+ execution.setVariable(Prefix + "queryCloudRegionResponse","")
+ execution.setVariable(Prefix + "cloudRegionPo","")
+ execution.setVariable(Prefix + "cloudRegionSdnc","")
+ execution.setVariable(Prefix + "isCloudRegionGood", false)
+
+ // AAI query Id
+ execution.setVariable(Prefix + "queryIdAAIRequest","")
+ execution.setVariable(Prefix + "queryIdAAIResponse", "")
+ execution.setVariable(Prefix + "aaiIdReturnCode", "")
+
+ // AAI query vpn binding
+ execution.setVariable(Prefix + "queryVpnBindingAAIRequest","")
+ execution.setVariable(Prefix + "queryVpnBindingAAIResponse", "")
+ execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")
+ execution.setVariable(Prefix + "vpnBindings", null)
+ execution.setVariable(Prefix + "vpnCount", 0)
+ execution.setVariable(Prefix + "routeCollection", "")
+
+ // AAI query network policy
+ execution.setVariable(Prefix + "queryNetworkPolicyAAIRequest","")
+ execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")
+ execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")
+ execution.setVariable(Prefix + "networkPolicyUriList", null)
+ execution.setVariable(Prefix + "networkPolicyCount", 0)
+ execution.setVariable(Prefix + "networkCollection", "")
+
+ // AAI query route table reference
+ execution.setVariable(Prefix + "queryNetworkTableRefAAIRequest","")
+ execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")
+ execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")
+ execution.setVariable(Prefix + "networkTableRefUriList", null)
+ execution.setVariable(Prefix + "networkTableRefCount", 0)
+ execution.setVariable(Prefix + "tableRefCollection", "")
+
+ // AAI requery Id
+ execution.setVariable(Prefix + "requeryIdAAIRequest","")
+ execution.setVariable(Prefix + "requeryIdAAIResponse", "")
+ execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "")
+
+ // AAI update contrail
+ execution.setVariable(Prefix + "updateContrailAAIUrlRequest","")
+ execution.setVariable(Prefix + "updateContrailAAIPayloadRequest","")
+ execution.setVariable(Prefix + "updateContrailAAIResponse", "")
+ execution.setVariable(Prefix + "aaiUpdateContrailReturnCode", "")
+
+ execution.setVariable(Prefix + "createNetworkRequest", "")
+ execution.setVariable(Prefix + "createNetworkResponse", "")
+ execution.setVariable(Prefix + "rollbackNetworkRequest", "")
+ //execution.setVariable(Prefix + "rollbackNetworkResponse", "")
+ execution.setVariable(Prefix + "networkReturnCode", "")
+ //execution.setVariable(Prefix + "rollbackNetworkReturnCode", "")
+ execution.setVariable(Prefix + "isNetworkRollbackNeeded", false)
+
+ execution.setVariable(Prefix + "assignSDNCRequest", "")
+ execution.setVariable(Prefix + "assignSDNCResponse", "")
+ execution.setVariable(Prefix + "rollbackSDNCRequest", "")
+ //execution.setVariable(Prefix + "rollbackSDNCResponse", "")
+ execution.setVariable(Prefix + "sdncReturnCode", "")
+ //execution.setVariable(Prefix + "rollbackSDNCReturnCode", "")
+ execution.setVariable(Prefix + "isSdncRollbackNeeded", false)
+ execution.setVariable(Prefix + "sdncResponseSuccess", false)
+
+ execution.setVariable(Prefix + "activateSDNCRequest", "")
+ execution.setVariable(Prefix + "activateSDNCResponse", "")
+ execution.setVariable(Prefix + "rollbackActivateSDNCRequest", "")
+ //execution.setVariable(Prefix + "rollbackActivateSDNCResponse", "")
+ execution.setVariable(Prefix + "sdncActivateReturnCode", "")
+ //execution.setVariable(Prefix + "rollbackActivateSDNCReturnCode", "")
+ execution.setVariable(Prefix + "isSdncActivateRollbackNeeded", false)
+ execution.setVariable(Prefix + "sdncActivateResponseSuccess", false)
+
+ execution.setVariable(Prefix + "orchestrationStatus", "")
+ execution.setVariable(Prefix + "isVnfBindingPresent", false)
+ execution.setVariable(Prefix + "Success", false)
+
+ execution.setVariable(Prefix + "isException", false)
+
+ }
+
+ // **************************************************
+ // Pre or Prepare Request Section
+ // **************************************************
+ /**
+ * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstance.bpmn</class> process.
+ * @param execution
+ */
+ public void preProcessRequest (DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+ logger.trace("Inside preProcessRequest() of " + className + ".groovy")
+
+ try {
+ // initialize flow variables
+ InitializeProcessVariables(execution)
+
+ // GET Incoming request & validate 3 kinds of format.
+ execution.setVariable("action", "CREATE")
+ String networkRequest = execution.getVariable("bpmnRequest")
+ if (networkRequest != null) {
+ if (networkRequest.contains("requestDetails")) {
+ // JSON format request is sent, create xml
+ try {
+ def prettyJson = JsonOutput.prettyPrint(networkRequest.toString())
+ logger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
+ networkRequest = vidUtils.createXmlNetworkRequestInfra(execution, networkRequest)
+
+ } catch (Exception ex) {
+ String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+ } else {
+ // XML format request is sent
+
+ }
+ } else {
+ // vIPR format request is sent, create xml from individual variables
+ networkRequest = vidUtils.createXmlNetworkRequestInstance(execution)
+ }
+
+ networkRequest = utils.formatXml(networkRequest)
+ execution.setVariable(Prefix + "networkRequest", networkRequest)
+ logger.debug(Prefix + "networkRequest - " + '\n' + networkRequest)
+
+ // validate 'backout-on-failure' to override 'mso.rollback'
+ boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, networkRequest)
+ execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
+ logger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
+
+ String networkInputs = utils.getNodeXml(networkRequest, "network-inputs", false).replace("tag0:","").replace(":tag0","")
+ execution.setVariable(Prefix + "networkInputs", networkInputs)
+ logger.debug(Prefix + "networkInputs - " + '\n' + networkInputs)
+
+ // prepare messageId
+ String messageId = execution.getVariable("testMessageId") // for testing
+ if (messageId == null || messageId == "") {
+ messageId = UUID.randomUUID()
+ logger.debug(Prefix + "messageId, random generated: " + messageId)
+ } else {
+ logger.debug(Prefix + "messageId, pre-assigned: " + messageId)
+ }
+ execution.setVariable(Prefix + "messageId", messageId)
+
+ String source = utils.getNodeText(networkRequest, "source")
+ execution.setVariable(Prefix + "source", source)
+ logger.debug(Prefix + "source - " + source)
+
+ // validate cloud region
+ String lcpCloudRegionId = utils.getNodeText(networkRequest, "aic-cloud-region")
+ if ((lcpCloudRegionId == null) || (lcpCloudRegionId == "") || (lcpCloudRegionId == "null")) {
+ String dataErrorMessage = "Missing value/element: 'lcpCloudRegionId' or 'cloudConfiguration' or 'aic-cloud-region'."
+ logger.debug(" Invalid Request - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+
+ // validate service instance id
+ String serviceInstanceId = utils.getNodeText(networkRequest, "service-instance-id")
+ if ((serviceInstanceId == null) || (serviceInstanceId == "") || (serviceInstanceId == "null")) {
+ String dataErrorMessage = "Missing value/element: 'serviceInstanceId'."
+ logger.debug(" Invalid Request - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+
+ // PO Authorization Info / headers Authorization=
+ String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
+
+ try {
+ def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey",execution))
+ execution.setVariable("BasicAuthHeaderValuePO",encodedString)
+ execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
+
+ } catch (IOException ex) {
+ String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "
+ String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+
+ // Set variables for Generic Get Sub Flow use
+ execution.setVariable(Prefix + "serviceInstanceId", serviceInstanceId)
+ logger.debug(Prefix + "serviceInstanceId - " + serviceInstanceId)
+
+ execution.setVariable("GENGS_type", "service-instance")
+ logger.debug("GENGS_type - " + "service-instance")
+ logger.debug(" Url for SDNC adapter: " + UrnPropertiesReader.getVariable("mso.adapters.sdnc.endpoint",execution))
+
+ String sdncVersion = execution.getVariable("sdncVersion")
+ logger.debug("sdncVersion? : " + sdncVersion)
+
+ // build 'networkOutputs'
+ String networkId = utils.getNodeText(networkRequest, "network-id")
+ if ((networkId == null) || (networkId == "null")) {
+ networkId = ""
+ }
+ String networkName = utils.getNodeText(networkRequest, "network-name")
+ if ((networkName == null) || (networkName == "null")) {
+ networkName = ""
+ }
+ String networkOutputs =
+ """<network-outputs>
<network-id>${MsoUtils.xmlEscape(networkId)}</network-id>
<network-name>${MsoUtils.xmlEscape(networkName)}</network-name>
</network-outputs>"""
- execution.setVariable(Prefix + "networkOutputs", networkOutputs)
- logger.debug(Prefix + "networkOutputs - " + '\n' + networkOutputs)
- execution.setVariable(Prefix + "networkId", networkId)
- execution.setVariable(Prefix + "networkName", networkName)
+ execution.setVariable(Prefix + "networkOutputs", networkOutputs)
+ logger.debug(Prefix + "networkOutputs - " + '\n' + networkOutputs)
+ execution.setVariable(Prefix + "networkId", networkId)
+ execution.setVariable(Prefix + "networkName", networkName)
- } catch (BpmnError e) {
- throw e;
+ } catch (BpmnError e) {
+ throw e;
- } catch (Exception ex) {
- sendSyncError(execution)
- // caught exception
- String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ sendSyncError(execution)
+ // caught exception
+ String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- /**
- * Gets the service instance uri from aai
- */
- public void getServiceInstance(DelegateExecution execution) {
- try {
- String serviceInstanceId = execution.getVariable('CRENWKI_serviceInstanceId')
+ /**
+ * Gets the service instance uri from aai
+ */
+ public void getServiceInstance(DelegateExecution execution) {
+ try {
+ String serviceInstanceId = execution.getVariable('CRENWKI_serviceInstanceId')
- AAIResourcesClient resourceClient = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
+ AAIResourcesClient resourceClient = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
- if(!resourceClient.exists(uri)){
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Service instance was not found in aai")
- }else{
- Map<String, String> keys = uri.getURIKeys()
- execution.setVariable("serviceType", keys.get("service-type"))
- execution.setVariable("subscriberName", keys.get("global-customer-id"))
- }
+ if(!resourceClient.exists(uri)){
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Service instance was not found in aai")
+ }else{
+ Map<String, String> keys = uri.getURIKeys()
+ execution.setVariable("serviceType", keys.get("service-type"))
+ execution.setVariable("subscriberName", keys.get("global-customer-id"))
+ }
- }catch(BpmnError e) {
- throw e;
- }catch (Exception ex){
- String msg = "Exception in getServiceInstance. " + ex.getMessage()
- logger.debug(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
- }
- }
+ }catch(BpmnError e) {
+ throw e;
+ }catch (Exception ex){
+ String msg = "Exception in getServiceInstance. " + ex.getMessage()
+ logger.debug(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ }
- public void callRESTQueryAAINetworkName (DelegateExecution execution) {
+ public void callRESTQueryAAINetworkName (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.debug(" ***** Inside callRESTQueryAAINetworkName() of DoCreateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAINetworkName() of DoCreateNetworkInstance ***** " )
- try{
- // get variables
- String networkInputs = execution.getVariable(Prefix + "networkInputs")
- String networkName = utils.getNodeText(networkInputs, "network-name")
+ try{
+ // get variables
+ String networkInputs = execution.getVariable(Prefix + "networkInputs")
+ String networkName = utils.getNodeText(networkInputs, "network-name")
- AAIResourcesClient client = new AAIResourcesClient()
- AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", networkName)
- L3Networks networks = client.get(uri, NotFoundException.class).asBean(L3Networks.class).get()
- L3Network network = networks.getL3Network().get(0)
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", networkName)
+ L3Networks networks = client.get(uri, NotFoundException.class).asBean(L3Networks.class).get()
+ L3Network network = networks.getL3Network().get(0)
- execution.setVariable(Prefix + "isAAIqueryNameGood", true)
- String orchestrationStatus = network.getOrchestrationStatus()
- execution.setVariable(Prefix + "orchestrationStatus", orchestrationStatus.toUpperCase())
- logger.debug(Prefix + "orchestrationStatus - " + orchestrationStatus.toUpperCase())
- execution.setVariable("orchestrationStatus", orchestrationStatus)
+ execution.setVariable(Prefix + "isAAIqueryNameGood", true)
+ String orchestrationStatus = network.getOrchestrationStatus()
+ execution.setVariable(Prefix + "orchestrationStatus", orchestrationStatus.toUpperCase())
+ logger.debug(Prefix + "orchestrationStatus - " + orchestrationStatus.toUpperCase())
+ execution.setVariable("orchestrationStatus", orchestrationStatus)
- logger.debug(Prefix + "isAAIqueryNameGood? : " + execution.getVariable(Prefix + "isAAIqueryNameGood"))
+ logger.debug(Prefix + "isAAIqueryNameGood? : " + execution.getVariable(Prefix + "isAAIqueryNameGood"))
- } catch (NotFoundException e) {
- logger.debug(" QueryAAINetworkName return code = '404' (Not Found). Proceed with the Create !!! ")
+ } catch (NotFoundException e) {
+ logger.debug(" QueryAAINetworkName return code = '404' (Not Found). Proceed with the Create !!! ")
- } catch (Exception ex) {
- // try error
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow - callRESTQueryAAINetworkName() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ // try error
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow - callRESTQueryAAINetworkName() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
+ public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.debug(" ***** Inside callRESTQueryAAICloudRegion() of DoCreateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAICloudRegion() of DoCreateNetworkInstance ***** " )
- try {
- String networkInputs = execution.getVariable(Prefix + "networkInputs")
- String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
+ try {
+ String networkInputs = execution.getVariable(Prefix + "networkInputs")
+ String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
- // Prepare AA&I url
- AaiUtil aaiUtil = new AaiUtil(this)
+ // Prepare AA&I url
+ AaiUtil aaiUtil = new AaiUtil(this)
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, Defaults.CLOUD_OWNER.toString(), cloudRegion)
- def queryCloudRegionRequest = aaiUtil.createAaiUri(uri)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, Defaults.CLOUD_OWNER.toString(), cloudRegion)
+ def queryCloudRegionRequest = aaiUtil.createAaiUri(uri)
- execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
+ execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
- String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
- String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
+ String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
+ String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
- if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
- execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
- execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
- execution.setVariable(Prefix + "isCloudRegionGood", true)
+ if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
+ execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
+ execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
+ execution.setVariable(Prefix + "isCloudRegionGood", true)
- } else {
- String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } else {
+ String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
+ }
- logger.debug(" is Cloud Region Good: " + execution.getVariable(Prefix + "isCloudRegionGood"))
+ logger.debug(" is Cloud Region Good: " + execution.getVariable(Prefix + "isCloudRegionGood"))
- } catch (BpmnError e) {
- throw e;
+ } catch (BpmnError e) {
+ throw e;
- } catch (Exception ex) {
- // try error
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow - callRESTQueryAAICloudRegion() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ // try error
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow - callRESTQueryAAICloudRegion() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTQueryAAINetworkId(DelegateExecution execution) {
+ public void callRESTQueryAAINetworkId(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.debug(" ***** Inside callRESTQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
- try {
- // get variables
- String networkId = ""
- String assignSDNCResponse = execution.getVariable(Prefix + "assignSDNCResponse")
- if (execution.getVariable("sdncVersion") != "1610") {
- String networkResponseInformation = ""
- try {
- networkResponseInformation = utils.getNodeXml(assignSDNCResponse, "network-response-information", false).replace("tag0:","").replace(":tag0","")
- networkId = utils.getNodeText(networkResponseInformation, "instance-id")
- } catch (Exception ex) {
- String dataErrorMessage = " SNDC Response network validation for 'instance-id' (network-id) failed: Empty <network-response-information>"
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
+ try {
+ // get variables
+ String networkId = ""
+ String assignSDNCResponse = execution.getVariable(Prefix + "assignSDNCResponse")
+ if (execution.getVariable("sdncVersion") != "1610") {
+ String networkResponseInformation = ""
+ try {
+ networkResponseInformation = utils.getNodeXml(assignSDNCResponse, "network-response-information", false).replace("tag0:","").replace(":tag0","")
+ networkId = utils.getNodeText(networkResponseInformation, "instance-id")
+ } catch (Exception ex) {
+ String dataErrorMessage = " SNDC Response network validation for 'instance-id' (network-id) failed: Empty <network-response-information>"
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
- } else {
- networkId = utils.getNodeText(assignSDNCResponse, "network-id")
- }
- if (networkId == null || networkId == "null") {
- String dataErrorMessage = "SNDC Response did not contains 'instance-id' or 'network-id' element, or the value is null."
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } else {
- logger.debug(" SNDC Response network validation for 'instance-id' (network-id)' is good: " + networkId)
- }
+ } else {
+ networkId = utils.getNodeText(assignSDNCResponse, "network-id")
+ }
+ if (networkId == null || networkId == "null") {
+ String dataErrorMessage = "SNDC Response did not contains 'instance-id' or 'network-id' element, or the value is null."
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } else {
+ logger.debug(" SNDC Response network validation for 'instance-id' (network-id)' is good: " + networkId)
+ }
- execution.setVariable(Prefix + "networkId", networkId)
- String networkName = utils.getNodeText(assignSDNCResponse, "network-name")
- execution.setVariable(Prefix + "networkName", networkName)
+ execution.setVariable(Prefix + "networkId", networkId)
+ String networkName = utils.getNodeText(assignSDNCResponse, "network-name")
+ execution.setVariable(Prefix + "networkName", networkName)
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
- L3Network network = client.get(uri, NotFoundException.class).asBean(L3Network.class).get()
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
+ L3Network network = client.get(uri, NotFoundException.class).asBean(L3Network.class).get()
- execution.setVariable(Prefix + "queryIdAAIResponse", network)
+ execution.setVariable(Prefix + "queryIdAAIResponse", network)
- String netId = network.getNetworkId()
- execution.setVariable(Prefix + "networkId", netId)
- String netName = network.getNetworkName()
- execution.setVariable(Prefix + "networkName", netName)
+ String netId = network.getNetworkId()
+ execution.setVariable(Prefix + "networkId", netId)
+ String netName = network.getNetworkName()
+ execution.setVariable(Prefix + "networkName", netName)
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from QueryAAINetworkId is 404 (Not Found)."
- logger.debug(" AAI Query Failed. " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from QueryAAINetworkId is 404 (Not Found)."
+ logger.debug(" AAI Query Failed. " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkId() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkId() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTReQueryAAINetworkId(DelegateExecution execution) {
+ public void callRESTReQueryAAINetworkId(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.debug(" ***** Inside callRESTReQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTReQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
- try {
- // get variables
- String networkId = execution.getVariable(Prefix + "networkId")
- String netId = networkId
+ try {
+ // get variables
+ String networkId = execution.getVariable(Prefix + "networkId")
+ String netId = networkId
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
- L3Network network = client.get(uri, NotFoundException.class).asBean(L3Network.class).get()
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
+ L3Network network = client.get(uri, NotFoundException.class).asBean(L3Network.class).get()
- execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "200")
- execution.setVariable(Prefix + "requeryIdAAIResponse", network)
+ execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "200")
+ execution.setVariable(Prefix + "requeryIdAAIResponse", network)
- String netName = network.getNetworkName()
- String networkOutputs =
- """<network-outputs>
+ String netName = network.getNetworkName()
+ String networkOutputs =
+ """<network-outputs>
<network-id>${MsoUtils.xmlEscape(netId)}</network-id>
<network-name>${MsoUtils.xmlEscape(netName)}</network-name>
</network-outputs>"""
- execution.setVariable(Prefix + "networkOutputs", networkOutputs)
- logger.debug(" networkOutputs - " + '\n' + networkOutputs)
+ execution.setVariable(Prefix + "networkOutputs", networkOutputs)
+ logger.debug(" networkOutputs - " + '\n' + networkOutputs)
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from ReQueryAAINetworkId is 404 (Not Found)."
- logger.debug(" AAI ReQuery Failed. - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from ReQueryAAINetworkId is 404 (Not Found)."
+ logger.debug(" AAI ReQuery Failed. - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTReQueryAAINetworkId() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTReQueryAAINetworkId() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTQueryAAINetworkVpnBinding(DelegateExecution execution) {
+ public void callRESTQueryAAINetworkVpnBinding(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.debug(" ***** Inside callRESTQueryAAINetworkVpnBinding() of DoCreateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAINetworkVpnBinding() of DoCreateNetworkInstance ***** " )
- try {
+ try {
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
- Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
- if(relationships.isPresent()){
- List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.VPN_BINDING)
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
+ Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
+ if(relationships.isPresent()){
+ List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.VPN_BINDING)
- logger.debug(Prefix + "vpnCount - " + uris.size())
+ logger.debug(Prefix + "vpnCount - " + uris.size())
- if (uris.size() > 0) {
- String routeTargets = ""
- for(AAIResourceUri u : uris) {
+ if (uris.size() > 0) {
+ String routeTargets = ""
+ for(AAIResourceUri u : uris) {
- AAIResultWrapper wrapper = client.get(u.depth(Depth.TWO), NotFoundException.class)
- Optional<VpnBinding> binding = wrapper.asBean(VpnBinding.class)
+ AAIResultWrapper wrapper = client.get(u.depth(Depth.TWO), NotFoundException.class)
+ Optional<VpnBinding> binding = wrapper.asBean(VpnBinding.class)
- String routeTarget = ""
- String routeRole = ""
- if(binding.get().getRouteTargets() != null) {
- List<RouteTarget> targets = binding.get().getRouteTargets().getRouteTarget()
- for(RouteTarget target : targets) {
- routeTarget = target.getGlobalRouteTarget()
- routeRole = target.getRouteTargetRole()
- routeTargets += "<routeTargets>" + '\n' +
- " <routeTarget>" + routeTarget + "</routeTarget>" + '\n' +
- " <routeTargetRole>" + routeRole + "</routeTargetRole>" + '\n' +
- "</routeTargets>" + '\n'
- }
- }
+ String routeTarget = ""
+ String routeRole = ""
+ if(binding.get().getRouteTargets() != null) {
+ List<RouteTarget> targets = binding.get().getRouteTargets().getRouteTarget()
+ for(RouteTarget target : targets) {
+ routeTarget = target.getGlobalRouteTarget()
+ routeRole = target.getRouteTargetRole()
+ routeTargets += "<routeTargets>" + '\n' +
+ " <routeTarget>" + routeTarget + "</routeTarget>" + '\n' +
+ " <routeTargetRole>" + routeRole + "</routeTargetRole>" + '\n' +
+ "</routeTargets>" + '\n'
+ }
+ }
- } // end loop
+ } // end loop
- execution.setVariable(Prefix + "routeCollection", routeTargets)
- logger.debug(Prefix + "routeCollection - " + '\n' + routeTargets)
+ execution.setVariable(Prefix + "routeCollection", routeTargets)
+ logger.debug(Prefix + "routeCollection - " + '\n' + routeTargets)
- } else {
- // reset return code to success
- execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String schemaVersion = aaiUriUtil.getNamespace()
- String aaiStubResponse =
- """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+ } else {
+ // reset return code to success
+ execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ String schemaVersion = aaiUriUtil.getNamespace()
+ String aaiStubResponse =
+ """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
<vpn-binding xmlns="${schemaVersion}">
<global-route-target/>
</vpn-binding>
</rest:payload>"""
- String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
- execution.setVariable(Prefix + "queryVpnBindingAAIResponse", aaiStubResponseAsXml)
- execution.setVariable(Prefix + "routeCollection", "<routeTargets/>")
- logger.debug(" No vpnBinding, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+ String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+ execution.setVariable(Prefix + "queryVpnBindingAAIResponse", aaiStubResponseAsXml)
+ execution.setVariable(Prefix + "routeCollection", "<routeTargets/>")
+ logger.debug(" No vpnBinding, using this stub as response - " + '\n' + aaiStubResponseAsXml)
- }
- }
+ }
+ }
- } catch (NotFoundException e) {
- logger.debug("Response Error from AAINetworkVpnBinding is 404 (Not Found).")
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Response Error from AAINetworkVpnBinding is 404 (Not Found).")
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkVpnBinding() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (NotFoundException e) {
+ logger.debug("Response Error from AAINetworkVpnBinding is 404 (Not Found).")
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Response Error from AAINetworkVpnBinding is 404 (Not Found).")
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkVpnBinding() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTQueryAAINetworkPolicy(DelegateExecution execution) {
+ public void callRESTQueryAAINetworkPolicy(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.debug(" ***** Inside callRESTQueryAAINetworkPolicy() of DoCreateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAINetworkPolicy() of DoCreateNetworkInstance ***** " )
- try {
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
- Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
- if(relationships.isPresent()){
- List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.NETWORK_POLICY)
+ try {
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
+ Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
+ if(relationships.isPresent()){
+ List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.NETWORK_POLICY)
- execution.setVariable(Prefix + "networkPolicyCount", uris.size())
- logger.debug(Prefix + "networkPolicyCount - " + uris.size())
+ execution.setVariable(Prefix + "networkPolicyCount", uris.size())
+ logger.debug(Prefix + "networkPolicyCount - " + uris.size())
- if (uris.size() > 0) {
+ if (uris.size() > 0) {
- String networkPolicies = ""
- // AII loop call using list vpnBindings
- for(AAIResourceUri u : uris) {
+ String networkPolicies = ""
+ // AII loop call using list vpnBindings
+ for(AAIResourceUri u : uris) {
- NetworkPolicy p = client.get(u, NotFoundException.class).asBean(NetworkPolicy.class).get()
+ NetworkPolicy p = client.get(u, NotFoundException.class).asBean(NetworkPolicy.class).get()
- execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
+ execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
- String networkPolicy = p.getNetworkPolicyFqdn()
- networkPolicies += "<policyFqdns>" + networkPolicy + "</policyFqdns>" + '\n'
+ String networkPolicy = p.getNetworkPolicyFqdn()
+ networkPolicies += "<policyFqdns>" + networkPolicy + "</policyFqdns>" + '\n'
- } // end loop
+ } // end loop
- execution.setVariable(Prefix + "networkCollection", networkPolicies)
- logger.debug(Prefix + "networkCollection - " + '\n' + networkPolicies)
+ execution.setVariable(Prefix + "networkCollection", networkPolicies)
+ logger.debug(Prefix + "networkCollection - " + '\n' + networkPolicies)
- } else {
- // reset return code to success
- execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String schemaVersion = aaiUriUtil.getNamespace()
- String aaiStubResponse =
- """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+ } else {
+ // reset return code to success
+ execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ String schemaVersion = aaiUriUtil.getNamespace()
+ String aaiStubResponse =
+ """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
<network-policy xmlns="${schemaVersion}">
<network-policy-fqdn/>
</network-policy>
</rest:payload>"""
- String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
- execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", aaiStubResponseAsXml)
- execution.setVariable(Prefix + "networkCollection", "<policyFqdns/>")
- logger.debug(" No net policies, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+ String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+ execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", aaiStubResponseAsXml)
+ execution.setVariable(Prefix + "networkCollection", "<policyFqdns/>")
+ logger.debug(" No net policies, using this stub as response - " + '\n' + aaiStubResponseAsXml)
- }
- }
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from QueryAAINetworkPolicy is 404 (Not Found)."
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+ }
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from QueryAAINetworkPolicy is 404 (Not Found)."
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkPolicy() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkPolicy() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTQueryAAINetworkTableRef(DelegateExecution execution) {
+ public void callRESTQueryAAINetworkTableRef(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.debug(" ***** Inside callRESTQueryAAINetworkTableRef() of DoCreateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAINetworkTableRef() of DoCreateNetworkInstance ***** " )
- try {
+ try {
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
- Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
- if(relationships.isPresent()){
- List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.ROUTE_TABLE_REFERENCE)
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
+ Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
+ if(relationships.isPresent()){
+ List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.ROUTE_TABLE_REFERENCE)
- execution.setVariable(Prefix + "networkTableRefCount", uris.size())
- logger.debug(Prefix + "networkTableRefCount - " + uris.size())
+ execution.setVariable(Prefix + "networkTableRefCount", uris.size())
+ logger.debug(Prefix + "networkTableRefCount - " + uris.size())
- if (uris.size() > 0) {
+ if (uris.size() > 0) {
- // AII loop call using list vpnBindings
- String networkTableRefs = ""
- for(AAIResourceUri u : uris) {
+ // AII loop call using list vpnBindings
+ String networkTableRefs = ""
+ for(AAIResourceUri u : uris) {
- RouteTableReference rt = client.get(u, NotFoundException.class).asBean(RouteTableReference.class).get()
+ RouteTableReference rt = client.get(u, NotFoundException.class).asBean(RouteTableReference.class).get()
- String networkTableRef = rt.getRouteTableReferenceFqdn()
- networkTableRefs += "<routeTableFqdns>" + networkTableRef + "</routeTableFqdns>" + '\n'
+ String networkTableRef = rt.getRouteTableReferenceFqdn()
+ networkTableRefs += "<routeTableFqdns>" + networkTableRef + "</routeTableFqdns>" + '\n'
- } // end loop
+ } // end loop
- execution.setVariable(Prefix + "tableRefCollection", networkTableRefs)
- logger.debug(Prefix + "tableRefCollection - " + '\n' + networkTableRefs)
+ execution.setVariable(Prefix + "tableRefCollection", networkTableRefs)
+ logger.debug(Prefix + "tableRefCollection - " + '\n' + networkTableRefs)
- } else {
- // reset return code to success
- execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String schemaVersion = aaiUriUtil.getNamespace()
- String aaiStubResponse =
- """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+ } else {
+ // reset return code to success
+ execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ String schemaVersion = aaiUriUtil.getNamespace()
+ String aaiStubResponse =
+ """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
<route-table-references xmlns="${schemaVersion}">
<route-table-reference-fqdn/>
</route-table-references>
</rest:payload>"""
- String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
- execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", aaiStubResponseAsXml)
- execution.setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
- logger.debug(" No net table references, using this stub as response - " + '\n' + aaiStubResponseAsXml)
-
- }
- }
-
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from QueryAAINetworkTableRef is 404 (Not Found)."
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkTableRef() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
-
- public void callRESTUpdateContrailAAINetwork(DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace(" ***** Inside callRESTUpdateContrailAAINetwork() of DoCreateNetworkInstance ***** " )
-
- try {
- // get variables
- String networkId = execution.getVariable(Prefix + "networkId")
- L3Network requeryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
- String createNetworkResponse = execution.getVariable(Prefix + "createNetworkResponse")
-
- L3Network l3Network = new L3Network()
- if (StringUtils.isBlank(requeryIdAAIResponse.getHeatStackId())) {
- if (utils.nodeExists(createNetworkResponse, 'networkStackId')) {
- l3Network.setHeatStackId(utils.getNodeText(createNetworkResponse, 'networkStackId'))
- }
- }
- if (StringUtils.isBlank(requeryIdAAIResponse.getNeutronNetworkId())) {
- if (utils.nodeExists(createNetworkResponse, 'neutronNetworkId')) {
- l3Network.setNeutronNetworkId(utils.getNodeText(createNetworkResponse, 'neutronNetworkId'))
- }
- }
- if (StringUtils.isBlank(requeryIdAAIResponse.getContrailNetworkFqdn())) {
- if (utils.nodeExists(createNetworkResponse, 'networkFqdn')) {
- l3Network.setContrailNetworkFqdn(utils.getNodeText(createNetworkResponse, 'networkFqdn'))
- }
- }
-
- String status = utils.getNodeText(createNetworkResponse, 'orchestration-status')
- if(status.equals("pending-create") || status.equals("PendingCreate")){
- l3Network.setOrchestrationStatus("Created")
- }else{
- l3Network.setOrchestrationStatus("Active")
- }
-
- logger.debug("Updating l3-network in AAI" )
-
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
- client.update(uri, l3Network)
-
- if(requeryIdAAIResponse.getSubnets() != null){
- for(Subnet s:requeryIdAAIResponse.getSubnets().getSubnet()){
- String subnetOrchStatus = s.getOrchestrationStatus()
- String subnetId = s.getSubnetId()
- Subnet subnet = new Subnet()
- subnet.setNeutronSubnetId(networkUtils.extractNeutSubId(createNetworkResponse, subnetId))
- if(subnetOrchStatus.equals("pending-create") || subnetOrchStatus.equals("PendingCreate") ){
- subnet.setOrchestrationStatus("Created")
- }else{
- subnet.setOrchestrationStatus("Active")
- }
-
- logger.debug("Updating subnet in AAI" )
- AAIResourceUri subUri = AAIUriFactory.createResourceUri(AAIObjectType.SUBNET, networkId, subnetId)
- client.update(subUri, subnet)
-
- }
- }
-
- String rollbackEnabled = execution.getVariable(Prefix + "rollbackEnabled")
- if (rollbackEnabled == "true") {
- execution.setVariable(Prefix + "isPONR", false)
- } else {
- execution.setVariable(Prefix + "isPONR", true)
- }
- logger.debug(Prefix + "isPONR" + ": " + execution.getVariable(Prefix + "isPONR"))
-
- } catch (BpmnError e) {
- throw e;
- } catch (NotFoundException e) {
- String dataErrorMessage = " Response Error from UpdateContrailAAINetwork is 404 (Not Found)."
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTUpdateContrailAAINetwork() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
- }
-
- public void prepareCreateNetworkRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside prepareCreateNetworkRequest() of DoCreateNetworkInstance")
-
- try {
-
- // get variables
- String requestId = execution.getVariable("msoRequestId")
- if (requestId == null) {
- requestId = execution.getVariable("mso-request-id")
- }
- String messageId = execution.getVariable(Prefix + "messageId")
- String source = execution.getVariable(Prefix + "source")
-
- String requestInput = execution.getVariable(Prefix + "networkRequest")
- L3Network queryIdResponse = execution.getVariable(Prefix + "queryIdAAIResponse")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionPo")
- String backoutOnFailure = execution.getVariable(Prefix + "rollbackEnabled")
-
- // Prepare Network request
- String routeCollection = execution.getVariable(Prefix + "routeCollection")
- String policyCollection = execution.getVariable(Prefix + "networkCollection")
- String tableCollection = execution.getVariable(Prefix + "tableRefCollection")
- String createNetworkRequest = networkUtils.CreateNetworkRequestV2(execution, requestId, messageId, requestInput, queryIdResponse, routeCollection, policyCollection, tableCollection, cloudRegionId, backoutOnFailure, source )
- // Format Response
- String buildDeleteNetworkRequestAsString = utils.formatXml(createNetworkRequest)
- buildDeleteNetworkRequestAsString = buildDeleteNetworkRequestAsString.replace(":w1aac13n0", "").replace("w1aac13n0:", "")
-
- execution.setVariable(Prefix + "createNetworkRequest", buildDeleteNetworkRequestAsString)
- logger.debug(Prefix + "createNetworkRequest - " + "\n" + buildDeleteNetworkRequestAsString)
-
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareCreateNetworkRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+ execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", aaiStubResponseAsXml)
+ execution.setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
+ logger.debug(" No net table references, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+
+ }
+ }
+
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from QueryAAINetworkTableRef is 404 (Not Found)."
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkTableRef() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+
+ }
+
+ }
+
+
+ public void callRESTUpdateContrailAAINetwork(DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace(" ***** Inside callRESTUpdateContrailAAINetwork() of DoCreateNetworkInstance ***** " )
+
+ try {
+ // get variables
+ String networkId = execution.getVariable(Prefix + "networkId")
+ L3Network requeryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
+ String createNetworkResponse = execution.getVariable(Prefix + "createNetworkResponse")
+
+ L3Network l3Network = new L3Network()
+ if (StringUtils.isBlank(requeryIdAAIResponse.getHeatStackId())) {
+ if (utils.nodeExists(createNetworkResponse, 'networkStackId')) {
+ l3Network.setHeatStackId(utils.getNodeText(createNetworkResponse, 'networkStackId'))
+ }
+ }
+ if (StringUtils.isBlank(requeryIdAAIResponse.getNeutronNetworkId())) {
+ if (utils.nodeExists(createNetworkResponse, 'neutronNetworkId')) {
+ l3Network.setNeutronNetworkId(utils.getNodeText(createNetworkResponse, 'neutronNetworkId'))
+ }
+ }
+ if (StringUtils.isBlank(requeryIdAAIResponse.getContrailNetworkFqdn())) {
+ if (utils.nodeExists(createNetworkResponse, 'networkFqdn')) {
+ l3Network.setContrailNetworkFqdn(utils.getNodeText(createNetworkResponse, 'networkFqdn'))
+ }
+ }
+
+ String status = utils.getNodeText(createNetworkResponse, 'orchestration-status')
+ if(status.equals("pending-create") || status.equals("PendingCreate")){
+ l3Network.setOrchestrationStatus("Created")
+ }else{
+ l3Network.setOrchestrationStatus("Active")
+ }
+
+ logger.debug("Updating l3-network in AAI" )
+
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
+ client.update(uri, l3Network)
+
+ if(requeryIdAAIResponse.getSubnets() != null){
+ for(Subnet s:requeryIdAAIResponse.getSubnets().getSubnet()){
+ String subnetOrchStatus = s.getOrchestrationStatus()
+ String subnetId = s.getSubnetId()
+ Subnet subnet = new Subnet()
+ subnet.setNeutronSubnetId(networkUtils.extractNeutSubId(createNetworkResponse, subnetId))
+ if(subnetOrchStatus.equals("pending-create") || subnetOrchStatus.equals("PendingCreate") ){
+ subnet.setOrchestrationStatus("Created")
+ }else{
+ subnet.setOrchestrationStatus("Active")
+ }
+
+ logger.debug("Updating subnet in AAI" )
+ AAIResourceUri subUri = AAIUriFactory.createResourceUri(AAIObjectType.SUBNET, networkId, subnetId)
+ client.update(subUri, subnet)
+
+ }
+ }
+
+ String rollbackEnabled = execution.getVariable(Prefix + "rollbackEnabled")
+ if (rollbackEnabled == "true") {
+ execution.setVariable(Prefix + "isPONR", false)
+ } else {
+ execution.setVariable(Prefix + "isPONR", true)
+ }
+ logger.debug(Prefix + "isPONR" + ": " + execution.getVariable(Prefix + "isPONR"))
+
+ } catch (BpmnError e) {
+ throw e;
+ } catch (NotFoundException e) {
+ String dataErrorMessage = " Response Error from UpdateContrailAAINetwork is 404 (Not Found)."
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTUpdateContrailAAINetwork() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ }
+ }
+
+ public void prepareCreateNetworkRequest (DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside prepareCreateNetworkRequest() of DoCreateNetworkInstance")
+
+ try {
+
+ // get variables
+ String requestId = execution.getVariable("msoRequestId")
+ if (requestId == null) {
+ requestId = execution.getVariable("mso-request-id")
+ }
+ String messageId = execution.getVariable(Prefix + "messageId")
+ String source = execution.getVariable(Prefix + "source")
+
+ String requestInput = execution.getVariable(Prefix + "networkRequest")
+ L3Network queryIdResponse = execution.getVariable(Prefix + "queryIdAAIResponse")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionPo")
+ String backoutOnFailure = execution.getVariable(Prefix + "rollbackEnabled")
+
+ // Prepare Network request
+ String routeCollection = execution.getVariable(Prefix + "routeCollection")
+ String policyCollection = execution.getVariable(Prefix + "networkCollection")
+ String tableCollection = execution.getVariable(Prefix + "tableRefCollection")
+ String createNetworkRequest = networkUtils.CreateNetworkRequestV2(execution, requestId, messageId, requestInput, queryIdResponse, routeCollection, policyCollection, tableCollection, cloudRegionId, backoutOnFailure, source )
+ // Format Response
+ String buildDeleteNetworkRequestAsString = utils.formatXml(createNetworkRequest)
+ buildDeleteNetworkRequestAsString = buildDeleteNetworkRequestAsString.replace(":w1aac13n0", "").replace("w1aac13n0:", "")
+
+ execution.setVariable(Prefix + "createNetworkRequest", buildDeleteNetworkRequestAsString)
+ logger.debug(Prefix + "createNetworkRequest - " + "\n" + buildDeleteNetworkRequestAsString)
+
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareCreateNetworkRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void prepareSDNCRequest (DelegateExecution execution) {
+ public void prepareSDNCRequest (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside prepareSDNCRequest() of DoCreateNetworkInstance")
+ logger.trace("Inside prepareSDNCRequest() of DoCreateNetworkInstance")
- try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ try {
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String networkId = execution.getVariable(Prefix + "networkId")
- String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
+ String networkId = execution.getVariable(Prefix + "networkId")
+ String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
- // get/set 'msoRequestId' and 'mso-request-id'
- String requestId = execution.getVariable("msoRequestId")
- if (requestId != null) {
- execution.setVariable("mso-request-id", requestId)
- } else {
- requestId = execution.getVariable("mso-request-id")
- }
- execution.setVariable(Prefix + "requestId", requestId)
+ // get/set 'msoRequestId' and 'mso-request-id'
+ String requestId = execution.getVariable("msoRequestId")
+ if (requestId != null) {
+ execution.setVariable("mso-request-id", requestId)
+ } else {
+ requestId = execution.getVariable("mso-request-id")
+ }
+ execution.setVariable(Prefix + "requestId", requestId)
- // 1. prepare assign topology via SDNC Adapter SUBFLOW call
- String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, createNetworkInput, serviceInstanceId, sdncCallback, "assign", "NetworkActivateRequest", cloudRegionId, networkId, null, null)
+ // 1. prepare assign topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, createNetworkInput, serviceInstanceId, sdncCallback, "assign", "NetworkActivateRequest", cloudRegionId, networkId, null, null)
- String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
- execution.setVariable(Prefix + "assignSDNCRequest", sndcTopologyCreateRequesAsString)
- logger.debug(Prefix + "assignSDNCRequest - " + "\n" + sndcTopologyCreateRequesAsString)
+ String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
+ execution.setVariable(Prefix + "assignSDNCRequest", sndcTopologyCreateRequesAsString)
+ logger.debug(Prefix + "assignSDNCRequest - " + "\n" + sndcTopologyCreateRequesAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSDNCRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSDNCRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void prepareRpcSDNCRequest (DelegateExecution execution) {
+ public void prepareRpcSDNCRequest (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside prepareRpcSDNCRequest() of DoCreateNetworkInstance")
+ logger.trace("Inside prepareRpcSDNCRequest() of DoCreateNetworkInstance")
- try {
- // get variables
+ try {
+ // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String networkId = execution.getVariable(Prefix + "networkId")
- String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
+ String networkId = execution.getVariable(Prefix + "networkId")
+ String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
- // 1. prepare assign topology via SDNC Adapter SUBFLOW call
- String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "assign", "CreateNetworkInstance", cloudRegionId, networkId, null)
+ // 1. prepare assign topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "assign", "CreateNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
- execution.setVariable(Prefix + "assignSDNCRequest", sndcTopologyCreateRequesAsString)
- logger.debug(Prefix + "assignSDNCRequest - " + "\n" + sndcTopologyCreateRequesAsString)
+ String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
+ execution.setVariable(Prefix + "assignSDNCRequest", sndcTopologyCreateRequesAsString)
+ logger.debug(Prefix + "assignSDNCRequest - " + "\n" + sndcTopologyCreateRequesAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void prepareRpcSDNCActivateRequest (DelegateExecution execution) {
+ public void prepareRpcSDNCActivateRequest (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside prepareRpcSDNCActivateRequest() of DoCreateNetworkInstance")
+ logger.trace("Inside prepareRpcSDNCActivateRequest() of DoCreateNetworkInstance")
- try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String networkId = execution.getVariable(Prefix + "networkId")
- String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
+ try {
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String networkId = execution.getVariable(Prefix + "networkId")
+ String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
- // 1. prepare assign topology via SDNC Adapter SUBFLOW call
- String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
+ // 1. prepare assign topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
- execution.setVariable(Prefix + "activateSDNCRequest", sndcTopologyCreateRequesAsString)
- logger.debug(Prefix + "activateSDNCRequest - " + "\n" + sndcTopologyCreateRequesAsString)
+ String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
+ execution.setVariable(Prefix + "activateSDNCRequest", sndcTopologyCreateRequesAsString)
+ logger.debug(Prefix + "activateSDNCRequest - " + "\n" + sndcTopologyCreateRequesAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCActivateRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCActivateRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- // **************************************************
- // Post or Validate Response Section
- // **************************************************
+ // **************************************************
+ // Post or Validate Response Section
+ // **************************************************
- public void validateCreateNetworkResponse (DelegateExecution execution) {
+ public void validateCreateNetworkResponse (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside validateNetworkResponse() of DoCreateNetworkInstance")
+ logger.trace("Inside validateNetworkResponse() of DoCreateNetworkInstance")
- try {
- String returnCode = execution.getVariable(Prefix + "networkReturnCode")
- String networkResponse = execution.getVariable(Prefix + "createNetworkResponse")
- if (networkResponse==null) {
- networkResponse="" // reset
- }
+ try {
+ String networkResponse = execution.getVariable(Prefix + "createNetworkResponse")
+ if (networkResponse==null) {
+ networkResponse="" // reset
+ }
- logger.debug(" Network Adapter create responseCode: " + returnCode)
+ execution.setVariable(Prefix + "isNetworkRollbackNeeded", true)
+ execution.setVariable(Prefix + "createNetworkResponse", networkResponse)
+ logger.debug(" Network Adapter create Success Response - " + "\n" + networkResponse)
- String errorMessage = ""
- if (returnCode == "200") {
- execution.setVariable(Prefix + "isNetworkRollbackNeeded", true)
- execution.setVariable(Prefix + "createNetworkResponse", networkResponse)
- logger.debug(" Network Adapter create Success Response - " + "\n" + networkResponse)
-
- // prepare rollback data
- String rollbackData = utils.getNodeXml(networkResponse, "rollback", false).replace("tag0:","").replace(":tag0","")
- rollbackData = rollbackData.replace("rollback>", "networkRollback>")
- String rollbackNetwork =
- """<rollbackNetworkRequest>
+ // prepare rollback data
+ String rollbackData = utils.getNodeXml(networkResponse, "rollback", false).replace("tag0:","").replace(":tag0","")
+ rollbackData = rollbackData.replace("rollback>", "networkRollback>")
+ String rollbackNetwork =
+ """<rollbackNetworkRequest>
${rollbackData}
</rollbackNetworkRequest>"""
- String rollbackNetworkXml = utils.formatXml(rollbackNetwork)
- execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkXml)
- logger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
-
- } else { // network error
- if (returnCode.toInteger() > 399 && returnCode.toInteger() < 600) { //4xx, 5xx
- if (networkResponse.contains("createNetworkError")) {
- networkResponse = networkResponse.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '')
- errorMessage = utils.getNodeText(networkResponse, "message")
- errorMessage = "Received error from Network Adapter: " + errorMessage
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
-
- } else { // CatchAll exception
- if (returnCode == "500") {
- errorMessage = "JBWEB000065: HTTP Status 500."
- } else {
- errorMessage = "Return code is " + returnCode
- }
- errorMessage = "Received error from Network Adapter: " + errorMessage
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
-
- }
-
- } else { // CatchAll exception
- String dataErrorMessage = "Received error from Network Adapter. Return code is: " + returnCode
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
- }
-
- }
+ String rollbackNetworkXml = utils.formatXml(rollbackNetwork)
+ execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkXml)
+ logger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
- } catch (BpmnError e) {
- throw e;
+ } catch (BpmnError e) {
+ throw e;
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. validateCreateNetworkResponse() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. validateCreateNetworkResponse() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void validateSDNCResponse (DelegateExecution execution) {
+ public void validateSDNCResponse (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside validateSDNCResponse() of DoCreateNetworkInstance")
+ logger.trace("Inside validateSDNCResponse() of DoCreateNetworkInstance")
- String response = execution.getVariable(Prefix + "assignSDNCResponse")
- boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
- WorkflowException workflowException = execution.getVariable("WorkflowException")
+ String response = execution.getVariable(Prefix + "assignSDNCResponse")
+ boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
+ WorkflowException workflowException = execution.getVariable("WorkflowException")
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
- // reset variable
- String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "assignSDNCResponse")
- assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- execution.setVariable(Prefix + "assignSDNCResponse", assignSDNCResponseDecodeXml)
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
+ // reset variable
+ String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "assignSDNCResponse")
+ assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
+ execution.setVariable(Prefix + "assignSDNCResponse", assignSDNCResponseDecodeXml)
- if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
- execution.setVariable(Prefix + "isSdncRollbackNeeded", true)
- logger.debug("Successfully Validated SDNC Response")
+ if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
+ execution.setVariable(Prefix + "isSdncRollbackNeeded", true)
+ logger.debug("Successfully Validated SDNC Response")
- } else {
- logger.debug("Did NOT Successfully Validated SDNC Response")
- throw new BpmnError("MSOWorkflowException")
- }
+ } else {
+ logger.debug("Did NOT Successfully Validated SDNC Response")
+ throw new BpmnError("MSOWorkflowException")
+ }
- }
+ }
- public void validateRpcSDNCActivateResponse (DelegateExecution execution) {
+ public void validateRpcSDNCActivateResponse (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside validateRpcSDNCActivateResponse() of DoCreateNetworkInstance")
+ logger.trace("Inside validateRpcSDNCActivateResponse() of DoCreateNetworkInstance")
- String response = execution.getVariable(Prefix + "activateSDNCResponse")
- boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
- WorkflowException workflowException = execution.getVariable("WorkflowException")
+ String response = execution.getVariable(Prefix + "activateSDNCResponse")
+ boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
+ WorkflowException workflowException = execution.getVariable("WorkflowException")
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
- // reset variable
- String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "activateSDNCResponse")
- assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- execution.setVariable(Prefix + "activateSDNCResponse", assignSDNCResponseDecodeXml)
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
+ // reset variable
+ String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "activateSDNCResponse")
+ assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
+ execution.setVariable(Prefix + "activateSDNCResponse", assignSDNCResponseDecodeXml)
- if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
- execution.setVariable(Prefix + "isSdncActivateRollbackNeeded", true)
- logger.debug("Successfully Validated Rpc SDNC Activate Response")
+ if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
+ execution.setVariable(Prefix + "isSdncActivateRollbackNeeded", true)
+ logger.debug("Successfully Validated Rpc SDNC Activate Response")
- } else {
- logger.debug("Did NOT Successfully Validated Rpc SDNC Activate Response")
- throw new BpmnError("MSOWorkflowException")
- }
+ } else {
+ logger.debug("Did NOT Successfully Validated Rpc SDNC Activate Response")
+ throw new BpmnError("MSOWorkflowException")
+ }
- }
+ }
- public void prepareSDNCRollbackRequest (DelegateExecution execution) {
+ public void prepareSDNCRollbackRequest (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside prepareSDNCRollbackRequest() of DoCreateNetworkInstance")
+ logger.trace("Inside prepareSDNCRollbackRequest() of DoCreateNetworkInstance")
- try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String assignSDNCResponse = execution.getVariable(Prefix + "assignSDNCResponse")
- String networkId = execution.getVariable(Prefix + "networkId")
- if (networkId == 'null') {networkId = ""}
- String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
+ try {
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String assignSDNCResponse = execution.getVariable(Prefix + "assignSDNCResponse")
+ String networkId = execution.getVariable(Prefix + "networkId")
+ if (networkId == 'null') {networkId = ""}
+ String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
- // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
- String sndcTopologyRollbackRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, createNetworkInput, serviceInstanceId, sdncCallback, "rollback", "NetworkActivateRequest", cloudRegionId, networkId, null, null)
- String sndcTopologyRollbackRequestAsString = utils.formatXml(sndcTopologyRollbackRequest)
- execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRequestAsString)
- logger.debug(" Preparing request for SDNC Topology 'rollback-NetworkActivateRequest' rollback . . . - " + "\n" + sndcTopologyRollbackRequestAsString)
+ // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyRollbackRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, createNetworkInput, serviceInstanceId, sdncCallback, "rollback", "NetworkActivateRequest", cloudRegionId, networkId, null, null)
+ String sndcTopologyRollbackRequestAsString = utils.formatXml(sndcTopologyRollbackRequest)
+ execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRequestAsString)
+ logger.debug(" Preparing request for SDNC Topology 'rollback-NetworkActivateRequest' rollback . . . - " + "\n" + sndcTopologyRollbackRequestAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSDNCRollbackRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSDNCRollbackRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void prepareRpcSDNCRollbackRequest (DelegateExecution execution) {
+ public void prepareRpcSDNCRollbackRequest (DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside prepareRpcSDNCRollbackRequest() of DoCreateNetworkInstance")
+ logger.trace("Inside prepareRpcSDNCRollbackRequest() of DoCreateNetworkInstance")
- try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String assignSDNCResponse = execution.getVariable(Prefix + "assignSDNCResponse")
- String networkId = execution.getVariable(Prefix + "networkId")
- if (networkId == 'null') {networkId = ""}
- String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
+ try {
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String assignSDNCResponse = execution.getVariable(Prefix + "assignSDNCResponse")
+ String networkId = execution.getVariable(Prefix + "networkId")
+ if (networkId == 'null') {networkId = ""}
+ String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
- // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
- String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "unassign", "DeleteNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
- execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
- logger.debug(" Preparing request for SDNC Topology 'unassign-DeleteNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
+ // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "unassign", "DeleteNetworkInstance", cloudRegionId, networkId, null)
+ String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
+ execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
+ logger.debug(" Preparing request for SDNC Topology 'unassign-DeleteNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCRollbackRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCRollbackRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void prepareRpcSDNCActivateRollback(DelegateExecution execution) {
+ public void prepareRpcSDNCActivateRollback(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside prepareRpcSDNCActivateRollback() of DoCreateNetworkInstance")
+ logger.trace("Inside prepareRpcSDNCActivateRollback() of DoCreateNetworkInstance")
- try {
+ try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String activateSDNCResponse = execution.getVariable(Prefix + "activateSDNCResponse")
- String networkId = execution.getVariable(Prefix + "networkId")
- if (networkId == 'null') {networkId = ""}
- String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
-
- // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
- String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "deactivate", "DeleteNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
- execution.setVariable(Prefix + "rollbackActivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
- logger.debug(" Preparing request for RPC SDNC Topology 'deactivate-DeleteNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
-
-
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCActivateRollback() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String createNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String activateSDNCResponse = execution.getVariable(Prefix + "activateSDNCResponse")
+ String networkId = execution.getVariable(Prefix + "networkId")
+ if (networkId == 'null') {networkId = ""}
+ String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
+
+ // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "deactivate", "DeleteNetworkInstance", cloudRegionId, networkId, null)
+ String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
+ execution.setVariable(Prefix + "rollbackActivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
+ logger.debug(" Preparing request for RPC SDNC Topology 'deactivate-DeleteNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
+
+
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCActivateRollback() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+
+ }
+
+ }
- public void prepareRollbackData(DelegateExecution execution) {
+ public void prepareRollbackData(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside prepareRollbackData() of DoCreateNetworkInstance")
-
- try {
-
- Map<String, String> rollbackData = new HashMap<String, String>();
- String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
- if (rollbackSDNCRequest != null) {
- if (rollbackSDNCRequest != "") {
- rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
- }
- }
- String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
- if (rollbackNetworkRequest != null) {
- if (rollbackNetworkRequest != "") {
- rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
- }
- }
- String rollbackActivateSDNCRequest = execution.getVariable(Prefix + "rollbackActivateSDNCRequest")
- if (rollbackActivateSDNCRequest != null) {
- if (rollbackActivateSDNCRequest != "") {
- rollbackData.put("rollbackActivateSDNCRequest", execution.getVariable(Prefix + "rollbackActivateSDNCRequest"))
- }
- }
- execution.setVariable("rollbackData", rollbackData)
- logger.debug("** rollbackData : " + rollbackData)
-
- execution.setVariable("WorkflowException", execution.getVariable(Prefix + "WorkflowException"))
- logger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
-
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void postProcessResponse(DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside postProcessResponse() of DoCreateNetworkInstance")
-
- try {
-
- //Conditions:
- // 1. Silent Success: execution.getVariable("CRENWKI_orchestrationStatus") == "ACTIVE"
- // 2. Success: execution.getVariable("WorkflowException") == null (NULL)
- // 3. WorkflowException: execution.getVariable("WorkflowException") != null (NOT NULL)
-
- logger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
- // successful flow
- if (execution.getVariable(Prefix + "isException") == false) {
- // set rollback data
- execution.setVariable("orchestrationStatus", "")
- execution.setVariable("networkId", execution.getVariable(Prefix + "networkId"))
- execution.setVariable("networkName", execution.getVariable(Prefix + "networkName"))
- prepareSuccessRollbackData(execution) // populate rollbackData
- execution.setVariable("WorkflowException", null)
- execution.setVariable(Prefix + "Success", true)
- logger.debug(" ***** postProcessResponse(), GOOD !!!")
- } else {
- // inside sub-flow logic
- execution.setVariable(Prefix + "Success", false)
- execution.setVariable("rollbackData", null)
- String exceptionMessage = " Exception encountered in MSO Bpmn. "
- if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
- logger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
- WorkflowException wfex = execution.getVariable("workflowException")
- exceptionMessage = wfex.getErrorMessage()
- } else {
- if (execution.getVariable(Prefix + "WorkflowException") != null) {
- WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
- exceptionMessage = pwfex.getErrorMessage()
- }
- }
- // going to the Main flow: a-la-carte or macro
- logger.debug(" ***** postProcessResponse(), BAD !!!")
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
- }
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside prepareRollbackData() of DoCreateNetworkInstance")
+
+ try {
+
+ Map<String, String> rollbackData = new HashMap<String, String>();
+ String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
+ if (rollbackSDNCRequest != null) {
+ if (rollbackSDNCRequest != "") {
+ rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
+ }
+ }
+ String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
+ if (rollbackNetworkRequest != null) {
+ if (rollbackNetworkRequest != "") {
+ rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
+ }
+ }
+ String rollbackActivateSDNCRequest = execution.getVariable(Prefix + "rollbackActivateSDNCRequest")
+ if (rollbackActivateSDNCRequest != null) {
+ if (rollbackActivateSDNCRequest != "") {
+ rollbackData.put("rollbackActivateSDNCRequest", execution.getVariable(Prefix + "rollbackActivateSDNCRequest"))
+ }
+ }
+ execution.setVariable("rollbackData", rollbackData)
+ logger.debug("** rollbackData : " + rollbackData)
+
+ execution.setVariable("WorkflowException", execution.getVariable(Prefix + "WorkflowException"))
+ logger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
+
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+
+ }
+
+ }
+
+ public void postProcessResponse(DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside postProcessResponse() of DoCreateNetworkInstance")
+
+ try {
+
+ //Conditions:
+ // 1. Silent Success: execution.getVariable("CRENWKI_orchestrationStatus") == "ACTIVE"
+ // 2. Success: execution.getVariable("WorkflowException") == null (NULL)
+ // 3. WorkflowException: execution.getVariable("WorkflowException") != null (NOT NULL)
+
+ logger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
+ // successful flow
+ if (execution.getVariable(Prefix + "isException") == false) {
+ // set rollback data
+ execution.setVariable("orchestrationStatus", "")
+ execution.setVariable("networkId", execution.getVariable(Prefix + "networkId"))
+ execution.setVariable("networkName", execution.getVariable(Prefix + "networkName"))
+ prepareSuccessRollbackData(execution) // populate rollbackData
+ execution.setVariable("WorkflowException", null)
+ execution.setVariable(Prefix + "Success", true)
+ logger.debug(" ***** postProcessResponse(), GOOD !!!")
+ } else {
+ // inside sub-flow logic
+ execution.setVariable(Prefix + "Success", false)
+ execution.setVariable("rollbackData", null)
+ String exceptionMessage = " Exception encountered in MSO Bpmn. "
+ if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
+ logger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
+ WorkflowException wfex = execution.getVariable("workflowException")
+ exceptionMessage = wfex.getErrorMessage()
+ } else {
+ if (execution.getVariable(Prefix + "WorkflowException") != null) {
+ WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
+ exceptionMessage = pwfex.getErrorMessage()
+ }
+ }
+ // going to the Main flow: a-la-carte or macro
+ logger.debug(" ***** postProcessResponse(), BAD !!!")
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ throw new BpmnError("MSOWorkflowException")
+ }
- } catch(BpmnError b){
- logger.debug("Rethrowing MSOWorkflowException")
- throw b
+ } catch(BpmnError b){
+ logger.debug("Rethrowing MSOWorkflowException")
+ throw b
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. postProcessResponse() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
-
- }
-
-
-
- }
-
- public void prepareSuccessRollbackData(DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside prepareSuccessRollbackData() of DoCreateNetworkInstance")
-
- try {
-
- if (execution.getVariable("sdncVersion") != '1610') {
- prepareRpcSDNCRollbackRequest(execution)
- prepareRpcSDNCActivateRollback(execution)
- } else {
- prepareSDNCRollbackRequest(execution)
- }
-
- Map<String, String> rollbackData = new HashMap<String, String>();
- String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
- if (rollbackSDNCRequest != null) {
- if (rollbackSDNCRequest != "") {
- rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)
- }
- }
- String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
- if (rollbackNetworkRequest != null) {
- if (rollbackNetworkRequest != "") {
- rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)
- }
- }
- String rollbackActivateSDNCRequest = execution.getVariable(Prefix + "rollbackActivateSDNCRequest")
- if (rollbackActivateSDNCRequest != null) {
- if (rollbackActivateSDNCRequest != "") {
- rollbackData.put("rollbackActivateSDNCRequest", rollbackActivateSDNCRequest)
- }
- }
- execution.setVariable("rollbackData", rollbackData)
-
- logger.debug("** 'rollbackData' for Full Rollback : " + rollbackData)
- execution.setVariable("WorkflowException", null)
-
-
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void setExceptionFlag(DelegateExecution execution){
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside setExceptionFlag() of DoCreateNetworkInstance")
-
- try {
-
- execution.setVariable(Prefix + "isException", true)
-
- if (execution.getVariable("SavedWorkflowException1") != null) {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
- } else {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
- }
- logger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. postProcessResponse() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ throw new BpmnError("MSOWorkflowException")
+
+ }
+
+
+
+ }
+
+ public void prepareSuccessRollbackData(DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside prepareSuccessRollbackData() of DoCreateNetworkInstance")
+
+ try {
+
+ if (execution.getVariable("sdncVersion") != '1610') {
+ prepareRpcSDNCRollbackRequest(execution)
+ prepareRpcSDNCActivateRollback(execution)
+ } else {
+ prepareSDNCRollbackRequest(execution)
+ }
+
+ Map<String, String> rollbackData = new HashMap<String, String>();
+ String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
+ if (rollbackSDNCRequest != null) {
+ if (rollbackSDNCRequest != "") {
+ rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)
+ }
+ }
+ String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
+ if (rollbackNetworkRequest != null) {
+ if (rollbackNetworkRequest != "") {
+ rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)
+ }
+ }
+ String rollbackActivateSDNCRequest = execution.getVariable(Prefix + "rollbackActivateSDNCRequest")
+ if (rollbackActivateSDNCRequest != null) {
+ if (rollbackActivateSDNCRequest != "") {
+ rollbackData.put("rollbackActivateSDNCRequest", rollbackActivateSDNCRequest)
+ }
+ }
+ execution.setVariable("rollbackData", rollbackData)
+
+ logger.debug("** 'rollbackData' for Full Rollback : " + rollbackData)
+ execution.setVariable("WorkflowException", null)
+
+
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+
+ }
+
+ }
+
+ public void setExceptionFlag(DelegateExecution execution){
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside setExceptionFlag() of DoCreateNetworkInstance")
+
+ try {
+
+ execution.setVariable(Prefix + "isException", true)
+
+ if (execution.getVariable("SavedWorkflowException1") != null) {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
+ } else {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
+ }
+ logger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
- } catch(Exception ex){
- String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ } catch(Exception ex){
+ String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
- }
+ }
- // *******************************
- // Build Error Section
- // *******************************
+ // *******************************
+ // Build Error Section
+ // *******************************
- public void processJavaException(DelegateExecution execution){
+ public void processJavaException(DelegateExecution execution){
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- try{
- logger.debug( "Caught a Java Exception in " + Prefix)
- logger.debug("Started processJavaException Method")
- logger.debug("Variables List: " + execution.getVariables())
- execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
+ try{
+ logger.debug( "Caught a Java Exception in " + Prefix)
+ logger.debug("Started processJavaException Method")
+ logger.debug("Variables List: " + execution.getVariables())
+ execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
- }catch(Exception e){
- logger.debug("Caught Exception during processJavaException Method: " + e)
- execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)
- }
- logger.debug( "Completed processJavaException Method in " + Prefix)
- }
+ }catch(Exception e){
+ logger.debug("Caught Exception during processJavaException Method: " + e)
+ execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)
+ }
+ logger.debug( "Completed processJavaException Method in " + Prefix)
+ }
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy
index e34e505e55..313e2f4cb7 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollback.groovy
@@ -48,333 +48,312 @@ import org.camunda.bpm.engine.delegate.DelegateExecution
public class DoCreateNetworkInstanceRollback extends AbstractServiceTaskProcessor {
private static final Logger logger = LoggerFactory.getLogger( DoCreateNetworkInstanceRollback.class);
- String Prefix="CRENWKIR_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- JsonUtils jsonUtil = new JsonUtils()
- VidUtils vidUtils = new VidUtils(this)
- NetworkUtils networkUtils = new NetworkUtils()
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
-
- def className = getClass().getSimpleName()
-
- /**
- * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstanceRollback.bpmn</class> process.
- * @param execution
- */
- public InitializeProcessVariables(DelegateExecution execution){
- /* Initialize all the process variables in this block */
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", null)
- execution.setVariable(Prefix + "rollbackSDNCRequest", null)
- execution.setVariable(Prefix + "rollbackActivateSDNCRequest", null)
- execution.setVariable(Prefix + "WorkflowException", null)
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", "")
- execution.setVariable(Prefix + "rollbackNetworkResponse", "")
- execution.setVariable(Prefix + "rollbackNetworkReturnCode", "")
-
- execution.setVariable(Prefix + "rollbackSDNCRequest", "")
- execution.setVariable(Prefix + "rollbackSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackSDNCReturnCode", "")
-
- execution.setVariable(Prefix + "rollbackActivateSDNCRequest", "")
- execution.setVariable(Prefix + "rollbackActivateSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackActivateSDNCReturnCode", "")
-
- execution.setVariable(Prefix + "Success", false)
- execution.setVariable(Prefix + "fullRollback", false)
- execution.setVariable(Prefix + "networkId", "")
- execution.setVariable(Prefix + "urlRollbackPoNetwork", "")
-
- }
-
- // **************************************************
- // Pre or Prepare Request Section
- // **************************************************
- /**
- * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstanceRollback.bpmn</class> process.
- * @param execution
- */
- public void preProcessRequest (DelegateExecution execution) {
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside preProcessRequest() of " + className + ".groovy")
-
- try {
- // initialize flow variables
- InitializeProcessVariables(execution)
-
- // GET Incoming request/variables
- String rollbackNetworkRequest = null
- String rollbackSDNCRequest = null
- String rollbackActivateSDNCRequest = null
-
- // Partial Rollback
- Map<String, String> rollbackData = execution.getVariable("rollbackData")
- if (rollbackData != null && rollbackData instanceof Map) {
-
- if(rollbackData.containsKey("rollbackSDNCRequest")) {
- rollbackSDNCRequest = rollbackData["rollbackSDNCRequest"]
- }
-
- if(rollbackData.containsKey("rollbackNetworkRequest")) {
- rollbackNetworkRequest = rollbackData["rollbackNetworkRequest"]
- }
-
- if(rollbackData.containsKey("rollbackActivateSDNCRequest")) {
- rollbackActivateSDNCRequest = rollbackData["rollbackActivateSDNCRequest"]
- }
-
- }
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkRequest)
- execution.setVariable(Prefix + "rollbackSDNCRequest", rollbackSDNCRequest)
- execution.setVariable(Prefix + "rollbackActivateSDNCRequest", rollbackActivateSDNCRequest)
- logger.debug("'rollbackData': " + '\n' + execution.getVariable("rollbackData"))
-
- String sdncVersion = execution.getVariable("sdncVersion")
- logger.debug("sdncVersion? : " + sdncVersion)
-
- // PO Authorization Info / headers Authorization=
- String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
- try {
- def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
- execution.setVariable("BasicAuthHeaderValuePO",encodedString)
- execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
-
- } catch (IOException ex) {
- String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "
- String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
- logger.debug(dataErrorMessage )
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- if (execution.getVariable("SavedWorkflowException1") != null) {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
- } else {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
- }
- logger.debug("*** WorkflowException : " + execution.getVariable(Prefix + "WorkflowException"))
- if(execution.getVariable(Prefix + "WorkflowException") != null) {
- // called by: DoCreateNetworkInstance, partial rollback
- execution.setVariable(Prefix + "fullRollback", false)
-
- } else {
- // called by: Macro - Full Rollback, WorkflowException = null
- execution.setVariable(Prefix + "fullRollback", true)
-
- }
- logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
-
-
- } catch (BpmnError e) {
- throw e;
-
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void callPONetworkAdapter (DelegateExecution execution) {
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside callPONetworkAdapter() of " + className + "")
-
- try {
- String poUrl = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint",execution)
- String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
- String networkId = utils.getNodeText(rollbackSDNCRequest, "network-id")
-
- String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
-
- String urlRollbackPoNetwork = poUrl+ "/" + networkId + "/rollback"
- logger.debug("'urlRollbackPoNetwork': " + urlRollbackPoNetwork)
- execution.setVariable(Prefix + "urlRollbackPoNetwork", urlRollbackPoNetwork)
-
- URL url = new URL(urlRollbackPoNetwork)
- HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.OPENSTACK_ADAPTER)
- httpClient.addAdditionalHeader("Authorization", execution.getVariable("BasicAuthHeaderValuePO"))
- Response response = httpClient.delete(rollbackNetworkRequest)
-
- execution.setVariable(Prefix + "rollbackNetworkReturnCode", response.getStatus())
-
- logger.debug(" Network Adapter rollback responseCode: " + response.getStatus())
-
-
- } catch (Exception ex) {
- String exceptionMessage = "Exception Encountered in callPONetworkAdapter() of DoCreateNetworkInstanceRollback flow - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
-
- }
-
-
- public void validateRollbackResponses (DelegateExecution execution) {
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside validateRollbackResponses() of DoCreateNetworkInstanceRollback")
-
- try {
- // validate PO network rollback response
- String rollbackNetworkErrorMessages = ""
- String rollbackNetworkReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackNetworkRequest") != null) {
- rollbackNetworkReturnCode = execution.getVariable(Prefix + "rollbackNetworkReturnCode")
- logger.debug(" NetworkRollback Code - " + rollbackNetworkReturnCode)
- if (rollbackNetworkReturnCode != "200") {
- rollbackNetworkErrorMessages = " + PO Network rollback failed. "
- } else {
- rollbackNetworkErrorMessages = " + PO Network rollback completed."
- }
- }
-
- // validate SDNC rollback response
- String rollbackSdncErrorMessages = ""
- String rollbackSDNCReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackSDNCRequest") != null) {
- rollbackSDNCReturnCode = execution.getVariable(Prefix + "rollbackSDNCReturnCode")
- String rollbackSDNCResponse = execution.getVariable(Prefix + "rollbackSDNCResponse")
- String rollbackSDNCReturnInnerCode = ""
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- rollbackSDNCResponse = rollbackSDNCResponse
- rollbackSDNCResponse = rollbackSDNCResponse.replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- if (rollbackSDNCReturnCode == "200") {
- if (utils.nodeExists(rollbackSDNCResponse, "response-code")) {
- rollbackSDNCReturnInnerCode = utils.getNodeText(rollbackSDNCResponse, "response-code")
- if (rollbackSDNCReturnInnerCode == "200" || rollbackSDNCReturnInnerCode == "" || rollbackSDNCReturnInnerCode == "0") {
- rollbackSdncErrorMessages = " + SNDC assign rollback completed."
- } else {
- rollbackSdncErrorMessages = " + SDNC assign rollback failed. "
- }
- } else {
- rollbackSdncErrorMessages = " + SNDC assign rollback completed."
- }
- } else {
- rollbackSdncErrorMessages = " + SDNC assign rollback failed. "
- }
- logger.debug(" SDNC assign rollback Code - " + rollbackSDNCReturnCode)
- logger.debug(" SDNC assign rollback Response - " + rollbackSDNCResponse)
- }
-
- // validate SDNC activate rollback response
- String rollbackActivateSdncErrorMessages = ""
- String rollbackActivateSDNCReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackActivateSDNCRequest") != null) {
- rollbackActivateSDNCReturnCode = execution.getVariable(Prefix + "rollbackActivateSDNCReturnCode")
- String rollbackActivateSDNCResponse = execution.getVariable(Prefix + "rollbackActivateSDNCResponse")
- String rollbackActivateSDNCReturnInnerCode = ""
- rollbackActivateSDNCResponse = rollbackActivateSDNCResponse
- rollbackActivateSDNCResponse = rollbackActivateSDNCResponse.replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- if (rollbackActivateSDNCReturnCode == "200") {
- if (utils.nodeExists(rollbackActivateSDNCResponse, "response-code")) {
- rollbackActivateSDNCReturnInnerCode = utils.getNodeText(rollbackActivateSDNCResponse, "response-code")
- if (rollbackActivateSDNCReturnInnerCode == "200" || rollbackActivateSDNCReturnInnerCode == "" || rollbackActivateSDNCReturnInnerCode == "0") {
- rollbackActivateSdncErrorMessages = " + SNDC activate rollback completed."
- } else {
- rollbackActivateSdncErrorMessages = " + SDNC activate rollback failed. "
- }
- } else {
- rollbackActivateSdncErrorMessages = " + SNDC activate rollback completed."
- }
- } else {
- rollbackActivateSdncErrorMessages = " + SDNC activate rollback failed. "
- }
- logger.debug(" SDNC activate rollback Code - " + rollbackActivateSDNCReturnCode)
- logger.debug(" SDNC activate rollback Response - " + rollbackActivateSDNCResponse)
- }
-
-
- String statusMessage = ""
- int errorCode = 7000
- logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
- if (execution.getVariable(Prefix + "fullRollback") == false) {
- // original WorkflowException,
- WorkflowException wfe = execution.getVariable(Prefix + "WorkflowException")
- if (wfe != null) {
- // rollback due to failure in DoCreate - Partial rollback
- statusMessage = wfe.getErrorMessage()
- errorCode = wfe.getErrorCode()
- } else {
- statusMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
- errorCode = '7000'
- }
-
- // set if all rolledbacks are successful
- if (rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200" && rollbackActivateSDNCReturnCode == "200") {
- execution.setVariable("rolledBack", true)
- execution.setVariable("wasDeleted", true)
-
- } else {
- execution.setVariable("rolledBack", false)
- execution.setVariable("wasDeleted", true)
- }
-
- statusMessage = statusMessage + rollbackActivateSdncErrorMessages + rollbackNetworkErrorMessages + rollbackSdncErrorMessages
- logger.debug("Final DoCreateNetworkInstanceRollback status message: " + statusMessage)
- String processKey = getProcessKey(execution);
- WorkflowException exception = new WorkflowException(processKey, errorCode, statusMessage);
- execution.setVariable("workflowException", exception);
-
- } else {
- // rollback due to failures in Main flow (Macro) - Full rollback
- // WorkflowException = null
- if (rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200" && rollbackActivateSDNCReturnCode == "200") {
- execution.setVariable("rollbackSuccessful", true)
- execution.setVariable("rollbackError", false)
- } else {
- String exceptionMessage = "Network Create Rollback was not Successful. "
+ String Prefix="CRENWKIR_"
+ ExceptionUtil exceptionUtil = new ExceptionUtil()
+ JsonUtils jsonUtil = new JsonUtils()
+ VidUtils vidUtils = new VidUtils(this)
+ NetworkUtils networkUtils = new NetworkUtils()
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+
+ def className = getClass().getSimpleName()
+
+ /**
+ * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstanceRollback.bpmn</class> process.
+ * @param execution
+ */
+ public InitializeProcessVariables(DelegateExecution execution){
+ /* Initialize all the process variables in this block */
+
+ execution.setVariable(Prefix + "rollbackNetworkRequest", null)
+ execution.setVariable(Prefix + "rollbackSDNCRequest", null)
+ execution.setVariable(Prefix + "rollbackActivateSDNCRequest", null)
+ execution.setVariable(Prefix + "WorkflowException", null)
+
+ execution.setVariable(Prefix + "rollbackNetworkRequest", "")
+ execution.setVariable(Prefix + "rollbackNetworkResponse", "")
+ execution.setVariable(Prefix + "rollbackNetworkReturnCode", "")
+
+ execution.setVariable(Prefix + "rollbackSDNCRequest", "")
+ execution.setVariable(Prefix + "rollbackSDNCResponse", "")
+ execution.setVariable(Prefix + "rollbackSDNCReturnCode", "")
+
+ execution.setVariable(Prefix + "rollbackActivateSDNCRequest", "")
+ execution.setVariable(Prefix + "rollbackActivateSDNCResponse", "")
+ execution.setVariable(Prefix + "rollbackActivateSDNCReturnCode", "")
+
+ execution.setVariable(Prefix + "Success", false)
+ execution.setVariable(Prefix + "fullRollback", false)
+ execution.setVariable(Prefix + "networkId", "")
+ execution.setVariable(Prefix + "urlRollbackPoNetwork", "")
+ }
+
+ // **************************************************
+ // Pre or Prepare Request Section
+ // **************************************************
+ /**
+ * This method is executed during the preProcessRequest task of the <class>DoCreateNetworkInstanceRollback.bpmn</class> process.
+ * @param execution
+ */
+ public void preProcessRequest (DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside preProcessRequest() of " + className + ".groovy")
+
+ try {
+ // initialize flow variables
+ InitializeProcessVariables(execution)
+
+ // GET Incoming request/variables
+ String rollbackNetworkRequest = null
+ String rollbackSDNCRequest = null
+ String rollbackActivateSDNCRequest = null
+
+ // Partial Rollback
+ Map<String, String> rollbackData = execution.getVariable("rollbackData")
+ if (rollbackData != null && rollbackData instanceof Map) {
+
+ if(rollbackData.containsKey("rollbackSDNCRequest")) {
+ rollbackSDNCRequest = rollbackData["rollbackSDNCRequest"]
+ }
+
+ if(rollbackData.containsKey("rollbackNetworkRequest")) {
+ rollbackNetworkRequest = rollbackData["rollbackNetworkRequest"]
+ }
+
+ if(rollbackData.containsKey("rollbackActivateSDNCRequest")) {
+ rollbackActivateSDNCRequest = rollbackData["rollbackActivateSDNCRequest"]
+ }
+
+ }
+
+ execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkRequest)
+ execution.setVariable(Prefix + "rollbackSDNCRequest", rollbackSDNCRequest)
+ execution.setVariable(Prefix + "rollbackActivateSDNCRequest", rollbackActivateSDNCRequest)
+ logger.debug("'rollbackData': " + '\n' + execution.getVariable("rollbackData"))
+
+ String sdncVersion = execution.getVariable("sdncVersion")
+ logger.debug("sdncVersion? : " + sdncVersion)
+
+ // PO Authorization Info / headers Authorization=
+ String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
+ try {
+ def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
+ execution.setVariable("BasicAuthHeaderValuePO",encodedString)
+ execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
+
+ } catch (IOException ex) {
+ String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "
+ String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
+ logger.debug(dataErrorMessage )
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+
+ if (execution.getVariable("SavedWorkflowException1") != null) {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
+ } else {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
+ }
+ logger.debug("*** WorkflowException : " + execution.getVariable(Prefix + "WorkflowException"))
+ if(execution.getVariable(Prefix + "WorkflowException") != null) {
+ // called by: DoCreateNetworkInstance, partial rollback
+ execution.setVariable(Prefix + "fullRollback", false)
+
+ } else {
+ // called by: Macro - Full Rollback, WorkflowException = null
+ execution.setVariable(Prefix + "fullRollback", true)
+
+ }
+ logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
+
+
+ } catch (BpmnError e) {
+ throw e;
+
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+
+ }
+
+ }
+
+ public void setNetworkAdapterResponseCode (DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ execution.setVariable("prefix",Prefix)
+ try {
+
+ execution.setVariable(Prefix + "rollbackNetworkReturnCode", "200")
+
+ } catch (Exception ex) {
+ String exceptionMessage = "Exception Encountered in callPONetworkAdapter() of DoCreateNetworkInstanceRollback flow - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ }
+
+ }
+
+
+ public void validateRollbackResponses (DelegateExecution execution) {
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside validateRollbackResponses() of DoCreateNetworkInstanceRollback")
+
+ try {
+ // validate PO network rollback response
+ String rollbackNetworkErrorMessages = ""
+ String rollbackNetworkReturnCode = "200"
+ if (execution.getVariable(Prefix + "rollbackNetworkRequest") != null) {
+ rollbackNetworkReturnCode = execution.getVariable(Prefix + "rollbackNetworkReturnCode")
+ logger.debug(" NetworkRollback Code - " + rollbackNetworkReturnCode)
+ if (rollbackNetworkReturnCode != "200") {
+ rollbackNetworkErrorMessages = " + PO Network rollback failed. "
+ } else {
+ rollbackNetworkErrorMessages = " + PO Network rollback completed."
+ }
+ }
+
+ // validate SDNC rollback response
+ String rollbackSdncErrorMessages = ""
+ String rollbackSDNCReturnCode = "200"
+ if (execution.getVariable(Prefix + "rollbackSDNCRequest") != null) {
+ rollbackSDNCReturnCode = execution.getVariable(Prefix + "rollbackSDNCReturnCode")
+ String rollbackSDNCResponse = execution.getVariable(Prefix + "rollbackSDNCResponse")
+ String rollbackSDNCReturnInnerCode = ""
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ rollbackSDNCResponse = rollbackSDNCResponse
+ rollbackSDNCResponse = rollbackSDNCResponse.replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
+ if (rollbackSDNCReturnCode == "200") {
+ if (utils.nodeExists(rollbackSDNCResponse, "response-code")) {
+ rollbackSDNCReturnInnerCode = utils.getNodeText(rollbackSDNCResponse, "response-code")
+ if (rollbackSDNCReturnInnerCode == "200" || rollbackSDNCReturnInnerCode == "" || rollbackSDNCReturnInnerCode == "0") {
+ rollbackSdncErrorMessages = " + SNDC assign rollback completed."
+ } else {
+ rollbackSdncErrorMessages = " + SDNC assign rollback failed. "
+ }
+ } else {
+ rollbackSdncErrorMessages = " + SNDC assign rollback completed."
+ }
+ } else {
+ rollbackSdncErrorMessages = " + SDNC assign rollback failed. "
+ }
+ logger.debug(" SDNC assign rollback Code - " + rollbackSDNCReturnCode)
+ logger.debug(" SDNC assign rollback Response - " + rollbackSDNCResponse)
+ }
+
+ // validate SDNC activate rollback response
+ String rollbackActivateSdncErrorMessages = ""
+ String rollbackActivateSDNCReturnCode = "200"
+ if (execution.getVariable(Prefix + "rollbackActivateSDNCRequest") != null) {
+ rollbackActivateSDNCReturnCode = execution.getVariable(Prefix + "rollbackActivateSDNCReturnCode")
+ String rollbackActivateSDNCResponse = execution.getVariable(Prefix + "rollbackActivateSDNCResponse")
+ String rollbackActivateSDNCReturnInnerCode = ""
+ rollbackActivateSDNCResponse = rollbackActivateSDNCResponse
+ rollbackActivateSDNCResponse = rollbackActivateSDNCResponse.replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
+ if (rollbackActivateSDNCReturnCode == "200") {
+ if (utils.nodeExists(rollbackActivateSDNCResponse, "response-code")) {
+ rollbackActivateSDNCReturnInnerCode = utils.getNodeText(rollbackActivateSDNCResponse, "response-code")
+ if (rollbackActivateSDNCReturnInnerCode == "200" || rollbackActivateSDNCReturnInnerCode == "" || rollbackActivateSDNCReturnInnerCode == "0") {
+ rollbackActivateSdncErrorMessages = " + SNDC activate rollback completed."
+ } else {
+ rollbackActivateSdncErrorMessages = " + SDNC activate rollback failed. "
+ }
+ } else {
+ rollbackActivateSdncErrorMessages = " + SNDC activate rollback completed."
+ }
+ } else {
+ rollbackActivateSdncErrorMessages = " + SDNC activate rollback failed. "
+ }
+ logger.debug(" SDNC activate rollback Code - " + rollbackActivateSDNCReturnCode)
+ logger.debug(" SDNC activate rollback Response - " + rollbackActivateSDNCResponse)
+ }
+
+
+ String statusMessage = ""
+ int errorCode = 7000
+ logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
+ if (execution.getVariable(Prefix + "fullRollback") == false) {
+ // original WorkflowException,
+ WorkflowException wfe = execution.getVariable(Prefix + "WorkflowException")
+ if (wfe != null) {
+ // rollback due to failure in DoCreate - Partial rollback
+ statusMessage = wfe.getErrorMessage()
+ errorCode = wfe.getErrorCode()
+ } else {
+ statusMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
+ errorCode = '7000'
+ }
+
+ // set if all rolledbacks are successful
+ if (rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200" && rollbackActivateSDNCReturnCode == "200") {
+ execution.setVariable("rolledBack", true)
+ execution.setVariable("wasDeleted", true)
+
+ } else {
+ execution.setVariable("rolledBack", false)
+ execution.setVariable("wasDeleted", true)
+ }
+
+ statusMessage = statusMessage + rollbackActivateSdncErrorMessages + rollbackNetworkErrorMessages + rollbackSdncErrorMessages
+ logger.debug("Final DoCreateNetworkInstanceRollback status message: " + statusMessage)
+ String processKey = getProcessKey(execution);
+ WorkflowException exception = new WorkflowException(processKey, errorCode, statusMessage);
+ execution.setVariable("workflowException", exception);
+
+ } else {
+ // rollback due to failures in Main flow (Macro) - Full rollback
+ // WorkflowException = null
+ if (rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200" && rollbackActivateSDNCReturnCode == "200") {
+ execution.setVariable("rollbackSuccessful", true)
+ execution.setVariable("rollbackError", false)
+ } else {
+ String exceptionMessage = "Network Create Rollback was not Successful. "
logger.debug(exceptionMessage)
- execution.setVariable("rollbackSuccessful", false)
- execution.setVariable("rollbackError", true)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
- }
+ execution.setVariable("rollbackSuccessful", false)
+ execution.setVariable("rollbackError", true)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ throw new BpmnError("MSOWorkflowException")
+ }
- }
+ }
- } catch (Exception ex) {
- String errorMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
- String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstanceRollback flow. validateRollbackResponses() - " + errorMessage + ": " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String errorMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
+ String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstanceRollback flow. validateRollbackResponses() - " + errorMessage + ": " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- // *******************************
- // Build Error Section
- // *******************************
+ // *******************************
+ // Build Error Section
+ // *******************************
- public void processJavaException(DelegateExecution execution){
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
+ public void processJavaException(DelegateExecution execution){
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+ execution.setVariable("prefix",Prefix)
- try{
- logger.debug("Caught a Java Exception in " + Prefix)
- logger.debug("Started processJavaException Method")
- logger.debug("Variables List: " + execution.getVariables())
- execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
+ try{
+ logger.debug("Caught a Java Exception in " + Prefix)
+ logger.debug("Started processJavaException Method")
+ logger.debug("Variables List: " + execution.getVariables())
+ execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
- }catch(Exception e){
- logger.debug("Caught Exception during processJavaException Method: " + e)
- execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)
- }
- logger.debug("Completed processJavaException Method in " + Prefix)
- }
+ }catch(Exception e){
+ logger.debug("Caught Exception during processJavaException Method: " + e)
+ execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)
+ }
+ logger.debug("Completed processJavaException Method in " + Prefix)
+ }
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
index 89c5be8d6e..0d49d91910 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
@@ -59,346 +59,346 @@ import javax.ws.rs.core.Response
public class DoDeleteNetworkInstance extends AbstractServiceTaskProcessor {
private static final Logger logger = LoggerFactory.getLogger( DoDeleteNetworkInstance.class);
- String Prefix= "DELNWKI_"
- String groovyClassName = "DoDeleteNetworkInstance"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- JsonUtils jsonUtil = new JsonUtils()
- VidUtils vidUtils = new VidUtils(this)
- NetworkUtils networkUtils = new NetworkUtils()
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
-
- public InitializeProcessVariables(DelegateExecution execution){
- /* Initialize all the process variables in this block */
-
- execution.setVariable(Prefix + "networkRequest", "")
- execution.setVariable(Prefix + "isSilentSuccess", false)
- execution.setVariable(Prefix + "Success", false)
-
- execution.setVariable(Prefix + "requestId", "")
- execution.setVariable(Prefix + "source", "")
- execution.setVariable(Prefix + "lcpCloudRegion", "")
- execution.setVariable(Prefix + "networkInputs", "")
- execution.setVariable(Prefix + "tenantId", "")
-
- execution.setVariable(Prefix + "queryAAIResponse", "")
- execution.setVariable(Prefix + "aaiReturnCode", "")
- execution.setVariable(Prefix + "isAAIGood", false)
- execution.setVariable(Prefix + "isVfRelationshipExist", false)
-
- // AAI query Cloud Region
- execution.setVariable(Prefix + "queryCloudRegionRequest","")
- execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
- execution.setVariable(Prefix + "queryCloudRegionResponse","")
- execution.setVariable(Prefix + "cloudRegionPo","")
- execution.setVariable(Prefix + "cloudRegionSdnc","")
-
- execution.setVariable(Prefix + "deleteNetworkRequest", "")
- execution.setVariable(Prefix + "deleteNetworkResponse", "")
- execution.setVariable(Prefix + "networkReturnCode", "")
- execution.setVariable(Prefix + "rollbackNetworkRequest", "")
-
- execution.setVariable(Prefix + "deleteSDNCRequest", "")
- execution.setVariable(Prefix + "deleteSDNCResponse", "")
- execution.setVariable(Prefix + "sdncReturnCode", "")
- execution.setVariable(Prefix + "sdncResponseSuccess", false)
-
- execution.setVariable(Prefix + "deactivateSDNCRequest", "")
- execution.setVariable(Prefix + "deactivateSDNCResponse", "")
- execution.setVariable(Prefix + "deactivateSdncReturnCode", "")
- execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", "")
-
- execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", "")
- execution.setVariable(Prefix + "isException", false)
-
-
- }
-
- // **************************************************
- // Pre or Prepare Request Section
- // **************************************************
-
- public void preProcessRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside preProcessRequest() of " + groovyClassName + " Request ")
-
- // initialize flow variables
- InitializeProcessVariables(execution)
-
- try {
- // get incoming message/input
- execution.setVariable("action", "DELETE")
- String deleteNetwork = execution.getVariable("bpmnRequest")
- if (deleteNetwork != null) {
- if (deleteNetwork.contains("requestDetails")) {
- // JSON format request is sent, create xml
- try {
- def prettyJson = JsonOutput.prettyPrint(deleteNetwork.toString())
- logger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
- deleteNetwork = vidUtils.createXmlNetworkRequestInfra(execution, deleteNetwork)
-
- } catch (Exception ex) {
- String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
- } else {
- // XML format request is sent
-
- }
- } else {
- // vIPR format request is sent, create xml from individual variables
- deleteNetwork = vidUtils.createXmlNetworkRequestInstance(execution)
- }
-
- deleteNetwork = utils.formatXml(deleteNetwork)
- logger.debug(deleteNetwork)
- execution.setVariable(Prefix + "networkRequest", deleteNetwork)
- logger.debug(Prefix + "networkRequest - " + '\n' + deleteNetwork)
-
- // validate 'backout-on-failure' to override 'mso.rollback'
- boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, deleteNetwork)
- execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
- logger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
-
- String networkInputs = utils.getNodeXml(deleteNetwork, "network-inputs", false).replace("tag0:","").replace(":tag0","")
- execution.setVariable(Prefix + "networkInputs", networkInputs)
-
- // prepare messageId
- String messageId = execution.getVariable("testMessageId") // for testing
- if (messageId == null || messageId == "") {
- messageId = UUID.randomUUID()
- logger.debug(Prefix + "messageId, random generated: " + messageId)
- } else {
- logger.debug(Prefix + "messageId, pre-assigned: " + messageId)
- }
- execution.setVariable(Prefix + "messageId", messageId)
-
- String source = utils.getNodeText(deleteNetwork, "source")
- execution.setVariable(Prefix + "source", source)
- logger.debug(Prefix + "source - " + source)
-
- String networkId = ""
- if (utils.nodeExists(networkInputs, "network-id")) {
- networkId = utils.getNodeText(networkInputs, "network-id")
- if (networkId == null || networkId == "" || networkId == 'null' ) {
- sendSyncError(execution)
- // missing value of network-id
- String dataErrorMessage = "network-request has missing 'network-id' element/value."
- logger.debug(" Invalid Request - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
- }
-
- // lcpCloudRegion or tenantId not sent, will be extracted from query AA&I
- def lcpCloudRegion = null
- if (utils.nodeExists(networkInputs, "aic-cloud-region")) {
- lcpCloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
- if (lcpCloudRegion == 'null') {
- lcpCloudRegion = null
- }
- }
- execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
- logger.debug("lcpCloudRegion : " + lcpCloudRegion)
-
- String tenantId = null
- if (utils.nodeExists(networkInputs, "tenant-id")) {
- tenantId = utils.getNodeText(networkInputs, "tenant-id")
- if (tenantId == 'null') {
- tenantId = null
- }
-
- }
- execution.setVariable(Prefix + "tenantId", tenantId)
- logger.debug("tenantId : " + tenantId)
-
- String sdncVersion = execution.getVariable("sdncVersion")
- logger.debug("sdncVersion? : " + sdncVersion)
-
- // PO Authorization Info / headers Authorization=
- String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution)
-
- try {
- def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
- execution.setVariable("BasicAuthHeaderValuePO",encodedString)
- execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
-
- } catch (IOException ex) {
- String dataErrorMessage = " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
- logger.debug(dataErrorMessage )
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- } catch (BpmnError e) {
- throw e;
-
- } catch (Exception ex){
- // caught exception
- String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, PreProcessRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
-
- public void callRESTQueryAAI (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.debug(" ***** Inside callRESTQueryAAI() of DoDoDeleteNetworkInstance ***** " )
-
- // get variables
- String networkInputs = execution.getVariable(Prefix + "networkInputs")
- String networkId = utils.getNodeText(networkInputs, "network-id")
- networkId = UriUtils.encode(networkId,"UTF-8")
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- Boolean isVfRelationshipExist = false
- try {
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ALL)
- Optional<L3Network> l3Network = getAAIClient().get(L3Network.class,uri);
- AAIResultWrapper wrapper = getAAIClient().get(uri);
- Optional<Relationships> relationships = wrapper.getRelationships()
-
- if (l3Network.isPresent()) {
- execution.setVariable(Prefix + "aaiReturnCode", 200)
- execution.setVariable(Prefix + "queryAAIResponse", l3Network.get())
- execution.setVariable(Prefix + "isAAIGood", true)
- if (relationships.isPresent()){
- if(!relationships.get().getRelatedAAIUris(AAIObjectType.VF_MODULE).isEmpty()){
- execution.setVariable(Prefix + "isVfRelationshipExist", true)
- isVfRelationshipExist = true
- String relationshipMessage = "AAI Query Success Response but 'vf-module' relationship exist, not allowed to delete: network Id: " + networkId
- exceptionUtil.buildWorkflowException(execution, 2500, relationshipMessage)
- }else{
- List<AAIResourceUri> tenantURIList = relationships.get().getRelatedAAIUris(AAIObjectType.TENANT)
- for(AAIResourceUri tenantURI: tenantURIList){
- if(execution.getVariable(Prefix + "tenantId") == null) {
- String tenantId = tenantURI.getURIKeys().get("tenant-id")
- execution.setVariable(Prefix + "tenantId", tenantId)
- logger.debug(" Get AAI getTenantId() : " + tenantId)
- }
- }
- List<AAIResourceUri> cloudRegionURIList = relationships.get().getRelatedAAIUris(AAIObjectType.CLOUD_REGION)
- for(AAIResourceUri tenantURI: cloudRegionURIList){
- if(execution.getVariable(Prefix + "lcpCloudRegion") == null) {
- String lcpCloudRegion = tenantURI.getURIKeys().get("cloud-region-id")
- execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
- logger.debug(" Get AAI getCloudRegion() : " + lcpCloudRegion)
- }
- }
- }
- }
- logger.debug(Prefix + "isVfRelationshipExist - " + isVfRelationshipExist)
- } else {
- // not found // empty aai response
- execution.setVariable(Prefix + "aaiReturnCode", 404)
- execution.setVariable(Prefix + "isAAIGood", false)
- execution.setVariable(Prefix + "isSilentSuccess", true)
- logger.debug(" AAI Query is Silent Success")
- }
- logger.debug(" AAI Query call, isAAIGood? : " + execution.getVariable(Prefix + "isAAIGood"))
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, callRESTQueryAAI() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
-
- execution.setVariable("prefix", Prefix)
-
- logger.debug(" ***** Inside callRESTQueryAAICloudRegion of DoDeleteNetworkInstance ***** " )
-
- try {
- String networkInputs = execution.getVariable(Prefix + "networkInputs")
- // String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
- String cloudRegion = execution.getVariable(Prefix + "lcpCloudRegion")
- // Prepare AA&I url
- AaiUtil aaiUtil = new AaiUtil(this)
-
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, Defaults.CLOUD_OWNER.toString(), cloudRegion)
- def queryCloudRegionRequest = aaiUtil.createAaiUri(uri)
-
- execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
-
- String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
- String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
-
- if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
- execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
- execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
-
- } else {
- String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
- }
-
- } catch (BpmnError e) {
- throw e;
-
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, callRESTQueryAAICloudRegion(). Unexpected Response from AAI - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void prepareNetworkRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix", Prefix)
-
- logger.trace("Inside prepareNetworkRequest of DoDeleteNetworkInstance ")
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- try {
- // get variables
- String networkRequest = execution.getVariable(Prefix + "networkRequest")
- String cloudSiteId = execution.getVariable(Prefix + "cloudRegionPo")
- String tenantId = execution.getVariable(Prefix + "tenantId")
-
- L3Network l3Network = execution.getVariable(Prefix + "queryAAIResponse")
- String networkType = l3Network.getNetworkType()
- String networkId = l3Network.getNetworkId()
-
- String networkStackId = ""
- networkStackId = l3Network.getHeatStackId()
- if (networkStackId == 'null' || networkStackId == "" || networkStackId == null) {
- networkStackId = "force_delete"
- }
-
- String requestId = execution.getVariable("msoRequestId")
- if (requestId != null) {
- execution.setVariable("mso-request-id", requestId)
- } else {
- requestId = execution.getVariable("mso-request-id")
- }
- String serviceInstanceId = execution.getVariable("serviceInstanceId")
-
- // Added new Elements
- String messageId = execution.getVariable(Prefix + "messageId")
- String notificationUrl = "" //TODO - is this coming from URN? What variable/value to use?
- //String notificationUrl = execution.getVariable("URN_?????") //TODO - is this coming from URN? What variable/value to use?
-
- String modelCustomizationUuid = ""
- if (utils.nodeExists(networkRequest, "networkModelInfo")) {
- String networkModelInfo = utils.getNodeXml(networkRequest, "networkModelInfo", false).replace("tag0:","").replace(":tag0","")
- modelCustomizationUuid = utils.getNodeText(networkModelInfo, "modelCustomizationUuid")
- } else {
- modelCustomizationUuid = utils.getNodeText(networkRequest, "modelCustomizationId")
- }
+ String Prefix= "DELNWKI_"
+ String groovyClassName = "DoDeleteNetworkInstance"
+ ExceptionUtil exceptionUtil = new ExceptionUtil()
+ JsonUtils jsonUtil = new JsonUtils()
+ VidUtils vidUtils = new VidUtils(this)
+ NetworkUtils networkUtils = new NetworkUtils()
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+
+ public InitializeProcessVariables(DelegateExecution execution){
+ /* Initialize all the process variables in this block */
+
+ execution.setVariable(Prefix + "networkRequest", "")
+ execution.setVariable(Prefix + "isSilentSuccess", false)
+ execution.setVariable(Prefix + "Success", false)
+
+ execution.setVariable(Prefix + "requestId", "")
+ execution.setVariable(Prefix + "source", "")
+ execution.setVariable(Prefix + "lcpCloudRegion", "")
+ execution.setVariable(Prefix + "networkInputs", "")
+ execution.setVariable(Prefix + "tenantId", "")
+
+ execution.setVariable(Prefix + "queryAAIResponse", "")
+ execution.setVariable(Prefix + "aaiReturnCode", "")
+ execution.setVariable(Prefix + "isAAIGood", false)
+ execution.setVariable(Prefix + "isVfRelationshipExist", false)
+
+ // AAI query Cloud Region
+ execution.setVariable(Prefix + "queryCloudRegionRequest","")
+ execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
+ execution.setVariable(Prefix + "queryCloudRegionResponse","")
+ execution.setVariable(Prefix + "cloudRegionPo","")
+ execution.setVariable(Prefix + "cloudRegionSdnc","")
+
+ execution.setVariable(Prefix + "deleteNetworkRequest", "")
+ execution.setVariable(Prefix + "deleteNetworkResponse", "")
+ execution.setVariable(Prefix + "networkReturnCode", "")
+ execution.setVariable(Prefix + "rollbackNetworkRequest", "")
+
+ execution.setVariable(Prefix + "deleteSDNCRequest", "")
+ execution.setVariable(Prefix + "deleteSDNCResponse", "")
+ execution.setVariable(Prefix + "sdncReturnCode", "")
+ execution.setVariable(Prefix + "sdncResponseSuccess", false)
+
+ execution.setVariable(Prefix + "deactivateSDNCRequest", "")
+ execution.setVariable(Prefix + "deactivateSDNCResponse", "")
+ execution.setVariable(Prefix + "deactivateSdncReturnCode", "")
+ execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", "")
+
+ execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", "")
+ execution.setVariable(Prefix + "isException", false)
+
+
+ }
+
+ // **************************************************
+ // Pre or Prepare Request Section
+ // **************************************************
+
+ public void preProcessRequest (DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside preProcessRequest() of " + groovyClassName + " Request ")
+
+ // initialize flow variables
+ InitializeProcessVariables(execution)
+
+ try {
+ // get incoming message/input
+ execution.setVariable("action", "DELETE")
+ String deleteNetwork = execution.getVariable("bpmnRequest")
+ if (deleteNetwork != null) {
+ if (deleteNetwork.contains("requestDetails")) {
+ // JSON format request is sent, create xml
+ try {
+ def prettyJson = JsonOutput.prettyPrint(deleteNetwork.toString())
+ logger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
+ deleteNetwork = vidUtils.createXmlNetworkRequestInfra(execution, deleteNetwork)
+
+ } catch (Exception ex) {
+ String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+ } else {
+ // XML format request is sent
+
+ }
+ } else {
+ // vIPR format request is sent, create xml from individual variables
+ deleteNetwork = vidUtils.createXmlNetworkRequestInstance(execution)
+ }
+
+ deleteNetwork = utils.formatXml(deleteNetwork)
+ logger.debug(deleteNetwork)
+ execution.setVariable(Prefix + "networkRequest", deleteNetwork)
+ logger.debug(Prefix + "networkRequest - " + '\n' + deleteNetwork)
+
+ // validate 'backout-on-failure' to override 'mso.rollback'
+ boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, deleteNetwork)
+ execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
+ logger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
+
+ String networkInputs = utils.getNodeXml(deleteNetwork, "network-inputs", false).replace("tag0:","").replace(":tag0","")
+ execution.setVariable(Prefix + "networkInputs", networkInputs)
+
+ // prepare messageId
+ String messageId = execution.getVariable("testMessageId") // for testing
+ if (messageId == null || messageId == "") {
+ messageId = UUID.randomUUID()
+ logger.debug(Prefix + "messageId, random generated: " + messageId)
+ } else {
+ logger.debug(Prefix + "messageId, pre-assigned: " + messageId)
+ }
+ execution.setVariable(Prefix + "messageId", messageId)
+
+ String source = utils.getNodeText(deleteNetwork, "source")
+ execution.setVariable(Prefix + "source", source)
+ logger.debug(Prefix + "source - " + source)
+
+ String networkId = ""
+ if (utils.nodeExists(networkInputs, "network-id")) {
+ networkId = utils.getNodeText(networkInputs, "network-id")
+ if (networkId == null || networkId == "" || networkId == 'null' ) {
+ sendSyncError(execution)
+ // missing value of network-id
+ String dataErrorMessage = "network-request has missing 'network-id' element/value."
+ logger.debug(" Invalid Request - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+ }
+
+ // lcpCloudRegion or tenantId not sent, will be extracted from query AA&I
+ def lcpCloudRegion = null
+ if (utils.nodeExists(networkInputs, "aic-cloud-region")) {
+ lcpCloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
+ if (lcpCloudRegion == 'null') {
+ lcpCloudRegion = null
+ }
+ }
+ execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
+ logger.debug("lcpCloudRegion : " + lcpCloudRegion)
+
+ String tenantId = null
+ if (utils.nodeExists(networkInputs, "tenant-id")) {
+ tenantId = utils.getNodeText(networkInputs, "tenant-id")
+ if (tenantId == 'null') {
+ tenantId = null
+ }
+
+ }
+ execution.setVariable(Prefix + "tenantId", tenantId)
+ logger.debug("tenantId : " + tenantId)
+
+ String sdncVersion = execution.getVariable("sdncVersion")
+ logger.debug("sdncVersion? : " + sdncVersion)
+
+ // PO Authorization Info / headers Authorization=
+ String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution)
+
+ try {
+ def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
+ execution.setVariable("BasicAuthHeaderValuePO",encodedString)
+ execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
+
+ } catch (IOException ex) {
+ String dataErrorMessage = " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
+ logger.debug(dataErrorMessage )
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+
+ } catch (BpmnError e) {
+ throw e;
+
+ } catch (Exception ex){
+ // caught exception
+ String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, PreProcessRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- String deleteNetworkRequest = """
+ }
+
+ }
+
+
+ public void callRESTQueryAAI (DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.debug(" ***** Inside callRESTQueryAAI() of DoDoDeleteNetworkInstance ***** " )
+
+ // get variables
+ String networkInputs = execution.getVariable(Prefix + "networkInputs")
+ String networkId = utils.getNodeText(networkInputs, "network-id")
+ networkId = UriUtils.encode(networkId,"UTF-8")
+ ExceptionUtil exceptionUtil = new ExceptionUtil()
+ Boolean isVfRelationshipExist = false
+ try {
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ALL)
+ Optional<L3Network> l3Network = getAAIClient().get(L3Network.class,uri);
+ AAIResultWrapper wrapper = getAAIClient().get(uri);
+ Optional<Relationships> relationships = wrapper.getRelationships()
+
+ if (l3Network.isPresent()) {
+ execution.setVariable(Prefix + "aaiReturnCode", 200)
+ execution.setVariable(Prefix + "queryAAIResponse", l3Network.get())
+ execution.setVariable(Prefix + "isAAIGood", true)
+ if (relationships.isPresent()){
+ if(!relationships.get().getRelatedAAIUris(AAIObjectType.VF_MODULE).isEmpty()){
+ execution.setVariable(Prefix + "isVfRelationshipExist", true)
+ isVfRelationshipExist = true
+ String relationshipMessage = "AAI Query Success Response but 'vf-module' relationship exist, not allowed to delete: network Id: " + networkId
+ exceptionUtil.buildWorkflowException(execution, 2500, relationshipMessage)
+ }else{
+ List<AAIResourceUri> tenantURIList = relationships.get().getRelatedAAIUris(AAIObjectType.TENANT)
+ for(AAIResourceUri tenantURI: tenantURIList){
+ if(execution.getVariable(Prefix + "tenantId") == null) {
+ String tenantId = tenantURI.getURIKeys().get("tenant-id")
+ execution.setVariable(Prefix + "tenantId", tenantId)
+ logger.debug(" Get AAI getTenantId() : " + tenantId)
+ }
+ }
+ List<AAIResourceUri> cloudRegionURIList = relationships.get().getRelatedAAIUris(AAIObjectType.CLOUD_REGION)
+ for(AAIResourceUri tenantURI: cloudRegionURIList){
+ if(execution.getVariable(Prefix + "lcpCloudRegion") == null) {
+ String lcpCloudRegion = tenantURI.getURIKeys().get("cloud-region-id")
+ execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
+ logger.debug(" Get AAI getCloudRegion() : " + lcpCloudRegion)
+ }
+ }
+ }
+ }
+ logger.debug(Prefix + "isVfRelationshipExist - " + isVfRelationshipExist)
+ } else {
+ // not found // empty aai response
+ execution.setVariable(Prefix + "aaiReturnCode", 404)
+ execution.setVariable(Prefix + "isAAIGood", false)
+ execution.setVariable(Prefix + "isSilentSuccess", true)
+ logger.debug(" AAI Query is Silent Success")
+ }
+ logger.debug(" AAI Query call, isAAIGood? : " + execution.getVariable(Prefix + "isAAIGood"))
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, callRESTQueryAAI() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+
+ }
+
+ }
+
+ public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
+
+ execution.setVariable("prefix", Prefix)
+
+ logger.debug(" ***** Inside callRESTQueryAAICloudRegion of DoDeleteNetworkInstance ***** " )
+
+ try {
+ String networkInputs = execution.getVariable(Prefix + "networkInputs")
+ // String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
+ String cloudRegion = execution.getVariable(Prefix + "lcpCloudRegion")
+ // Prepare AA&I url
+ AaiUtil aaiUtil = new AaiUtil(this)
+
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, Defaults.CLOUD_OWNER.toString(), cloudRegion)
+ def queryCloudRegionRequest = aaiUtil.createAaiUri(uri)
+
+ execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
+
+ String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
+ String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
+
+ if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
+ execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
+ execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
+
+ } else {
+ String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+
+ }
+
+ } catch (BpmnError e) {
+ throw e;
+
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, callRESTQueryAAICloudRegion(). Unexpected Response from AAI - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+
+ }
+
+ }
+
+ public void prepareNetworkRequest (DelegateExecution execution) {
+
+ execution.setVariable("prefix", Prefix)
+
+ logger.trace("Inside prepareNetworkRequest of DoDeleteNetworkInstance ")
+ ExceptionUtil exceptionUtil = new ExceptionUtil()
+ try {
+ // get variables
+ String networkRequest = execution.getVariable(Prefix + "networkRequest")
+ String cloudSiteId = execution.getVariable(Prefix + "cloudRegionPo")
+ String tenantId = execution.getVariable(Prefix + "tenantId")
+
+ L3Network l3Network = execution.getVariable(Prefix + "queryAAIResponse")
+ String networkType = l3Network.getNetworkType()
+ String networkId = l3Network.getNetworkId()
+
+ String networkStackId = ""
+ networkStackId = l3Network.getHeatStackId()
+ if (networkStackId == 'null' || networkStackId == "" || networkStackId == null) {
+ networkStackId = "force_delete"
+ }
+
+ String requestId = execution.getVariable("msoRequestId")
+ if (requestId != null) {
+ execution.setVariable("mso-request-id", requestId)
+ } else {
+ requestId = execution.getVariable("mso-request-id")
+ }
+ String serviceInstanceId = execution.getVariable("serviceInstanceId")
+
+ // Added new Elements
+ String messageId = execution.getVariable(Prefix + "messageId")
+ String notificationUrl = "" //TODO - is this coming from URN? What variable/value to use?
+ //String notificationUrl = execution.getVariable("URN_?????") //TODO - is this coming from URN? What variable/value to use?
+
+ String modelCustomizationUuid = ""
+ if (utils.nodeExists(networkRequest, "networkModelInfo")) {
+ String networkModelInfo = utils.getNodeXml(networkRequest, "networkModelInfo", false).replace("tag0:","").replace(":tag0","")
+ modelCustomizationUuid = utils.getNodeText(networkModelInfo, "modelCustomizationUuid")
+ } else {
+ modelCustomizationUuid = utils.getNodeText(networkRequest, "modelCustomizationId")
+ }
+
+ String deleteNetworkRequest = """
<deleteNetworkRequest>
<cloudSiteId>${MsoUtils.xmlEscape(cloudSiteId)}</cloudSiteId>
<tenantId>${MsoUtils.xmlEscape(tenantId)}</tenantId>
@@ -416,645 +416,567 @@ public class DoDeleteNetworkInstance extends AbstractServiceTaskProcessor {
</deleteNetworkRequest>
""".trim()
- logger.debug(Prefix + "deleteNetworkRequest - " + "\n" + deleteNetworkRequest)
- // Format Response
- String buildDeleteNetworkRequestAsString = utils.formatXml(deleteNetworkRequest)
- logger.debug(buildDeleteNetworkRequestAsString)
- logger.debug(Prefix + "deleteNetworkRequestAsString - " + "\n" + buildDeleteNetworkRequestAsString)
-
- String restURL = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint", execution)
- execution.setVariable("mso.adapters.network.rest.endpoint", restURL + "/" + networkId)
- logger.debug("mso.adapters.network.rest.endpoint - " + "\n" + restURL + "/" + networkId)
-
- execution.setVariable(Prefix + "deleteNetworkRequest", buildDeleteNetworkRequestAsString)
- logger.debug(Prefix + "deleteNetworkRequest - " + "\n" + buildDeleteNetworkRequestAsString)
- }
- catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareNetworkRequest(). Unexpected Response from AAI - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
- }
-
- /**
- * This method is used instead of an HTTP Connector task because the
- * connector does not allow DELETE with a body.
- */
- public void sendRequestToVnfAdapter(DelegateExecution execution) {
- def method = getClass().getSimpleName() + '.sendRequestToVnfAdapter(' +
- 'execution=' + execution.getId() +
- ')'
-
- logger.trace('Entered ' + method)
-
- try {
-
- String vnfAdapterUrl = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint",execution)
- String vnfAdapterRequest = execution.getVariable(Prefix + "deleteNetworkRequest")
-
- URL url = new URL(vnfAdapterUrl)
- HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.OPENSTACK_ADAPTER)
- httpClient.accept = "application/xml"
- httpClient.addAdditionalHeader("Authorization", execution.getVariable("BasicAuthHeaderValuePO"))
- Response response = httpClient.delete(vnfAdapterRequest)
-
- execution.setVariable(Prefix + "deleteNetworkResponse", response.readEntity(String.class))
- execution.setVariable(Prefix + "networkReturnCode", response.getStatus())
-
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, sendRequestToVnfAdapter() - " + ex.getMessage()
- logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
- "BPMN", ErrorCode.UnknownError.getValue(),
- "Exception is:\n" + ex);
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
- }
-
-
- public void prepareSDNCRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix", Prefix)
-
- logger.trace("Inside prepareSDNCRequest of DoDeleteNetworkInstance ")
-
- try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
-
- String networkId = ""
- if (utils.nodeExists(deleteNetworkInput, "network-id")) {
- networkId = utils.getNodeText(deleteNetworkInput, "network-id")
- }
- if (networkId == 'null') {networkId = ""}
-
- String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
-
- // get/set 'msoRequestId' and 'mso-request-id'
- String requestId = execution.getVariable("msoRequestId")
- if (requestId != null) {
- execution.setVariable("mso-request-id", requestId)
- } else {
- requestId = execution.getVariable("mso-request-id")
- }
- execution.setVariable(Prefix + "requestId", requestId)
- logger.debug(Prefix + "requestId " + requestId)
- L3Network queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
-
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- // 1. prepare delete topology via SDNC Adapter SUBFLOW call
- String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "delete", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
- String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
- logger.debug(sndcTopologyDeleteRequesAsString)
- execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
- logger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
-
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
- logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
- "BPMN", ErrorCode.UnknownError.getValue(),
- "Exception is:\n" + ex);
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void prepareRpcSDNCRequest (DelegateExecution execution) {
+ logger.debug(Prefix + "deleteNetworkRequest - " + "\n" + deleteNetworkRequest)
+ // Format Response
+ String buildDeleteNetworkRequestAsString = utils.formatXml(deleteNetworkRequest)
+ logger.debug(buildDeleteNetworkRequestAsString)
+ logger.debug(Prefix + "deleteNetworkRequestAsString - " + "\n" + buildDeleteNetworkRequestAsString)
- execution.setVariable("prefix", Prefix)
+ String restURL = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint", execution)
+ execution.setVariable("mso.adapters.network.rest.endpoint", restURL + "/" + networkId)
+ logger.debug("mso.adapters.network.rest.endpoint - " + "\n" + restURL + "/" + networkId)
- logger.trace("Inside prepareRpcSDNCRequest of DoDeleteNetworkInstance ")
-
- try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
-
- String networkId = ""
- if (utils.nodeExists(deleteNetworkInput, "network-id")) {
- networkId = utils.getNodeText(deleteNetworkInput, "network-id")
- }
- if (networkId == 'null') {networkId = ""}
-
- String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
-
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- // 1. prepare delete topology via SDNC Adapter SUBFLOW call
- String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "unassign", "DeleteNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
- logger.debug(sndcTopologyDeleteRequesAsString)
- execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
- logger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
-
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
- logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
- "BPMN", ErrorCode.UnknownError.getValue(),
- "Exception is:\n" + ex);
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
+ execution.setVariable(Prefix + "deleteNetworkRequest", buildDeleteNetworkRequestAsString)
+ logger.debug(Prefix + "deleteNetworkRequest - " + "\n" + buildDeleteNetworkRequestAsString)
+ }
+ catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareNetworkRequest(). Unexpected Response from AAI - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ }
+ }
+
+ /**
+ * This method is used instead of an HTTP Connector task because the
+ * connector does not allow DELETE with a body.
+ */
+ public void sendRequestToVnfAdapter(DelegateExecution execution) {
+ def method = getClass().getSimpleName() + '.sendRequestToVnfAdapter(' +
+ 'execution=' + execution.getId() +
+ ')'
+
+ logger.trace('Entered ' + method)
+
+ try {
+
+ String vnfAdapterUrl = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint",execution)
+ String vnfAdapterRequest = execution.getVariable(Prefix + "deleteNetworkRequest")
+
+ URL url = new URL(vnfAdapterUrl)
+ HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.OPENSTACK_ADAPTER)
+ httpClient.accept = "application/xml"
+ httpClient.addAdditionalHeader("Authorization", execution.getVariable("BasicAuthHeaderValuePO"))
+ Response response = httpClient.delete(vnfAdapterRequest)
+
+ execution.setVariable(Prefix + "deleteNetworkResponse", response.readEntity(String.class))
+ execution.setVariable(Prefix + "networkReturnCode", response.getStatus())
+
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, sendRequestToVnfAdapter() - " + ex.getMessage()
+ logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
+ "BPMN", ErrorCode.UnknownError.getValue(),
+ "Exception is:\n" + ex);
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- public void prepareRpcSDNCDeactivate(DelegateExecution execution) {
+ }
+ }
+
+
+ public void prepareSDNCRequest (DelegateExecution execution) {
+
+ execution.setVariable("prefix", Prefix)
+
+ logger.trace("Inside prepareSDNCRequest of DoDeleteNetworkInstance ")
+
+ try {
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
+
+ String networkId = ""
+ if (utils.nodeExists(deleteNetworkInput, "network-id")) {
+ networkId = utils.getNodeText(deleteNetworkInput, "network-id")
+ }
+ if (networkId == 'null') {networkId = ""}
+
+ String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
+
+ // get/set 'msoRequestId' and 'mso-request-id'
+ String requestId = execution.getVariable("msoRequestId")
+ if (requestId != null) {
+ execution.setVariable("mso-request-id", requestId)
+ } else {
+ requestId = execution.getVariable("mso-request-id")
+ }
+ execution.setVariable(Prefix + "requestId", requestId)
+ logger.debug(Prefix + "requestId " + requestId)
+ L3Network queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
+
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ // 1. prepare delete topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "delete", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
+ String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
+ logger.debug(sndcTopologyDeleteRequesAsString)
+ execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
+ logger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
+
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
+ logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
+ "BPMN", ErrorCode.UnknownError.getValue(),
+ "Exception is:\n" + ex);
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- execution.setVariable("prefix",Prefix)
+ }
- logger.trace("Inside prepareRpcSDNCDeactivate() of DoDeleteNetworkInstance ")
-
- try {
-
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String networkId = ""
- if (utils.nodeExists(deleteNetworkInput, "network-id")) {
- networkId = utils.getNodeText(deleteNetworkInput, "network-id")
- }
- if (networkId == 'null') {networkId = ""}
- String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
+ }
- String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "deactivate", "DeleteNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
- execution.setVariable(Prefix + "deactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
- logger.debug(" Preparing request for RPC SDNC Topology deactivate - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
+ public void prepareRpcSDNCRequest (DelegateExecution execution) {
+ execution.setVariable("prefix", Prefix)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCActivateRollback() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ logger.trace("Inside prepareRpcSDNCRequest of DoDeleteNetworkInstance ")
- }
+ try {
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
- }
+ String networkId = ""
+ if (utils.nodeExists(deleteNetworkInput, "network-id")) {
+ networkId = utils.getNodeText(deleteNetworkInput, "network-id")
+ }
+ if (networkId == 'null') {networkId = ""}
- // **************************************************
- // Post or Validate Response Section
- // **************************************************
+ String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
- public void validateNetworkResponse (DelegateExecution execution) {
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ // 1. prepare delete topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "unassign", "DeleteNetworkInstance", cloudRegionId, networkId, null)
+ String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
+ logger.debug(sndcTopologyDeleteRequesAsString)
+ execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
+ logger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
- execution.setVariable("prefix", Prefix)
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
+ logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
+ "BPMN", ErrorCode.UnknownError.getValue(),
+ "Exception is:\n" + ex);
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- logger.trace("Inside validateNetworkResponse of DoDeleteNetworkInstance ")
+ }
- try {
- String returnCode = execution.getVariable(Prefix + "networkReturnCode")
- String networkResponse = execution.getVariable(Prefix + "deleteNetworkResponse")
+ }
- logger.debug(" Network Adapter responseCode: " + returnCode)
- logger.debug("Network Adapter Response - " + "\n" + networkResponse)
- logger.debug(networkResponse)
- String errorMessage = ""
- if (returnCode == "200") {
- logger.debug(" Network Adapter Response is successful - " + "\n" + networkResponse)
+ public void prepareRpcSDNCDeactivate(DelegateExecution execution) {
- // prepare rollback data
- String rollbackData = utils.getNodeXml(networkResponse, "rollback", false).replace("tag0:","").replace(":tag0","")
- if ((rollbackData == null) || (rollbackData.isEmpty())) {
- logger.debug(" Network Adapter 'rollback' data is not Sent: " + "\n" + networkResponse)
- execution.setVariable(Prefix + "rollbackNetworkRequest", "")
- } else {
- String rollbackNetwork =
- """<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.onap.so/network">
- ${rollbackData}
- </NetworkAdapter:rollbackNetwork>"""
- String rollbackNetworkXml = utils.formatXml(rollbackNetwork)
- execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkXml)
- logger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
- }
+ execution.setVariable("prefix",Prefix)
+ logger.trace("Inside prepareRpcSDNCDeactivate() of DoDeleteNetworkInstance ")
- } else { // network error
- if (returnCode.toInteger() > 399 && returnCode.toInteger() < 600) { //4xx, 5xx
- if (networkResponse.contains("deleteNetworkError") ) {
- networkResponse = networkResponse.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '')
- errorMessage = utils.getNodeText(networkResponse, "message")
- errorMessage = "Received error from Network Adapter: " + errorMessage
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
+ try {
- } else { // CatchAll exception
- if (returnCode == "500") {
- errorMessage = "JBWEB000065: HTTP Status 500."
- } else {
- errorMessage = "Return code is " + returnCode
- }
- errorMessage = "Received error from Network Adapter: " + errorMessage
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String networkId = ""
+ if (utils.nodeExists(deleteNetworkInput, "network-id")) {
+ networkId = utils.getNodeText(deleteNetworkInput, "network-id")
+ }
+ if (networkId == 'null') {networkId = ""}
+ String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
- }
+ String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "deactivate", "DeleteNetworkInstance", cloudRegionId, networkId, null)
+ String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
+ execution.setVariable(Prefix + "deactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
+ logger.debug(" Preparing request for RPC SDNC Topology deactivate - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
- } else { // CatchAll exception
- String dataErrorMessage = "Received error from Network Adapter. Return code is: " + returnCode
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCActivateRollback() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- } catch (BpmnError e) {
- throw e;
+ }
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, validateNetworkResponse() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ public void validateSDNCResponse (DelegateExecution execution) {
- }
+ execution.setVariable("prefix", Prefix)
- }
+ logger.trace("Inside validateSDNCResponse of DoDeleteNetworkInstance ")
- public void validateSDNCResponse (DelegateExecution execution) {
+ String response = execution.getVariable(Prefix + "deleteSDNCResponse")
+ boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
+ WorkflowException workflowException = execution.getVariable("WorkflowException")
- execution.setVariable("prefix", Prefix)
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
+ // reset variable
+ String deleteSDNCResponseDecodeXml = execution.getVariable(Prefix + "deleteSDNCResponse")
+ deleteSDNCResponseDecodeXml = deleteSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
+ execution.setVariable(Prefix + "deleteSDNCResponse", deleteSDNCResponseDecodeXml)
- logger.trace("Inside validateSDNCResponse of DoDeleteNetworkInstance ")
+ if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, prefix+'sdncResponseSuccess'
+ execution.setVariable(Prefix + "isSdncRollbackNeeded", true) //
+ execution.setVariable(Prefix + "isPONR", true)
+ logger.debug("Successfully Validated SDNC Response")
+ } else {
+ logger.debug("Did NOT Successfully Validated SDNC Response")
+ throw new BpmnError("MSOWorkflowException")
+ }
- String response = execution.getVariable(Prefix + "deleteSDNCResponse")
- boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
- WorkflowException workflowException = execution.getVariable("WorkflowException")
+ }
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
- // reset variable
- String deleteSDNCResponseDecodeXml = execution.getVariable(Prefix + "deleteSDNCResponse")
- deleteSDNCResponseDecodeXml = deleteSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- execution.setVariable(Prefix + "deleteSDNCResponse", deleteSDNCResponseDecodeXml)
+ public void validateRpcSDNCDeactivateResponse (DelegateExecution execution) {
- if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, prefix+'sdncResponseSuccess'
- execution.setVariable(Prefix + "isSdncRollbackNeeded", true) //
- execution.setVariable(Prefix + "isPONR", true)
- logger.debug("Successfully Validated SDNC Response")
- } else {
- logger.debug("Did NOT Successfully Validated SDNC Response")
- throw new BpmnError("MSOWorkflowException")
- }
+ execution.setVariable("prefix",Prefix)
- }
+ logger.trace("Inside validateRpcSDNCDeactivateResponse() of DoDeleteNetworkInstance ")
- public void validateRpcSDNCDeactivateResponse (DelegateExecution execution) {
+ String response = execution.getVariable(Prefix + "deactivateSDNCResponse")
+ boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
+ WorkflowException workflowException = execution.getVariable("WorkflowException")
- execution.setVariable("prefix",Prefix)
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
+ // reset variable
+ String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "deactivateSDNCResponse")
+ assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
+ execution.setVariable(Prefix + "deactivateSDNCResponse", assignSDNCResponseDecodeXml)
- logger.trace("Inside validateRpcSDNCDeactivateResponse() of DoDeleteNetworkInstance ")
+ if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
+ execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", true)
+ logger.debug("Successfully Validated Rpc SDNC Activate Response")
- String response = execution.getVariable(Prefix + "deactivateSDNCResponse")
- boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
- WorkflowException workflowException = execution.getVariable("WorkflowException")
+ } else {
+ logger.debug("Did NOT Successfully Validated Rpc SDNC Deactivate Response")
+ throw new BpmnError("MSOWorkflowException")
+ }
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
- // reset variable
- String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "deactivateSDNCResponse")
- assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- execution.setVariable(Prefix + "deactivateSDNCResponse", assignSDNCResponseDecodeXml)
+ }
- if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
- execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", true)
- logger.debug("Successfully Validated Rpc SDNC Activate Response")
+ public void prepareRpcSDNCDeactivateRollback(DelegateExecution execution) {
- } else {
- logger.debug("Did NOT Successfully Validated Rpc SDNC Deactivate Response")
- throw new BpmnError("MSOWorkflowException")
- }
+ execution.setVariable("prefix",Prefix)
- }
+ logger.trace("Inside prepareRpcSDNCDeactivateRollback() of DoDeleteNetworkInstance ")
- public void prepareRpcSDNCDeactivateRollback(DelegateExecution execution) {
+ try {
- execution.setVariable("prefix",Prefix)
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String deactivateSDNCResponse = execution.getVariable(Prefix + "deactivateSDNCResponse")
+ String networkId = utils.getNodeText(deactivateSDNCResponse, "network-id")
+ if (networkId == 'null') {networkId = ""}
+ String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
- logger.trace("Inside prepareRpcSDNCDeactivateRollback() of DoDeleteNetworkInstance ")
-
- try {
+ // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
+ String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
+ execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
+ logger.debug(" Preparing request for RPC SDNC Topology 'activate-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String deactivateSDNCResponse = execution.getVariable(Prefix + "deactivateSDNCResponse")
- String networkId = utils.getNodeText(deactivateSDNCResponse, "network-id")
- if (networkId == 'null') {networkId = ""}
- String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
- // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
- String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
- execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
- logger.debug(" Preparing request for RPC SDNC Topology 'activate-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCDeactivateRollback() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCDeactivateRollback() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
- }
+ public void prepareRollbackData(DelegateExecution execution) {
- }
+ execution.setVariable("prefix",Prefix)
- public void prepareRollbackData(DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
+ logger.trace("Inside prepareRollbackData() of DoDeleteNetworkInstance ")
- logger.trace("Inside prepareRollbackData() of DoDeleteNetworkInstance ")
+ try {
- try {
+ Map<String, String> rollbackData = new HashMap<String, String>();
+ String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
+ if (rollbackNetworkRequest != null) {
+ if (rollbackNetworkRequest != "") {
+ rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
+ }
+ }
+ String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
+ if (rollbackDeactivateSDNCRequest != null) {
+ if (rollbackDeactivateSDNCRequest != "") {
+ rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
+ }
+ }
+ execution.setVariable("rollbackData", rollbackData)
+ logger.debug("** rollbackData : " + rollbackData)
- Map<String, String> rollbackData = new HashMap<String, String>();
- String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
- if (rollbackNetworkRequest != null) {
- if (rollbackNetworkRequest != "") {
- rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
- }
- }
- String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
- if (rollbackDeactivateSDNCRequest != null) {
- if (rollbackDeactivateSDNCRequest != "") {
- rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
- }
- }
- execution.setVariable("rollbackData", rollbackData)
- logger.debug("** rollbackData : " + rollbackData)
-
- execution.setVariable("WorkflowException", execution.getVariable("WorkflowException"))
- logger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
-
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
+ execution.setVariable("WorkflowException", execution.getVariable("WorkflowException"))
+ logger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
- public void postProcessResponse (DelegateExecution execution) {
-
- execution.setVariable("prefix", Prefix)
-
- logger.trace("Inside postProcessResponse of DoDeleteNetworkInstance ")
-
- try {
-
- logger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
- if (execution.getVariable(Prefix + "isException") == false) {
- execution.setVariable(Prefix + "Success", true)
- execution.setVariable("WorkflowException", null)
- if (execution.getVariable(Prefix + "isSilentSuccess") == true) {
- execution.setVariable("rolledBack", false)
- } else {
- execution.setVariable("rolledBack", true)
- }
- prepareSuccessRollbackData(execution) // populate rollbackData
-
- } else {
- execution.setVariable(Prefix + "Success", false)
- execution.setVariable("rollbackData", null)
- String exceptionMessage = " Exception encountered in MSO Bpmn. "
- if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
- logger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
- WorkflowException wfex = execution.getVariable("workflowException")
- exceptionMessage = wfex.getErrorMessage()
- } else {
- if (execution.getVariable(Prefix + "WorkflowException") != null) {
- WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
- exceptionMessage = pwfex.getErrorMessage()
- } else {
- if (execution.getVariable("WorkflowException") != null) {
- WorkflowException pwfex = execution.getVariable("WorkflowException")
- exceptionMessage = pwfex.getErrorMessage()
- }
- }
- }
-
- // going to the Main flow: a-la-carte or macro
- logger.debug(" ***** postProcessResponse(), BAD !!!")
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
-
- }
-
- } catch(BpmnError b){
- logger.debug("Rethrowing MSOWorkflowException")
- throw b
-
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, postProcessResponse() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
}
- }
-
- public void prepareSuccessRollbackData(DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside prepareSuccessRollbackData() of DoDeleteNetworkInstance ")
-
- try {
-
- if (execution.getVariable("sdncVersion") != '1610') {
- prepareRpcSDNCDeactivateRollback(execution)
- prepareRpcSDNCUnassignRollback(execution)
- } else {
- prepareSDNCRollback(execution)
- }
-
- Map<String, String> rollbackData = new HashMap<String, String>();
- String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
- if (rollbackSDNCRequest != null) {
- if (rollbackSDNCRequest != "") {
- rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
- }
- }
- String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
- if (rollbackNetworkRequest != null) {
- if (rollbackNetworkRequest != "") {
- rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
- }
- }
- String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
- if (rollbackDeactivateSDNCRequest != null) {
- if (rollbackDeactivateSDNCRequest != "") {
- rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
- }
- }
- execution.setVariable("rollbackData", rollbackData)
-
- logger.debug("** rollbackData : " + rollbackData)
- execution.setVariable("WorkflowException", null)
+ }
+
+ public void postProcessResponse (DelegateExecution execution) {
+
+ execution.setVariable("prefix", Prefix)
+
+ logger.trace("Inside postProcessResponse of DoDeleteNetworkInstance ")
+
+ try {
+
+ logger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
+ if (execution.getVariable(Prefix + "isException") == false) {
+ execution.setVariable(Prefix + "Success", true)
+ execution.setVariable("WorkflowException", null)
+ if (execution.getVariable(Prefix + "isSilentSuccess") == true) {
+ execution.setVariable("rolledBack", false)
+ } else {
+ execution.setVariable("rolledBack", true)
+ }
+ prepareSuccessRollbackData(execution) // populate rollbackData
+
+ } else {
+ execution.setVariable(Prefix + "Success", false)
+ execution.setVariable("rollbackData", null)
+ String exceptionMessage = " Exception encountered in MSO Bpmn. "
+ if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
+ logger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
+ WorkflowException wfex = execution.getVariable("workflowException")
+ exceptionMessage = wfex.getErrorMessage()
+ } else {
+ if (execution.getVariable(Prefix + "WorkflowException") != null) {
+ WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
+ exceptionMessage = pwfex.getErrorMessage()
+ } else {
+ if (execution.getVariable("WorkflowException") != null) {
+ WorkflowException pwfex = execution.getVariable("WorkflowException")
+ exceptionMessage = pwfex.getErrorMessage()
+ }
+ }
+ }
+
+ // going to the Main flow: a-la-carte or macro
+ logger.debug(" ***** postProcessResponse(), BAD !!!")
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ throw new BpmnError("MSOWorkflowException")
+
+ }
+
+ } catch(BpmnError b){
+ logger.debug("Rethrowing MSOWorkflowException")
+ throw b
+
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, postProcessResponse() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ throw new BpmnError("MSOWorkflowException")
+ }
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
+
+ public void prepareSuccessRollbackData(DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside prepareSuccessRollbackData() of DoDeleteNetworkInstance ")
+
+ try {
+
+ if (execution.getVariable("sdncVersion") != '1610') {
+ prepareRpcSDNCDeactivateRollback(execution)
+ prepareRpcSDNCUnassignRollback(execution)
+ } else {
+ prepareSDNCRollback(execution)
+ }
+
+ Map<String, String> rollbackData = new HashMap<String, String>();
+ String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
+ if (rollbackSDNCRequest != null) {
+ if (rollbackSDNCRequest != "") {
+ rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
+ }
+ }
+ String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
+ if (rollbackNetworkRequest != null) {
+ if (rollbackNetworkRequest != "") {
+ rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
+ }
+ }
+ String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
+ if (rollbackDeactivateSDNCRequest != null) {
+ if (rollbackDeactivateSDNCRequest != "") {
+ rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
+ }
+ }
+ execution.setVariable("rollbackData", rollbackData)
+
+ logger.debug("** rollbackData : " + rollbackData)
+ execution.setVariable("WorkflowException", null)
+
+
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void prepareRpcSDNCUnassignRollback(DelegateExecution execution) {
+ public void prepareRpcSDNCUnassignRollback(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside prepareRpcSDNCUnassignRollbac() of DoDeleteNetworkInstance ")
+ logger.trace("Inside prepareRpcSDNCUnassignRollbac() of DoDeleteNetworkInstance ")
- try {
+ try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String deleteSDNCResponse = execution.getVariable(Prefix + "deleteSDNCResponse")
- String networkId = utils.getNodeText(deleteSDNCResponse, "network-id")
- if (networkId == 'null') {networkId = ""}
- String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
+ String deleteSDNCResponse = execution.getVariable(Prefix + "deleteSDNCResponse")
+ String networkId = utils.getNodeText(deleteSDNCResponse, "network-id")
+ if (networkId == 'null') {networkId = ""}
+ String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- // 1. prepare delete topology via SDNC Adapter SUBFLOW call
- String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "assign", "CreateNetworkInstance", cloudRegionId, networkId, null)
- String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
- logger.debug(sndcTopologyDeleteRequesAsString)
- execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
- logger.debug(Prefix + "rollbackSDNCRequest" + "\n" + sndcTopologyDeleteRequesAsString)
- logger.debug(" Preparing request for RPC SDNC Topology 'assign-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ // 1. prepare delete topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "assign", "CreateNetworkInstance", cloudRegionId, networkId, null)
+ String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
+ logger.debug(sndcTopologyDeleteRequesAsString)
+ execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
+ logger.debug(Prefix + "rollbackSDNCRequest" + "\n" + sndcTopologyDeleteRequesAsString)
+ logger.debug(" Preparing request for RPC SDNC Topology 'assign-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCUnassignRollback() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCUnassignRollback() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void prepareSDNCRollback (DelegateExecution execution) {
+ public void prepareSDNCRollback (DelegateExecution execution) {
- execution.setVariable("prefix", Prefix)
+ execution.setVariable("prefix", Prefix)
- logger.trace("Inside prepareSDNCRollback of DoDeleteNetworkInstance ")
+ logger.trace("Inside prepareSDNCRollback of DoDeleteNetworkInstance ")
- try {
+ try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String networkId = ""
- if (utils.nodeExists(deleteNetworkInput, "network-id")) {
- networkId = utils.getNodeText(deleteNetworkInput, "network-id")
- }
- if (networkId == 'null') {networkId = ""}
+ String networkId = ""
+ if (utils.nodeExists(deleteNetworkInput, "network-id")) {
+ networkId = utils.getNodeText(deleteNetworkInput, "network-id")
+ }
+ if (networkId == 'null') {networkId = ""}
- String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
+ String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
- // get/set 'msoRequestId' and 'mso-request-id'
- String requestId = execution.getVariable("msoRequestId")
- if (requestId != null) {
- execution.setVariable("mso-request-id", requestId)
- } else {
- requestId = execution.getVariable("mso-request-id")
- }
- execution.setVariable(Prefix + "requestId", requestId)
+ // get/set 'msoRequestId' and 'mso-request-id'
+ String requestId = execution.getVariable("msoRequestId")
+ if (requestId != null) {
+ execution.setVariable("mso-request-id", requestId)
+ } else {
+ requestId = execution.getVariable("mso-request-id")
+ }
+ execution.setVariable(Prefix + "requestId", requestId)
- L3Network queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
+ L3Network queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- // 1. prepare delete topology via SDNC Adapter SUBFLOW call
- String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "rollback", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
- String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
- logger.debug(sndcTopologyDeleteRequesAsString)
- execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
- logger.debug(Prefix + "rollbackSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
- logger.debug(" Preparing request for RPC SDNC Topology 'rollback-DisconnectNetworkRequest' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ // 1. prepare delete topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "rollback", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
+ String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
+ logger.debug(sndcTopologyDeleteRequesAsString)
+ execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
+ logger.debug(Prefix + "rollbackSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
+ logger.debug(" Preparing request for RPC SDNC Topology 'rollback-DisconnectNetworkRequest' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
- } catch (Exception ex) {
- // caught exception
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRollback() - " + ex.getMessage()
- logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
- "BPMN", ErrorCode.UnknownError.getValue(),
- "Exception is:\n" + ex);
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ // caught exception
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRollback() - " + ex.getMessage()
+ logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), exceptionMessage,
+ "BPMN", ErrorCode.UnknownError.getValue(),
+ "Exception is:\n" + ex);
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void setExceptionFlag(DelegateExecution execution){
+ public void setExceptionFlag(DelegateExecution execution){
- execution.setVariable("prefix",Prefix)
+ execution.setVariable("prefix",Prefix)
- logger.trace("Inside setExceptionFlag() of DoDeleteNetworkInstance ")
+ logger.trace("Inside setExceptionFlag() of DoDeleteNetworkInstance ")
- try {
+ try {
- execution.setVariable(Prefix + "isException", true)
+ execution.setVariable(Prefix + "isException", true)
- if (execution.getVariable("SavedWorkflowException1") != null) {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
- } else {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
- }
- logger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
+ if (execution.getVariable("SavedWorkflowException1") != null) {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
+ } else {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
+ }
+ logger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
- } catch(Exception ex){
- String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ } catch(Exception ex){
+ String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
- }
+ }
- // *******************************
- // Build Error Section
- // *******************************
+ // *******************************
+ // Build Error Section
+ // *******************************
- public void processJavaException(DelegateExecution execution){
+ public void processJavaException(DelegateExecution execution){
- execution.setVariable("prefix",Prefix)
- try{
- logger.debug("Caught a Java Exception")
- logger.debug("Started processJavaException Method")
- logger.debug("Variables List: " + execution.getVariables())
- execution.setVariable("UnexpectedError", "Caught a Java Lang Exception") // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
+ execution.setVariable("prefix",Prefix)
+ try{
+ logger.debug("Caught a Java Exception")
+ logger.debug("Started processJavaException Method")
+ logger.debug("Variables List: " + execution.getVariables())
+ execution.setVariable("UnexpectedError", "Caught a Java Lang Exception") // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
- }catch(Exception e){
- logger.debug("Caught Exception during processJavaException Method: " + e)
- execution.setVariable("UnexpectedError", "Exception in processJavaException method") // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method")
- }
- logger.debug("Completed processJavaException Method of " + Prefix)
- }
+ }catch(Exception e){
+ logger.debug("Caught Exception during processJavaException Method: " + e)
+ execution.setVariable("UnexpectedError", "Exception in processJavaException method") // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method")
+ }
+ logger.debug("Completed processJavaException Method of " + Prefix)
+ }
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceRollback.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceRollback.groovy
deleted file mode 100644
index 36c145b0e0..0000000000
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceRollback.groovy
+++ /dev/null
@@ -1,338 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.infrastructure.scripts;
-
-import groovy.xml.XmlUtil
-import groovy.json.*
-import org.onap.so.bpmn.core.UrnPropertiesReader
-import org.onap.so.bpmn.core.json.JsonUtils
-import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
-import org.onap.so.bpmn.common.scripts.ExceptionUtil
-import org.onap.so.bpmn.common.scripts.NetworkUtils
-import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
-import org.onap.so.bpmn.common.scripts.VidUtils
-import org.onap.so.bpmn.core.WorkflowException
-
-
-import java.util.UUID;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.apache.commons.lang3.*
-import org.apache.commons.codec.binary.Base64;
-import org.springframework.web.util.UriUtils
-
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-/**
- * This groovy class supports the <class>DoCreateNetworkInstanceRollback.bpmn</class> process.
- *
- */
-public class DoDeleteNetworkInstanceRollback extends AbstractServiceTaskProcessor {
- private static final Logger logger = LoggerFactory.getLogger( DoDeleteNetworkInstanceRollback.class);
-
- String Prefix="DELNWKIR_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- JsonUtils jsonUtil = new JsonUtils()
- VidUtils vidUtils = new VidUtils(this)
- NetworkUtils networkUtils = new NetworkUtils()
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
-
- def className = getClass().getSimpleName()
-
- /**
- * This method is executed during the preProcessRequest task of the <class>DoDeleteNetworkInstanceRollback.bpmn</class> process.
- * @param execution
- */
- public InitializeProcessVariables(DelegateExecution execution){
- /* Initialize all the process variables in this block */
-
- execution.setVariable(Prefix + "WorkflowException", null)
-
- execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", null)
- execution.setVariable(Prefix + "rollbackDeactivateSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackDeactivateSDNCReturnCode", "")
-
- execution.setVariable(Prefix + "rollbackSDNCRequest", "")
- execution.setVariable(Prefix + "rollbackSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackSDNCReturnCode", "")
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", null)
- execution.setVariable(Prefix + "rollbackNetworkResponse", "")
- execution.setVariable(Prefix + "rollbackNetworkReturnCode", "")
-
- execution.setVariable(Prefix + "Success", false)
- execution.setVariable(Prefix + "fullRollback", false)
-
- }
-
- // **************************************************
- // Pre or Prepare Request Section
- // **************************************************
- /**
- * This method is executed during the preProcessRequest task of the <class>DoDeleteNetworkInstanceRollback.bpmn</class> process.
- * @param execution
- */
- public void preProcessRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside preProcessRequest() of " + className + ".groovy ")
-
- try {
- // initialize flow variables
- InitializeProcessVariables(execution)
-
- // GET Incoming request/variables
- String rollbackDeactivateSDNCRequest = null
- String rollbackSDNCRequest = null
- String rollbackNetworkRequest = null
-
- Map<String, String> rollbackData = execution.getVariable("rollbackData")
- if (rollbackData != null && rollbackData instanceof Map) {
-
- if(rollbackData.containsKey("rollbackDeactivateSDNCRequest")) {
- rollbackDeactivateSDNCRequest = rollbackData["rollbackDeactivateSDNCRequest"]
- }
-
- if(rollbackData.containsKey("rollbackSDNCRequest")) {
- rollbackSDNCRequest = rollbackData["rollbackSDNCRequest"]
- }
-
- if(rollbackData.containsKey("rollbackNetworkRequest")) {
- rollbackNetworkRequest = rollbackData["rollbackNetworkRequest"]
- }
- }
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkRequest)
- execution.setVariable(Prefix + "rollbackSDNCRequest", rollbackSDNCRequest)
- execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", rollbackDeactivateSDNCRequest)
- logger.debug("'rollbackData': " + '\n' + execution.getVariable("rollbackData"))
-
- String sdncVersion = execution.getVariable("sdncVersion")
- logger.debug("sdncVersion? : " + sdncVersion)
-
- // PO Authorization Info / headers Authorization=
- String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
- try {
- def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
- execution.setVariable("BasicAuthHeaderValuePO",encodedString)
- execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
-
- } catch (IOException ex) {
- String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "
- String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
- logger.debug(dataErrorMessage )
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- if (execution.getVariable("SavedWorkflowException1") != null) {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
- } else {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
- }
- logger.debug("*** WorkflowException : " + execution.getVariable(Prefix + "WorkflowException"))
- if(execution.getVariable(Prefix + "WorkflowException") != null) {
- // called by: DoCreateNetworkInstance, partial rollback
- execution.setVariable(Prefix + "fullRollback", false)
-
- } else {
- // called by: Macro - Full Rollback, WorkflowException = null
- execution.setVariable(Prefix + "fullRollback", true)
-
- }
-
- logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
-
- } catch (BpmnError e) {
- throw e;
-
- } catch (Exception ex) {
- sendSyncError(execution)
- // caught exception
- String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void validateRollbackResponses (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside validateRollbackResponses() of DoDeleteNetworkInstanceRollback ")
-
- try {
-
- // validate SDNC activate response
- String rollbackDeactivateSDNCMessages = ""
- String rollbackDeactivateSDNCReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest") != null) {
- rollbackDeactivateSDNCReturnCode = execution.getVariable(Prefix + "rollbackDeactivateSDNCReturnCode")
- String rollbackDeactivateSDNCResponse = execution.getVariable(Prefix + "rollbackDeactivateSDNCResponse")
- String rollbackDeactivateSDNCReturnInnerCode = ""
- rollbackDeactivateSDNCResponse = rollbackDeactivateSDNCResponse.replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- if (rollbackDeactivateSDNCReturnCode == "200") {
- if (utils.nodeExists(rollbackDeactivateSDNCResponse, "response-code")) {
- rollbackDeactivateSDNCReturnInnerCode = utils.getNodeText(rollbackDeactivateSDNCResponse, "response-code")
- if (rollbackDeactivateSDNCReturnInnerCode == "200" || rollbackDeactivateSDNCReturnInnerCode == "" || rollbackDeactivateSDNCReturnInnerCode == "0") {
- rollbackDeactivateSDNCMessages = " + SNDC deactivate rollback completed."
- } else {
- rollbackDeactivateSDNCMessages = " + SDNC deactivate rollback failed. "
- }
- } else {
- rollbackDeactivateSDNCMessages = " + SNDC deactivate rollback completed."
- }
- } else {
- rollbackDeactivateSDNCMessages = " + SDNC deactivate rollback failed. "
- }
- logger.debug(" SDNC deactivate rollback Code - " + rollbackDeactivateSDNCReturnCode)
- logger.debug(" SDNC deactivate rollback Response - " + rollbackDeactivateSDNCResponse)
- }
-
- // validate SDNC rollback response
- String rollbackSdncErrorMessages = ""
- String rollbackSDNCReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackSDNCRequest") != null) {
- rollbackSDNCReturnCode = execution.getVariable(Prefix + "rollbackSDNCReturnCode")
- String rollbackSDNCResponse = execution.getVariable(Prefix + "rollbackSDNCResponse")
- String rollbackSDNCReturnInnerCode = ""
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- rollbackSDNCResponse = rollbackSDNCResponse.replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- if (rollbackSDNCReturnCode == "200") {
- if (utils.nodeExists(rollbackSDNCResponse, "response-code")) {
- rollbackSDNCReturnInnerCode = utils.getNodeText(rollbackSDNCResponse, "response-code")
- if (rollbackSDNCReturnInnerCode == "200" || rollbackSDNCReturnInnerCode == "" || rollbackSDNCReturnInnerCode == "0") {
- rollbackSdncErrorMessages = " + SNDC unassign rollback completed."
- } else {
- rollbackSdncErrorMessages = " + SDNC unassign rollback failed. "
- }
- } else {
- rollbackSdncErrorMessages = " + SNDC unassign rollback completed."
- }
- } else {
- rollbackSdncErrorMessages = " + SDNC unassign rollback failed. "
- }
- logger.debug(" SDNC assign rollback Code - " + rollbackSDNCReturnCode)
- logger.debug(" SDNC assign rollback Response - " + rollbackSDNCResponse)
- }
-
- // validate PO network rollback response
- String rollbackNetworkErrorMessages = ""
- String rollbackNetworkReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackNetworkRequest") != null) {
- rollbackNetworkReturnCode = execution.getVariable(Prefix + "rollbackNetworkReturnCode")
- String rollbackNetworkResponse = execution.getVariable(Prefix + "rollbackNetworkResponse")
- if (rollbackNetworkReturnCode != "200") {
- rollbackNetworkErrorMessages = " + PO Network rollback failed. "
- } else {
- rollbackNetworkErrorMessages = " + PO Network rollback completed."
- }
-
- logger.debug(" NetworkRollback Code - " + rollbackNetworkReturnCode)
- logger.debug(" NetworkRollback Response - " + rollbackNetworkResponse)
- }
-
- String statusMessage = ""
- int errorCode = 7000
- logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
- if (execution.getVariable(Prefix + "fullRollback") == false) {
- WorkflowException wfe = execution.getVariable(Prefix + "WorkflowException") // original WorkflowException
- if (wfe != null) {
- statusMessage = wfe.getErrorMessage()
- errorCode = wfe.getErrorCode()
- } else {
- statusMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
- errorCode = '7000'
- }
-
- // set if all rolledbacks are successful
- if (rollbackDeactivateSDNCReturnCode == "200" && rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200") {
- execution.setVariable("rolledBack", true)
- execution.setVariable("wasDeleted", true)
-
- } else {
- execution.setVariable("rolledBack", false)
- execution.setVariable("wasDeleted", true)
- }
-
- statusMessage = statusMessage + rollbackDeactivateSDNCMessages + rollbackNetworkErrorMessages + rollbackSdncErrorMessages
- logger.debug("Final DoDeleteNetworkInstanceRollback status message: " + statusMessage)
- String processKey = getProcessKey(execution);
- WorkflowException exception = new WorkflowException(processKey, errorCode, statusMessage);
- execution.setVariable("workflowException", exception);
-
- } else {
- // rollback due to failures in Main flow (Macro or a-ala-carte) - Full rollback
- if (rollbackDeactivateSDNCReturnCode == "200" && rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200") {
- execution.setVariable("rollbackSuccessful", true)
- execution.setVariable("rollbackError", false)
- } else {
- String exceptionMessage = "Network Delete Rollback was not Successful. "
- logger.debug(exceptionMessage)
- execution.setVariable("rollbackSuccessful", false)
- execution.setVariable("rollbackError", true)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
- }
- }
-
- } catch (Exception ex) {
- String errorMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
- String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstanceRollback flow. validateRollbackResponses() - " + errorMessage + ": " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- // *******************************
- // Build Error Section
- // *******************************
-
-
-
- public void processJavaException(DelegateExecution execution){
-
- execution.setVariable("prefix",Prefix)
-
- try{
- logger.debug("Caught a Java Exception in " + Prefix)
- logger.debug("Started processJavaException Method")
- logger.debug("Variables List: " + execution.getVariables())
- execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
-
- }catch(Exception e){
- logger.debug("Caught Exception during processJavaException Method: " + e)
- execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)
- }
- logger.debug("Completed processJavaException Method in " + Prefix)
- }
-
-}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy
index 6162780b27..87e56791fc 100644
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy
@@ -73,1107 +73,1027 @@ import groovy.xml.XmlUtil
public class DoUpdateNetworkInstance extends AbstractServiceTaskProcessor {
private static final Logger logger = LoggerFactory.getLogger( DoUpdateNetworkInstance.class);
- String Prefix="UPDNETI_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- JsonUtils jsonUtil = new JsonUtils()
- VidUtils vidUtils = new VidUtils(this)
- NetworkUtils networkUtils = new NetworkUtils()
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
-
- /**
- * This method is executed during the preProcessRequest task of the <class>DoUpdateNetworkInstance.bpmn</class> process.
- * @param execution
- */
- public InitializeProcessVariables(DelegateExecution execution){
- /* Initialize all the process variables in this block */
-
- execution.setVariable(Prefix + "messageId", "")
- execution.setVariable("BasicAuthHeaderValuePO", "")
- execution.setVariable("BasicAuthHeaderValueSDNC", "")
- execution.setVariable(Prefix + "networkRequest", "")
- execution.setVariable(Prefix + "networkInputs", "")
- execution.setVariable(Prefix + "networkOutputs", "")
- execution.setVariable(Prefix + "requestId", "")
- execution.setVariable(Prefix + "source", "")
- execution.setVariable(Prefix + "networkId", "")
-
- execution.setVariable(Prefix + "isPONR", false) // Point-of-no-return, means, rollback is not needed
-
- // AAI query Cloud Region
- execution.setVariable(Prefix + "queryCloudRegionRequest","")
- execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
- execution.setVariable(Prefix + "queryCloudRegionResponse","")
- execution.setVariable(Prefix + "cloudRegionPo","")
- execution.setVariable(Prefix + "cloudRegionSdnc","")
- execution.setVariable(Prefix + "isCloudRegionGood", false)
-
- // AAI query Id
- execution.setVariable(Prefix + "queryIdAAIRequest","")
- execution.setVariable(Prefix + "queryIdAAIResponse", "")
- execution.setVariable(Prefix + "aaiIdReturnCode", "")
-
- // AAI query vpn binding
- execution.setVariable(Prefix + "queryVpnBindingAAIRequest","")
- execution.setVariable(Prefix + "queryVpnBindingAAIResponse", "")
- execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")
- execution.setVariable(Prefix + "vpnBindings", null)
- execution.setVariable(Prefix + "vpnCount", 0)
- execution.setVariable(Prefix + "routeCollection", "")
-
- // AAI query network policy
- execution.setVariable(Prefix + "queryNetworkPolicyAAIRequest","")
- execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")
- execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")
- execution.setVariable(Prefix + "networkPolicyUriList", null)
- execution.setVariable(Prefix + "networkPolicyCount", 0)
- execution.setVariable(Prefix + "networkCollection", "")
-
- // AAI query route table reference
- execution.setVariable(Prefix + "queryNetworkTableRefAAIRequest","")
- execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")
- execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")
- execution.setVariable(Prefix + "networkTableRefUriList", null)
- execution.setVariable(Prefix + "networkTableRefCount", 0)
- execution.setVariable(Prefix + "tableRefCollection", "")
-
- // AAI requery Id
- execution.setVariable(Prefix + "requeryIdAAIRequest","")
- execution.setVariable(Prefix + "requeryIdAAIResponse", "")
- execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "")
-
- // AAI update contrail
- execution.setVariable(Prefix + "updateContrailAAIUrlRequest","")
- execution.setVariable(Prefix + "updateContrailAAIPayloadRequest","")
- execution.setVariable(Prefix + "updateContrailAAIResponse", "")
- execution.setVariable(Prefix + "aaiUpdateContrailReturnCode", "")
-
- execution.setVariable(Prefix + "updateNetworkRequest", "")
- execution.setVariable(Prefix + "updateNetworkResponse", "")
- execution.setVariable(Prefix + "rollbackNetworkRequest", "")
- execution.setVariable(Prefix + "networkReturnCode", "")
- execution.setVariable(Prefix + "isNetworkRollbackNeeded", false)
-
- execution.setVariable(Prefix + "changeAssignSDNCRequest", "")
- execution.setVariable(Prefix + "changeAssignSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackSDNCRequest", "")
- execution.setVariable(Prefix + "sdncReturnCode", "")
- execution.setVariable(Prefix + "isSdncRollbackNeeded", false)
- execution.setVariable(Prefix + "sdncResponseSuccess", false)
-
- execution.setVariable(Prefix + "isVnfBindingPresent", false)
- execution.setVariable(Prefix + "Success", false)
- execution.setVariable(Prefix + "serviceInstanceId", "")
-
- execution.setVariable(Prefix + "isException", false)
-
- }
-
- // **************************************************
- // Pre or Prepare Request Section
- // **************************************************
- /**
- * This method is executed during the preProcessRequest task of the <class>DoUpdateNetworkInstance.bpmn</class> process.
- * @param execution
- */
- public void preProcessRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside preProcessRequest DoUpdateNetworkInstance Request ")
-
- try {
- // initialize flow variables
- InitializeProcessVariables(execution)
-
- // GET Incoming request & validate 3 kinds of format.
- execution.setVariable("action", "UPDATE")
- String networkRequest = execution.getVariable("bpmnRequest")
- if (networkRequest != null) {
- if (networkRequest.contains("requestDetails")) {
- // JSON format request is sent, create xml
- try {
- def prettyJson = JsonOutput.prettyPrint(networkRequest.toString())
- logger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
- networkRequest = vidUtils.createXmlNetworkRequestInfra(execution, networkRequest)
-
- } catch (Exception ex) {
- String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
- } else {
- // XML format request is sent
-
- }
- } else {
- // vIPR format request is sent, create xml from individual variables
- networkRequest = vidUtils.createXmlNetworkRequestInstance(execution)
- }
-
- networkRequest = utils.formatXml(networkRequest)
- logger.debug(networkRequest)
- execution.setVariable(Prefix + "networkRequest", networkRequest)
- logger.debug(" network-request - " + '\n' + networkRequest)
-
- // validate 'disableRollback' (aka, 'suppressRollback')
- boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, networkRequest)
- execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
- logger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
-
- String networkInputs = utils.getNodeXml(networkRequest, "network-inputs", false).replace("tag0:","").replace(":tag0","")
- execution.setVariable(Prefix + "networkInputs", networkInputs)
- logger.debug(Prefix + "networkInputs - " + '\n' + networkInputs)
-
- // prepare messageId
- String messageId = execution.getVariable(Prefix + "messageId") // for testing
- if (messageId == null || messageId == "") {
- messageId = UUID.randomUUID()
- logger.debug(" UPDNETI_messageId, random generated: " + messageId)
- } else {
- logger.debug(" UPDNETI_messageId, pre-assigned: " + messageId)
- }
- execution.setVariable(Prefix + "messageId", messageId)
-
- String source = utils.getNodeText(networkRequest, "source")
- execution.setVariable(Prefix + "source", source)
- logger.debug(Prefix + "source - " + source)
-
- String networkId = ""
- if (utils.nodeExists(networkRequest, "network-id")) {
- networkId = utils.getNodeText(networkRequest, "network-id")
- if (networkId == 'null' || networkId == "") {
- sendSyncError(execution)
- // missing value of networkId
- String dataErrorMessage = "Variable 'network-id' value/element is missing."
- logger.debug(" Invalid Request - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
- }
- }
-
- String lcpCloudRegion = ""
- if (utils.nodeExists(networkRequest, "aic-cloud-region")) {
- lcpCloudRegion = utils.getNodeText(networkRequest, "aic-cloud-region")
- if ((lcpCloudRegion == 'null') || (lcpCloudRegion == "")) {
- sendSyncError(execution)
- String dataErrorMessage = "requestDetails has missing 'aic-cloud-region' value/element."
- logger.debug(" Invalid Request - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
- }
-
- String serviceInstanceId = ""
- if (utils.nodeExists(networkRequest, "service-instance-id")) {
- serviceInstanceId = utils.getNodeText(networkRequest, "service-instance-id")
- if ((serviceInstanceId == 'null') || (lcpCloudRegion == "")) {
- sendSyncError(execution)
- String dataErrorMessage = "Variable 'serviceInstanceId' value/element is missing."
- logger.debug(" Invalid Request - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
- }
-
- // PO Authorization Info / headers Authorization=
- String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
-
-
- try {
- def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
- execution.setVariable("BasicAuthHeaderValuePO",encodedString)
- execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
-
- } catch (IOException ex) {
- String exceptionMessage = "Exception Encountered in DoUpdateNetworkInstance, PreProcessRequest() - "
- String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- // Set variables for Generic Get Sub Flow use
- execution.setVariable(Prefix + "serviceInstanceId", serviceInstanceId)
- logger.debug(Prefix + "serviceInstanceId - " + serviceInstanceId)
-
- logger.debug(" Url for SDNC adapter: " + UrnPropertiesReader.getVariable("mso.adapters.sdnc.endpoint",execution))
-
- String sdncVersion = execution.getVariable("sdncVersion")
- logger.debug("sdncVersion? : " + sdncVersion)
-
- // build 'networkOutputs'
- networkId = utils.getNodeText(networkRequest, "network-id")
- if ((networkId == null) || (networkId == "null")) {
- networkId = ""
- }
- String networkName = utils.getNodeText(networkRequest, "network-name")
- if ((networkName == null) || (networkName == "null")) {
- networkName = ""
- }
- String networkOutputs =
- """<network-outputs>
+ String Prefix="UPDNETI_"
+ ExceptionUtil exceptionUtil = new ExceptionUtil()
+ JsonUtils jsonUtil = new JsonUtils()
+ VidUtils vidUtils = new VidUtils(this)
+ NetworkUtils networkUtils = new NetworkUtils()
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+
+ /**
+ * This method is executed during the preProcessRequest task of the <class>DoUpdateNetworkInstance.bpmn</class> process.
+ * @param execution
+ */
+ public InitializeProcessVariables(DelegateExecution execution){
+ /* Initialize all the process variables in this block */
+
+ execution.setVariable(Prefix + "messageId", "")
+ execution.setVariable("BasicAuthHeaderValuePO", "")
+ execution.setVariable("BasicAuthHeaderValueSDNC", "")
+ execution.setVariable(Prefix + "networkRequest", "")
+ execution.setVariable(Prefix + "networkInputs", "")
+ execution.setVariable(Prefix + "networkOutputs", "")
+ execution.setVariable(Prefix + "requestId", "")
+ execution.setVariable(Prefix + "source", "")
+ execution.setVariable(Prefix + "networkId", "")
+
+ execution.setVariable(Prefix + "isPONR", false) // Point-of-no-return, means, rollback is not needed
+
+ // AAI query Cloud Region
+ execution.setVariable(Prefix + "queryCloudRegionRequest","")
+ execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
+ execution.setVariable(Prefix + "queryCloudRegionResponse","")
+ execution.setVariable(Prefix + "cloudRegionPo","")
+ execution.setVariable(Prefix + "cloudRegionSdnc","")
+ execution.setVariable(Prefix + "isCloudRegionGood", false)
+
+ // AAI query Id
+ execution.setVariable(Prefix + "queryIdAAIRequest","")
+ execution.setVariable(Prefix + "queryIdAAIResponse", "")
+ execution.setVariable(Prefix + "aaiIdReturnCode", "")
+
+ // AAI query vpn binding
+ execution.setVariable(Prefix + "queryVpnBindingAAIRequest","")
+ execution.setVariable(Prefix + "queryVpnBindingAAIResponse", "")
+ execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")
+ execution.setVariable(Prefix + "vpnBindings", null)
+ execution.setVariable(Prefix + "vpnCount", 0)
+ execution.setVariable(Prefix + "routeCollection", "")
+
+ // AAI query network policy
+ execution.setVariable(Prefix + "queryNetworkPolicyAAIRequest","")
+ execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")
+ execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")
+ execution.setVariable(Prefix + "networkPolicyUriList", null)
+ execution.setVariable(Prefix + "networkPolicyCount", 0)
+ execution.setVariable(Prefix + "networkCollection", "")
+
+ // AAI query route table reference
+ execution.setVariable(Prefix + "queryNetworkTableRefAAIRequest","")
+ execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")
+ execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")
+ execution.setVariable(Prefix + "networkTableRefUriList", null)
+ execution.setVariable(Prefix + "networkTableRefCount", 0)
+ execution.setVariable(Prefix + "tableRefCollection", "")
+
+ // AAI requery Id
+ execution.setVariable(Prefix + "requeryIdAAIRequest","")
+ execution.setVariable(Prefix + "requeryIdAAIResponse", "")
+ execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "")
+
+ // AAI update contrail
+ execution.setVariable(Prefix + "updateContrailAAIUrlRequest","")
+ execution.setVariable(Prefix + "updateContrailAAIPayloadRequest","")
+ execution.setVariable(Prefix + "updateContrailAAIResponse", "")
+ execution.setVariable(Prefix + "aaiUpdateContrailReturnCode", "")
+
+ execution.setVariable(Prefix + "updateNetworkRequest", "")
+ execution.setVariable(Prefix + "updateNetworkResponse", "")
+ execution.setVariable(Prefix + "rollbackNetworkRequest", "")
+ execution.setVariable(Prefix + "networkReturnCode", "")
+ execution.setVariable(Prefix + "isNetworkRollbackNeeded", false)
+
+ execution.setVariable(Prefix + "changeAssignSDNCRequest", "")
+ execution.setVariable(Prefix + "changeAssignSDNCResponse", "")
+ execution.setVariable(Prefix + "rollbackSDNCRequest", "")
+ execution.setVariable(Prefix + "sdncReturnCode", "")
+ execution.setVariable(Prefix + "isSdncRollbackNeeded", false)
+ execution.setVariable(Prefix + "sdncResponseSuccess", false)
+
+ execution.setVariable(Prefix + "isVnfBindingPresent", false)
+ execution.setVariable(Prefix + "Success", false)
+ execution.setVariable(Prefix + "serviceInstanceId", "")
+
+ execution.setVariable(Prefix + "isException", false)
+
+ }
+
+ // **************************************************
+ // Pre or Prepare Request Section
+ // **************************************************
+ /**
+ * This method is executed during the preProcessRequest task of the <class>DoUpdateNetworkInstance.bpmn</class> process.
+ * @param execution
+ */
+ public void preProcessRequest (DelegateExecution execution) {
+
+ execution.setVariable("prefix",Prefix)
+
+ logger.trace("Inside preProcessRequest DoUpdateNetworkInstance Request ")
+
+ try {
+ // initialize flow variables
+ InitializeProcessVariables(execution)
+
+ // GET Incoming request & validate 3 kinds of format.
+ execution.setVariable("action", "UPDATE")
+ String networkRequest = execution.getVariable("bpmnRequest")
+ if (networkRequest != null) {
+ if (networkRequest.contains("requestDetails")) {
+ // JSON format request is sent, create xml
+ try {
+ def prettyJson = JsonOutput.prettyPrint(networkRequest.toString())
+ logger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
+ networkRequest = vidUtils.createXmlNetworkRequestInfra(execution, networkRequest)
+
+ } catch (Exception ex) {
+ String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+ } else {
+ // XML format request is sent
+
+ }
+ } else {
+ // vIPR format request is sent, create xml from individual variables
+ networkRequest = vidUtils.createXmlNetworkRequestInstance(execution)
+ }
+
+ networkRequest = utils.formatXml(networkRequest)
+ logger.debug(networkRequest)
+ execution.setVariable(Prefix + "networkRequest", networkRequest)
+ logger.debug(" network-request - " + '\n' + networkRequest)
+
+ // validate 'disableRollback' (aka, 'suppressRollback')
+ boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, networkRequest)
+ execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
+ logger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
+
+ String networkInputs = utils.getNodeXml(networkRequest, "network-inputs", false).replace("tag0:","").replace(":tag0","")
+ execution.setVariable(Prefix + "networkInputs", networkInputs)
+ logger.debug(Prefix + "networkInputs - " + '\n' + networkInputs)
+
+ // prepare messageId
+ String messageId = execution.getVariable(Prefix + "messageId") // for testing
+ if (messageId == null || messageId == "") {
+ messageId = UUID.randomUUID()
+ logger.debug(" UPDNETI_messageId, random generated: " + messageId)
+ } else {
+ logger.debug(" UPDNETI_messageId, pre-assigned: " + messageId)
+ }
+ execution.setVariable(Prefix + "messageId", messageId)
+
+ String source = utils.getNodeText(networkRequest, "source")
+ execution.setVariable(Prefix + "source", source)
+ logger.debug(Prefix + "source - " + source)
+
+ String networkId = ""
+ if (utils.nodeExists(networkRequest, "network-id")) {
+ networkId = utils.getNodeText(networkRequest, "network-id")
+ if (networkId == 'null' || networkId == "") {
+ sendSyncError(execution)
+ // missing value of networkId
+ String dataErrorMessage = "Variable 'network-id' value/element is missing."
+ logger.debug(" Invalid Request - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+
+ }
+ }
+
+ String lcpCloudRegion = ""
+ if (utils.nodeExists(networkRequest, "aic-cloud-region")) {
+ lcpCloudRegion = utils.getNodeText(networkRequest, "aic-cloud-region")
+ if ((lcpCloudRegion == 'null') || (lcpCloudRegion == "")) {
+ sendSyncError(execution)
+ String dataErrorMessage = "requestDetails has missing 'aic-cloud-region' value/element."
+ logger.debug(" Invalid Request - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+ }
+
+ String serviceInstanceId = ""
+ if (utils.nodeExists(networkRequest, "service-instance-id")) {
+ serviceInstanceId = utils.getNodeText(networkRequest, "service-instance-id")
+ if ((serviceInstanceId == 'null') || (lcpCloudRegion == "")) {
+ sendSyncError(execution)
+ String dataErrorMessage = "Variable 'serviceInstanceId' value/element is missing."
+ logger.debug(" Invalid Request - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+ }
+
+ // PO Authorization Info / headers Authorization=
+ String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
+
+
+ try {
+ def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
+ execution.setVariable("BasicAuthHeaderValuePO",encodedString)
+ execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
+
+ } catch (IOException ex) {
+ String exceptionMessage = "Exception Encountered in DoUpdateNetworkInstance, PreProcessRequest() - "
+ String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ }
+
+ // Set variables for Generic Get Sub Flow use
+ execution.setVariable(Prefix + "serviceInstanceId", serviceInstanceId)
+ logger.debug(Prefix + "serviceInstanceId - " + serviceInstanceId)
+
+ logger.debug(" Url for SDNC adapter: " + UrnPropertiesReader.getVariable("mso.adapters.sdnc.endpoint",execution))
+
+ String sdncVersion = execution.getVariable("sdncVersion")
+ logger.debug("sdncVersion? : " + sdncVersion)
+
+ // build 'networkOutputs'
+ networkId = utils.getNodeText(networkRequest, "network-id")
+ if ((networkId == null) || (networkId == "null")) {
+ networkId = ""
+ }
+ String networkName = utils.getNodeText(networkRequest, "network-name")
+ if ((networkName == null) || (networkName == "null")) {
+ networkName = ""
+ }
+ String networkOutputs =
+ """<network-outputs>
<network-id>${MsoUtils.xmlEscape(networkId)}</network-id>
<network-name>${MsoUtils.xmlEscape(networkName)}</network-name>
</network-outputs>"""
- execution.setVariable(Prefix + "networkOutputs", networkOutputs)
- logger.debug(Prefix + "networkOutputs - " + '\n' + networkOutputs)
- execution.setVariable(Prefix + "networkId", networkId)
- execution.setVariable(Prefix + "networkName", networkName)
+ execution.setVariable(Prefix + "networkOutputs", networkOutputs)
+ logger.debug(Prefix + "networkOutputs - " + '\n' + networkOutputs)
+ execution.setVariable(Prefix + "networkId", networkId)
+ execution.setVariable(Prefix + "networkName", networkName)
- } catch (BpmnError e) {
- throw e;
+ } catch (BpmnError e) {
+ throw e;
- } catch (Exception ex){
- sendSyncError(execution)
- // caught exception
- String exceptionMessage = "Exception Encountered in DoUpdateNetworkInstance, PreProcessRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex){
+ sendSyncError(execution)
+ // caught exception
+ String exceptionMessage = "Exception Encountered in DoUpdateNetworkInstance, PreProcessRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
- }
-
- /**
- * Gets the service instance uri from aai
- *
- */
- public void getServiceInstance(DelegateExecution execution) {
- logger.trace("getServiceInstance ")
- try {
- String serviceInstanceId = execution.getVariable('serviceInstanceId')
-
- AAIResourcesClient resourceClient = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
-
- if(!resourceClient.exists(uri)){
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, "Service Instance not found in aai")
- }else{
- Map<String, String> keys = uri.getURIKeys()
- execution.setVariable("serviceType", keys.get("service-type"))
- execution.setVariable("subscriberName", keys.get("global-customer-id"))
- }
-
- }catch(BpmnError e) {
- throw e;
- }catch (Exception ex){
- String msg = "Exception in getServiceInstance. " + ex.getMessage()
- logger.debug(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
- }
- }
+ }
+ }
+
+ /**
+ * Gets the service instance uri from aai
+ *
+ */
+ public void getServiceInstance(DelegateExecution execution) {
+ logger.trace("getServiceInstance ")
+ try {
+ String serviceInstanceId = execution.getVariable('serviceInstanceId')
+
+ AAIResourcesClient resourceClient = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
+
+ if(!resourceClient.exists(uri)){
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, "Service Instance not found in aai")
+ }else{
+ Map<String, String> keys = uri.getURIKeys()
+ execution.setVariable("serviceType", keys.get("service-type"))
+ execution.setVariable("subscriberName", keys.get("global-customer-id"))
+ }
+
+ }catch(BpmnError e) {
+ throw e;
+ }catch (Exception ex){
+ String msg = "Exception in getServiceInstance. " + ex.getMessage()
+ logger.debug(msg)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+ }
+ }
- public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
+ public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
- execution.setVariable("prefix", Prefix)
+ execution.setVariable("prefix", Prefix)
- logger.debug(" ***** Inside callRESTQueryAAICloudRegion of DoUpdateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAICloudRegion of DoUpdateNetworkInstance ***** " )
- try {
- String networkInputs = execution.getVariable(Prefix + "networkInputs")
- String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
+ try {
+ String networkInputs = execution.getVariable(Prefix + "networkInputs")
+ String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
- // Prepare AA&I url
- String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- AaiUtil aaiUtil = new AaiUtil(this)
+ // Prepare AA&I url
+ String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
+ AaiUtil aaiUtil = new AaiUtil(this)
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, Defaults.CLOUD_OWNER.toString(), cloudRegion)
- def queryCloudRegionRequest = aaiUtil.createAaiUri(uri)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, Defaults.CLOUD_OWNER.toString(), cloudRegion)
+ def queryCloudRegionRequest = aaiUtil.createAaiUri(uri)
- execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
+ execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
- String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
- String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
+ String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
+ String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
- if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
- execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
- execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
- execution.setVariable(Prefix + "isCloudRegionGood", true)
+ if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
+ execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
+ execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
+ execution.setVariable(Prefix + "isCloudRegionGood", true)
- } else {
- String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } else {
+ String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
+ }
- logger.debug(" is Cloud Region Good: " + execution.getVariable(Prefix + "isCloudRegionGood"))
+ logger.debug(" is Cloud Region Good: " + execution.getVariable(Prefix + "isCloudRegionGood"))
- } catch (BpmnError e) {
- throw e;
+ } catch (BpmnError e) {
+ throw e;
- } catch (Exception ex) {
- // try error
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow - callRESTQueryAAICloudRegion() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ // try error
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow - callRESTQueryAAICloudRegion() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTQueryAAINetworkId(DelegateExecution execution) {
+ public void callRESTQueryAAINetworkId(DelegateExecution execution) {
- execution.setVariable("prefix", Prefix)
+ execution.setVariable("prefix", Prefix)
- logger.debug(" ***** Inside callRESTQueryAAINetworkId of DoUpdateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTQueryAAINetworkId of DoUpdateNetworkInstance ***** " )
- try {
- // get variables
- String networkRequest = execution.getVariable(Prefix + "networkRequest")
- String networkId = utils.getNodeText(networkRequest, "network-id")
- execution.setVariable(Prefix + "networkId", networkId)
+ try {
+ // get variables
+ String networkRequest = execution.getVariable(Prefix + "networkRequest")
+ String networkId = utils.getNodeText(networkRequest, "network-id")
+ execution.setVariable(Prefix + "networkId", networkId)
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
- AAIResultWrapper network = client.get(uri, NotFoundException.class)
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
+ AAIResultWrapper network = client.get(uri, NotFoundException.class)
- execution.setVariable(Prefix + "aaiIdReturnCode", "200")
+ execution.setVariable(Prefix + "aaiIdReturnCode", "200")
- execution.setVariable(Prefix + "queryIdAAIResponse", network)
+ execution.setVariable(Prefix + "queryIdAAIResponse", network)
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from QueryAAINetworkId is 404 (Not Found)."
- logger.debug(" AAI Query Failed. " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkId() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from QueryAAINetworkId is 404 (Not Found)."
+ logger.debug(" AAI Query Failed. " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkId() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
- public void callRESTReQueryAAINetworkId(DelegateExecution execution) {
+ public void callRESTReQueryAAINetworkId(DelegateExecution execution) {
- execution.setVariable("prefix", Prefix)
+ execution.setVariable("prefix", Prefix)
- logger.debug(" ***** Inside callRESTReQueryAAINetworkId of DoUpdateNetworkInstance ***** " )
+ logger.debug(" ***** Inside callRESTReQueryAAINetworkId of DoUpdateNetworkInstance ***** " )
- try {
- // get variables
- String networkRequest = execution.getVariable(Prefix + "networkRequest")
- String networkId = utils.getNodeText(networkRequest, "network-id")
+ try {
+ // get variables
+ String networkRequest = execution.getVariable(Prefix + "networkRequest")
+ String networkId = utils.getNodeText(networkRequest, "network-id")
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
- AAIResultWrapper network = client.get(uri, NotFoundException.class)
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
+ AAIResultWrapper network = client.get(uri, NotFoundException.class)
- execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "200")
- execution.setVariable(Prefix + "requeryIdAAIResponse", network)
+ execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "200")
+ execution.setVariable(Prefix + "requeryIdAAIResponse", network)
- L3Network net = network.asBean(L3Network.class).get()
- String netId = net.getNetworkId()
- String netName = net.getNetworkName()
- String networkOutputs =
- """<network-outputs>
+ L3Network net = network.asBean(L3Network.class).get()
+ String netId = net.getNetworkId()
+ String netName = net.getNetworkName()
+ String networkOutputs =
+ """<network-outputs>
<network-id>${MsoUtils.xmlEscape(netId)}</network-id>
<network-name>${MsoUtils.xmlEscape(netName)}</network-name>
</network-outputs>"""
- execution.setVariable(Prefix + "networkOutputs", networkOutputs)
- logger.debug(" networkOutputs - " + '\n' + networkOutputs)
-
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from ReQueryAAINetworkId is 404 (Not Found)."
- logger.debug(" AAI ReQuery Failed. - " + dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTReQueryAAINetworkId() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void callRESTQueryAAINetworkVpnBinding(DelegateExecution execution) {
-
- execution.setVariable("prefix", Prefix)
-
- logger.debug(" ***** Inside callRESTQueryAAINetworkVpnBinding of DoUpdateNetworkInstance ***** " )
-
- try {
-
- // get variables
- AAIResultWrapper queryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
- if(queryIdAAIResponse.getRelationships().isPresent()){
- List<AAIResourceUri> uris = queryIdAAIResponse.getRelationships().get().getRelatedAAIUris(AAIObjectType.VPN_BINDING)
-
- logger.debug(Prefix + "vpnCount - " + uris.size())
-
- if (uris.size() > 0) {
- String routeTargets = ""
- for(AAIResourceUri u : uris) {
-
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResultWrapper wrapper = client.get(u.depth(Depth.TWO), NotFoundException.class)
- Optional<VpnBinding> binding = wrapper.asBean(VpnBinding.class)
-
- String routeTarget = ""
- String routeRole = ""
- if(binding.get().getRouteTargets() != null) {
- List<RouteTarget> targets = binding.get().getRouteTargets().getRouteTarget()
- for(RouteTarget target : targets) {
- routeTarget = target.getGlobalRouteTarget()
- routeRole = target.getRouteTargetRole()
- routeTargets += "<routeTargets>" + '\n' +
- " <routeTarget>" + routeTarget + "</routeTarget>" + '\n' +
- " <routeTargetRole>" + routeRole + "</routeTargetRole>" + '\n' +
- "</routeTargets>" + '\n'
- }
- }
-
- } // end loop
-
- execution.setVariable(Prefix + "routeCollection", routeTargets)
- logger.debug(" UPDNETI_routeCollection - " + '\n' + routeTargets)
-
- } else {
- // reset return code to success
- execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String schemaVersion = aaiUriUtil.getNamespace()
- String aaiStubResponse =
- """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
- <vpn-binding xmlns="${schemaVersion}">
- <global-route-target/>
- </vpn-binding>
- </rest:payload>"""
- String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
- execution.setVariable(Prefix + "queryVpnBindingAAIResponse", aaiStubResponseAsXml)
- execution.setVariable(Prefix + "routeCollection", "<routeTargets/>")
- logger.debug(" No vpnBinding, using this stub as response - " + '\n' + aaiStubResponseAsXml)
-
- }
- }
+ execution.setVariable(Prefix + "networkOutputs", networkOutputs)
+ logger.debug(" networkOutputs - " + '\n' + networkOutputs)
+
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from ReQueryAAINetworkId is 404 (Not Found)."
+ logger.debug(" AAI ReQuery Failed. - " + dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTReQueryAAINetworkId() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- } catch (NotFoundException e) {
- logger.debug("Response Error from AAINetworkVpnBinding is 404 (Not Found).")
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Response Error from AAINetworkVpnBinding is 404 (Not Found).")
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkVpnBinding() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
+ }
- public void callRESTQueryAAINetworkPolicy(DelegateExecution execution) {
+ }
- execution.setVariable("prefix", Prefix)
+ public void callRESTQueryAAINetworkVpnBinding(DelegateExecution execution) {
- logger.debug(" ***** Inside callRESTQueryAAINetworkPolicy of DoUpdateNetworkInstance ***** " )
+ execution.setVariable("prefix", Prefix)
- try {
- // get variables
- AAIResultWrapper queryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
- if(queryIdAAIResponse.getRelationships().isPresent()){
- List<AAIResourceUri> uris = queryIdAAIResponse.getRelationships().get().getRelatedAAIUris(AAIObjectType.NETWORK_POLICY)
+ logger.debug(" ***** Inside callRESTQueryAAINetworkVpnBinding of DoUpdateNetworkInstance ***** " )
- execution.setVariable(Prefix + "networkPolicyCount", uris.size())
- logger.debug(Prefix + "networkPolicyCount - " + uris.size())
+ try {
- if (uris.size() > 0) {
+ // get variables
+ AAIResultWrapper queryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
+ if(queryIdAAIResponse.getRelationships().isPresent()){
+ List<AAIResourceUri> uris = queryIdAAIResponse.getRelationships().get().getRelatedAAIUris(AAIObjectType.VPN_BINDING)
- String networkPolicies = ""
- // AII loop call using list vpnBindings
- for(AAIResourceUri u : uris) {
+ logger.debug(Prefix + "vpnCount - " + uris.size())
- AAIResourcesClient client = new AAIResourcesClient()
- NetworkPolicy p = client.get(u, NotFoundException.class).asBean(NetworkPolicy.class).get()
+ if (uris.size() > 0) {
+ String routeTargets = ""
+ for(AAIResourceUri u : uris) {
- execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResultWrapper wrapper = client.get(u.depth(Depth.TWO), NotFoundException.class)
+ Optional<VpnBinding> binding = wrapper.asBean(VpnBinding.class)
- String networkPolicy = p.getNetworkPolicyFqdn()
- networkPolicies += "<policyFqdns>" + networkPolicy + "</policyFqdns>" + '\n'
+ String routeTarget = ""
+ String routeRole = ""
+ if(binding.get().getRouteTargets() != null) {
+ List<RouteTarget> targets = binding.get().getRouteTargets().getRouteTarget()
+ for(RouteTarget target : targets) {
+ routeTarget = target.getGlobalRouteTarget()
+ routeRole = target.getRouteTargetRole()
+ routeTargets += "<routeTargets>" + '\n' +
+ " <routeTarget>" + routeTarget + "</routeTarget>" + '\n' +
+ " <routeTargetRole>" + routeRole + "</routeTargetRole>" + '\n' +
+ "</routeTargets>" + '\n'
+ }
+ }
- } // end loop
+ } // end loop
- execution.setVariable(Prefix + "networkCollection", networkPolicies)
- logger.debug(" UPDNETI_networkCollection - " + '\n' + networkPolicies)
+ execution.setVariable(Prefix + "routeCollection", routeTargets)
+ logger.debug(" UPDNETI_routeCollection - " + '\n' + routeTargets)
- } else {
- // reset return code to success
- execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String schemaVersion = aaiUriUtil.getNamespace()
- String aaiStubResponse =
- """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
- <network-policy xmlns="${schemaVersion}">
- <network-policy-fqdn/>
- </network-policy>
+ } else {
+ // reset return code to success
+ execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ String schemaVersion = aaiUriUtil.getNamespace()
+ String aaiStubResponse =
+ """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+ <vpn-binding xmlns="${schemaVersion}">
+ <global-route-target/>
+ </vpn-binding>
</rest:payload>"""
- String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
- execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", aaiStubResponseAsXml)
- execution.setVariable(Prefix + "networkCollection", "<policyFqdns/>")
- logger.debug(" No net policies, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+ String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+ execution.setVariable(Prefix + "queryVpnBindingAAIResponse", aaiStubResponseAsXml)
+ execution.setVariable(Prefix + "routeCollection", "<routeTargets/>")
+ logger.debug(" No vpnBinding, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+
+ }
+ }
+
+ } catch (NotFoundException e) {
+ logger.debug("Response Error from AAINetworkVpnBinding is 404 (Not Found).")
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Response Error from AAINetworkVpnBinding is 404 (Not Found).")
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkVpnBinding() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
- }
+ }
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from QueryAAINetworkPolicy is 404 (Not Found)."
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkPolicy() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ }
- }
+ public void callRESTQueryAAINetworkPolicy(DelegateExecution execution) {
- }
+ execution.setVariable("prefix", Prefix)
- public void callRESTQueryAAINetworkTableRef(DelegateExecution execution) {
+ logger.debug(" ***** Inside callRESTQueryAAINetworkPolicy of DoUpdateNetworkInstance ***** " )
- execution.setVariable("prefix", Prefix)
+ try {
+ // get variables
+ AAIResultWrapper queryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
+ if(queryIdAAIResponse.getRelationships().isPresent()){
+ List<AAIResourceUri> uris = queryIdAAIResponse.getRelationships().get().getRelatedAAIUris(AAIObjectType.NETWORK_POLICY)
- logger.debug(" ***** Inside callRESTQueryAAINetworkTableRef of DoUpdateNetworkInstance ***** " )
+ execution.setVariable(Prefix + "networkPolicyCount", uris.size())
+ logger.debug(Prefix + "networkPolicyCount - " + uris.size())
- try {
- AAIResultWrapper queryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
- if(queryIdAAIResponse.getRelationships().isPresent()){
- List<AAIResourceUri> uris = queryIdAAIResponse.getRelationships().get().getRelatedAAIUris(AAIObjectType.ROUTE_TABLE_REFERENCE)
+ if (uris.size() > 0) {
- execution.setVariable(Prefix + "networkTableRefCount", uris.size())
- logger.debug(Prefix + "networkTableRefCount - " + uris.size())
+ String networkPolicies = ""
+ // AII loop call using list vpnBindings
+ for(AAIResourceUri u : uris) {
- logger.debug(" UPDNETI_networkTableRefCount - " + uris.size())
- if (uris.size() > 0) {
+ AAIResourcesClient client = new AAIResourcesClient()
+ NetworkPolicy p = client.get(u, NotFoundException.class).asBean(NetworkPolicy.class).get()
- execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
+ execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
- // AII loop call using list vpnBindings
- String networkTableRefs = ""
- for(AAIResourceUri u : uris) {
+ String networkPolicy = p.getNetworkPolicyFqdn()
+ networkPolicies += "<policyFqdns>" + networkPolicy + "</policyFqdns>" + '\n'
- AAIResourcesClient client = new AAIResourcesClient()
- RouteTableReference rt = client.get(u, NotFoundException.class).asBean(RouteTableReference.class).get()
+ } // end loop
- String networkTableRef = rt.getRouteTableReferenceFqdn()
- networkTableRefs += "<routeTableFqdns>" + networkTableRef + "</routeTableFqdns>" + '\n'
+ execution.setVariable(Prefix + "networkCollection", networkPolicies)
+ logger.debug(" UPDNETI_networkCollection - " + '\n' + networkPolicies)
- } // end loop
+ } else {
+ // reset return code to success
+ execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ String schemaVersion = aaiUriUtil.getNamespace()
+ String aaiStubResponse =
+ """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+ <network-policy xmlns="${schemaVersion}">
+ <network-policy-fqdn/>
+ </network-policy>
+ </rest:payload>"""
+ String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+ execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", aaiStubResponseAsXml)
+ execution.setVariable(Prefix + "networkCollection", "<policyFqdns/>")
+ logger.debug(" No net policies, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+
+ }
+ }
+
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from QueryAAINetworkPolicy is 404 (Not Found)."
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkPolicy() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- execution.setVariable(Prefix + "tableRefCollection", networkTableRefs)
- logger.debug(" UPDNETI_tableRefCollection - " + '\n' + networkTableRefs)
+ }
- } else {
- // reset return code to success
- execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String schemaVersion = aaiUriUtil.getNamespace()
- String aaiStubResponse =
- """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
- <route-table-references xmlns="${schemaVersion}">
- <route-table-reference-fqdn/>
- </route-table-references>
- </rest:payload>"""
- String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
- execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", aaiStubResponseAsXml)
- execution.setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
- logger.debug(" No net table references, using this stub as response - " + '\n' + aaiStubResponseAsXml)
-
- }
- }
-
- } catch (NotFoundException e) {
- String dataErrorMessage = "Response Error from QueryAAINetworkTableRef is 404 (Not Found)."
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkTableRef() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void callRESTUpdateContrailAAINetwork(DelegateExecution execution) {
- execution.setVariable("prefix", Prefix)
- logger.debug(" ***** Inside callRESTUpdateContrailAAINetwork of DoUpdateNetworkInstance ***** " )
- try {
- // get variables
- String networkRequest = execution.getVariable(Prefix + "networkRequest")
- String networkId = utils.getNodeText(networkRequest, "network-id")
- AAIResultWrapper requeryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
- String updateNetworkResponse = execution.getVariable(Prefix + "updateNetworkResponse")
-
- L3Network oldL3Network = requeryIdAAIResponse.asBean(L3Network.class).get()
- L3Network l3Network = new L3Network()
- if (oldL3Network.getHeatStackId() != null) {
- } else {
- if (utils.nodeExists(updateNetworkResponse, 'networkStackId')) {
- l3Network.setHeatStackId(utils.getNodeText(updateNetworkResponse, 'networkStackId'))
- }
- }
- if (oldL3Network.getNeutronNetworkId() != null) {
- } else {
- if (utils.nodeExists(updateNetworkResponse, 'neutronNetworkId')) {
- l3Network.setNeutronNetworkId(utils.getNodeText(updateNetworkResponse, 'neutronNetworkId'))
- }
- }
- if (oldL3Network.getContrailNetworkFqdn() != null) {
- } else {
- if (utils.nodeExists(updateNetworkResponse, 'networkFqdn')) {
- l3Network.setContrailNetworkFqdn(utils.getNodeText(updateNetworkResponse, 'networkFqdn'))
- }
- }
-
- String status = utils.getNodeText(updateNetworkResponse, 'orchestration-status')
- if(status.equals("pending-create") || status.equals("PendingCreate")){
- l3Network.setOrchestrationStatus("Created")
- }else{
- l3Network.setOrchestrationStatus("Active")
- }
-
- AAIResourcesClient client = new AAIResourcesClient()
- AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
- client.update(uri, l3Network)
-
- List<Subnet> subnets = oldL3Network.getSubnets().getSubnet()
- for(Subnet s:subnets){
- String subnetOrchStatus = s.getOrchestrationStatus()
- String subnetId = s.getSubnetId()
-
- Subnet subnet = new Subnet()
- String neutronSubnetId = networkUtils.extractNeutSubId(updateNetworkResponse, subnetId)
- subnet.setNeutronSubnetId(neutronSubnetId)
- if(subnetOrchStatus.equals("pending-create") || subnetOrchStatus.equals("PendingCreate") ){
- subnet.setOrchestrationStatus("Created")
- }else{
- subnet.setOrchestrationStatus("Active")
- }
-
- AAIResourceUri subUri = AAIUriFactory.createResourceUri(AAIObjectType.SUBNET, networkId, subnetId)
- client.update(subUri, subnet)
- }
-
- execution.setVariable(Prefix + "isPONR", true)
-
- } catch (BpmnError e) {
- throw e;
- } catch (NotFoundException e) {
- String dataErrorMessage = " Response Error from UpdateContrailAAINetwork is 404 (Not Found)."
- logger.debug(dataErrorMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTUpdateContrailAAINetwork() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void prepareUpdateNetworkRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix", Prefix)
-
- logger.trace("Inside prepareUpdateNetworkRequest of DoUpdateNetworkInstance ")
-
- try {
-
- // get variables
- String requestId = execution.getVariable(Prefix + "requestId")
- String messageId = execution.getVariable(Prefix + "messageId")
- String source = execution.getVariable(Prefix + "source")
-
- String requestInput = execution.getVariable(Prefix + "networkRequest")
- L3Network queryIdResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionPo")
- String backoutOnFailure = execution.getVariable(Prefix + "rollbackEnabled")
+ }
- // Prepare Network request
- String routeCollection = execution.getVariable(Prefix + "routeCollection")
- String policyCollection = execution.getVariable(Prefix + "networkCollection")
- String tableCollection = execution.getVariable(Prefix + "tableRefCollection")
- String updateNetworkRequest = networkUtils.UpdateNetworkRequestV2(execution, requestId, messageId, requestInput, queryIdResponse, routeCollection, policyCollection, tableCollection, cloudRegionId, backoutOnFailure, source )
- // Format Response
- String buildUpdateNetworkRequestAsString = utils.formatXml(updateNetworkRequest)
- buildUpdateNetworkRequestAsString = buildUpdateNetworkRequestAsString.replace(":w1aac13n0", "").replace("w1aac13n0:", "")
- logger.debug(buildUpdateNetworkRequestAsString)
+ public void callRESTQueryAAINetworkTableRef(DelegateExecution execution) {
- execution.setVariable(Prefix + "updateNetworkRequest", buildUpdateNetworkRequestAsString)
- logger.debug(" UPDNETI_updateNetworkRequest - " + "\n" + buildUpdateNetworkRequestAsString)
+ execution.setVariable("prefix", Prefix)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareUpdateNetworkRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ logger.debug(" ***** Inside callRESTQueryAAINetworkTableRef of DoUpdateNetworkInstance ***** " )
- }
+ try {
+ AAIResultWrapper queryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
+ if(queryIdAAIResponse.getRelationships().isPresent()){
+ List<AAIResourceUri> uris = queryIdAAIResponse.getRelationships().get().getRelatedAAIUris(AAIObjectType.ROUTE_TABLE_REFERENCE)
- }
+ execution.setVariable(Prefix + "networkTableRefCount", uris.size())
+ logger.debug(Prefix + "networkTableRefCount - " + uris.size())
- public void prepareSDNCRequest (DelegateExecution execution) {
+ logger.debug(" UPDNETI_networkTableRefCount - " + uris.size())
+ if (uris.size() > 0) {
- execution.setVariable("prefix", Prefix)
+ execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
- logger.trace("Inside prepareSDNCRequest of DoUpdateNetworkInstance ")
+ // AII loop call using list vpnBindings
+ String networkTableRefs = ""
+ for(AAIResourceUri u : uris) {
- try {
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String updateNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ AAIResourcesClient client = new AAIResourcesClient()
+ RouteTableReference rt = client.get(u, NotFoundException.class).asBean(RouteTableReference.class).get()
- String networkId = ""
- if (utils.nodeExists(updateNetworkInput, "network-id")) {
- networkId = utils.getNodeText(updateNetworkInput, "network-id")
- }
- if (networkId == null) {networkId = ""}
+ String networkTableRef = rt.getRouteTableReferenceFqdn()
+ networkTableRefs += "<routeTableFqdns>" + networkTableRef + "</routeTableFqdns>" + '\n'
- String serviceInstanceId = utils.getNodeText(updateNetworkInput, "service-instance-id")
+ } // end loop
- AAIResultWrapper wrapper = execution.getVariable(Prefix + "queryIdAAIResponse")
- L3Network queryAAIResponse = wrapper.asBean(L3Network.class).get()
+ execution.setVariable(Prefix + "tableRefCollection", networkTableRefs)
+ logger.debug(" UPDNETI_tableRefCollection - " + '\n' + networkTableRefs)
- // 1. prepare assign topology via SDNC Adapter SUBFLOW call
- String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, updateNetworkInput, serviceInstanceId, sdncCallback, "changeassign", "NetworkActivateRequest", cloudRegionId, networkId, queryAAIResponse, null)
+ } else {
+ // reset return code to success
+ execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ String schemaVersion = aaiUriUtil.getNamespace()
+ String aaiStubResponse =
+ """ <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+ <route-table-references xmlns="${schemaVersion}">
+ <route-table-reference-fqdn/>
+ </route-table-references>
+ </rest:payload>"""
+ String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+ execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", aaiStubResponseAsXml)
+ execution.setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
+ logger.debug(" No net table references, using this stub as response - " + '\n' + aaiStubResponseAsXml)
- String sndcTopologyUpdateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
- logger.debug(sndcTopologyUpdateRequesAsString)
- execution.setVariable(Prefix + "changeAssignSDNCRequest", sndcTopologyUpdateRequesAsString)
- logger.debug(" UPDNETI_changeAssignSDNCRequest - " + "\n" + sndcTopologyUpdateRequesAsString)
+ }
+ }
+ } catch (NotFoundException e) {
+ String dataErrorMessage = "Response Error from QueryAAINetworkTableRef is 404 (Not Found)."
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareSDNCRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTQueryAAINetworkTableRef() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ }
+
+ public void callRESTUpdateContrailAAINetwork(DelegateExecution execution) {
+ execution.setVariable("prefix", Prefix)
+ logger.debug(" ***** Inside callRESTUpdateContrailAAINetwork of DoUpdateNetworkInstance ***** " )
+ try {
+ // get variables
+ String networkRequest = execution.getVariable(Prefix + "networkRequest")
+ String networkId = utils.getNodeText(networkRequest, "network-id")
+ AAIResultWrapper requeryIdAAIResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
+ String updateNetworkResponse = execution.getVariable(Prefix + "updateNetworkResponse")
+
+ L3Network oldL3Network = requeryIdAAIResponse.asBean(L3Network.class).get()
+ L3Network l3Network = new L3Network()
+ if (oldL3Network.getHeatStackId() != null) {
+ } else {
+ if (utils.nodeExists(updateNetworkResponse, 'networkStackId')) {
+ l3Network.setHeatStackId(utils.getNodeText(updateNetworkResponse, 'networkStackId'))
+ }
+ }
+ if (oldL3Network.getNeutronNetworkId() != null) {
+ } else {
+ if (utils.nodeExists(updateNetworkResponse, 'neutronNetworkId')) {
+ l3Network.setNeutronNetworkId(utils.getNodeText(updateNetworkResponse, 'neutronNetworkId'))
+ }
+ }
+ if (oldL3Network.getContrailNetworkFqdn() != null) {
+ } else {
+ if (utils.nodeExists(updateNetworkResponse, 'networkFqdn')) {
+ l3Network.setContrailNetworkFqdn(utils.getNodeText(updateNetworkResponse, 'networkFqdn'))
+ }
+ }
+
+ String status = utils.getNodeText(updateNetworkResponse, 'orchestration-status')
+ if(status.equals("pending-create") || status.equals("PendingCreate")){
+ l3Network.setOrchestrationStatus("Created")
+ }else{
+ l3Network.setOrchestrationStatus("Active")
+ }
+
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
+ client.update(uri, l3Network)
+
+ List<Subnet> subnets = oldL3Network.getSubnets().getSubnet()
+ for(Subnet s:subnets){
+ String subnetOrchStatus = s.getOrchestrationStatus()
+ String subnetId = s.getSubnetId()
+
+ Subnet subnet = new Subnet()
+ String neutronSubnetId = networkUtils.extractNeutSubId(updateNetworkResponse, subnetId)
+ subnet.setNeutronSubnetId(neutronSubnetId)
+ if(subnetOrchStatus.equals("pending-create") || subnetOrchStatus.equals("PendingCreate") ){
+ subnet.setOrchestrationStatus("Created")
+ }else{
+ subnet.setOrchestrationStatus("Active")
+ }
+
+ AAIResourceUri subUri = AAIUriFactory.createResourceUri(AAIObjectType.SUBNET, networkId, subnetId)
+ client.update(subUri, subnet)
+ }
+
+ execution.setVariable(Prefix + "isPONR", true)
+
+ } catch (BpmnError e) {
+ throw e;
+ } catch (NotFoundException e) {
+ String dataErrorMessage = " Response Error from UpdateContrailAAINetwork is 404 (Not Found)."
+ logger.debug(dataErrorMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. callRESTUpdateContrailAAINetwork() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ }
+ }
+ public void prepareUpdateNetworkRequest (DelegateExecution execution) {
- // **************************************************
- // Post or Validate Response Section
- // **************************************************
+ execution.setVariable("prefix", Prefix)
- public void validateUpdateNetworkResponse (DelegateExecution execution) {
+ logger.trace("Inside prepareUpdateNetworkRequest of DoUpdateNetworkInstance ")
- execution.setVariable("prefix", Prefix)
+ try {
- logger.trace("Inside validateUpdateNetworkResponse of DoUpdateNetworkInstance ")
+ // get variables
+ String requestId = execution.getVariable(Prefix + "requestId")
+ String messageId = execution.getVariable(Prefix + "messageId")
+ String source = execution.getVariable(Prefix + "source")
- try {
- String returnCode = execution.getVariable(Prefix + "networkReturnCode")
- String networkResponse = execution.getVariable(Prefix + "updateNetworkResponse")
- if (networkResponse==null) {
- networkResponse="" // reset
- }
+ String requestInput = execution.getVariable(Prefix + "networkRequest")
+ L3Network queryIdResponse = execution.getVariable(Prefix + "requeryIdAAIResponse")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionPo")
+ String backoutOnFailure = execution.getVariable(Prefix + "rollbackEnabled")
+
+ // Prepare Network request
+ String routeCollection = execution.getVariable(Prefix + "routeCollection")
+ String policyCollection = execution.getVariable(Prefix + "networkCollection")
+ String tableCollection = execution.getVariable(Prefix + "tableRefCollection")
+ String updateNetworkRequest = networkUtils.UpdateNetworkRequestV2(execution, requestId, messageId, requestInput, queryIdResponse, routeCollection, policyCollection, tableCollection, cloudRegionId, backoutOnFailure, source )
+ // Format Response
+ String buildUpdateNetworkRequestAsString = utils.formatXml(updateNetworkRequest)
+ buildUpdateNetworkRequestAsString = buildUpdateNetworkRequestAsString.replace(":w1aac13n0", "").replace("w1aac13n0:", "")
+ logger.debug(buildUpdateNetworkRequestAsString)
+
+ execution.setVariable(Prefix + "updateNetworkRequest", buildUpdateNetworkRequestAsString)
+ logger.debug(" UPDNETI_updateNetworkRequest - " + "\n" + buildUpdateNetworkRequestAsString)
+
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareUpdateNetworkRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+
+ }
- logger.debug(" Network Adapter update responseCode: " + returnCode)
+ }
- String errorMessage = ""
- if (returnCode == "200") {
- execution.setVariable(Prefix + "isNetworkRollbackNeeded", true)
- logger.debug(networkResponse)
- execution.setVariable(Prefix + "updateNetworkResponse", networkResponse)
- logger.debug(" Network Adapter update Success Response - " + "\n" + networkResponse)
+ public void prepareSDNCRequest (DelegateExecution execution) {
- // prepare rollback data
- String rollbackData = utils.getNodeXml(networkResponse, "rollback", false).replace("tag0:","").replace(":tag0","")
- rollbackData = rollbackData.replace("rollback>", "networkRollback>")
- String rollbackNetwork =
- """<rollbackNetworkRequest>
- ${rollbackData}
- </rollbackNetworkRequest>"""
- String rollbackNetworkXml = utils.formatXml(rollbackNetwork)
- execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkXml)
- logger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
+ execution.setVariable("prefix", Prefix)
- } else { // network error
- if (returnCode.toInteger() > 399 && returnCode.toInteger() < 600) { //4xx, 5xx
- if (networkResponse.contains("updateNetworkError")) {
- networkResponse = networkResponse.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '')
- errorMessage = utils.getNodeText(networkResponse, "message")
- errorMessage = "Received error from Network Adapter: " + errorMessage
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
+ logger.trace("Inside prepareSDNCRequest of DoUpdateNetworkInstance ")
- } else { // CatchAll exception
- if (returnCode == "500") {
- errorMessage = "JBWEB000065: HTTP Status 500."
- } else {
- errorMessage = "Return code is " + returnCode
- }
- errorMessage = "Received error from Network Adapter: " + errorMessage
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
+ try {
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String updateNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- }
+ String networkId = ""
+ if (utils.nodeExists(updateNetworkInput, "network-id")) {
+ networkId = utils.getNodeText(updateNetworkInput, "network-id")
+ }
+ if (networkId == null) {networkId = ""}
- } else { // CatchAll exception
- String dataErrorMessage = "Received error from Network Adapter. Return code is: " + returnCode
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+ String serviceInstanceId = utils.getNodeText(updateNetworkInput, "service-instance-id")
- }
+ AAIResultWrapper wrapper = execution.getVariable(Prefix + "queryIdAAIResponse")
+ L3Network queryAAIResponse = wrapper.asBean(L3Network.class).get()
- }
+ // 1. prepare assign topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, updateNetworkInput, serviceInstanceId, sdncCallback, "changeassign", "NetworkActivateRequest", cloudRegionId, networkId, queryAAIResponse, null)
- } catch (BpmnError e) {
- throw e;
+ String sndcTopologyUpdateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
+ logger.debug(sndcTopologyUpdateRequesAsString)
+ execution.setVariable(Prefix + "changeAssignSDNCRequest", sndcTopologyUpdateRequesAsString)
+ logger.debug(" UPDNETI_changeAssignSDNCRequest - " + "\n" + sndcTopologyUpdateRequesAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. validateUpdateNetworkResponse() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
- }
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareSDNCRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ }
- }
+ }
- public void validateSDNCResponse (DelegateExecution execution) {
+ public void validateSDNCResponse (DelegateExecution execution) {
- execution.setVariable("prefix", Prefix)
+ execution.setVariable("prefix", Prefix)
- logger.trace("Inside validateSDNCResponse of DoUpdateNetworkInstance ")
+ logger.trace("Inside validateSDNCResponse of DoUpdateNetworkInstance ")
- String response = execution.getVariable(Prefix + "changeAssignSDNCResponse")
- WorkflowException workflowException = null
- try {
- workflowException = execution.getVariable(Prefix + "WorkflowException")
- //execution.setVariable("WorkflowException", workflowException)
- } catch (Exception ex) {
- logger.debug(" Sdnc 'WorkflowException' object is empty or null. ")
- }
+ String response = execution.getVariable(Prefix + "changeAssignSDNCResponse")
+ WorkflowException workflowException = null
+ try {
+ workflowException = execution.getVariable(Prefix + "WorkflowException")
+ //execution.setVariable("WorkflowException", workflowException)
+ } catch (Exception ex) {
+ logger.debug(" Sdnc 'WorkflowException' object is empty or null. ")
+ }
- boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
+ boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
- // reset variable
- String changeAssignSDNCResponseDecodeXml = execution.getVariable(Prefix + "changeAssignSDNCResponse")
- changeAssignSDNCResponseDecodeXml = changeAssignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- execution.setVariable(Prefix + "changeAssignSDNCResponse", changeAssignSDNCResponseDecodeXml)
-
- if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, prefix+'sdncResponseSuccess'
- execution.setVariable(Prefix + "isSdncRollbackNeeded", true)
- logger.debug("Successfully Validated SDNC Response")
-
- } else {
- logger.debug("Did NOT Successfully Validated SDNC Response")
- throw new BpmnError("MSOWorkflowException")
- }
-
- }
-
-
- public void postProcessResponse (DelegateExecution execution) {
-
- execution.setVariable("prefix", Prefix)
-
- logger.trace("Inside postProcessResponse of DoUpdateNetworkInstance ")
-
- try {
- logger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
- if (execution.getVariable(Prefix + "isException") == false) {
- // set rollback data
- execution.setVariable("orchestrationStatus", "")
- execution.setVariable("networkId", execution.getVariable(Prefix + "networkId"))
- execution.setVariable("networkName", execution.getVariable(Prefix + "networkName"))
- prepareSuccessRollbackData(execution) // populate rollbackData
- execution.setVariable("WorkflowException", null)
- execution.setVariable(Prefix + "Success", true)
- logger.debug(" ***** postProcessResponse(), GOOD !!!")
- } else {
- execution.setVariable(Prefix + "Success", false)
- execution.setVariable("rollbackData", null)
- String exceptionMessage = " Exception encountered in MSO Bpmn. "
- if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
- logger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
- WorkflowException wfex = execution.getVariable("workflowException")
- exceptionMessage = wfex.getErrorMessage()
- } else {
- if (execution.getVariable(Prefix + "WorkflowException") != null) {
- WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
- exceptionMessage = pwfex.getErrorMessage()
- }
- }
- // going to the Main flow: a-la-carte or macro
- logger.debug(" ***** postProcessResponse(), BAD !!!")
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
- }
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
+ sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
+ // reset variable
+ String changeAssignSDNCResponseDecodeXml = execution.getVariable(Prefix + "changeAssignSDNCResponse")
+ changeAssignSDNCResponseDecodeXml = changeAssignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
+ execution.setVariable(Prefix + "changeAssignSDNCResponse", changeAssignSDNCResponseDecodeXml)
- } catch(BpmnError b){
- logger.debug("Rethrowing MSOWorkflowException")
- throw b
+ if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, prefix+'sdncResponseSuccess'
+ execution.setVariable(Prefix + "isSdncRollbackNeeded", true)
+ logger.debug("Successfully Validated SDNC Response")
+ } else {
+ logger.debug("Did NOT Successfully Validated SDNC Response")
+ throw new BpmnError("MSOWorkflowException")
+ }
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. postProcessResponse() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+ }
+
+
+ public void postProcessResponse (DelegateExecution execution) {
+
+ execution.setVariable("prefix", Prefix)
+
+ logger.trace("Inside postProcessResponse of DoUpdateNetworkInstance ")
+
+ try {
+ logger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
+ if (execution.getVariable(Prefix + "isException") == false) {
+ // set rollback data
+ execution.setVariable("orchestrationStatus", "")
+ execution.setVariable("networkId", execution.getVariable(Prefix + "networkId"))
+ execution.setVariable("networkName", execution.getVariable(Prefix + "networkName"))
+ prepareSuccessRollbackData(execution) // populate rollbackData
+ execution.setVariable("WorkflowException", null)
+ execution.setVariable(Prefix + "Success", true)
+ logger.debug(" ***** postProcessResponse(), GOOD !!!")
+ } else {
+ execution.setVariable(Prefix + "Success", false)
+ execution.setVariable("rollbackData", null)
+ String exceptionMessage = " Exception encountered in MSO Bpmn. "
+ if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
+ logger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
+ WorkflowException wfex = execution.getVariable("workflowException")
+ exceptionMessage = wfex.getErrorMessage()
+ } else {
+ if (execution.getVariable(Prefix + "WorkflowException") != null) {
+ WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
+ exceptionMessage = pwfex.getErrorMessage()
+ }
+ }
+ // going to the Main flow: a-la-carte or macro
+ logger.debug(" ***** postProcessResponse(), BAD !!!")
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ throw new BpmnError("MSOWorkflowException")
+ }
+
+ } catch(BpmnError b){
+ logger.debug("Rethrowing MSOWorkflowException")
+ throw b
+
+
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. postProcessResponse() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
}
- }
+ }
- public void prepareSDNCRollbackRequest (DelegateExecution execution) {
+ public void prepareSDNCRollbackRequest (DelegateExecution execution) {
- execution.setVariable("prefix", Prefix)
+ execution.setVariable("prefix", Prefix)
- logger.trace("Inside prepareSDNCRollbackRequest of DoUpdateNetworkInstance ")
+ logger.trace("Inside prepareSDNCRollbackRequest of DoUpdateNetworkInstance ")
- try {
- // for some reason the WorkflowException object is null after the sdnc rollback call task, need to save WorkflowException.
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
- // get variables
- String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
- String updateNetworkInput = execution.getVariable(Prefix + "networkRequest")
- String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
- String changeAssignSDNCResponse = execution.getVariable(Prefix + "changeAssignSDNCResponse")
- String networkId = utils.getNodeText(changeAssignSDNCResponse, "network-id")
+ try {
+ // for some reason the WorkflowException object is null after the sdnc rollback call task, need to save WorkflowException.
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
+ // get variables
+ String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
+ String updateNetworkInput = execution.getVariable(Prefix + "networkRequest")
+ String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
+ String changeAssignSDNCResponse = execution.getVariable(Prefix + "changeAssignSDNCResponse")
+ String networkId = utils.getNodeText(changeAssignSDNCResponse, "network-id")
- String serviceInstanceId = utils.getNodeText(updateNetworkInput, "service-instance-id")
+ String serviceInstanceId = utils.getNodeText(updateNetworkInput, "service-instance-id")
- // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
- String sndcTopologyRollbackRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, updateNetworkInput, serviceInstanceId, sdncCallback, "rollback", "NetworkActivateRequest", cloudRegionId, networkId, null, null)
- String sndcTopologyRollbackRequestAsString = utils.formatXml(sndcTopologyRollbackRequest)
- execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRequestAsString)
- logger.debug(" Preparing request for SDNC Topology assign's rollback/compensation . . . - " + "\n" + sndcTopologyRollbackRequestAsString)
+ // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
+ String sndcTopologyRollbackRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, updateNetworkInput, serviceInstanceId, sdncCallback, "rollback", "NetworkActivateRequest", cloudRegionId, networkId, null, null)
+ String sndcTopologyRollbackRequestAsString = utils.formatXml(sndcTopologyRollbackRequest)
+ execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRequestAsString)
+ logger.debug(" Preparing request for SDNC Topology assign's rollback/compensation . . . - " + "\n" + sndcTopologyRollbackRequestAsString)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareSDNCRollbackRequest() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareSDNCRollbackRequest() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
+
+ }
- }
+ public void prepareRollbackData(DelegateExecution execution) {
- public void prepareRollbackData(DelegateExecution execution) {
+ execution.setVariable("prefix",Prefix)
- execution.setVariable("prefix",Prefix)
+ logger.trace("Inside prepareRollbackData() of DoUpdateNetworkInstance ")
- logger.trace("Inside prepareRollbackData() of DoUpdateNetworkInstance ")
+ try {
- try {
+ Map<String, String> rollbackData = new HashMap<String, String>();
+ String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
+ if (rollbackSDNCRequest != null) {
+ if (rollbackSDNCRequest != "") {
+ rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
+ }
+ }
+ String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
+ if (rollbackNetworkRequest != null) {
+ if (rollbackNetworkRequest != "") {
+ rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
+ }
+ }
+ execution.setVariable("rollbackData", rollbackData)
+ logger.debug("** rollbackData : " + rollbackData)
- Map<String, String> rollbackData = new HashMap<String, String>();
- String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
- if (rollbackSDNCRequest != null) {
- if (rollbackSDNCRequest != "") {
- rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
- }
- }
- String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
- if (rollbackNetworkRequest != null) {
- if (rollbackNetworkRequest != "") {
- rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
- }
- }
- execution.setVariable("rollbackData", rollbackData)
- logger.debug("** rollbackData : " + rollbackData)
+ execution.setVariable("WorkflowException", execution.getVariable(Prefix + "WorkflowException"))
+ logger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
- execution.setVariable("WorkflowException", execution.getVariable(Prefix + "WorkflowException"))
- logger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
- }
+ }
- }
+ public void prepareSuccessRollbackData(DelegateExecution execution) {
- public void prepareSuccessRollbackData(DelegateExecution execution) {
+ execution.setVariable("prefix",Prefix)
- execution.setVariable("prefix",Prefix)
+ logger.trace("Inside prepareSuccessRollbackData() of DoUpdateNetworkInstance ")
- logger.trace("Inside prepareSuccessRollbackData() of DoUpdateNetworkInstance ")
+ try {
- try {
+ if (execution.getVariable("sdncVersion") != '1610') {
+ // skip: 1702 for 'changeassign' or equivalent not yet defined in SNDC, so no rollback.
+ } else {
+ prepareSDNCRollbackRequest(execution)
+ }
- if (execution.getVariable("sdncVersion") != '1610') {
- // skip: 1702 for 'changeassign' or equivalent not yet defined in SNDC, so no rollback.
- } else {
- prepareSDNCRollbackRequest(execution)
- }
+ Map<String, String> rollbackData = new HashMap<String, String>();
+ String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
+ if (rollbackSDNCRequest != null) {
+ if (rollbackSDNCRequest != "") {
+ rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)
+ }
+ }
+ String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
+ if (rollbackNetworkRequest != null) {
+ if (rollbackNetworkRequest != "") {
+ rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)
+ }
+ }
+ execution.setVariable("rollbackData", rollbackData)
- Map<String, String> rollbackData = new HashMap<String, String>();
- String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
- if (rollbackSDNCRequest != null) {
- if (rollbackSDNCRequest != "") {
- rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)
- }
- }
- String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
- if (rollbackNetworkRequest != null) {
- if (rollbackNetworkRequest != "") {
- rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)
- }
- }
- execution.setVariable("rollbackData", rollbackData)
+ logger.debug("** 'rollbackData' for Full Rollback : " + rollbackData)
+ execution.setVariable("WorkflowException", null)
- logger.debug("** 'rollbackData' for Full Rollback : " + rollbackData)
- execution.setVariable("WorkflowException", null)
+ } catch (Exception ex) {
+ String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- } catch (Exception ex) {
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
- }
+ }
- }
+ public void setExceptionFlag(DelegateExecution execution){
- public void setExceptionFlag(DelegateExecution execution){
+ execution.setVariable("prefix",Prefix)
- execution.setVariable("prefix",Prefix)
+ logger.trace("Inside setExceptionFlag() of DoUpdateNetworkInstance ")
- logger.trace("Inside setExceptionFlag() of DoUpdateNetworkInstance ")
+ try {
- try {
+ execution.setVariable(Prefix + "isException", true)
- execution.setVariable(Prefix + "isException", true)
+ if (execution.getVariable("SavedWorkflowException1") != null) {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
+ } else {
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
+ }
+ logger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
- if (execution.getVariable("SavedWorkflowException1") != null) {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
- } else {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
- }
- logger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
+ } catch(Exception ex){
+ String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
+ logger.debug(exceptionMessage)
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
+ }
- } catch(Exception ex){
- String exceptionMessage = "Bpmn error encountered in DoUpdateNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- }
+ }
- }
+ // *******************************
+ // Build Error Section
+ // *******************************
- // *******************************
- // Build Error Section
- // *******************************
+ public void processJavaException(DelegateExecution execution){
- public void processJavaException(DelegateExecution execution){
-
- execution.setVariable("prefix",Prefix)
- try{
- logger.debug("Caught a Java Exception")
- logger.debug("Started processJavaException Method")
- logger.debug("Variables List: " + execution.getVariables())
- execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
+ execution.setVariable("prefix",Prefix)
+ try{
+ logger.debug("Caught a Java Exception")
+ logger.debug("Started processJavaException Method")
+ logger.debug("Variables List: " + execution.getVariables())
+ execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
- }catch(Exception e){
- logger.debug("Caught Exception during processJavaException Method: " + e)
- execution.setVariable("UnexpectedError", "Exception in processJavaException method") // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method")
- }
- logger.debug("Completed processJavaException Method")
- }
+ }catch(Exception e){
+ logger.debug("Caught Exception during processJavaException Method: " + e)
+ execution.setVariable("UnexpectedError", "Exception in processJavaException method") // Adding this line temporarily until this flows error handling gets updated
+ exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method")
+ }
+ logger.debug("Completed processJavaException Method")
+ }
}
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceRollback.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceRollback.groovy
deleted file mode 100644
index 371e54ca75..0000000000
--- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceRollback.groovy
+++ /dev/null
@@ -1,312 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.infrastructure.scripts;
-
-import groovy.xml.XmlUtil
-import groovy.json.*
-
-import org.onap.so.bpmn.common.scripts.AaiUtil
-import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
-import org.onap.so.bpmn.common.scripts.ExceptionUtil
-import org.onap.so.bpmn.common.scripts.NetworkUtils
-import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
-import org.onap.so.bpmn.common.scripts.VidUtils
-import org.onap.so.bpmn.core.WorkflowException
-import org.onap.so.bpmn.core.UrnPropertiesReader
-import org.onap.so.bpmn.core.json.JsonUtils
-
-
-import java.util.UUID;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.apache.commons.lang3.*
-import org.apache.commons.codec.binary.Base64;
-import org.springframework.web.util.UriUtils
-
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-/**
- * This groovy class supports the <class>DoCreateNetworkInstance.bpmn</class> process.
- *
- */
-public class DoUpdateNetworkInstanceRollback extends AbstractServiceTaskProcessor {
- private static final Logger logger = LoggerFactory.getLogger( DoUpdateNetworkInstanceRollback.class);
-
- String Prefix="UPDNETIR_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- JsonUtils jsonUtil = new JsonUtils()
- VidUtils vidUtils = new VidUtils(this)
- NetworkUtils networkUtils = new NetworkUtils()
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
-
- def className = getClass().getSimpleName()
-
- /**
- * This method is executed during the preProcessRequest task of the <class>DoUpdateNetworkInstanceRollback.bpmn</class> process.
- * @param execution
- */
- public InitializeProcessVariables(DelegateExecution execution){
- /* Initialize all the process variables in this block */
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", null)
- execution.setVariable(Prefix + "rollbackSDNCRequest", null)
- execution.setVariable(Prefix + "WorkflowException", null)
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", "")
- execution.setVariable(Prefix + "rollbackNetworkResponse", "")
- execution.setVariable(Prefix + "rollbackNetworkReturnCode", "")
-
- execution.setVariable(Prefix + "rollbackSDNCRequest", "")
- execution.setVariable(Prefix + "rollbackSDNCResponse", "")
- execution.setVariable(Prefix + "rollbackSDNCReturnCode", "")
-
- execution.setVariable(Prefix + "Success", false)
- execution.setVariable(Prefix + "fullRollback", false)
-
- }
-
- // **************************************************
- // Pre or Prepare Request Section
- // **************************************************
- /**
- * This method is executed during the preProcessRequest task of the <class>DoUpdateNetworkInstanceRollback.bpmn</class> process.
- * @param execution
- */
- public void preProcessRequest (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside preProcessRequest() of " + className + ".groovy ")
-
- try {
- // initialize flow variables
- InitializeProcessVariables(execution)
-
- // GET Incoming request/variables
- String rollbackNetworkRequest = null
- String rollbackSDNCRequest = null
-
- // Partial Rollback
- Map<String, String> rollbackData = execution.getVariable("rollbackData")
- if (rollbackData != null && rollbackData instanceof Map) {
-
- if(rollbackData.containsKey("rollbackNetworkRequest")) {
- rollbackNetworkRequest = rollbackData["rollbackNetworkRequest"]
- }
-
- if(rollbackData.containsKey("rollbackSDNCRequest")) {
- rollbackSDNCRequest = rollbackData["rollbackSDNCRequest"]
- }
- }
-
- execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkRequest)
- execution.setVariable(Prefix + "rollbackSDNCRequest", rollbackSDNCRequest)
- logger.debug("'rollbackData': " + '\n' + execution.getVariable("rollbackData"))
-
- String sdncVersion = execution.getVariable("sdncVersion")
- logger.debug("sdncVersion? : " + sdncVersion)
-
- // PO Authorization Info / headers Authorization=
- String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth",execution)
-
- try {
- def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
- execution.setVariable("BasicAuthHeaderValuePO",encodedString)
- execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
-
- } catch (IOException ex) {
- String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "
- String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
- logger.debug(dataErrorMessage )
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
- }
-
- if (execution.getVariable("SavedWorkflowException1") != null) {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
- } else {
- execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
- }
- logger.debug("*** WorkflowException : " + execution.getVariable(Prefix + "WorkflowException"))
- if(execution.getVariable(Prefix + "WorkflowException") != null) {
- // called by: DoCreateNetworkInstance, partial rollback
- execution.setVariable(Prefix + "fullRollback", false)
-
- } else {
- // called by: Macro - Full Rollback, WorkflowException = null
- execution.setVariable(Prefix + "fullRollback", true)
-
- }
- logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
-
-
- } catch (BpmnError e) {
- throw e;
-
- } catch (Exception ex) {
- sendSyncError(execution)
- // caught exception
- String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void validateRollbackResponses (DelegateExecution execution) {
-
- execution.setVariable("prefix",Prefix)
-
- logger.trace("Inside validateRollbackResponses() of DoUpdateNetworkInstanceRollback ")
-
- try {
- // validate PO network rollback response
- String rollbackNetworkErrorMessages = ""
- String rollbackNetworkReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackNetworkRequest") != null) {
- rollbackNetworkReturnCode = execution.getVariable(Prefix + "rollbackNetworkReturnCode")
- String rollbackNetworkResponse = execution.getVariable(Prefix + "rollbackNetworkResponse")
- logger.debug(" NetworkRollback Code - " + rollbackNetworkReturnCode)
- logger.debug(" NetworkRollback Response - " + rollbackNetworkResponse)
- if (rollbackNetworkReturnCode != "200") {
- rollbackNetworkErrorMessages = " + PO Network rollback failed. "
- } else {
- rollbackNetworkErrorMessages = " + PO Network rollback completed."
- }
- }
-
- // validate SDNC rollback response
- String rollbackSdncErrorMessages = ""
- String rollbackSDNCReturnCode = "200"
- if (execution.getVariable(Prefix + "rollbackSDNCRequest") != null) {
- rollbackSDNCReturnCode = execution.getVariable(Prefix + "rollbackSDNCReturnCode")
- String rollbackSDNCResponse = execution.getVariable(Prefix + "rollbackSDNCResponse")
- String rollbackSDNCReturnInnerCode = ""
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
- rollbackSDNCResponse = rollbackSDNCResponse.replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- if (rollbackSDNCReturnCode == "200") {
- if (utils.nodeExists(rollbackSDNCResponse, "response-code")) {
- rollbackSDNCReturnInnerCode = utils.getNodeText(rollbackSDNCResponse, "response-code")
- if (rollbackSDNCReturnInnerCode == "200" || rollbackSDNCReturnInnerCode == "" || rollbackSDNCReturnInnerCode == "0") {
- rollbackSdncErrorMessages = " + SNDC changeassign rollback completed."
- } else {
- rollbackSdncErrorMessages = " + SDNC changeassign rollback failed. "
- }
- } else {
- rollbackSdncErrorMessages = " + SNDC changeassign rollback completed."
- }
- } else {
- rollbackSdncErrorMessages = " + SDNC changeassign rollback failed. "
- }
- logger.debug(" SDNC changeassign rollback Code - " + rollbackSDNCReturnCode)
- logger.debug(" SDNC changeassign rollback Response - " + rollbackSDNCResponse)
- }
-
- String statusMessage = ""
- int errorCode = 7000
- logger.debug("*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"))
- if (execution.getVariable(Prefix + "fullRollback") == false) {
- // original WorkflowException,
- WorkflowException wfe = execution.getVariable(Prefix + "WorkflowException")
- if (wfe != null) {
- // rollback due to failure in DoCreate - Partial rollback
- statusMessage = wfe.getErrorMessage()
- errorCode = wfe.getErrorCode()
- } else {
- statusMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
- errorCode = '7000'
- }
-
- // set if all rolledbacks are successful
- if (rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200") {
- execution.setVariable("rolledBack", true)
-
- } else {
- execution.setVariable("rolledBack", false)
-
- }
-
- statusMessage = statusMessage + rollbackNetworkErrorMessages + rollbackSdncErrorMessages
- logger.debug("Final DoUpdateNetworkInstanceRollback status message: " + statusMessage)
- String processKey = getProcessKey(execution);
- WorkflowException exception = new WorkflowException(processKey, errorCode, statusMessage);
- execution.setVariable("workflowException", exception);
-
- } else {
- // rollback due to failures in Main flow (Macro) - Full rollback
- // WorkflowException = null
- if (rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200") {
- execution.setVariable("rollbackSuccessful", true)
- execution.setVariable("rollbackError", false)
- } else {
- String exceptionMessage = "Network Update Rollback was not Successful. "
- logger.debug(exceptionMessage)
- execution.setVariable("rollbackSuccessful", false)
- execution.setVariable("rollbackError", true)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- throw new BpmnError("MSOWorkflowException")
- }
-
- }
-
-
- } catch (Exception ex) {
- execution.setVariable("WorkflowException", null)
- String errorMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."
- String exceptionMessage = " Bpmn error encountered in DoUpdateNetworkInstanceRollback flow. validateRollbackResponses() - " + errorMessage + ": " + ex.getMessage()
- logger.debug(exceptionMessage)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
- execution.setVariable("WorkflowException", execution.getVariable("WorkflowException"))
-
- }
-
- }
-
- // *******************************
- // Build Error Section
- // *******************************
-
-
-
- public void processJavaException(DelegateExecution execution){
-
- execution.setVariable("prefix",Prefix)
-
- try{
- logger.debug("Caught a Java Exception in " + Prefix)
- logger.debug("Started processJavaException Method")
- logger.debug("Variables List: " + execution.getVariables())
- execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
-
- }catch(Exception e){
- logger.debug("Caught Exception during processJavaException Method: " + e)
- execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix) // Adding this line temporarily until this flows error handling gets updated
- exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)
- }
- logger.trace("Completed processJavaException Method in " + Prefix)
- }
-
-}