2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.infrastructure.scripts;
23 import org.apache.commons.lang3.*
24 import org.camunda.bpm.engine.delegate.BpmnError
25 import org.camunda.bpm.engine.delegate.DelegateExecution
26 import org.onap.so.bpmn.common.scripts.AaiUtil
27 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
28 import org.onap.so.bpmn.common.scripts.ExceptionUtil
29 import org.onap.so.bpmn.common.scripts.MsoUtils
30 import org.onap.so.bpmn.common.scripts.NetworkUtils
31 import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
32 import org.onap.so.bpmn.common.scripts.VidUtils
33 import org.onap.so.bpmn.core.UrnPropertiesReader
34 import org.onap.so.bpmn.core.WorkflowException
35 import org.onap.so.bpmn.core.json.JsonUtils
36 import org.onap.so.logger.MessageEnum
37 import org.onap.so.logger.MsoLogger
38 import org.onap.so.rest.APIResponse;
39 import org.onap.so.rest.RESTClient
40 import org.onap.so.rest.RESTConfig
41 import org.springframework.web.util.UriUtils
45 public class DoDeleteNetworkInstance extends AbstractServiceTaskProcessor {
46 private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, DoDeleteNetworkInstance.class);
48 String Prefix= "DELNWKI_"
49 String groovyClassName = "DoDeleteNetworkInstance"
50 ExceptionUtil exceptionUtil = new ExceptionUtil()
51 JsonUtils jsonUtil = new JsonUtils()
52 VidUtils vidUtils = new VidUtils(this)
53 NetworkUtils networkUtils = new NetworkUtils()
54 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
56 public InitializeProcessVariables(DelegateExecution execution){
57 /* Initialize all the process variables in this block */
59 execution.setVariable(Prefix + "networkRequest", "")
60 execution.setVariable(Prefix + "isSilentSuccess", false)
61 execution.setVariable(Prefix + "Success", false)
63 execution.setVariable(Prefix + "requestId", "")
64 execution.setVariable(Prefix + "source", "")
65 execution.setVariable(Prefix + "lcpCloudRegion", "")
66 execution.setVariable(Prefix + "networkInputs", "")
67 execution.setVariable(Prefix + "tenantId", "")
69 execution.setVariable(Prefix + "queryAAIRequest","")
70 execution.setVariable(Prefix + "queryAAIResponse", "")
71 execution.setVariable(Prefix + "aaiReturnCode", "")
72 execution.setVariable(Prefix + "isAAIGood", false)
73 execution.setVariable(Prefix + "isVfRelationshipExist", false)
75 // AAI query Cloud Region
76 execution.setVariable(Prefix + "queryCloudRegionRequest","")
77 execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
78 execution.setVariable(Prefix + "queryCloudRegionResponse","")
79 execution.setVariable(Prefix + "cloudRegionPo","")
80 execution.setVariable(Prefix + "cloudRegionSdnc","")
82 execution.setVariable(Prefix + "deleteNetworkRequest", "")
83 execution.setVariable(Prefix + "deleteNetworkResponse", "")
84 execution.setVariable(Prefix + "networkReturnCode", "")
85 execution.setVariable(Prefix + "rollbackNetworkRequest", "")
87 execution.setVariable(Prefix + "deleteSDNCRequest", "")
88 execution.setVariable(Prefix + "deleteSDNCResponse", "")
89 execution.setVariable(Prefix + "sdncReturnCode", "")
90 execution.setVariable(Prefix + "sdncResponseSuccess", false)
92 execution.setVariable(Prefix + "deactivateSDNCRequest", "")
93 execution.setVariable(Prefix + "deactivateSDNCResponse", "")
94 execution.setVariable(Prefix + "deactivateSdncReturnCode", "")
95 execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", "")
97 execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", "")
98 execution.setVariable(Prefix + "isException", false)
103 // **************************************************
104 // Pre or Prepare Request Section
105 // **************************************************
107 public void preProcessRequest (DelegateExecution execution) {
109 execution.setVariable("prefix",Prefix)
111 msoLogger.trace("Inside preProcessRequest() of " + groovyClassName + " Request ")
113 // initialize flow variables
114 InitializeProcessVariables(execution)
117 // get incoming message/input
118 execution.setVariable("action", "DELETE")
119 String deleteNetwork = execution.getVariable("bpmnRequest")
120 if (deleteNetwork != null) {
121 if (deleteNetwork.contains("requestDetails")) {
122 // JSON format request is sent, create xml
124 def prettyJson = JsonOutput.prettyPrint(deleteNetwork.toString())
125 msoLogger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
126 deleteNetwork = vidUtils.createXmlNetworkRequestInfra(execution, deleteNetwork)
128 } catch (Exception ex) {
129 String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
130 msoLogger.debug(dataErrorMessage)
131 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
134 // XML format request is sent
138 // vIPR format request is sent, create xml from individual variables
139 deleteNetwork = vidUtils.createXmlNetworkRequestInstance(execution)
142 deleteNetwork = utils.formatXml(deleteNetwork)
143 msoLogger.debug(deleteNetwork)
144 execution.setVariable(Prefix + "networkRequest", deleteNetwork)
145 msoLogger.debug(Prefix + "networkRequest - " + '\n' + deleteNetwork)
147 // validate 'backout-on-failure' to override 'mso.rollback'
148 boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, deleteNetwork)
149 execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
150 msoLogger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
152 String networkInputs = utils.getNodeXml(deleteNetwork, "network-inputs", false).replace("tag0:","").replace(":tag0","")
153 execution.setVariable(Prefix + "networkInputs", networkInputs)
156 String messageId = execution.getVariable("testMessageId") // for testing
157 if (messageId == null || messageId == "") {
158 messageId = UUID.randomUUID()
159 msoLogger.debug(Prefix + "messageId, random generated: " + messageId)
161 msoLogger.debug(Prefix + "messageId, pre-assigned: " + messageId)
163 execution.setVariable(Prefix + "messageId", messageId)
165 String source = utils.getNodeText(deleteNetwork, "source")
166 execution.setVariable(Prefix + "source", source)
167 msoLogger.debug(Prefix + "source - " + source)
169 String networkId = ""
170 if (utils.nodeExists(networkInputs, "network-id")) {
171 networkId = utils.getNodeText(networkInputs, "network-id")
172 if (networkId == null || networkId == "" || networkId == 'null' ) {
173 sendSyncError(execution)
174 // missing value of network-id
175 String dataErrorMessage = "network-request has missing 'network-id' element/value."
176 msoLogger.debug(" Invalid Request - " + dataErrorMessage)
177 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
181 // lcpCloudRegion or tenantId not sent, will be extracted from query AA&I
182 def lcpCloudRegion = null
183 if (utils.nodeExists(networkInputs, "aic-cloud-region")) {
184 lcpCloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
185 if (lcpCloudRegion == 'null') {
186 lcpCloudRegion = null
189 execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
190 msoLogger.debug("lcpCloudRegion : " + lcpCloudRegion)
192 String tenantId = null
193 if (utils.nodeExists(networkInputs, "tenant-id")) {
194 tenantId = utils.getNodeText(networkInputs, "tenant-id")
195 if (tenantId == 'null') {
200 execution.setVariable(Prefix + "tenantId", tenantId)
201 msoLogger.debug("tenantId : " + tenantId)
203 String sdncVersion = execution.getVariable("sdncVersion")
204 msoLogger.debug("sdncVersion? : " + sdncVersion)
206 // PO Authorization Info / headers Authorization=
207 String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution)
210 def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
211 execution.setVariable("BasicAuthHeaderValuePO",encodedString)
212 execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
214 } catch (IOException ex) {
215 String dataErrorMessage = " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
216 msoLogger.debug(dataErrorMessage )
217 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
220 } catch (BpmnError e) {
223 } catch (Exception ex){
225 String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, PreProcessRequest() - " + ex.getMessage()
226 msoLogger.debug(exceptionMessage)
227 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
234 public void callRESTQueryAAI (DelegateExecution execution) {
236 execution.setVariable("prefix",Prefix)
238 msoLogger.debug(" ***** Inside callRESTQueryAAI() of DoDoDeleteNetworkInstance ***** " )
241 String networkInputs = execution.getVariable(Prefix + "networkInputs")
242 String networkId = utils.getNodeText(networkInputs, "network-id")
243 networkId = UriUtils.encode(networkId,"UTF-8")
246 String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
247 AaiUtil aaiUriUtil = new AaiUtil(this)
248 String aai_uri = aaiUriUtil.getNetworkL3NetworkUri(execution)
249 String queryAAIRequest = "${aai_endpoint}${aai_uri}/" + networkId + "?depth=all"
250 msoLogger.debug(queryAAIRequest)
251 execution.setVariable(Prefix + "queryAAIRequest", queryAAIRequest)
252 msoLogger.debug(Prefix + "AAIRequest - " + "\n" + queryAAIRequest)
254 RESTConfig config = new RESTConfig(queryAAIRequest);
256 ExceptionUtil exceptionUtil = new ExceptionUtil()
257 Boolean isVfRelationshipExist = false
259 APIResponse response = aaiUriUtil.executeAAIGetCall(execution, queryAAIRequest)
260 String returnCode = response.getStatusCode()
261 execution.setVariable(Prefix + "aaiReturnCode", returnCode)
263 msoLogger.debug(" ***** AAI Response Code : " + returnCode)
265 String aaiResponseAsString = response.getResponseBodyAsString()
266 execution.setVariable(Prefix + "queryAAIResponse", aaiResponseAsString)
268 if (returnCode=='200' || returnCode=='204') {
269 msoLogger.debug(aaiResponseAsString)
270 execution.setVariable(Prefix + "isAAIGood", true)
271 msoLogger.debug(" AAI Query Success REST Response - " + "\n" + aaiResponseAsString)
272 // verify if vf or vnf relationship exist
273 if (utils.nodeExists(aaiResponseAsString, "relationship")) {
274 NetworkUtils networkUtils = new NetworkUtils()
275 isVfRelationshipExist = networkUtils.isVfRelationshipExist(aaiResponseAsString)
276 execution.setVariable(Prefix + "isVfRelationshipExist", isVfRelationshipExist)
277 if (isVfRelationshipExist == true) {
278 String relationshipMessage = "AAI Query Success Response but 'vf-module' relationship exist, not allowed to delete: network Id: " + networkId
279 exceptionUtil.buildWorkflowException(execution, 2500, relationshipMessage)
282 // verify if lcpCloudRegion was sent as input, if not get value from AAI Response
283 if (execution.getVariable(Prefix + "lcpCloudRegion") == null ) {
284 String lcpCloudRegion = networkUtils.getCloudRegion(aaiResponseAsString)
285 execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
286 msoLogger.debug(" Get AAI getCloudRegion() : " + lcpCloudRegion)
288 if (execution.getVariable(Prefix + "tenantId") == null ) {
289 String tenantId = networkUtils.getTenantId(aaiResponseAsString)
290 execution.setVariable(Prefix + "tenantId", tenantId)
291 msoLogger.debug(" Get AAI getTenantId() : " + tenantId)
296 msoLogger.debug(Prefix + "isVfRelationshipExist - " + isVfRelationshipExist)
299 execution.setVariable(Prefix + "isAAIGood", false)
300 if (returnCode=='404' || aaiResponseAsString == "" || aaiResponseAsString == null) {
301 // not found // empty aai response
302 execution.setVariable(Prefix + "isSilentSuccess", true)
303 msoLogger.debug(" AAI Query is Silent Success")
306 if (aaiResponseAsString.contains("RESTFault")) {
307 WorkflowException exceptionObject = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
308 execution.setVariable("WorkflowException", exceptionObject)
312 String dataErrorMessage = "Unexpected Error Response from callRESTQueryAAI() - " + returnCode
313 msoLogger.debug(dataErrorMessage)
314 exceptionUtil.buildWorkflowException(execution, 2500, dataErrorMessage)
320 msoLogger.debug(" AAI Query call, isAAIGood? : " + execution.getVariable(Prefix + "isAAIGood"))
322 } catch (Exception ex) {
324 String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, callRESTQueryAAI() - " + ex.getMessage()
325 msoLogger.debug(exceptionMessage)
326 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
332 public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
334 execution.setVariable("prefix", Prefix)
336 msoLogger.debug(" ***** Inside callRESTQueryAAICloudRegion of DoDeleteNetworkInstance ***** " )
339 String networkInputs = execution.getVariable(Prefix + "networkInputs")
340 // String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
341 String cloudRegion = execution.getVariable(Prefix + "lcpCloudRegion")
342 cloudRegion = UriUtils.encode(cloudRegion,"UTF-8")
344 String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
345 AaiUtil aaiUtil = new AaiUtil(this)
346 String aai_uri = aaiUtil.getCloudInfrastructureCloudRegionUri(execution)
347 String queryCloudRegionRequest = "${aai_endpoint}${aai_uri}/" + cloudRegion
348 msoLogger.debug(queryCloudRegionRequest)
349 execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
350 msoLogger.debug(Prefix + "queryCloudRegionRequest - " + "\n" + queryCloudRegionRequest)
352 String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
353 String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
355 if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
356 execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
357 execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
360 String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
361 msoLogger.debug(dataErrorMessage)
362 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
366 } catch (BpmnError e) {
369 } catch (Exception ex) {
371 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, callRESTQueryAAICloudRegion(). Unexpected Response from AAI - " + ex.getMessage()
372 msoLogger.debug(exceptionMessage)
373 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
379 public void prepareNetworkRequest (DelegateExecution execution) {
381 execution.setVariable("prefix", Prefix)
383 msoLogger.trace("Inside prepareNetworkRequest of DoDeleteNetworkInstance ")
384 ExceptionUtil exceptionUtil = new ExceptionUtil()
387 String networkRequest = execution.getVariable(Prefix + "networkRequest")
388 String cloudSiteId = execution.getVariable(Prefix + "cloudRegionPo")
389 String tenantId = execution.getVariable(Prefix + "tenantId")
391 String queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
392 String networkType = utils.getNodeText(queryAAIResponse, "network-type")
393 String networkId = utils.getNodeText(queryAAIResponse, "network-id")
394 String backoutOnFailure = execution.getVariable(Prefix + "rollbackEnabled")
396 String networkStackId = ""
397 networkStackId = utils.getNodeText(queryAAIResponse, "heat-stack-id")
398 if (networkStackId == 'null' || networkStackId == "" || networkStackId == null) {
399 networkStackId = "force_delete"
402 String requestId = execution.getVariable("msoRequestId")
403 if (requestId != null) {
404 execution.setVariable("mso-request-id", requestId)
406 requestId = execution.getVariable("mso-request-id")
408 String serviceInstanceId = execution.getVariable("serviceInstanceId")
410 // Added new Elements
411 String messageId = execution.getVariable(Prefix + "messageId")
412 String notificationUrl = "" //TODO - is this coming from URN? What variable/value to use?
413 //String notificationUrl = execution.getVariable("URN_?????") //TODO - is this coming from URN? What variable/value to use?
415 String modelCustomizationUuid = ""
416 if (utils.nodeExists(networkRequest, "networkModelInfo")) {
417 String networkModelInfo = utils.getNodeXml(networkRequest, "networkModelInfo", false).replace("tag0:","").replace(":tag0","")
418 modelCustomizationUuid = utils.getNodeText(networkModelInfo, "modelCustomizationUuid")
420 modelCustomizationUuid = utils.getNodeText(networkRequest, "modelCustomizationId")
423 String deleteNetworkRequest = """
424 <deleteNetworkRequest>
425 <cloudSiteId>${MsoUtils.xmlEscape(cloudSiteId)}</cloudSiteId>
426 <tenantId>${MsoUtils.xmlEscape(tenantId)}</tenantId>
427 <networkId>${MsoUtils.xmlEscape(networkId)}</networkId>
428 <networkStackId>${MsoUtils.xmlEscape(networkStackId)}</networkStackId>
429 <networkType>${MsoUtils.xmlEscape(networkType)}</networkType>
430 <modelCustomizationUuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</modelCustomizationUuid>
431 <skipAAI>true</skipAAI>
433 <requestId>${MsoUtils.xmlEscape(requestId)}</requestId>
434 <serviceInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</serviceInstanceId>
436 <messageId>${MsoUtils.xmlEscape(messageId)}</messageId>
437 <notificationUrl>${MsoUtils.xmlEscape(notificationUrl)}</notificationUrl>
438 </deleteNetworkRequest>
441 msoLogger.debug(Prefix + "deleteNetworkRequest - " + "\n" + deleteNetworkRequest)
443 String buildDeleteNetworkRequestAsString = utils.formatXml(deleteNetworkRequest)
444 msoLogger.debug(buildDeleteNetworkRequestAsString)
445 msoLogger.debug(Prefix + "deleteNetworkRequestAsString - " + "\n" + buildDeleteNetworkRequestAsString)
447 String restURL = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint", execution)
448 execution.setVariable("mso.adapters.network.rest.endpoint", restURL + "/" + networkId)
449 msoLogger.debug("mso.adapters.network.rest.endpoint - " + "\n" + restURL + "/" + networkId)
451 execution.setVariable(Prefix + "deleteNetworkRequest", buildDeleteNetworkRequestAsString)
452 msoLogger.debug(Prefix + "deleteNetworkRequest - " + "\n" + buildDeleteNetworkRequestAsString)
454 catch (Exception ex) {
456 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareNetworkRequest(). Unexpected Response from AAI - " + ex.getMessage()
457 msoLogger.debug(exceptionMessage)
458 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
464 * This method is used instead of an HTTP Connector task because the
465 * connector does not allow DELETE with a body.
467 public void sendRequestToVnfAdapter(DelegateExecution execution) {
468 def method = getClass().getSimpleName() + '.sendRequestToVnfAdapter(' +
469 'execution=' + execution.getId() +
472 msoLogger.trace('Entered ' + method)
476 String vnfAdapterUrl = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint",execution)
477 String vnfAdapterRequest = execution.getVariable(Prefix + "deleteNetworkRequest")
479 RESTConfig config = new RESTConfig(vnfAdapterUrl)
480 RESTClient client = new RESTClient(config).
481 addHeader("Content-Type", "application/xml").
482 addAuthorizationHeader(execution.getVariable("BasicAuthHeaderValuePO"));
484 APIResponse response;
486 response = client.httpDelete(vnfAdapterRequest)
488 execution.setVariable(Prefix + "networkReturnCode", response.getStatusCode())
489 execution.setVariable(Prefix + "deleteNetworkResponse", response.getResponseBodyAsString())
491 } catch (Exception ex) {
493 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, sendRequestToVnfAdapter() - " + ex.getMessage()
494 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
495 msoLogger.debug(exceptionMessage)
496 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
502 public void prepareSDNCRequest (DelegateExecution execution) {
504 execution.setVariable("prefix", Prefix)
506 msoLogger.trace("Inside prepareSDNCRequest of DoDeleteNetworkInstance ")
510 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
511 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
513 String networkId = ""
514 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
515 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
517 if (networkId == 'null') {networkId = ""}
519 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
521 // get/set 'msoRequestId' and 'mso-request-id'
522 String requestId = execution.getVariable("msoRequestId")
523 if (requestId != null) {
524 execution.setVariable("mso-request-id", requestId)
526 requestId = execution.getVariable("mso-request-id")
528 execution.setVariable(Prefix + "requestId", requestId)
529 msoLogger.debug(Prefix + "requestId " + requestId)
530 String queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
532 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
533 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
534 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
535 String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "delete", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
536 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
537 msoLogger.debug(sndcTopologyDeleteRequesAsString)
538 execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
539 msoLogger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
541 } catch (Exception ex) {
543 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
544 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
545 msoLogger.debug(exceptionMessage)
546 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
552 public void prepareRpcSDNCRequest (DelegateExecution execution) {
554 execution.setVariable("prefix", Prefix)
556 msoLogger.trace("Inside prepareRpcSDNCRequest of DoDeleteNetworkInstance ")
560 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
561 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
563 String networkId = ""
564 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
565 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
567 if (networkId == 'null') {networkId = ""}
569 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
571 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
572 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
573 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
574 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "unassign", "DeleteNetworkInstance", cloudRegionId, networkId, null)
575 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
576 msoLogger.debug(sndcTopologyDeleteRequesAsString)
577 execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
578 msoLogger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
580 } catch (Exception ex) {
582 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
583 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
584 msoLogger.debug(exceptionMessage)
585 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
592 public void prepareRpcSDNCDeactivate(DelegateExecution execution) {
594 execution.setVariable("prefix",Prefix)
596 msoLogger.trace("Inside prepareRpcSDNCDeactivate() of DoDeleteNetworkInstance ")
601 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
602 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
603 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
604 String networkId = ""
605 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
606 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
608 if (networkId == 'null') {networkId = ""}
609 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
611 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "deactivate", "DeleteNetworkInstance", cloudRegionId, networkId, null)
612 String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
613 execution.setVariable(Prefix + "deactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
614 msoLogger.debug(" Preparing request for RPC SDNC Topology deactivate - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
617 } catch (Exception ex) {
618 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCActivateRollback() - " + ex.getMessage()
619 msoLogger.debug(exceptionMessage)
620 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
626 // **************************************************
627 // Post or Validate Response Section
628 // **************************************************
630 public void validateNetworkResponse (DelegateExecution execution) {
632 execution.setVariable("prefix", Prefix)
634 msoLogger.trace("Inside validateNetworkResponse of DoDeleteNetworkInstance ")
637 String returnCode = execution.getVariable(Prefix + "networkReturnCode")
638 String networkResponse = execution.getVariable(Prefix + "deleteNetworkResponse")
640 msoLogger.debug(" Network Adapter responseCode: " + returnCode)
641 msoLogger.debug("Network Adapter Response - " + "\n" + networkResponse)
642 msoLogger.debug(networkResponse)
644 String errorMessage = ""
645 if (returnCode == "200") {
646 msoLogger.debug(" Network Adapter Response is successful - " + "\n" + networkResponse)
648 // prepare rollback data
649 String rollbackData = utils.getNodeXml(networkResponse, "rollback", false).replace("tag0:","").replace(":tag0","")
650 if ((rollbackData == null) || (rollbackData.isEmpty())) {
651 msoLogger.debug(" Network Adapter 'rollback' data is not Sent: " + "\n" + networkResponse)
652 execution.setVariable(Prefix + "rollbackNetworkRequest", "")
654 String rollbackNetwork =
655 """<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.onap.so/network">
657 </NetworkAdapter:rollbackNetwork>"""
658 String rollbackNetworkXml = utils.formatXml(rollbackNetwork)
659 execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkXml)
660 msoLogger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
664 } else { // network error
665 if (returnCode.toInteger() > 399 && returnCode.toInteger() < 600) { //4xx, 5xx
666 if (networkResponse.contains("deleteNetworkError") ) {
667 networkResponse = networkResponse.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '')
668 errorMessage = utils.getNodeText(networkResponse, "message")
669 errorMessage = "Received error from Network Adapter: " + errorMessage
670 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
672 } else { // CatchAll exception
673 if (returnCode == "500") {
674 errorMessage = "JBWEB000065: HTTP Status 500."
676 errorMessage = "Return code is " + returnCode
678 errorMessage = "Received error from Network Adapter: " + errorMessage
679 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
683 } else { // CatchAll exception
684 String dataErrorMessage = "Received error from Network Adapter. Return code is: " + returnCode
685 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
691 } catch (BpmnError e) {
694 } catch (Exception ex) {
696 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, validateNetworkResponse() - " + ex.getMessage()
697 msoLogger.debug(exceptionMessage)
698 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
704 public void validateSDNCResponse (DelegateExecution execution) {
706 execution.setVariable("prefix", Prefix)
708 msoLogger.trace("Inside validateSDNCResponse of DoDeleteNetworkInstance ")
710 String response = execution.getVariable(Prefix + "deleteSDNCResponse")
711 boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
712 WorkflowException workflowException = execution.getVariable("WorkflowException")
714 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
715 sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
717 String deleteSDNCResponseDecodeXml = execution.getVariable(Prefix + "deleteSDNCResponse")
718 deleteSDNCResponseDecodeXml = deleteSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
719 execution.setVariable(Prefix + "deleteSDNCResponse", deleteSDNCResponseDecodeXml)
721 if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, prefix+'sdncResponseSuccess'
722 execution.setVariable(Prefix + "isSdncRollbackNeeded", true) //
723 execution.setVariable(Prefix + "isPONR", true)
724 msoLogger.debug("Successfully Validated SDNC Response")
726 msoLogger.debug("Did NOT Successfully Validated SDNC Response")
727 throw new BpmnError("MSOWorkflowException")
732 public void validateRpcSDNCDeactivateResponse (DelegateExecution execution) {
734 execution.setVariable("prefix",Prefix)
736 msoLogger.trace("Inside validateRpcSDNCDeactivateResponse() of DoDeleteNetworkInstance ")
738 String response = execution.getVariable(Prefix + "deactivateSDNCResponse")
739 boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
740 WorkflowException workflowException = execution.getVariable("WorkflowException")
742 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
743 sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
745 String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "deactivateSDNCResponse")
746 assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
747 execution.setVariable(Prefix + "deactivateSDNCResponse", assignSDNCResponseDecodeXml)
749 if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
750 execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", true)
751 msoLogger.debug("Successfully Validated Rpc SDNC Activate Response")
754 msoLogger.debug("Did NOT Successfully Validated Rpc SDNC Deactivate Response")
755 throw new BpmnError("MSOWorkflowException")
760 public void prepareRpcSDNCDeactivateRollback(DelegateExecution execution) {
762 execution.setVariable("prefix",Prefix)
764 msoLogger.trace("Inside prepareRpcSDNCDeactivateRollback() of DoDeleteNetworkInstance ")
769 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
770 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
771 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
772 String deactivateSDNCResponse = execution.getVariable(Prefix + "deactivateSDNCResponse")
773 String networkId = utils.getNodeText(deactivateSDNCResponse, "network-id")
774 if (networkId == 'null') {networkId = ""}
775 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
777 // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
778 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
779 String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
780 execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
781 msoLogger.debug(" Preparing request for RPC SDNC Topology 'activate-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
784 } catch (Exception ex) {
785 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCDeactivateRollback() - " + ex.getMessage()
786 msoLogger.debug(exceptionMessage)
787 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
793 public void prepareRollbackData(DelegateExecution execution) {
795 execution.setVariable("prefix",Prefix)
797 msoLogger.trace("Inside prepareRollbackData() of DoDeleteNetworkInstance ")
801 Map<String, String> rollbackData = new HashMap<String, String>();
802 String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
803 if (rollbackNetworkRequest != null) {
804 if (rollbackNetworkRequest != "") {
805 rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
808 String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
809 if (rollbackDeactivateSDNCRequest != null) {
810 if (rollbackDeactivateSDNCRequest != "") {
811 rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
814 execution.setVariable("rollbackData", rollbackData)
815 msoLogger.debug("** rollbackData : " + rollbackData)
817 execution.setVariable("WorkflowException", execution.getVariable("WorkflowException"))
818 msoLogger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
820 } catch (Exception ex) {
821 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
822 msoLogger.debug(exceptionMessage)
823 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
829 public void postProcessResponse (DelegateExecution execution) {
831 execution.setVariable("prefix", Prefix)
833 msoLogger.trace("Inside postProcessResponse of DoDeleteNetworkInstance ")
837 msoLogger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
838 if (execution.getVariable(Prefix + "isException") == false) {
839 execution.setVariable(Prefix + "Success", true)
840 execution.setVariable("WorkflowException", null)
841 if (execution.getVariable(Prefix + "isSilentSuccess") == true) {
842 execution.setVariable("rolledBack", false)
844 execution.setVariable("rolledBack", true)
846 prepareSuccessRollbackData(execution) // populate rollbackData
849 execution.setVariable(Prefix + "Success", false)
850 execution.setVariable("rollbackData", null)
851 String exceptionMessage = " Exception encountered in MSO Bpmn. "
852 if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
853 msoLogger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
854 WorkflowException wfex = execution.getVariable("workflowException")
855 exceptionMessage = wfex.getErrorMessage()
857 if (execution.getVariable(Prefix + "WorkflowException") != null) {
858 WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
859 exceptionMessage = pwfex.getErrorMessage()
861 if (execution.getVariable("WorkflowException") != null) {
862 WorkflowException pwfex = execution.getVariable("WorkflowException")
863 exceptionMessage = pwfex.getErrorMessage()
868 // going to the Main flow: a-la-carte or macro
869 msoLogger.debug(" ***** postProcessResponse(), BAD !!!")
870 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
871 throw new BpmnError("MSOWorkflowException")
875 } catch(BpmnError b){
876 msoLogger.debug("Rethrowing MSOWorkflowException")
879 } catch (Exception ex) {
881 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, postProcessResponse() - " + ex.getMessage()
882 msoLogger.debug(exceptionMessage)
883 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
884 throw new BpmnError("MSOWorkflowException")
890 public void prepareSuccessRollbackData(DelegateExecution execution) {
892 execution.setVariable("prefix",Prefix)
894 msoLogger.trace("Inside prepareSuccessRollbackData() of DoDeleteNetworkInstance ")
898 if (execution.getVariable("sdncVersion") != '1610') {
899 prepareRpcSDNCDeactivateRollback(execution)
900 prepareRpcSDNCUnassignRollback(execution)
902 prepareSDNCRollback(execution)
905 Map<String, String> rollbackData = new HashMap<String, String>();
906 String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
907 if (rollbackSDNCRequest != null) {
908 if (rollbackSDNCRequest != "") {
909 rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
912 String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
913 if (rollbackNetworkRequest != null) {
914 if (rollbackNetworkRequest != "") {
915 rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
918 String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
919 if (rollbackDeactivateSDNCRequest != null) {
920 if (rollbackDeactivateSDNCRequest != "") {
921 rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
924 execution.setVariable("rollbackData", rollbackData)
926 msoLogger.debug("** rollbackData : " + rollbackData)
927 execution.setVariable("WorkflowException", null)
930 } catch (Exception ex) {
931 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
932 msoLogger.debug(exceptionMessage)
933 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
939 public void prepareRpcSDNCUnassignRollback(DelegateExecution execution) {
941 execution.setVariable("prefix",Prefix)
943 msoLogger.trace("Inside prepareRpcSDNCUnassignRollbac() of DoDeleteNetworkInstance ")
948 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
949 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
951 String deleteSDNCResponse = execution.getVariable(Prefix + "deleteSDNCResponse")
952 String networkId = utils.getNodeText(deleteSDNCResponse, "network-id")
953 if (networkId == 'null') {networkId = ""}
954 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
956 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
957 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
958 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
959 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "assign", "CreateNetworkInstance", cloudRegionId, networkId, null)
960 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
961 msoLogger.debug(sndcTopologyDeleteRequesAsString)
962 execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
963 msoLogger.debug(Prefix + "rollbackSDNCRequest" + "\n" + sndcTopologyDeleteRequesAsString)
964 msoLogger.debug(" Preparing request for RPC SDNC Topology 'assign-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
967 } catch (Exception ex) {
968 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCUnassignRollback() - " + ex.getMessage()
969 msoLogger.debug(exceptionMessage)
970 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
976 public void prepareSDNCRollback (DelegateExecution execution) {
978 execution.setVariable("prefix", Prefix)
980 msoLogger.trace("Inside prepareSDNCRollback of DoDeleteNetworkInstance ")
985 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
986 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
988 String networkId = ""
989 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
990 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
992 if (networkId == 'null') {networkId = ""}
994 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
996 // get/set 'msoRequestId' and 'mso-request-id'
997 String requestId = execution.getVariable("msoRequestId")
998 if (requestId != null) {
999 execution.setVariable("mso-request-id", requestId)
1001 requestId = execution.getVariable("mso-request-id")
1003 execution.setVariable(Prefix + "requestId", requestId)
1005 String queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
1007 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
1008 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
1009 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
1010 String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "rollback", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
1011 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
1012 msoLogger.debug(sndcTopologyDeleteRequesAsString)
1013 execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
1014 msoLogger.debug(Prefix + "rollbackSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
1015 msoLogger.debug(" Preparing request for RPC SDNC Topology 'rollback-DisconnectNetworkRequest' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
1018 } catch (Exception ex) {
1020 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRollback() - " + ex.getMessage()
1021 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
1022 msoLogger.debug(exceptionMessage)
1023 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
1029 public void setExceptionFlag(DelegateExecution execution){
1031 execution.setVariable("prefix",Prefix)
1033 msoLogger.trace("Inside setExceptionFlag() of DoDeleteNetworkInstance ")
1037 execution.setVariable(Prefix + "isException", true)
1039 if (execution.getVariable("SavedWorkflowException1") != null) {
1040 execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
1042 execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
1044 msoLogger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
1046 } catch(Exception ex){
1047 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
1048 msoLogger.debug(exceptionMessage)
1049 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
1055 // *******************************
1056 // Build Error Section
1057 // *******************************
1059 public void processJavaException(DelegateExecution execution){
1061 execution.setVariable("prefix",Prefix)
1063 msoLogger.debug("Caught a Java Exception")
1064 msoLogger.debug("Started processJavaException Method")
1065 msoLogger.debug("Variables List: " + execution.getVariables())
1066 execution.setVariable("UnexpectedError", "Caught a Java Lang Exception") // Adding this line temporarily until this flows error handling gets updated
1067 exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
1069 }catch(Exception e){
1070 msoLogger.debug("Caught Exception during processJavaException Method: " + e)
1071 execution.setVariable("UnexpectedError", "Exception in processJavaException method") // Adding this line temporarily until this flows error handling gets updated
1072 exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method")
1074 msoLogger.debug("Completed processJavaException Method of " + Prefix)