-/*-
- * ============LICENSE_START=======================================================
- * OPENECOMP - MSO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.openecomp.mso.bpmn.infrastructure.scripts;
-
-import groovy.xml.XmlUtil
-import groovy.json.*
-
-import org.openecomp.mso.bpmn.core.json.JsonUtils
-import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
-import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
-import org.openecomp.mso.bpmn.common.scripts.NetworkUtils
-import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils
-import org.openecomp.mso.bpmn.common.scripts.VidUtils
-import org.openecomp.mso.bpmn.core.WorkflowException
-import org.openecomp.mso.rest.APIResponse;
-import org.openecomp.mso.rest.RESTClient
-import org.openecomp.mso.rest.RESTConfig
-
-import java.util.UUID;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.runtime.Execution
-import org.apache.commons.lang3.*
-import org.apache.commons.codec.binary.Base64;
-import org.springframework.web.util.UriUtils
-
-/**
- * This groovy class supports the <class>DoCreateNetworkInstanceRollback.bpmn</class> process.
- *
- */
-public class DoDeleteNetworkInstanceRollback extends AbstractServiceTaskProcessor {
- 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(Execution 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 (Execution execution) {
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
-
- utils.log("DEBUG", " ***** Inside preProcessRequest() of " + className + ".groovy ***** ", isDebugEnabled)
-
- 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)
- utils.log("DEBUG", "'rollbackData': " + '\n' + execution.getVariable("rollbackData"), isDebugEnabled)
-
- String sdncVersion = execution.getVariable("sdncVersion")
- utils.log("DEBUG", "sdncVersion? : " + sdncVersion, isDebugEnabled)
-
- // PO Authorization Info / headers Authorization=
- String basicAuthValuePO = execution.getVariable("URN_mso_adapters_po_auth")
- utils.log("DEBUG", " Obtained BasicAuth userid password for PO/SDNC adapter: " + basicAuthValuePO, isDebugEnabled)
- try {
- def encodedString = utils.getBasicAuth(basicAuthValuePO, execution.getVariable("URN_mso_msoKey"))
- 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()
- utils.log("DEBUG", dataErrorMessage , isDebugEnabled)
- 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"))
- }
- utils.log("DEBUG", "*** WorkflowException : " + execution.getVariable(Prefix + "WorkflowException"), isDebugEnabled)
- 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)
-
- }
-
- utils.log("DEBUG", "*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"), isDebugEnabled)
-
- } catch (BpmnError e) {
- throw e;
-
- } catch (Exception ex) {
- sendSyncError(execution)
- // caught exception
- String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
- utils.log("DEBUG", exceptionMessage, isDebugEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- public void validateRollbackResponses (Execution execution) {
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
-
- utils.log("DEBUG", " ***** Inside validateRollbackResponses() of DoDeleteNetworkInstanceRollback ***** ", isDebugEnabled)
-
- 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 = sdncAdapterUtils.decodeXML(rollbackDeactivateSDNCResponse)
- rollbackDeactivateSDNCResponse = rollbackDeactivateSDNCResponse.replace("&", "&").replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- if (rollbackDeactivateSDNCReturnCode == "200") {
- if (utils.nodeExists(rollbackDeactivateSDNCResponse, "response-code")) {
- rollbackDeactivateSDNCReturnInnerCode = utils.getNodeText1(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. "
- }
- utils.log("DEBUG", " SDNC deactivate rollback Code - " + rollbackDeactivateSDNCReturnCode, isDebugEnabled)
- utils.log("DEBUG", " SDNC deactivate rollback Response - " + rollbackDeactivateSDNCResponse, isDebugEnabled)
- }
-
- // 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(this)
- rollbackSDNCResponse = sdncAdapterUtils.decodeXML(rollbackSDNCResponse)
- rollbackSDNCResponse = rollbackSDNCResponse.replace("&", "&").replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")
- if (rollbackSDNCReturnCode == "200") {
- if (utils.nodeExists(rollbackSDNCResponse, "response-code")) {
- rollbackSDNCReturnInnerCode = utils.getNodeText1(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. "
- }
- utils.log("DEBUG", " SDNC assign rollback Code - " + rollbackSDNCReturnCode, isDebugEnabled)
- utils.log("DEBUG", " SDNC assign rollback Response - " + rollbackSDNCResponse, isDebugEnabled)
- }
-
- // 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."
- }
-
- utils.log("DEBUG", " NetworkRollback Code - " + rollbackNetworkReturnCode, isDebugEnabled)
- utils.log("DEBUG", " NetworkRollback Response - " + rollbackNetworkResponse, isDebugEnabled)
- }
-
- String statusMessage = ""
- int errorCode = 7000
- utils.log("DEBUG", "*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"), isDebugEnabled)
- 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
- utils.log("DEBUG", "Final DoDeleteNetworkInstanceRollback status message: " + statusMessage, isDebugEnabled)
- 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. "
- utils.log("DEBUG", exceptionMessage, isDebugEnabled)
- 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()
- utils.log("DEBUG", exceptionMessage, isDebugEnabled)
- exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
-
- }
-
- }
-
- // *******************************
- // Build Error Section
- // *******************************
-
-
-
- public void processJavaException(Execution execution){
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
-
- try{
- utils.log("DEBUG", "Caught a Java Exception in " + Prefix, isDebugEnabled)
- utils.log("DEBUG", "Started processJavaException Method", isDebugEnabled)
- utils.log("DEBUG", "Variables List: " + execution.getVariables(), isDebugEnabled)
- 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){
- utils.log("DEBUG", "Caught Exception during processJavaException Method: " + e, isDebugEnabled)
- 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)
- }
- utils.log("DEBUG", "Completed processJavaException Method in " + Prefix, isDebugEnabled)
- }
-
-}
+/*-\r
+ * ============LICENSE_START=======================================================\r
+ * OPENECOMP - MSO\r
+ * ================================================================================\r
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ */\r
+package org.openecomp.mso.bpmn.infrastructure.scripts;\r
+\r
+import groovy.xml.XmlUtil\r
+import groovy.json.*\r
+\r
+import org.openecomp.mso.bpmn.core.json.JsonUtils\r
+import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor\r
+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil\r
+import org.openecomp.mso.bpmn.common.scripts.NetworkUtils\r
+import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils\r
+import org.openecomp.mso.bpmn.common.scripts.VidUtils\r
+import org.openecomp.mso.bpmn.core.WorkflowException\r
+import org.openecomp.mso.rest.APIResponse;\r
+import org.openecomp.mso.rest.RESTClient\r
+import org.openecomp.mso.rest.RESTConfig\r
+\r
+import java.util.UUID;\r
+\r
+import org.camunda.bpm.engine.delegate.BpmnError\r
+import org.camunda.bpm.engine.runtime.Execution\r
+import org.apache.commons.lang3.*\r
+import org.apache.commons.codec.binary.Base64;\r
+import org.springframework.web.util.UriUtils\r
+\r
+/**\r
+ * This groovy class supports the <class>DoCreateNetworkInstanceRollback.bpmn</class> process.\r
+ *\r
+ */\r
+public class DoDeleteNetworkInstanceRollback extends AbstractServiceTaskProcessor {\r
+ String Prefix="DELNWKIR_"\r
+ ExceptionUtil exceptionUtil = new ExceptionUtil()\r
+ JsonUtils jsonUtil = new JsonUtils()\r
+ VidUtils vidUtils = new VidUtils(this)\r
+ NetworkUtils networkUtils = new NetworkUtils()\r
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()\r
+\r
+ def className = getClass().getSimpleName()\r
+ \r
+ /**\r
+ * This method is executed during the preProcessRequest task of the <class>DoDeleteNetworkInstanceRollback.bpmn</class> process.\r
+ * @param execution\r
+ */\r
+ public InitializeProcessVariables(Execution execution){\r
+ /* Initialize all the process variables in this block */\r
+ \r
+ execution.setVariable(Prefix + "WorkflowException", null)\r
+ \r
+ execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", null)\r
+ execution.setVariable(Prefix + "rollbackDeactivateSDNCResponse", "")\r
+ execution.setVariable(Prefix + "rollbackDeactivateSDNCReturnCode", "")\r
+\r
+ execution.setVariable(Prefix + "rollbackSDNCRequest", "")\r
+ execution.setVariable(Prefix + "rollbackSDNCResponse", "")\r
+ execution.setVariable(Prefix + "rollbackSDNCReturnCode", "")\r
+ \r
+ execution.setVariable(Prefix + "rollbackNetworkRequest", null)\r
+ execution.setVariable(Prefix + "rollbackNetworkResponse", "")\r
+ execution.setVariable(Prefix + "rollbackNetworkReturnCode", "")\r
+ \r
+ execution.setVariable(Prefix + "Success", false)\r
+ execution.setVariable(Prefix + "fullRollback", false)\r
+\r
+ }\r
+\r
+ // **************************************************\r
+ // Pre or Prepare Request Section\r
+ // **************************************************\r
+ /**\r
+ * This method is executed during the preProcessRequest task of the <class>DoDeleteNetworkInstanceRollback.bpmn</class> process.\r
+ * @param execution\r
+ */\r
+ public void preProcessRequest (Execution execution) {\r
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")\r
+ execution.setVariable("prefix",Prefix)\r
+ \r
+ utils.log("DEBUG", " ***** Inside preProcessRequest() of " + className + ".groovy ***** ", isDebugEnabled)\r
+\r
+ try {\r
+ // initialize flow variables\r
+ InitializeProcessVariables(execution)\r
+ \r
+ // GET Incoming request/variables\r
+ String rollbackDeactivateSDNCRequest = null\r
+ String rollbackSDNCRequest = null\r
+ String rollbackNetworkRequest = null\r
+\r
+ Map<String, String> rollbackData = execution.getVariable("rollbackData")\r
+ if (rollbackData != null && rollbackData instanceof Map) {\r
+ \r
+ if(rollbackData.containsKey("rollbackDeactivateSDNCRequest")) {\r
+ rollbackDeactivateSDNCRequest = rollbackData["rollbackDeactivateSDNCRequest"]\r
+ }\r
+ \r
+ if(rollbackData.containsKey("rollbackSDNCRequest")) {\r
+ rollbackSDNCRequest = rollbackData["rollbackSDNCRequest"]\r
+ }\r
+ \r
+ if(rollbackData.containsKey("rollbackNetworkRequest")) {\r
+ rollbackNetworkRequest = rollbackData["rollbackNetworkRequest"]\r
+ }\r
+ }\r
+ \r
+ execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkRequest)\r
+ execution.setVariable(Prefix + "rollbackSDNCRequest", rollbackSDNCRequest)\r
+ execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", rollbackDeactivateSDNCRequest)\r
+ utils.log("DEBUG", "'rollbackData': " + '\n' + execution.getVariable("rollbackData"), isDebugEnabled)\r
+\r
+ String sdncVersion = execution.getVariable("sdncVersion")\r
+ utils.log("DEBUG", "sdncVersion? : " + sdncVersion, isDebugEnabled)\r
+ \r
+ // PO Authorization Info / headers Authorization=\r
+ String basicAuthValuePO = execution.getVariable("URN_mso_adapters_po_auth")\r
+ utils.log("DEBUG", " Obtained BasicAuth userid password for PO/SDNC adapter: " + basicAuthValuePO, isDebugEnabled)\r
+ try {\r
+ def encodedString = utils.getBasicAuth(basicAuthValuePO, execution.getVariable("URN_mso_msoKey"))\r
+ execution.setVariable("BasicAuthHeaderValuePO",encodedString)\r
+ execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)\r
+ \r
+ } catch (IOException ex) {\r
+ String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "\r
+ String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()\r
+ utils.log("DEBUG", dataErrorMessage , isDebugEnabled)\r
+ exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)\r
+ }\r
+\r
+ if (execution.getVariable("SavedWorkflowException1") != null) {\r
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))\r
+ } else {\r
+ execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))\r
+ }\r
+ utils.log("DEBUG", "*** WorkflowException : " + execution.getVariable(Prefix + "WorkflowException"), isDebugEnabled)\r
+ if(execution.getVariable(Prefix + "WorkflowException") != null) {\r
+ // called by: DoCreateNetworkInstance, partial rollback\r
+ execution.setVariable(Prefix + "fullRollback", false)\r
+\r
+ } else {\r
+ // called by: Macro - Full Rollback, WorkflowException = null\r
+ execution.setVariable(Prefix + "fullRollback", true)\r
+ \r
+ }\r
+ \r
+ utils.log("DEBUG", "*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"), isDebugEnabled)\r
+ \r
+ } catch (BpmnError e) {\r
+ throw e;\r
+ \r
+ } catch (Exception ex) {\r
+ sendSyncError(execution)\r
+ // caught exception\r
+ String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()\r
+ utils.log("DEBUG", exceptionMessage, isDebugEnabled)\r
+ exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)\r
+ \r
+ }\r
+\r
+ }\r
+ \r
+ public void validateRollbackResponses (Execution execution) {\r
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")\r
+ execution.setVariable("prefix",Prefix)\r
+\r
+ utils.log("DEBUG", " ***** Inside validateRollbackResponses() of DoDeleteNetworkInstanceRollback ***** ", isDebugEnabled)\r
+ \r
+ try {\r
+\r
+ // validate SDNC activate response\r
+ String rollbackDeactivateSDNCMessages = ""\r
+ String rollbackDeactivateSDNCReturnCode = "200"\r
+ if (execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest") != null) {\r
+ rollbackDeactivateSDNCReturnCode = execution.getVariable(Prefix + "rollbackDeactivateSDNCReturnCode")\r
+ String rollbackDeactivateSDNCResponse = execution.getVariable(Prefix + "rollbackDeactivateSDNCResponse")\r
+ String rollbackDeactivateSDNCReturnInnerCode = ""\r
+ rollbackDeactivateSDNCResponse = sdncAdapterUtils.decodeXML(rollbackDeactivateSDNCResponse)\r
+ rollbackDeactivateSDNCResponse = rollbackDeactivateSDNCResponse.replace("&", "&").replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")\r
+ if (rollbackDeactivateSDNCReturnCode == "200") {\r
+ if (utils.nodeExists(rollbackDeactivateSDNCResponse, "response-code")) {\r
+ rollbackDeactivateSDNCReturnInnerCode = utils.getNodeText1(rollbackDeactivateSDNCResponse, "response-code")\r
+ if (rollbackDeactivateSDNCReturnInnerCode == "200" || rollbackDeactivateSDNCReturnInnerCode == "" || rollbackDeactivateSDNCReturnInnerCode == "0") {\r
+ rollbackDeactivateSDNCMessages = " + SNDC deactivate rollback completed."\r
+ } else {\r
+ rollbackDeactivateSDNCMessages = " + SDNC deactivate rollback failed. "\r
+ }\r
+ } else {\r
+ rollbackDeactivateSDNCMessages = " + SNDC deactivate rollback completed."\r
+ }\r
+ } else {\r
+ rollbackDeactivateSDNCMessages = " + SDNC deactivate rollback failed. "\r
+ }\r
+ utils.log("DEBUG", " SDNC deactivate rollback Code - " + rollbackDeactivateSDNCReturnCode, isDebugEnabled)\r
+ utils.log("DEBUG", " SDNC deactivate rollback Response - " + rollbackDeactivateSDNCResponse, isDebugEnabled)\r
+ }\r
+ \r
+ // validate SDNC rollback response\r
+ String rollbackSdncErrorMessages = ""\r
+ String rollbackSDNCReturnCode = "200"\r
+ if (execution.getVariable(Prefix + "rollbackSDNCRequest") != null) {\r
+ rollbackSDNCReturnCode = execution.getVariable(Prefix + "rollbackSDNCReturnCode")\r
+ String rollbackSDNCResponse = execution.getVariable(Prefix + "rollbackSDNCResponse")\r
+ String rollbackSDNCReturnInnerCode = ""\r
+ SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)\r
+ rollbackSDNCResponse = sdncAdapterUtils.decodeXML(rollbackSDNCResponse)\r
+ rollbackSDNCResponse = rollbackSDNCResponse.replace("&", "&").replace('$', '').replace('<?xml version="1.0" encoding="UTF-8"?>', "")\r
+ if (rollbackSDNCReturnCode == "200") {\r
+ if (utils.nodeExists(rollbackSDNCResponse, "response-code")) {\r
+ rollbackSDNCReturnInnerCode = utils.getNodeText1(rollbackSDNCResponse, "response-code")\r
+ if (rollbackSDNCReturnInnerCode == "200" || rollbackSDNCReturnInnerCode == "" || rollbackSDNCReturnInnerCode == "0") {\r
+ rollbackSdncErrorMessages = " + SNDC unassign rollback completed."\r
+ } else {\r
+ rollbackSdncErrorMessages = " + SDNC unassign rollback failed. "\r
+ }\r
+ } else {\r
+ rollbackSdncErrorMessages = " + SNDC unassign rollback completed."\r
+ }\r
+ } else {\r
+ rollbackSdncErrorMessages = " + SDNC unassign rollback failed. "\r
+ }\r
+ utils.log("DEBUG", " SDNC assign rollback Code - " + rollbackSDNCReturnCode, isDebugEnabled)\r
+ utils.log("DEBUG", " SDNC assign rollback Response - " + rollbackSDNCResponse, isDebugEnabled)\r
+ }\r
+ \r
+ // validate PO network rollback response\r
+ String rollbackNetworkErrorMessages = ""\r
+ String rollbackNetworkReturnCode = "200"\r
+ if (execution.getVariable(Prefix + "rollbackNetworkRequest") != null) {\r
+ rollbackNetworkReturnCode = execution.getVariable(Prefix + "rollbackNetworkReturnCode")\r
+ String rollbackNetworkResponse = execution.getVariable(Prefix + "rollbackNetworkResponse")\r
+ if (rollbackNetworkReturnCode != "200") {\r
+ rollbackNetworkErrorMessages = " + PO Network rollback failed. "\r
+ } else {\r
+ rollbackNetworkErrorMessages = " + PO Network rollback completed."\r
+ }\r
+ \r
+ utils.log("DEBUG", " NetworkRollback Code - " + rollbackNetworkReturnCode, isDebugEnabled)\r
+ utils.log("DEBUG", " NetworkRollback Response - " + rollbackNetworkResponse, isDebugEnabled)\r
+ }\r
+ \r
+ String statusMessage = ""\r
+ int errorCode = 7000\r
+ utils.log("DEBUG", "*** fullRollback? : " + execution.getVariable(Prefix + "fullRollback"), isDebugEnabled)\r
+ if (execution.getVariable(Prefix + "fullRollback") == false) {\r
+ WorkflowException wfe = execution.getVariable(Prefix + "WorkflowException") // original WorkflowException\r
+ if (wfe != null) {\r
+ statusMessage = wfe.getErrorMessage()\r
+ errorCode = wfe.getErrorCode()\r
+ } else {\r
+ statusMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."\r
+ errorCode = '7000'\r
+ }\r
+\r
+ // set if all rolledbacks are successful\r
+ if (rollbackDeactivateSDNCReturnCode == "200" && rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200") {\r
+ execution.setVariable("rolledBack", true)\r
+ execution.setVariable("wasDeleted", true)\r
+ \r
+ } else {\r
+ execution.setVariable("rolledBack", false)\r
+ execution.setVariable("wasDeleted", true)\r
+ }\r
+\r
+ statusMessage = statusMessage + rollbackDeactivateSDNCMessages + rollbackNetworkErrorMessages + rollbackSdncErrorMessages\r
+ utils.log("DEBUG", "Final DoDeleteNetworkInstanceRollback status message: " + statusMessage, isDebugEnabled)\r
+ String processKey = getProcessKey(execution);\r
+ WorkflowException exception = new WorkflowException(processKey, errorCode, statusMessage);\r
+ execution.setVariable("workflowException", exception);\r
+ \r
+ } else {\r
+ // rollback due to failures in Main flow (Macro or a-ala-carte) - Full rollback\r
+ if (rollbackDeactivateSDNCReturnCode == "200" && rollbackNetworkReturnCode == "200" && rollbackSDNCReturnCode == "200") {\r
+ execution.setVariable("rollbackSuccessful", true)\r
+ execution.setVariable("rollbackError", false) \r
+ } else {\r
+ String exceptionMessage = "Network Delete Rollback was not Successful. "\r
+ utils.log("DEBUG", exceptionMessage, isDebugEnabled)\r
+ execution.setVariable("rollbackSuccessful", false)\r
+ execution.setVariable("rollbackError", true)\r
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)\r
+ throw new BpmnError("MSOWorkflowException")\r
+ } \r
+ } \r
+ \r
+ } catch (Exception ex) {\r
+ String errorMessage = "See Previous Camunda flows for cause of Error: Undetermined Exception."\r
+ String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstanceRollback flow. validateRollbackResponses() - " + errorMessage + ": " + ex.getMessage()\r
+ utils.log("DEBUG", exceptionMessage, isDebugEnabled)\r
+ exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)\r
+\r
+ }\r
+\r
+ }\r
+\r
+ // *******************************\r
+ // Build Error Section\r
+ // *******************************\r
+\r
+\r
+ \r
+ public void processJavaException(Execution execution){\r
+ def isDebugEnabled=execution.getVariable("isDebugLogEnabled")\r
+ execution.setVariable("prefix",Prefix)\r
+ \r
+ try{\r
+ utils.log("DEBUG", "Caught a Java Exception in " + Prefix, isDebugEnabled)\r
+ utils.log("DEBUG", "Started processJavaException Method", isDebugEnabled)\r
+ utils.log("DEBUG", "Variables List: " + execution.getVariables(), isDebugEnabled)\r
+ execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix) // Adding this line temporarily until this flows error handling gets updated\r
+ exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")\r
+ \r
+ }catch(Exception e){\r
+ utils.log("DEBUG", "Caught Exception during processJavaException Method: " + e, isDebugEnabled)\r
+ execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix) // Adding this line temporarily until this flows error handling gets updated\r
+ exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)\r
+ }\r
+ utils.log("DEBUG", "Completed processJavaException Method in " + Prefix, isDebugEnabled)\r
+ }\r
+\r
+}\r