2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
 
   6  * ================================================================================
 
   7  * Modifications Copyright (c) 2019 Samsung
 
   8  * ================================================================================
 
   9  * Licensed under the Apache License, Version 2.0 (the "License")
 
  10  * you may not use this file except in compliance with the License.
 
  11  * You may obtain a copy of the License at
 
  13  *      http://www.apache.org/licenses/LICENSE-2.0
 
  15  * Unless required by applicable law or agreed to in writing, software
 
  16  * distributed under the License is distributed on an "AS IS" BASIS,
 
  17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  18  * See the License for the specific language governing permissions and
 
  19  * limitations under the License.
 
  20  * ============LICENSE_END=========================================================
 
  23 package org.onap.so.bpmn.infrastructure.scripts
 
  25 import org.onap.so.bpmn.common.scripts.ExternalAPIUtilFactory
 
  27 import javax.ws.rs.NotFoundException
 
  28 import javax.ws.rs.core.Response
 
  30 import org.apache.commons.lang3.StringUtils
 
  31 import static org.apache.commons.lang3.StringUtils.*
 
  32 import org.camunda.bpm.engine.delegate.BpmnError
 
  33 import org.camunda.bpm.engine.delegate.DelegateExecution
 
  34 import org.json.JSONArray
 
  35 import org.json.JSONObject
 
  36 import org.onap.aai.domain.yang.SpPartner
 
  37 import org.onap.so.bpmn.common.recipe.ResourceInput
 
  38 import org.onap.so.bpmn.common.resource.ResourceRequestBuilder
 
  39 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
 
  40 import org.onap.so.bpmn.common.scripts.ExceptionUtil
 
  41 import org.onap.so.bpmn.common.scripts.ExternalAPIUtil
 
  42 import org.onap.so.bpmn.core.json.JsonUtils
 
  43 import org.onap.so.bpmn.core.UrnPropertiesReader
 
  44 import org.onap.aaiclient.client.aai.AAIObjectType
 
  45 import org.onap.aaiclient.client.aai.AAIResourcesClient
 
  46 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri
 
  47 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
 
  48 import org.slf4j.Logger
 
  49 import org.slf4j.LoggerFactory
 
  52  * This groovy class supports the <class>Delete3rdONAPE2EServiceInstance.bpmn</class> process.
 
  53  * flow for Delete 3rdONAPE2EServiceInstance in 3rdONAP
 
  55 public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcessor {
 
  57         String Prefix = "CRE3rdONAPESI_"
 
  59         ExceptionUtil exceptionUtil = new ExceptionUtil()
 
  61         JsonUtils jsonUtil = new JsonUtils()
 
  63     private static final Logger logger = LoggerFactory.getLogger( Delete3rdONAPE2EServiceInstance.class)
 
  65         public void checkSPPartnerInfoFromAAI (DelegateExecution execution) {
 
  66                 logger.info(" ***** Started checkSPPartnerInfo *****")
 
  68                         //get bpmn inputs from resource request.
 
  69                         String requestId = execution.getVariable("mso-request-id")
 
  70                         String requestAction = execution.getVariable("requestAction")
 
  71                         logger.info("The requestAction is: " + requestAction)
 
  72                         String recipeParamsFromRequest = execution.getVariable("recipeParams")
 
  73                         logger.info("The recipeParams is: " + recipeParamsFromRequest)
 
  74                         String resourceInput = execution.getVariable("resourceInput")
 
  75                         logger.info("The resourceInput is: " + resourceInput)
 
  76                         //Get ResourceInput Object
 
  77                         ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)
 
  78                         // set local resourceInput
 
  79                         execution.setVariable(Prefix + "ResourceInput", resourceInputObj)
 
  81                         String resourceInstanceId = resourceInputObj.getResourceInstancenUuid()
 
  82                         String sppartnerId = resourceInstanceId
 
  83                         execution.setVariable(Prefix + "SppartnerId", sppartnerId)
 
  85                         // Get Sppartner from AAI
 
  86                         getSPPartnerInAAI(execution)
 
  88                         String callSource = "UUI"
 
  89                         String sppartnerUrl = ""
 
  90                         if(execution.hasVariable(Prefix + "CallSource")) {
 
  91                                 callSource = execution.getVariable(Prefix + "CallSource")
 
  92                                 sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
 
  95                         boolean is3rdONAPExist = false
 
  96                         if(!isBlank(sppartnerUrl)) {
 
 100                         execution.setVariable("Is3rdONAPExist", is3rdONAPExist)
 
 101                         execution.setVariable(Prefix + "ServiceInstanceId", resourceInputObj.getServiceInstanceId())
 
 102                         execution.setVariable("mso-request-id", requestId)
 
 103                         execution.setVariable("mso-service-instance-id", resourceInputObj.getServiceInstanceId())
 
 105                 } catch (Exception ex){
 
 106                         String msg = "Exception in checkSPPartnerInfoFromAAI " + ex.getMessage()
 
 108 //                      exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
 
 112         public void checkLocallCall (DelegateExecution execution) {
 
 113                 logger.info(" ***** Started checkLocallCall *****")
 
 115                 boolean isLocalCall = true
 
 116                 String callSource = execution.getVariable(Prefix + "CallSource")
 
 117                 if("ExternalAPI".equalsIgnoreCase(callSource)) {
 
 120                 execution.setVariable("IsLocalCall", isLocalCall)
 
 123         public void preProcessRequest(DelegateExecution execution){
 
 124                 logger.info(" ***** Started preProcessRequest *****")
 
 128                         ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
 
 130                         String globalSubscriberId = resourceInputObj.getGlobalSubscriberId()
 
 131                         if (isBlank(globalSubscriberId)) {
 
 132                                 msg = "Input globalSubscriberId is null"
 
 136                         execution.setVariable("globalSubscriberId", globalSubscriberId)
 
 137                         logger.info( "globalSubscriberId:" + globalSubscriberId)
 
 139                         String serviceType = resourceInputObj.getServiceType()
 
 140                         if (isBlank(serviceType)) {
 
 141                                 msg = "Input serviceType is null"
 
 144                         execution.setVariable("serviceType", serviceType)
 
 145                         logger.info( "serviceType:" + serviceType)
 
 147                         String operationId = resourceInputObj.getOperationId()
 
 148                         if (isBlank(operationId)) {
 
 149                                 msg = "Input operationId is null"
 
 152                         execution.setVariable("operationId", operationId)
 
 153                         logger.info( "operationId:" + operationId)
 
 155                         String resourceName = resourceInputObj.getResourceInstanceName()
 
 156                         if (isBlank(resourceName)) {
 
 157                                 msg = "Input resourceName is null"
 
 160                         execution.setVariable("resourceName", resourceName)
 
 161                         logger.info("resourceName:" + resourceName)
 
 163                         String resourceTemplateId = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
 
 164                         if (isBlank(resourceTemplateId)) {
 
 165                                 msg = "Input resourceTemplateId is null"
 
 168                         execution.setVariable("resourceTemplateId", resourceTemplateId)
 
 169                         logger.info( "resourceTemplateId:" + resourceTemplateId)
 
 171                 } catch (Exception ex){
 
 172                         msg = "Exception in preProcessRequest " + ex.getMessage()
 
 174 //                      exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
 
 178         public void prepareUpdateProgress(DelegateExecution execution) {
 
 179                 logger.info(" ***** Started prepareUpdateProgress *****")
 
 180                 ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
 
 181                 String operType = resourceInputObj.getOperationType()
 
 182                 String resourceCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
 
 183                 String ServiceInstanceId = resourceInputObj.getServiceInstanceId()
 
 184                 String modelName = resourceInputObj.getResourceModelInfo().getModelName()
 
 185                 String operationId = resourceInputObj.getOperationId()
 
 186                 String progress = execution.getVariable("progress")
 
 187                 String status = execution.getVariable("status")
 
 188                 String statusDescription = execution.getVariable("statusDescription")
 
 191                 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 
 192                         xmlns:ns="http://org.onap.so/requestsdb">
 
 195                     <ns:updateResourceOperationStatus>
 
 196                                <operType>${operType}</operType>
 
 197                                <operationId>${operationId}</operationId>
 
 198                                <progress>${progress}</progress>
 
 199                                <resourceTemplateUUID>${resourceCustomizationUuid}</resourceTemplateUUID>
 
 200                                <serviceId>${ServiceInstanceId}</serviceId>
 
 201                                <status>${status}</status>
 
 202                                <statusDescription>${statusDescription}</statusDescription>
 
 203                     </ns:updateResourceOperationStatus>
 
 205                 </soapenv:Envelope>"""
 
 207                 setProgressUpdateVariables(execution, body)
 
 208                 logger.info(" ***** End prepareUpdateProgress *****")
 
 211         public void prepare3rdONAPRequest(DelegateExecution execution) {
 
 212                 logger.info(" ***** Started prepare3rdONAPRequest *****")
 
 214                 String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
 
 215                 String extAPIPath = sppartnerUrl + '/serviceOrder'
 
 216                 execution.setVariable("ExternalAPIURL", extAPIPath)
 
 218                 // ExternalAPI message format
 
 219                 String externalId = execution.getVariable("resourceName")
 
 220                 String serviceType = execution.getVariable("serviceType")
 
 221                 String category = "E2E Service"
 
 222                 String description = "Service Order from SPPartner"
 
 223                 String requestedStartDate = utils.generateCurrentTimeInUtc()
 
 224                 String requestedCompletionDate = utils.generateCurrentTimeInUtc()
 
 225                 String priority = "1" // 0-4 0:highest
 
 226                 String subscriberId = execution.getVariable("globalSubscriberId")
 
 227                 String customerRole = "ONAPcustomer"
 
 228                 // Below SO will pass serviceType as subscriberName and externalAPI will use
 
 229                 // the same serviceType in another domain instead of model name
 
 230                 String subscriberName = serviceType
 
 231                 String referredType = "Consumer"
 
 232                 String orderItemId = "1"
 
 233                 String action = "delete" //for delete
 
 234                 String serviceState = "active"
 
 235                 String serviceName = ""
 
 236                 String serviceId = execution.getVariable(Prefix + "SppartnerId")
 
 238                 queryServicefrom3rdONAP(execution)
 
 239                 String serviceSpecificationId = execution.getVariable(Prefix + "ServiceSpecificationId")
 
 241                 Map<String, String> valueMap = new HashMap<>()
 
 242                 valueMap.put("externalId", '"' + externalId + '"')
 
 243                 valueMap.put("category", '"' + category + '"')
 
 244                 valueMap.put("description", '"' + description + '"')
 
 245                 valueMap.put("requestedStartDate", '"' + requestedStartDate + '"')
 
 246                 valueMap.put("requestedCompletionDate", '"' + requestedCompletionDate + '"')
 
 247                 valueMap.put("priority", '"'+ priority + '"')
 
 248                 valueMap.put("subscriberId", '"' + subscriberId + '"')
 
 249                 valueMap.put("customerRole", '"' + customerRole + '"')
 
 250                 valueMap.put("subscriberName", '"' + subscriberName + '"')
 
 251                 valueMap.put("referredType", '"' + referredType + '"')
 
 252                 valueMap.put("orderItemId", '"' + orderItemId + '"')
 
 253                 valueMap.put("action", '"' + action + '"')
 
 254                 valueMap.put("serviceState", '"' + serviceState + '"')
 
 255                 valueMap.put("serviceId", '"' + serviceId + '"')
 
 256                 valueMap.put("serviceName", "null")
 
 257                 valueMap.put("serviceUuId", '"' + serviceSpecificationId + '"')
 
 259                 ExternalAPIUtil externalAPIUtil = new ExternalAPIUtilFactory().create()
 
 261                 valueMap.put("_requestInputs_",  "")
 
 263                 String payload = externalAPIUtil.setTemplate(ExternalAPIUtil.PostServiceOrderRequestsTemplate, valueMap)
 
 264                 execution.setVariable(Prefix + "Payload", payload)
 
 265                 logger.info( "***** Exit prepare3rdONAPRequest *****")
 
 268         private void queryServicefrom3rdONAP(DelegateExecution execution)
 
 270                 logger.info(" ***** Started queryServicefrom3rdONAP *****")
 
 273                 String globalSubscriberId = execution.getVariable("globalSubscriberId")
 
 274                 String SppartnerServiceId = execution.getVariable(Prefix + "SppartnerId")
 
 276                 //https://{api_url}/nbi/api/v1/service?relatedParty.id=${globalSubscriberId}
 
 277                 String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
 
 278                 String extAPIPath = sppartnerUrl + "/service?relatedParty.id=" + globalSubscriberId
 
 279                 logger.debug("queryServicefrom3rdONAP externalAPIURL is: " + extAPIPath)
 
 281                 ExternalAPIUtil externalAPIUtil = new ExternalAPIUtilFactory().create()
 
 283                 Response response = externalAPIUtil.executeExternalAPIGetCall(execution, extAPIPath)
 
 285                 int responseCode = response.getStatus()
 
 286                 execution.setVariable(Prefix + "GetServiceResponseCode", responseCode)
 
 287                 logger.debug("Get Service response code is: " + responseCode)
 
 289                 String extApiResponse = response.readEntity(String.class)
 
 291                 execution.setVariable(Prefix + "GetServiceResponse", extApiResponse)
 
 292                 logger.debug("queryServicefrom3rdONAP response body is: " + extApiResponse)
 
 294                 //Process Response //200 OK 201 CREATED 202 ACCEPTED
 
 295                 if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
 
 297                         logger.debug("Get Service Received a Good Response")
 
 298                         JSONArray responseList = new JSONArray(extApiResponse)
 
 299                         for(int i=0; i< responseList.length(); i++) {
 
 300                                 JSONObject obj = responseList.getJSONObject(i)
 
 301                                 String svcId  = obj.get("id")
 
 302                                 if(StringUtils.equalsIgnoreCase(SppartnerServiceId, svcId)) {
 
 303                                         JSONObject serviceSpecification = obj.get("serviceSpecification")
 
 304                                         String serviceUuid = serviceSpecification.get("id")
 
 305                                         execution.setVariable(Prefix + "ServiceSpecificationId", serviceUuid)
 
 311                         logger.error("Get Service Received a Bad Response Code. Response Code is: " + responseCode)
 
 312 //                      exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get Service Received a bad response from 3rdONAP External API")
 
 314         }catch(Exception e) {
 
 315             logger.error("queryServicefrom3rdONAP exception:" + e.getMessage())
 
 317                 logger.info( "***** Exit queryServicefrom3rdONAP *****")
 
 320         public void doDeleteE2ESIin3rdONAP(DelegateExecution execution) {
 
 321                 logger.info(" ***** Started doDeleteE2ESIin3rdONAP *****")
 
 323                 String extAPIPath = execution.getVariable("ExternalAPIURL")
 
 324                 String payload = execution.getVariable(Prefix + "Payload")
 
 325                 logger.debug("doDeleteE2ESIin3rdONAP externalAPIURL is: " + extAPIPath)
 
 326                 logger.debug("doDeleteE2ESIin3rdONAP payload is: " + payload)
 
 328                 ExternalAPIUtil externalAPIUtil = new ExternalAPIUtilFactory().create()
 
 329                 execution.setVariable("ServiceOrderId", "")
 
 331                 Response response = externalAPIUtil.executeExternalAPIPostCall(execution, extAPIPath, payload)
 
 333                 int responseCode = response.getStatus()
 
 334                 execution.setVariable(Prefix + "PostServiceOrderResponseCode", responseCode)
 
 335                 logger.debug("Post ServiceOrder response code is: " + responseCode)
 
 337                 String extApiResponse = response.readEntity(String.class)
 
 338                 JSONObject responseObj = new JSONObject(extApiResponse)
 
 339                 execution.setVariable(Prefix + "PostServiceOrderResponse", extApiResponse)
 
 341                 logger.debug("doDeleteE2ESIin3rdONAP response body is: " + extApiResponse)
 
 344                 if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
 
 345                         //200 OK 201 CREATED 202 ACCEPTED
 
 347                         logger.debug("Post ServiceOrder Received a Good Response")
 
 348                         String serviceOrderId = responseObj.get("id")
 
 349                         execution.setVariable(Prefix + "SuccessIndicator", true)
 
 350                         execution.setVariable("ServiceOrderId", serviceOrderId)
 
 351                         logger.info("Post ServiceOrderid is: " + serviceOrderId)
 
 354                         logger.error("Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
 
 355 //                      exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Post ServiceOrder Received a bad response from 3rdONAP External API")
 
 357                 }catch(Exception e) {
 
 358                         logger.error("doDeleteE2ESIin3rdONAP exception:" + e.getMessage())
 
 360                 logger.info( "***** Exit doDeleteE2ESIin3rdONAP *****")
 
 364         public void getE2ESIProgressin3rdONAP(DelegateExecution execution) {
 
 365                 logger.info(" ***** Started getE2ESIProgressin3rdONAP *****")
 
 368                 String extAPIPath = execution.getVariable("ExternalAPIURL")
 
 369                 extAPIPath += "/" + execution.getVariable("ServiceOrderId")
 
 370                 logger.debug("getE2ESIProgressin3rdONAP delete externalAPIURL is: " + extAPIPath)
 
 372                 ExternalAPIUtil externalAPIUtil = new ExternalAPIUtilFactory().create()
 
 374                 Response response = externalAPIUtil.executeExternalAPIGetCall(execution, extAPIPath)
 
 376                 int responseCode = response.getStatus()
 
 377                 execution.setVariable(Prefix + "GetServiceOrderResponseCode", responseCode)
 
 378                 logger.debug("Get ServiceOrder response code is: " + responseCode)
 
 380                 String extApiResponse = response.readEntity(String.class)
 
 381                 JSONObject responseObj = new JSONObject(extApiResponse)
 
 382                 execution.setVariable(Prefix + "GetServiceOrderResponse", extApiResponse)
 
 384                 logger.debug( "getE2ESIProgressin3rdONAP delete response body is: " + extApiResponse)
 
 386                 //Process Response //200 OK 201 CREATED 202 ACCEPTED
 
 387                 if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
 
 389                         logger.debug("Get ServiceOrder Received a Good Response")
 
 391                         String orderState = responseObj.get("state")
 
 392                         if("REJECTED".equalsIgnoreCase(orderState)) {
 
 393                                 execution.setVariable("progress", 100)
 
 394                                 execution.setVariable("status", "error")
 
 395                                 execution.setVariable("statusDescription", "Delete Service Order Status is REJECTED")
 
 399                         JSONArray items = responseObj.getJSONArray("orderItem")
 
 400                         JSONObject item = items[0]
 
 401                         JSONObject service = item.get("service")
 
 402                         String sppartnerServiceId = service.get("id")
 
 403                         if(sppartnerServiceId == null || sppartnerServiceId.equals("null")) {
 
 404                                 execution.setVariable("progress", 100)
 
 405                                 execution.setVariable("status", "error")
 
 406                                 execution.setVariable("statusDescription", "Delete Service Order Status get null sppartnerServiceId")
 
 407                                 logger.error("null sppartnerServiceId while getting progress from externalAPI")
 
 410                         execution.setVariable(Prefix + "SppartnerServiceId", sppartnerServiceId)
 
 412                         String serviceOrderState = item.get("state")
 
 413                         execution.setVariable(Prefix + "SuccessIndicator", true)
 
 414                         execution.setVariable("ServiceOrderState", serviceOrderState)
 
 416                         // Get serviceOrder State and process progress
 
 417                         if("ACKNOWLEDGED".equalsIgnoreCase(serviceOrderState)) {
 
 418                                 execution.setVariable("progress", 15)
 
 419                                 execution.setVariable("status", "processing")
 
 420                                 execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
 
 422                         else if("INPROGRESS".equalsIgnoreCase(serviceOrderState)) {
 
 423                                 execution.setVariable("progress", 40)
 
 424                                 execution.setVariable("status", "processing")
 
 425                                 execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
 
 427                         else if("COMPLETED".equalsIgnoreCase(serviceOrderState)) {
 
 428                                 execution.setVariable("progress", 100)
 
 429                                 execution.setVariable("status", "finished")
 
 430                                 execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
 
 432                         else if("FAILED".equalsIgnoreCase(serviceOrderState)) {
 
 433                                 execution.setVariable("progress", 100)
 
 434                                 execution.setVariable("status", "error")
 
 435                                 execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
 
 438                                 execution.setVariable("progress", 100)
 
 439                                 execution.setVariable("status", "error")
 
 440                                 execution.setVariable("statusDescription", "Delete Service Order Status is unknown")
 
 444                         logger.debug("Get ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
 
 445                         execution.setVariable("progress", 100)
 
 446                         execution.setVariable("status", "error")
 
 447                         execution.setVariable("statusDescription", "Get Delete ServiceOrder Received a bad response")
 
 448 //                      exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get Delete ServiceOrder Received a bad response from 3rdONAP External API")
 
 450         }catch(Exception e) {
 
 451             execution.setVariable("progress", 100)
 
 452             execution.setVariable("status", "error")
 
 453             execution.setVariable("statusDescription", "Get Delete ServiceOrder Exception")
 
 454             logger.error("getE2ESIProgressin3rdONAP exception:" + e.getMessage())
 
 456                 logger.info( "***** Exit getE2ESIProgressin3rdONAP *****")
 
 462         public void timeDelay(DelegateExecution execution) {
 
 465                 } catch(InterruptedException e) {
 
 466                         logger.error("Time Delay exception" + e )
 
 470         private void getSPPartnerInAAI(DelegateExecution execution) {
 
 471                 logger.info(" ***** Started getSPPartnerInAAI *****")
 
 473                 String id = execution.getVariable(Prefix + "SppartnerId")
 
 475                 AAIResourcesClient client = new AAIResourcesClient()
 
 476                 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SP_PARTNER, id)
 
 477                 SpPartner sp = client.get(uri).asBean(SpPartner.class).get()
 
 479                 logger.debug("GET sppartner Received a Good Response")
 
 480                 execution.setVariable(Prefix + "SuccessIndicator", true)
 
 481                 execution.setVariable(Prefix + "FoundIndicator", true)
 
 483 //              String sppartnerId = sp.getSpPartnerId()
 
 484 //              execution.setVariable(Prefix + "SppartnerId", sppartnerId)
 
 485 //              logger.debug(" SppartnerId is: " + sppartnerId)
 
 486                 String sppartnerUrl = sp.getUrl()
 
 487                 execution.setVariable(Prefix + "SppartnerUrl", sppartnerUrl)
 
 488                 logger.debug(" SppartnerUrl is: " + sppartnerUrl)
 
 489                 String callSource = sp.getCallsource()
 
 490                 execution.setVariable(Prefix + "CallSource", callSource)
 
 491                 logger.debug(" CallSource is: " + callSource)
 
 492                 String sppartnerVersion = sp.getResourceVersion()
 
 493                 execution.setVariable(Prefix + "SppartnerVersion", sppartnerVersion)
 
 494                 logger.debug(" Resource Version is: " + sppartnerVersion)
 
 495         } catch (Exception ex) {
 
 496             String msg = "Exception in Delete3rdONAPE2EServiceInstance.saveSPPartnerInAAI. " + ex.getMessage()
 
 498 //            throw new BpmnError("MSOWorkflowException")
 
 501                 logger.info( "***** Exit getSPPartnerInAAI *****")
 
 504         public void deleteSPPartnerInAAI(DelegateExecution execution) {
 
 505                 logger.info(" ***** Started deleteSPPartnerInAAI *****")
 
 508                 String sppartnerId = execution.getVariable(Prefix + "SppartnerId")
 
 510                 AAIResourcesClient client = new AAIResourcesClient()
 
 511                 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SP_PARTNER, sppartnerId)
 
 513                 logger.debug("Delete sppartner Received a Good Response")
 
 514                 execution.setVariable(Prefix + "SuccessIndicator", true)
 
 515         } catch (Exception ex) {
 
 516             String msg = "Exception in Delete3rdONAPE2EServiceInstance.deleteSPPartnerInAAI. " + ex.getMessage()
 
 518 //            throw new BpmnError("MSOWorkflowException")
 
 522                 logger.info( "**** Exit deleteSPPartnerInAAI ****")
 
 525         private void setProgressUpdateVariables(DelegateExecution execution, String body) {
 
 526                 def dbAdapterEndpoint = UrnPropertiesReader.getVariable("mso.adapters.openecomp.db.endpoint", execution)
 
 527                 execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)
 
 528                 execution.setVariable("CVFMI_updateResOperStatusRequest", body)
 
 531         public void postProcess(DelegateExecution execution){
 
 532                 logger.info(" ***** Started postProcess *****")
 
 533                 String responseCode = execution.getVariable(Prefix + "PutSppartnerResponseCode")
 
 534                 String responseObj = execution.getVariable(Prefix + "PutSppartnerResponse")
 
 536                 logger.info("response from AAI for put sppartner, response code :" + responseCode + "  response object :" + responseObj)
 
 537                 logger.info(" ***** Exit postProcess *****")
 
 540         public void sendSyncResponse (DelegateExecution execution) {
 
 541                 logger.debug(" *** sendSyncResponse *** ")
 
 544                         String operationStatus = "finished"
 
 545                         // RESTResponse for main flow
 
 546                         String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
 
 547                         logger.debug(" sendSyncResponse to APIH:" + "\n" + resourceOperationResp)
 
 548                         sendWorkflowResponse(execution, 202, resourceOperationResp)
 
 549                         execution.setVariable("sentSyncResponse", true)
 
 551                 } catch (Exception ex) {
 
 552                         String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
 
 554 //                      exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
 
 556                 logger.debug(" ***** Exit sendSyncResopnse *****")