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.client.aai.AAIObjectType
37 import org.onap.so.client.aai.entities.uri.AAIResourceUri
38 import org.onap.so.client.aai.entities.uri.AAIUriFactory
39 import org.onap.so.client.graphinventory.entities.uri.Depth
40 import org.onap.so.constants.Defaults
41 import org.onap.so.logger.MessageEnum
42 import org.onap.so.logger.MsoLogger
43 import org.onap.so.rest.APIResponse;
44 import org.onap.so.rest.RESTClient
45 import org.onap.so.rest.RESTConfig
46 import org.springframework.web.util.UriUtils
50 public class DoDeleteNetworkInstance extends AbstractServiceTaskProcessor {
51 private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, DoDeleteNetworkInstance.class);
53 String Prefix= "DELNWKI_"
54 String groovyClassName = "DoDeleteNetworkInstance"
55 ExceptionUtil exceptionUtil = new ExceptionUtil()
56 JsonUtils jsonUtil = new JsonUtils()
57 VidUtils vidUtils = new VidUtils(this)
58 NetworkUtils networkUtils = new NetworkUtils()
59 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
61 public InitializeProcessVariables(DelegateExecution execution){
62 /* Initialize all the process variables in this block */
64 execution.setVariable(Prefix + "networkRequest", "")
65 execution.setVariable(Prefix + "isSilentSuccess", false)
66 execution.setVariable(Prefix + "Success", false)
68 execution.setVariable(Prefix + "requestId", "")
69 execution.setVariable(Prefix + "source", "")
70 execution.setVariable(Prefix + "lcpCloudRegion", "")
71 execution.setVariable(Prefix + "networkInputs", "")
72 execution.setVariable(Prefix + "tenantId", "")
74 execution.setVariable(Prefix + "queryAAIRequest","")
75 execution.setVariable(Prefix + "queryAAIResponse", "")
76 execution.setVariable(Prefix + "aaiReturnCode", "")
77 execution.setVariable(Prefix + "isAAIGood", false)
78 execution.setVariable(Prefix + "isVfRelationshipExist", false)
80 // AAI query Cloud Region
81 execution.setVariable(Prefix + "queryCloudRegionRequest","")
82 execution.setVariable(Prefix + "queryCloudRegionReturnCode","")
83 execution.setVariable(Prefix + "queryCloudRegionResponse","")
84 execution.setVariable(Prefix + "cloudRegionPo","")
85 execution.setVariable(Prefix + "cloudRegionSdnc","")
87 execution.setVariable(Prefix + "deleteNetworkRequest", "")
88 execution.setVariable(Prefix + "deleteNetworkResponse", "")
89 execution.setVariable(Prefix + "networkReturnCode", "")
90 execution.setVariable(Prefix + "rollbackNetworkRequest", "")
92 execution.setVariable(Prefix + "deleteSDNCRequest", "")
93 execution.setVariable(Prefix + "deleteSDNCResponse", "")
94 execution.setVariable(Prefix + "sdncReturnCode", "")
95 execution.setVariable(Prefix + "sdncResponseSuccess", false)
97 execution.setVariable(Prefix + "deactivateSDNCRequest", "")
98 execution.setVariable(Prefix + "deactivateSDNCResponse", "")
99 execution.setVariable(Prefix + "deactivateSdncReturnCode", "")
100 execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", "")
102 execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", "")
103 execution.setVariable(Prefix + "isException", false)
108 // **************************************************
109 // Pre or Prepare Request Section
110 // **************************************************
112 public void preProcessRequest (DelegateExecution execution) {
114 execution.setVariable("prefix",Prefix)
116 msoLogger.trace("Inside preProcessRequest() of " + groovyClassName + " Request ")
118 // initialize flow variables
119 InitializeProcessVariables(execution)
122 // get incoming message/input
123 execution.setVariable("action", "DELETE")
124 String deleteNetwork = execution.getVariable("bpmnRequest")
125 if (deleteNetwork != null) {
126 if (deleteNetwork.contains("requestDetails")) {
127 // JSON format request is sent, create xml
129 def prettyJson = JsonOutput.prettyPrint(deleteNetwork.toString())
130 msoLogger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
131 deleteNetwork = vidUtils.createXmlNetworkRequestInfra(execution, deleteNetwork)
133 } catch (Exception ex) {
134 String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
135 msoLogger.debug(dataErrorMessage)
136 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
139 // XML format request is sent
143 // vIPR format request is sent, create xml from individual variables
144 deleteNetwork = vidUtils.createXmlNetworkRequestInstance(execution)
147 deleteNetwork = utils.formatXml(deleteNetwork)
148 msoLogger.debug(deleteNetwork)
149 execution.setVariable(Prefix + "networkRequest", deleteNetwork)
150 msoLogger.debug(Prefix + "networkRequest - " + '\n' + deleteNetwork)
152 // validate 'backout-on-failure' to override 'mso.rollback'
153 boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, deleteNetwork)
154 execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
155 msoLogger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
157 String networkInputs = utils.getNodeXml(deleteNetwork, "network-inputs", false).replace("tag0:","").replace(":tag0","")
158 execution.setVariable(Prefix + "networkInputs", networkInputs)
161 String messageId = execution.getVariable("testMessageId") // for testing
162 if (messageId == null || messageId == "") {
163 messageId = UUID.randomUUID()
164 msoLogger.debug(Prefix + "messageId, random generated: " + messageId)
166 msoLogger.debug(Prefix + "messageId, pre-assigned: " + messageId)
168 execution.setVariable(Prefix + "messageId", messageId)
170 String source = utils.getNodeText(deleteNetwork, "source")
171 execution.setVariable(Prefix + "source", source)
172 msoLogger.debug(Prefix + "source - " + source)
174 String networkId = ""
175 if (utils.nodeExists(networkInputs, "network-id")) {
176 networkId = utils.getNodeText(networkInputs, "network-id")
177 if (networkId == null || networkId == "" || networkId == 'null' ) {
178 sendSyncError(execution)
179 // missing value of network-id
180 String dataErrorMessage = "network-request has missing 'network-id' element/value."
181 msoLogger.debug(" Invalid Request - " + dataErrorMessage)
182 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
186 // lcpCloudRegion or tenantId not sent, will be extracted from query AA&I
187 def lcpCloudRegion = null
188 if (utils.nodeExists(networkInputs, "aic-cloud-region")) {
189 lcpCloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
190 if (lcpCloudRegion == 'null') {
191 lcpCloudRegion = null
194 execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
195 msoLogger.debug("lcpCloudRegion : " + lcpCloudRegion)
197 String tenantId = null
198 if (utils.nodeExists(networkInputs, "tenant-id")) {
199 tenantId = utils.getNodeText(networkInputs, "tenant-id")
200 if (tenantId == 'null') {
205 execution.setVariable(Prefix + "tenantId", tenantId)
206 msoLogger.debug("tenantId : " + tenantId)
208 String sdncVersion = execution.getVariable("sdncVersion")
209 msoLogger.debug("sdncVersion? : " + sdncVersion)
211 // PO Authorization Info / headers Authorization=
212 String basicAuthValuePO = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution)
215 def encodedString = utils.getBasicAuth(basicAuthValuePO, UrnPropertiesReader.getVariable("mso.msoKey", execution))
216 execution.setVariable("BasicAuthHeaderValuePO",encodedString)
217 execution.setVariable("BasicAuthHeaderValueSDNC", encodedString)
219 } catch (IOException ex) {
220 String dataErrorMessage = " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
221 msoLogger.debug(dataErrorMessage )
222 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
225 } catch (BpmnError e) {
228 } catch (Exception ex){
230 String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, PreProcessRequest() - " + ex.getMessage()
231 msoLogger.debug(exceptionMessage)
232 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
239 public void callRESTQueryAAI (DelegateExecution execution) {
241 execution.setVariable("prefix",Prefix)
243 msoLogger.debug(" ***** Inside callRESTQueryAAI() of DoDoDeleteNetworkInstance ***** " )
246 String networkInputs = execution.getVariable(Prefix + "networkInputs")
247 String networkId = utils.getNodeText(networkInputs, "network-id")
248 networkId = UriUtils.encode(networkId,"UTF-8")
251 AaiUtil aaiUriUtil = new AaiUtil(this)
252 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
255 String queryAAIRequest = aaiUriUtil.createAaiUri(uri)
256 msoLogger.debug(queryAAIRequest)
257 execution.setVariable(Prefix + "queryAAIRequest", queryAAIRequest)
258 msoLogger.debug(Prefix + "AAIRequest - " + "\n" + queryAAIRequest)
260 RESTConfig config = new RESTConfig(queryAAIRequest);
262 ExceptionUtil exceptionUtil = new ExceptionUtil()
263 Boolean isVfRelationshipExist = false
265 APIResponse response = aaiUriUtil.executeAAIGetCall(execution, queryAAIRequest)
266 String returnCode = response.getStatusCode()
267 execution.setVariable(Prefix + "aaiReturnCode", returnCode)
269 msoLogger.debug(" ***** AAI Response Code : " + returnCode)
271 String aaiResponseAsString = response.getResponseBodyAsString()
272 execution.setVariable(Prefix + "queryAAIResponse", aaiResponseAsString)
274 if (returnCode=='200' || returnCode=='204') {
275 msoLogger.debug(aaiResponseAsString)
276 execution.setVariable(Prefix + "isAAIGood", true)
277 msoLogger.debug(" AAI Query Success REST Response - " + "\n" + aaiResponseAsString)
278 // verify if vf or vnf relationship exist
279 if (utils.nodeExists(aaiResponseAsString, "relationship")) {
280 NetworkUtils networkUtils = new NetworkUtils()
281 isVfRelationshipExist = networkUtils.isVfRelationshipExist(aaiResponseAsString)
282 execution.setVariable(Prefix + "isVfRelationshipExist", isVfRelationshipExist)
283 if (isVfRelationshipExist == true) {
284 String relationshipMessage = "AAI Query Success Response but 'vf-module' relationship exist, not allowed to delete: network Id: " + networkId
285 exceptionUtil.buildWorkflowException(execution, 2500, relationshipMessage)
288 // verify if lcpCloudRegion was sent as input, if not get value from AAI Response
289 if (execution.getVariable(Prefix + "lcpCloudRegion") == null ) {
290 String lcpCloudRegion = networkUtils.getCloudRegion(aaiResponseAsString)
291 execution.setVariable(Prefix + "lcpCloudRegion", lcpCloudRegion)
292 msoLogger.debug(" Get AAI getCloudRegion() : " + lcpCloudRegion)
294 if (execution.getVariable(Prefix + "tenantId") == null ) {
295 String tenantId = networkUtils.getTenantId(aaiResponseAsString)
296 execution.setVariable(Prefix + "tenantId", tenantId)
297 msoLogger.debug(" Get AAI getTenantId() : " + tenantId)
302 msoLogger.debug(Prefix + "isVfRelationshipExist - " + isVfRelationshipExist)
305 execution.setVariable(Prefix + "isAAIGood", false)
306 if (returnCode=='404' || aaiResponseAsString == "" || aaiResponseAsString == null) {
307 // not found // empty aai response
308 execution.setVariable(Prefix + "isSilentSuccess", true)
309 msoLogger.debug(" AAI Query is Silent Success")
312 if (aaiResponseAsString.contains("RESTFault")) {
313 WorkflowException exceptionObject = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
314 execution.setVariable("WorkflowException", exceptionObject)
318 String dataErrorMessage = "Unexpected Error Response from callRESTQueryAAI() - " + returnCode
319 msoLogger.debug(dataErrorMessage)
320 exceptionUtil.buildWorkflowException(execution, 2500, dataErrorMessage)
326 msoLogger.debug(" AAI Query call, isAAIGood? : " + execution.getVariable(Prefix + "isAAIGood"))
328 } catch (Exception ex) {
330 String exceptionMessage = "Exception Encountered in DoDeleteNetworkInstance, callRESTQueryAAI() - " + ex.getMessage()
331 msoLogger.debug(exceptionMessage)
332 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
338 public void callRESTQueryAAICloudRegion (DelegateExecution execution) {
340 execution.setVariable("prefix", Prefix)
342 msoLogger.debug(" ***** Inside callRESTQueryAAICloudRegion of DoDeleteNetworkInstance ***** " )
345 String networkInputs = execution.getVariable(Prefix + "networkInputs")
346 // String cloudRegion = utils.getNodeText(networkInputs, "aic-cloud-region")
347 String cloudRegion = execution.getVariable(Prefix + "lcpCloudRegion")
349 AaiUtil aaiUtil = new AaiUtil(this)
351 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, Defaults.CLOUD_OWNER.toString(), cloudRegion)
352 def queryCloudRegionRequest = aaiUtil.createAaiUri(uri)
354 execution.setVariable(Prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
356 String cloudRegionPo = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
357 String cloudRegionSdnc = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "SDNC", cloudRegion)
359 if ((cloudRegionPo != "ERROR") && (cloudRegionSdnc != "ERROR")) {
360 execution.setVariable(Prefix + "cloudRegionPo", cloudRegionPo)
361 execution.setVariable(Prefix + "cloudRegionSdnc", cloudRegionSdnc)
364 String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
365 msoLogger.debug(dataErrorMessage)
366 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
370 } catch (BpmnError e) {
373 } catch (Exception ex) {
375 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, callRESTQueryAAICloudRegion(). Unexpected Response from AAI - " + ex.getMessage()
376 msoLogger.debug(exceptionMessage)
377 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
383 public void prepareNetworkRequest (DelegateExecution execution) {
385 execution.setVariable("prefix", Prefix)
387 msoLogger.trace("Inside prepareNetworkRequest of DoDeleteNetworkInstance ")
388 ExceptionUtil exceptionUtil = new ExceptionUtil()
391 String networkRequest = execution.getVariable(Prefix + "networkRequest")
392 String cloudSiteId = execution.getVariable(Prefix + "cloudRegionPo")
393 String tenantId = execution.getVariable(Prefix + "tenantId")
395 String queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
396 String networkType = utils.getNodeText(queryAAIResponse, "network-type")
397 String networkId = utils.getNodeText(queryAAIResponse, "network-id")
398 String backoutOnFailure = execution.getVariable(Prefix + "rollbackEnabled")
400 String networkStackId = ""
401 networkStackId = utils.getNodeText(queryAAIResponse, "heat-stack-id")
402 if (networkStackId == 'null' || networkStackId == "" || networkStackId == null) {
403 networkStackId = "force_delete"
406 String requestId = execution.getVariable("msoRequestId")
407 if (requestId != null) {
408 execution.setVariable("mso-request-id", requestId)
410 requestId = execution.getVariable("mso-request-id")
412 String serviceInstanceId = execution.getVariable("serviceInstanceId")
414 // Added new Elements
415 String messageId = execution.getVariable(Prefix + "messageId")
416 String notificationUrl = "" //TODO - is this coming from URN? What variable/value to use?
417 //String notificationUrl = execution.getVariable("URN_?????") //TODO - is this coming from URN? What variable/value to use?
419 String modelCustomizationUuid = ""
420 if (utils.nodeExists(networkRequest, "networkModelInfo")) {
421 String networkModelInfo = utils.getNodeXml(networkRequest, "networkModelInfo", false).replace("tag0:","").replace(":tag0","")
422 modelCustomizationUuid = utils.getNodeText(networkModelInfo, "modelCustomizationUuid")
424 modelCustomizationUuid = utils.getNodeText(networkRequest, "modelCustomizationId")
427 String deleteNetworkRequest = """
428 <deleteNetworkRequest>
429 <cloudSiteId>${MsoUtils.xmlEscape(cloudSiteId)}</cloudSiteId>
430 <tenantId>${MsoUtils.xmlEscape(tenantId)}</tenantId>
431 <networkId>${MsoUtils.xmlEscape(networkId)}</networkId>
432 <networkStackId>${MsoUtils.xmlEscape(networkStackId)}</networkStackId>
433 <networkType>${MsoUtils.xmlEscape(networkType)}</networkType>
434 <modelCustomizationUuid>${MsoUtils.xmlEscape(modelCustomizationUuid)}</modelCustomizationUuid>
435 <skipAAI>true</skipAAI>
437 <requestId>${MsoUtils.xmlEscape(requestId)}</requestId>
438 <serviceInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</serviceInstanceId>
440 <messageId>${MsoUtils.xmlEscape(messageId)}</messageId>
441 <notificationUrl>${MsoUtils.xmlEscape(notificationUrl)}</notificationUrl>
442 </deleteNetworkRequest>
445 msoLogger.debug(Prefix + "deleteNetworkRequest - " + "\n" + deleteNetworkRequest)
447 String buildDeleteNetworkRequestAsString = utils.formatXml(deleteNetworkRequest)
448 msoLogger.debug(buildDeleteNetworkRequestAsString)
449 msoLogger.debug(Prefix + "deleteNetworkRequestAsString - " + "\n" + buildDeleteNetworkRequestAsString)
451 String restURL = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint", execution)
452 execution.setVariable("mso.adapters.network.rest.endpoint", restURL + "/" + networkId)
453 msoLogger.debug("mso.adapters.network.rest.endpoint - " + "\n" + restURL + "/" + networkId)
455 execution.setVariable(Prefix + "deleteNetworkRequest", buildDeleteNetworkRequestAsString)
456 msoLogger.debug(Prefix + "deleteNetworkRequest - " + "\n" + buildDeleteNetworkRequestAsString)
458 catch (Exception ex) {
460 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareNetworkRequest(). Unexpected Response from AAI - " + ex.getMessage()
461 msoLogger.debug(exceptionMessage)
462 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
468 * This method is used instead of an HTTP Connector task because the
469 * connector does not allow DELETE with a body.
471 public void sendRequestToVnfAdapter(DelegateExecution execution) {
472 def method = getClass().getSimpleName() + '.sendRequestToVnfAdapter(' +
473 'execution=' + execution.getId() +
476 msoLogger.trace('Entered ' + method)
480 String vnfAdapterUrl = UrnPropertiesReader.getVariable("mso.adapters.network.rest.endpoint",execution)
481 String vnfAdapterRequest = execution.getVariable(Prefix + "deleteNetworkRequest")
483 RESTConfig config = new RESTConfig(vnfAdapterUrl)
484 RESTClient client = new RESTClient(config).
485 addHeader("Content-Type", "application/xml").
486 addAuthorizationHeader(execution.getVariable("BasicAuthHeaderValuePO"));
488 APIResponse response;
490 response = client.httpDelete(vnfAdapterRequest)
492 execution.setVariable(Prefix + "networkReturnCode", response.getStatusCode())
493 execution.setVariable(Prefix + "deleteNetworkResponse", response.getResponseBodyAsString())
495 } catch (Exception ex) {
497 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, sendRequestToVnfAdapter() - " + ex.getMessage()
498 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
499 msoLogger.debug(exceptionMessage)
500 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
506 public void prepareSDNCRequest (DelegateExecution execution) {
508 execution.setVariable("prefix", Prefix)
510 msoLogger.trace("Inside prepareSDNCRequest of DoDeleteNetworkInstance ")
514 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
515 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
517 String networkId = ""
518 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
519 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
521 if (networkId == 'null') {networkId = ""}
523 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
525 // get/set 'msoRequestId' and 'mso-request-id'
526 String requestId = execution.getVariable("msoRequestId")
527 if (requestId != null) {
528 execution.setVariable("mso-request-id", requestId)
530 requestId = execution.getVariable("mso-request-id")
532 execution.setVariable(Prefix + "requestId", requestId)
533 msoLogger.debug(Prefix + "requestId " + requestId)
534 String queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
536 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
537 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
538 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
539 String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "delete", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
540 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
541 msoLogger.debug(sndcTopologyDeleteRequesAsString)
542 execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
543 msoLogger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
545 } catch (Exception ex) {
547 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
548 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
549 msoLogger.debug(exceptionMessage)
550 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
556 public void prepareRpcSDNCRequest (DelegateExecution execution) {
558 execution.setVariable("prefix", Prefix)
560 msoLogger.trace("Inside prepareRpcSDNCRequest of DoDeleteNetworkInstance ")
564 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
565 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
567 String networkId = ""
568 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
569 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
571 if (networkId == 'null') {networkId = ""}
573 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
575 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
576 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
577 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
578 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "unassign", "DeleteNetworkInstance", cloudRegionId, networkId, null)
579 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
580 msoLogger.debug(sndcTopologyDeleteRequesAsString)
581 execution.setVariable(Prefix + "deleteSDNCRequest", sndcTopologyDeleteRequesAsString)
582 msoLogger.debug(Prefix + "deleteSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
584 } catch (Exception ex) {
586 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRequest() - " + ex.getMessage()
587 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
588 msoLogger.debug(exceptionMessage)
589 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
596 public void prepareRpcSDNCDeactivate(DelegateExecution execution) {
598 execution.setVariable("prefix",Prefix)
600 msoLogger.trace("Inside prepareRpcSDNCDeactivate() of DoDeleteNetworkInstance ")
605 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
606 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
607 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
608 String networkId = ""
609 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
610 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
612 if (networkId == 'null') {networkId = ""}
613 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
615 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "deactivate", "DeleteNetworkInstance", cloudRegionId, networkId, null)
616 String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
617 execution.setVariable(Prefix + "deactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
618 msoLogger.debug(" Preparing request for RPC SDNC Topology deactivate - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
621 } catch (Exception ex) {
622 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCActivateRollback() - " + ex.getMessage()
623 msoLogger.debug(exceptionMessage)
624 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
630 // **************************************************
631 // Post or Validate Response Section
632 // **************************************************
634 public void validateNetworkResponse (DelegateExecution execution) {
636 execution.setVariable("prefix", Prefix)
638 msoLogger.trace("Inside validateNetworkResponse of DoDeleteNetworkInstance ")
641 String returnCode = execution.getVariable(Prefix + "networkReturnCode")
642 String networkResponse = execution.getVariable(Prefix + "deleteNetworkResponse")
644 msoLogger.debug(" Network Adapter responseCode: " + returnCode)
645 msoLogger.debug("Network Adapter Response - " + "\n" + networkResponse)
646 msoLogger.debug(networkResponse)
648 String errorMessage = ""
649 if (returnCode == "200") {
650 msoLogger.debug(" Network Adapter Response is successful - " + "\n" + networkResponse)
652 // prepare rollback data
653 String rollbackData = utils.getNodeXml(networkResponse, "rollback", false).replace("tag0:","").replace(":tag0","")
654 if ((rollbackData == null) || (rollbackData.isEmpty())) {
655 msoLogger.debug(" Network Adapter 'rollback' data is not Sent: " + "\n" + networkResponse)
656 execution.setVariable(Prefix + "rollbackNetworkRequest", "")
658 String rollbackNetwork =
659 """<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.onap.so/network">
661 </NetworkAdapter:rollbackNetwork>"""
662 String rollbackNetworkXml = utils.formatXml(rollbackNetwork)
663 execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkXml)
664 msoLogger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
668 } else { // network error
669 if (returnCode.toInteger() > 399 && returnCode.toInteger() < 600) { //4xx, 5xx
670 if (networkResponse.contains("deleteNetworkError") ) {
671 networkResponse = networkResponse.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '')
672 errorMessage = utils.getNodeText(networkResponse, "message")
673 errorMessage = "Received error from Network Adapter: " + errorMessage
674 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
676 } else { // CatchAll exception
677 if (returnCode == "500") {
678 errorMessage = "JBWEB000065: HTTP Status 500."
680 errorMessage = "Return code is " + returnCode
682 errorMessage = "Received error from Network Adapter: " + errorMessage
683 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
687 } else { // CatchAll exception
688 String dataErrorMessage = "Received error from Network Adapter. Return code is: " + returnCode
689 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
695 } catch (BpmnError e) {
698 } catch (Exception ex) {
700 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, validateNetworkResponse() - " + ex.getMessage()
701 msoLogger.debug(exceptionMessage)
702 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
708 public void validateSDNCResponse (DelegateExecution execution) {
710 execution.setVariable("prefix", Prefix)
712 msoLogger.trace("Inside validateSDNCResponse of DoDeleteNetworkInstance ")
714 String response = execution.getVariable(Prefix + "deleteSDNCResponse")
715 boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
716 WorkflowException workflowException = execution.getVariable("WorkflowException")
718 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
719 sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
721 String deleteSDNCResponseDecodeXml = execution.getVariable(Prefix + "deleteSDNCResponse")
722 deleteSDNCResponseDecodeXml = deleteSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
723 execution.setVariable(Prefix + "deleteSDNCResponse", deleteSDNCResponseDecodeXml)
725 if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, prefix+'sdncResponseSuccess'
726 execution.setVariable(Prefix + "isSdncRollbackNeeded", true) //
727 execution.setVariable(Prefix + "isPONR", true)
728 msoLogger.debug("Successfully Validated SDNC Response")
730 msoLogger.debug("Did NOT Successfully Validated SDNC Response")
731 throw new BpmnError("MSOWorkflowException")
736 public void validateRpcSDNCDeactivateResponse (DelegateExecution execution) {
738 execution.setVariable("prefix",Prefix)
740 msoLogger.trace("Inside validateRpcSDNCDeactivateResponse() of DoDeleteNetworkInstance ")
742 String response = execution.getVariable(Prefix + "deactivateSDNCResponse")
743 boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
744 WorkflowException workflowException = execution.getVariable("WorkflowException")
746 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
747 sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
749 String assignSDNCResponseDecodeXml = execution.getVariable(Prefix + "deactivateSDNCResponse")
750 assignSDNCResponseDecodeXml = assignSDNCResponseDecodeXml.replace('<?xml version="1.0" encoding="UTF-8"?>', "")
751 execution.setVariable(Prefix + "deactivateSDNCResponse", assignSDNCResponseDecodeXml)
753 if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) { // from sdnc util, Prefix+'sdncResponseSuccess'
754 execution.setVariable(Prefix + "isSdncDeactivateRollbackNeeded", true)
755 msoLogger.debug("Successfully Validated Rpc SDNC Activate Response")
758 msoLogger.debug("Did NOT Successfully Validated Rpc SDNC Deactivate Response")
759 throw new BpmnError("MSOWorkflowException")
764 public void prepareRpcSDNCDeactivateRollback(DelegateExecution execution) {
766 execution.setVariable("prefix",Prefix)
768 msoLogger.trace("Inside prepareRpcSDNCDeactivateRollback() of DoDeleteNetworkInstance ")
773 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
774 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
775 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
776 String deactivateSDNCResponse = execution.getVariable(Prefix + "deactivateSDNCResponse")
777 String networkId = utils.getNodeText(deactivateSDNCResponse, "network-id")
778 if (networkId == 'null') {networkId = ""}
779 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
781 // 2. prepare rollback topology via SDNC Adapter SUBFLOW call
782 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
783 String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
784 execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
785 msoLogger.debug(" Preparing request for RPC SDNC Topology 'activate-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyRollbackRpcRequestAsString)
788 } catch (Exception ex) {
789 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCDeactivateRollback() - " + ex.getMessage()
790 msoLogger.debug(exceptionMessage)
791 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
797 public void prepareRollbackData(DelegateExecution execution) {
799 execution.setVariable("prefix",Prefix)
801 msoLogger.trace("Inside prepareRollbackData() of DoDeleteNetworkInstance ")
805 Map<String, String> rollbackData = new HashMap<String, String>();
806 String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
807 if (rollbackNetworkRequest != null) {
808 if (rollbackNetworkRequest != "") {
809 rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
812 String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
813 if (rollbackDeactivateSDNCRequest != null) {
814 if (rollbackDeactivateSDNCRequest != "") {
815 rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
818 execution.setVariable("rollbackData", rollbackData)
819 msoLogger.debug("** rollbackData : " + rollbackData)
821 execution.setVariable("WorkflowException", execution.getVariable("WorkflowException"))
822 msoLogger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
824 } catch (Exception ex) {
825 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
826 msoLogger.debug(exceptionMessage)
827 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
833 public void postProcessResponse (DelegateExecution execution) {
835 execution.setVariable("prefix", Prefix)
837 msoLogger.trace("Inside postProcessResponse of DoDeleteNetworkInstance ")
841 msoLogger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
842 if (execution.getVariable(Prefix + "isException") == false) {
843 execution.setVariable(Prefix + "Success", true)
844 execution.setVariable("WorkflowException", null)
845 if (execution.getVariable(Prefix + "isSilentSuccess") == true) {
846 execution.setVariable("rolledBack", false)
848 execution.setVariable("rolledBack", true)
850 prepareSuccessRollbackData(execution) // populate rollbackData
853 execution.setVariable(Prefix + "Success", false)
854 execution.setVariable("rollbackData", null)
855 String exceptionMessage = " Exception encountered in MSO Bpmn. "
856 if (execution.getVariable("workflowException") != null) { // Output of Rollback flow.
857 msoLogger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
858 WorkflowException wfex = execution.getVariable("workflowException")
859 exceptionMessage = wfex.getErrorMessage()
861 if (execution.getVariable(Prefix + "WorkflowException") != null) {
862 WorkflowException pwfex = execution.getVariable(Prefix + "WorkflowException")
863 exceptionMessage = pwfex.getErrorMessage()
865 if (execution.getVariable("WorkflowException") != null) {
866 WorkflowException pwfex = execution.getVariable("WorkflowException")
867 exceptionMessage = pwfex.getErrorMessage()
872 // going to the Main flow: a-la-carte or macro
873 msoLogger.debug(" ***** postProcessResponse(), BAD !!!")
874 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
875 throw new BpmnError("MSOWorkflowException")
879 } catch(BpmnError b){
880 msoLogger.debug("Rethrowing MSOWorkflowException")
883 } catch (Exception ex) {
885 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, postProcessResponse() - " + ex.getMessage()
886 msoLogger.debug(exceptionMessage)
887 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
888 throw new BpmnError("MSOWorkflowException")
894 public void prepareSuccessRollbackData(DelegateExecution execution) {
896 execution.setVariable("prefix",Prefix)
898 msoLogger.trace("Inside prepareSuccessRollbackData() of DoDeleteNetworkInstance ")
902 if (execution.getVariable("sdncVersion") != '1610') {
903 prepareRpcSDNCDeactivateRollback(execution)
904 prepareRpcSDNCUnassignRollback(execution)
906 prepareSDNCRollback(execution)
909 Map<String, String> rollbackData = new HashMap<String, String>();
910 String rollbackSDNCRequest = execution.getVariable(Prefix + "rollbackSDNCRequest")
911 if (rollbackSDNCRequest != null) {
912 if (rollbackSDNCRequest != "") {
913 rollbackData.put("rollbackSDNCRequest", execution.getVariable(Prefix + "rollbackSDNCRequest"))
916 String rollbackNetworkRequest = execution.getVariable(Prefix + "rollbackNetworkRequest")
917 if (rollbackNetworkRequest != null) {
918 if (rollbackNetworkRequest != "") {
919 rollbackData.put("rollbackNetworkRequest", execution.getVariable(Prefix + "rollbackNetworkRequest"))
922 String rollbackDeactivateSDNCRequest = execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")
923 if (rollbackDeactivateSDNCRequest != null) {
924 if (rollbackDeactivateSDNCRequest != "") {
925 rollbackData.put("rollbackDeactivateSDNCRequest", execution.getVariable(Prefix + "rollbackDeactivateSDNCRequest"))
928 execution.setVariable("rollbackData", rollbackData)
930 msoLogger.debug("** rollbackData : " + rollbackData)
931 execution.setVariable("WorkflowException", null)
934 } catch (Exception ex) {
935 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
936 msoLogger.debug(exceptionMessage)
937 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
943 public void prepareRpcSDNCUnassignRollback(DelegateExecution execution) {
945 execution.setVariable("prefix",Prefix)
947 msoLogger.trace("Inside prepareRpcSDNCUnassignRollbac() of DoDeleteNetworkInstance ")
952 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
953 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
955 String deleteSDNCResponse = execution.getVariable(Prefix + "deleteSDNCResponse")
956 String networkId = utils.getNodeText(deleteSDNCResponse, "network-id")
957 if (networkId == 'null') {networkId = ""}
958 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
960 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
961 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
962 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
963 String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "assign", "CreateNetworkInstance", cloudRegionId, networkId, null)
964 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
965 msoLogger.debug(sndcTopologyDeleteRequesAsString)
966 execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
967 msoLogger.debug(Prefix + "rollbackSDNCRequest" + "\n" + sndcTopologyDeleteRequesAsString)
968 msoLogger.debug(" Preparing request for RPC SDNC Topology 'assign-CreateNetworkInstance' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
971 } catch (Exception ex) {
972 String exceptionMessage = " Bpmn error encountered in DoDeleteNetworkInstance flow. prepareRpcSDNCUnassignRollback() - " + ex.getMessage()
973 msoLogger.debug(exceptionMessage)
974 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
980 public void prepareSDNCRollback (DelegateExecution execution) {
982 execution.setVariable("prefix", Prefix)
984 msoLogger.trace("Inside prepareSDNCRollback of DoDeleteNetworkInstance ")
989 String sdncCallback = UrnPropertiesReader.getVariable("mso.workflow.sdncadapter.callback",execution)
990 String deleteNetworkInput = execution.getVariable(Prefix + "networkRequest")
992 String networkId = ""
993 if (utils.nodeExists(deleteNetworkInput, "network-id")) {
994 networkId = utils.getNodeText(deleteNetworkInput, "network-id")
996 if (networkId == 'null') {networkId = ""}
998 String serviceInstanceId = utils.getNodeText(deleteNetworkInput, "service-instance-id")
1000 // get/set 'msoRequestId' and 'mso-request-id'
1001 String requestId = execution.getVariable("msoRequestId")
1002 if (requestId != null) {
1003 execution.setVariable("mso-request-id", requestId)
1005 requestId = execution.getVariable("mso-request-id")
1007 execution.setVariable(Prefix + "requestId", requestId)
1009 String queryAAIResponse = execution.getVariable(Prefix + "queryAAIResponse")
1011 SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils()
1012 String cloudRegionId = execution.getVariable(Prefix + "cloudRegionSdnc")
1013 // 1. prepare delete topology via SDNC Adapter SUBFLOW call
1014 String sndcTopologyDeleteRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "rollback", "DisconnectNetworkRequest", cloudRegionId, networkId, queryAAIResponse, null)
1015 String sndcTopologyDeleteRequesAsString = utils.formatXml(sndcTopologyDeleteRequest)
1016 msoLogger.debug(sndcTopologyDeleteRequesAsString)
1017 execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyDeleteRequesAsString)
1018 msoLogger.debug(Prefix + "rollbackSDNCRequest - " + "\n" + sndcTopologyDeleteRequesAsString)
1019 msoLogger.debug(" Preparing request for RPC SDNC Topology 'rollback-DisconnectNetworkRequest' rollback . . . - " + "\n" + sndcTopologyDeleteRequesAsString)
1022 } catch (Exception ex) {
1024 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance, prepareSDNCRollback() - " + ex.getMessage()
1025 msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, exceptionMessage, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + ex);
1026 msoLogger.debug(exceptionMessage)
1027 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
1033 public void setExceptionFlag(DelegateExecution execution){
1035 execution.setVariable("prefix",Prefix)
1037 msoLogger.trace("Inside setExceptionFlag() of DoDeleteNetworkInstance ")
1041 execution.setVariable(Prefix + "isException", true)
1043 if (execution.getVariable("SavedWorkflowException1") != null) {
1044 execution.setVariable(Prefix + "WorkflowException", execution.getVariable("SavedWorkflowException1"))
1046 execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
1048 msoLogger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
1050 } catch(Exception ex){
1051 String exceptionMessage = "Bpmn error encountered in DoDeleteNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
1052 msoLogger.debug(exceptionMessage)
1053 exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
1059 // *******************************
1060 // Build Error Section
1061 // *******************************
1063 public void processJavaException(DelegateExecution execution){
1065 execution.setVariable("prefix",Prefix)
1067 msoLogger.debug("Caught a Java Exception")
1068 msoLogger.debug("Started processJavaException Method")
1069 msoLogger.debug("Variables List: " + execution.getVariables())
1070 execution.setVariable("UnexpectedError", "Caught a Java Lang Exception") // Adding this line temporarily until this flows error handling gets updated
1071 exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")
1073 }catch(Exception e){
1074 msoLogger.debug("Caught Exception during processJavaException Method: " + e)
1075 execution.setVariable("UnexpectedError", "Exception in processJavaException method") // Adding this line temporarily until this flows error handling gets updated
1076 exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method")
1078 msoLogger.debug("Completed processJavaException Method of " + Prefix)