From fca7fafd4b48b826581bd2b34111abf998e9cbbf Mon Sep 17 00:00:00 2001 From: c00149107 Date: Fri, 27 Oct 2017 10:44:46 +0800 Subject: Add Relationship for e2e service and NS Add Relationship for e2e service and NS Change-Id: Id1bf6862b9d2325297e466d417dc1b169e157ff6 Issue-ID:SO-275 Signed-off-by: c00149107 --- .../DoCreateVFCNetworkServiceInstance.groovy | 77 ++++++++++++++++++++-- .../DoCreateVFCNetworkServiceInstance.bpmn | 4 +- 2 files changed, 72 insertions(+), 9 deletions(-) (limited to 'bpmn') diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy index 8354798345..2e62abd6f5 100644 --- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy +++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy @@ -53,7 +53,7 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces ExceptionUtil exceptionUtil = new ExceptionUtil() JsonUtils jsonUtil = new JsonUtils() - + /** * Pre Process the BPMN Flow Request * Inclouds: @@ -118,7 +118,8 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces * create NS task */ public void createNetworkService(Execution execution) { - + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO"," ***** createNetworkService *****", isDebugEnabled) String nsOperationKey = execution.getVariable("nsOperationKey"); String nsParameters = execution.getVariable("nsParameters"); String nsServiceName = execution.getVariable("nsServiceName") @@ -137,13 +138,15 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces nsInstanceId = jsonUtil.getJsonValue(aaiResponseAsString, "nsInstanceId") } execution.setVariable("nsInstanceId", nsInstanceId) - + utils.log("INFO"," *****Exit createNetworkService *****", isDebugEnabled) } /** * instantiate NS task */ public void instantiateNetworkService(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO"," ***** instantiateNetworkService *****", isDebugEnabled) String nsOperationKey = execution.getVariable("nsOperationKey"); String nsParameters = execution.getVariable("nsParameters"); String nsServiceName = execution.getVariable("nsServiceName") @@ -163,13 +166,16 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces if(returnCode== "200"){ jobId = jsonUtil.getJsonValue(aaiResponseAsString, "jobId") } - execution.setVariable("jobId", nsInstanceId) + execution.setVariable("jobId", jobId) + utils.log("INFO"," *****Exit instantiateNetworkService *****", isDebugEnabled) } /** * query NS task */ public void queryNSProgress(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO"," ***** queryNSProgress *****", isDebugEnabled) String jobId = execution.getVariable("jobId") String nsOperationKey = execution.getVariable("nsOperationKey"); String url = host + vfcUrl + "/jobs/" + jobId @@ -181,24 +187,81 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces operationStatus = jsonUtil.getJsonValue(aaiResponseAsString, "responseDescriptor.status") } execution.setVariable("operationStatus", operationStatus) + utils.log("INFO"," *****Exit queryNSProgress *****", isDebugEnabled) } /** * delay 5 sec */ public void timeDelay(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") try { Thread.sleep(5000); } catch(InterruptedException e) { - taskProcessor.utils.log("ERROR", "Time Delay exception" + e , isDebugEnabled) + utils.log("ERROR", "Time Delay exception" + e , isDebugEnabled) } } /** * finish NS task */ - public void finishNSCreate(Execution execution) { - //no need to do anything util now + public void addNSRelationship(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO"," ***** addNSRelationship *****", isDebugEnabled) + String operationStatus = execution.getVariable("operationStatus") + if(operationStatus != "finished"){ + utils.log("INFO"," create NS failed, so do not need to add relationship", isDebugEnabled) + return + } + String globalSubscriberId = execution.getVariable("globalSubscriberId") + String serviceType = execution.getVariable("serviceType") + String serviceId = execution.getVariable("serviceId") + String nsInstanceId = execution.getVariable("nsInstanceId") + String addRelationPayload = """ + service-instance + /aai/v11/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${serviceType}/service-instances/service-instance/${nsInstanceId} + + customer.global-customer-id + ${globalSubscriberId} + + + service-subscription.service-type + ${serviceType} + + + service-instance.service-instance-id + ${nsInstanceId} + + """ + String endpoint = execution.getVariable("URN_aai_endpoint") + String url = endpoint + "/aai/v11/business/customers/customer/" + globalSubscriberId + "/service-subscriptions/service-subscription/" + serviceType + "/service-instances/service-instance/" + serviceId + "/relationship-list/relationship" + executeAAIPutCall(execution, url, addRelationPayload) + utils.log("INFO"," *****Exit addNSRelationship *****", isDebugEnabled) + } + + public APIResponse executeAAIPutCall(Execution execution, String url, String payload){ + def isDebugEnabled = execution.getVariable("isDebugLogEnabled") + utils.log("INFO", " ======== Started Execute AAI Put Process ======== ", isDebugEnabled) + APIResponse apiResponse = null + try{ + String uuid = utils.getRequestID() + utils.log("INFO","Generated uuid is: " + uuid, isDebugEnabled) + utils.log("INFO","URL to be used is: " + url, isDebugEnabled) + String userName = execution.getVariable("URN_aai_auth") + String password = execution.getVariable("URN_mso_msoKey") + String basicAuthCred = utils.getBasicAuth(userName,password) + RESTConfig config = new RESTConfig(url); + RESTClient client = new RESTClient(config).addHeader("X-FromAppId", "MSO").addHeader("X-TransactionId", uuid).addHeader("Content-Type", "application/xml").addHeader("Accept","application/xml"); + if (basicAuthCred != null && !"".equals(basicAuthCred)) { + client.addAuthorizationHeader(basicAuthCred) + } + apiResponse = client.httpPut(payload) + utils.log("INFO","======== Completed Execute AAI Put Process ======== ", isDebugEnabled) + }catch(Exception e){ + utils.log("ERROR","Exception occured while executing AAI Put Call. Exception is: \n" + e, isDebugEnabled) + throw new BpmnError("MSOWorkflowException") + } + return apiResponse } /** diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn index ffe9dcab3e..67b0f968fa 100644 --- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn +++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn @@ -80,12 +80,12 @@ dcsi.instantiateNetworkService(execution)]]> def dcsi = new DoCreateVFCNetworkServiceInstance() dcsi.queryNSProgress(execution)]]> - + operationFinished_SequenceFlow SequenceFlow_0cq2q6g +dcsi.addNSRelationship(execution)]]> -- cgit 1.2.3-korg