diff options
Diffstat (limited to 'bpmn')
4 files changed, 274 insertions, 293 deletions
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy index 5e50b9d52d..2d18108acd 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSI.groovy @@ -78,30 +78,19 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { String operationType = execution.getVariable("operationType") String oStatus= "" - if(operationType.equals("activateInstance")) { oStatus ="activated" } else { oStatus ="deactivated" } - execution.setVariable("oStatus", oStatus) String sNssaiListAsString = jsonUtil.getJsonValue(execution.getVariable("sliceParams"), "snssaiList") - - logger.debug("sNssaiListAsString "+sNssaiListAsString) - List<String> sNssaiList = jsonUtil.StringArrayToList(sNssaiListAsString) - - logger.debug("sNssaiList "+sNssaiList) - - String sNssai = sNssaiList.get(0) execution.setVariable("sNssai", sNssai) - - logger.debug("sNssai: "+sNssai) - String serviceType = execution.getVariable("subscriptionServiceType") execution.setVariable("serviceType", serviceType) + logger.debug("operationType: {} , sNssai: {}, serviceType: {}.",operationType, sNssai, serviceType) logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: preProcessRequest ****") } @@ -117,31 +106,30 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { if(nsi.isPresent()) { List<Relationship> relationshipList = nsi.get().getRelationshipList()?.getRelationship() List spiWithsNssaiAndOrchStatusList = new ArrayList<>() - for (Relationship relationship : relationshipList) { String relatedTo = relationship.getRelatedTo() - if (relatedTo == "service-instance") { + if (("service-instance").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() List<RelatedToProperty> relatedToPropertyList = relationship.getRelatedToProperty() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "service-instance.service-instance-id") { + if (("service-instance.service-instance-id").equals(relationshipData.getRelationshipKey())) { execution.setVariable("networkServiceInstanceId", relationshipData.getRelationshipValue()) } } for (RelatedToProperty relatedToProperty : relatedToPropertyList) { - if (relatedToProperty.getPropertyKey() == "service-instance.service-instance-name") { + if (("service-instance.service-instance-name").equals(relatedToProperty.getPropertyKey())) { execution.setVariable("networkServiceInstanceName", relatedToProperty.getPropertyValue()) } } } //If related to is allotted-Resource - if (relatedTo == "allotted-resource") { + if (("allotted-resource").equals(relatedTo)) { //get slice Profile Instance Id from allotted resource in list by nssi List<String> sliceProfileInstanceIdList = new ArrayList<>() List<RelationshipData> relationshipDataList = relationship.getRelationshipData() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "service-instance.service-instance-id") { + if (relationshipData.getRelationshipKey().equals("service-instance.service-instance-id")) { sliceProfileInstanceIdList.add(relationshipData.getRelationshipValue()) } } @@ -153,13 +141,13 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { Optional<ServiceInstance> sliceProfileServiceInstance = sliceProfileInstanceWrapper.asBean(ServiceInstance.class) if (sliceProfileServiceInstance.isPresent()) { String orchestrationStatus= sliceProfileServiceInstance.get().getOrchestrationStatus() - String sNssai = sliceProfileServiceInstance.get().getSliceProfiles().getSliceProfile().get(0).getSNssai() - if(sNssai.equals(execution.getVariable("sNssai"))) { + String sNssai = sliceProfileServiceInstance.get().getEnvironmentContext() + String sNssaiValueFromRequest = execution.getVariable("sNssai") + if(sNssai.equals(sNssaiValueFromRequest)) { orchestrationStatus = execution.getVariable("oStatus") //Slice Profile Service Instance to be updated in AAI - execution.setVariable("sliceProfileServiceInstance", sliceProfileServiceInstance) + execution.setVariable("sliceProfileServiceInstance", sliceProfileServiceInstance.get()) } - Map<String, Object> spiWithsNssaiAndOrchStatus = new LinkedHashMap<>() spiWithsNssaiAndOrchStatus.put("snssai", sNssai) spiWithsNssaiAndOrchStatus.put("status", orchestrationStatus) @@ -185,18 +173,13 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { Map<String, Object> nSsai= new LinkedHashMap<>() nSsai.put("sNssai", instanceParamsvalues) String supportedsNssaiJson = mapper.writeValueAsString(nSsai) - //SupportedNssai - Map<String, Object> supportedNssai= new LinkedHashMap<>() - supportedNssai.put("supportedNssai", supportedsNssaiJson) - logger.debug("**** supportedsNssaiJson**** "+supportedNssai) - logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: prepareVnfInstanceParamsJson ****") - return supportedNssai + logger.debug(Prefix+" **** Exit DoActivateCoreNSSI ::: prepareVnfInstanceParamsJson ****") + return supportedsNssaiJson } private void getServiceInstanceRelationships(DelegateExecution execution) { logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: getServiceInstanceRelationships ****") String serviceInstanceId = execution.getVariable("networkServiceInstanceId") - logger.debug("**** serviceInstanceId :: getServiceInstanceRelationships :: "+serviceInstanceId) String errorMsg = "query Network Service Instance from AAI failed" AAIResultWrapper wrapper = queryAAI(execution, Types.SERVICE_INSTANCE, serviceInstanceId, errorMsg) Optional<ServiceInstance> si = wrapper.asBean(ServiceInstance.class) @@ -207,29 +190,33 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { List<Relationship> relationshipList = si.get().getRelationshipList()?.getRelationship() for (Relationship relationship : relationshipList) { String relatedTo = relationship.getRelatedTo() - if (relatedTo == "owning-entity") { + if (("owning-entity").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "owning-entity.owning-entity-id") { + if (("owning-entity.owning-entity-id").equals(relationshipData.getRelationshipKey())) { execution.setVariable("owningEntityId", relationshipData.getRelationshipValue()) } } - } else if (relatedTo == "generic-vnf") { + } else if (("generic-vnf").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() List<RelatedToProperty> relatedToPropertyList = relationship.getRelatedToProperty() //Get VnfId for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "generic-vnf.vnf-id") { + if (("generic-vnf.vnf-id").equals(relationshipData.getRelationshipKey())) { execution.setVariable("vnfId", relationshipData.getRelationshipValue()) - String vnfId = relationshipData.getRelationshipValue() - logger.debug("vnfId :"+vnfId) } } - } else if (relatedTo == "project") { + //Get Vnf Name Check If necessary + for (RelatedToProperty relatedToProperty : relatedToPropertyList) { + if (("generic-vnf.vnf-name").equals(relatedToProperty.getPropertyKey())) { + execution.setVariable("vnfName", relatedToProperty.getPropertyValue()) + } + } + } else if (("project").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "project.project-name") { + if (("project.project-name").equals(relationshipData.getRelationshipKey())) { execution.setVariable("projectName", relationshipData.getRelationshipValue()) } } @@ -254,34 +241,34 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { List<Relationship> relationshipList = vnf.get().getRelationshipList()?.getRelationship() for (Relationship relationship : relationshipList) { String relatedTo = relationship.getRelatedTo() - if (relatedTo == "tenant") { + if (("tenant").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "tenant.tenant-id") { + if (("tenant.tenant-id").equals(relationshipData.getRelationshipKey())) { execution.setVariable("tenantId", relationshipData.getRelationshipValue()) } } - } else if (relatedTo == "cloud-region") { + } else if (("cloud-region").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "cloud-region.cloud-owner") { + if (("cloud-region.cloud-owner").equals(relationshipData.getRelationshipKey())) { execution.setVariable("cloudOwner", relationshipData.getRelationshipValue()) - } else if (relationshipData.getRelationshipKey() == "cloud-region.cloud-region-id") { + } else if (("cloud-region.cloud-region-id").equals(relationshipData.getRelationshipKey())) { execution.setVariable("lcpCloudRegionId", relationshipData.getRelationshipValue()) } } - } else if (relatedTo == "platform") { + } else if (("platform").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "platform.platform-name") { + if (("platform.platform-name").equals(relationshipData.getRelationshipKey())) { execution.setVariable("platformName", relationshipData.getRelationshipValue()) } } - } else if (relatedTo == "line-of-business") { + } else if (("line-of-business").equals(relatedTo)) { List<RelationshipData> relationshipDataList = relationship.getRelationshipData() for (RelationshipData relationshipData : relationshipDataList) { - if (relationshipData.getRelationshipKey() == "line-of-business.line-of-business-name") { + if (("line-of-business.line-of-business-name").equals(relationshipData.getRelationshipKey())) { execution.setVariable("lineOfBusinessName", relationshipData.getRelationshipValue()) } } @@ -334,11 +321,9 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { String serviceVnfs = jsonUtil.getJsonValue(json, "serviceResources.serviceVnfs") ?: "" String serviceModelInfo = jsonUtil.getJsonValue(json, "serviceResources.modelInfo") ?: "" - - execution.setVariable("serviceVnfs",serviceVnfs) execution.setVariable("serviceModelInfo", serviceModelInfo) - logger.debug(Prefix +" ***** serviceVnfs is: "+ serviceVnfs) + logger.debug(Prefix +" ***** serviceVnfs : "+ serviceVnfs) }catch(BpmnError e){ throw e } catch (Exception ex){ @@ -352,9 +337,7 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { public void prepareSOMacroRequestPayLoad(DelegateExecution execution) { logger.debug("**** Enter DoActivateCoreNSSI ::: prepareSOMacroRequestPayLoad ****") String json = execution.getVariable("serviceVnfs") - logger.debug(">>>> json "+json) List<Object> vnfList = mapper.readValue(json, List.class); - logger.debug("vnfList: "+vnfList) Map<String,Object> serviceMap = mapper.readValue(execution.getVariable("serviceModelInfo"), Map.class); ModelInfo serviceModelInfo = new ModelInfo() serviceModelInfo.setModelType(ModelType.service) @@ -362,18 +345,12 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { serviceModelInfo.setModelVersionId(serviceMap.get("modelUuid")) serviceModelInfo.setModelName(serviceMap.get("modelName")) serviceModelInfo.setModelVersion(serviceMap.get("modelVersion")) - - logger.debug("serviceModelInfo: "+serviceModelInfo) //List of Vnfs List<Object> vnfModelInfoList = new ArrayList<>() Map vnfMap = vnfList.get(0) - ModelInfo vnfModelInfo = vnfMap.get("modelInfo") - logger.debug("vnfModelInfo "+vnfModelInfo) - //List of VFModules List<Map<String, Object>> vfModuleList = vnfMap.get("vfModules") - logger.debug("vfModuleList "+vfModuleList) //List of VfModules List<ModelInfo> vfModelInfoList = new ArrayList<>() @@ -381,17 +358,19 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { //Traverse VFModules List and add in vfModelInfoList for (vfModule in vfModuleList) { ModelInfo vfModelInfo = vfModule.get("modelInfo") - logger.debug("vfModelInfo "+vfModelInfo) + vfModelInfo.setModelCustomizationId(vfModelInfo.getModelCustomizationUuid()) + vfModelInfo.setModelVersionId(vfModelInfo.getModelId()) vfModelInfoList.add(vfModelInfo) } + String networkServiceInstanceName = execution.getVariable("networkServiceInstanceName") //RequestInfo RequestInfo requestInfo = new RequestInfo() //Dummy Product FamilyId requestInfo.setProductFamilyId("test1234") requestInfo.setSource("VID") - requestInfo.setInstanceName(execution.getVariable("networkServiceInstanceName")) + requestInfo.setInstanceName(networkServiceInstanceName) requestInfo.setSuppressRollback(false) requestInfo.setRequestorId("NBI") @@ -401,10 +380,13 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { serviceParams.add(serviceParamsValues) //Cloud Configuration + String lcpCloudRegionId = execution.getVariable("lcpCloudRegionId") + String tenantId = execution.getVariable("tenantId") + String cloudOwner = execution.getVariable("cloudOwner") CloudConfiguration cloudConfiguration = new CloudConfiguration() - cloudConfiguration.setLcpCloudRegionId(execution.getVariable("lcpCloudRegionId")) - cloudConfiguration.setTenantId(execution.getVariable("tenantId")) - cloudConfiguration.setCloudOwner(execution.getVariable("cloudOwner")) + cloudConfiguration.setLcpCloudRegionId(lcpCloudRegionId) + cloudConfiguration.setTenantId(tenantId) + cloudConfiguration.setCloudOwner(cloudOwner) //VFModules List List<Map<String, Object>> vfModules = new ArrayList<>() @@ -412,26 +394,33 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { //Individual VFModule List Map<String, Object> vfModuleValues = new LinkedHashMap<>() vfModuleValues.put("modelInfo", vfModuleModelInfo) - vfModuleValues.put("instanceName", vfModuleModelInfo.getModelInstanceName()) + vfModuleValues.put("instanceName", vfModuleModelInfo.getModelName()) //VFModule InstanceParams should be empty or this field should not be there? List<Map<String, Object>> vfModuleInstanceParams = new ArrayList<>() vfModuleValues.put("instanceParams", vfModuleInstanceParams) + vfModules.add(vfModuleValues) } //Vnf intsanceParams - ObjectMapper objectMapper = new ObjectMapper(); - Map<String, Object> sliceProfile = objectMapper.readValue(execution.getVariable("sliceProfile"), Map.class); - - List vnfInstanceParamsList = new ArrayList<>() + List<Map<String, Object>> vnfInstanceParamsList = new ArrayList<>() String supportedsNssaiJson= prepareVnfInstanceParamsJson(execution) - vnfInstanceParamsList.add(supportedsNssaiJson) + + Map<String, Object> supportedNssai= new LinkedHashMap<>() + supportedNssai.put("supportedsNssai", supportedsNssaiJson) + vnfInstanceParamsList.add(supportedNssai) Platform platform = new Platform() - platform.setPlatformName(execution.getVariable("platform")) + String platformName = execution.getVariable("platformName") + platform.setPlatformName(platformName) LineOfBusiness lineOfbusiness = new LineOfBusiness() - lineOfbusiness.setLineOfBusinessName(execution.getVariable("lineOfBusiness")) + String lineOfBusinessName = execution.getVariable("lineOfBusinessName") + lineOfbusiness.setLineOfBusinessName(lineOfBusinessName) + + ModelInfo vnfModelInfo = vnfMap.get("modelInfo") + vnfModelInfo.setModelCustomizationId(vnfModelInfo.getModelCustomizationUuid()) + vnfModelInfo.setModelVersionId(vnfModelInfo.getModelId()) //Vnf Values Map<String, Object> vnfValues = new LinkedHashMap<>() @@ -441,7 +430,7 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { vnfValues.put("cloudConfiguration", cloudConfiguration) vnfValues.put("vfModules", vfModules) vnfValues.put("modelInfo", vnfModelInfo) - vnfValues.put("instanceName", execution.getVariable("vnfInstanceName")) + vnfValues.put("instanceName", vnfModelInfo.getModelInstanceName()) vnfValues.put("instanceParams",vnfInstanceParamsList) vnfModelInfoList.add(vnfValues) @@ -450,9 +439,10 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { serviceResources.put("vnfs", vnfModelInfoList) //Service Values + String serviceInstanceName = execution.getVariable("networkServiceInstanceName") Map<String, Object> serviceValues = new LinkedHashMap<>() serviceValues.put("modelInfo", serviceModelInfo) - serviceValues.put("instanceName", execution.getVariable("networkServiceInstanceName")) + serviceValues.put("instanceName", serviceInstanceName) serviceValues.put("resources", serviceResources) serviceValues.put("instanceParams", serviceParams) @@ -470,22 +460,26 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { userParams.add(userParamsValues) //Request Parameters + String serviceType = execution.getVariable("serviceType") RequestParameters requestParameters = new RequestParameters() requestParameters.setaLaCarte(false) - requestParameters.setSubscriptionServiceType(execution.getVariable("serviceType")) + requestParameters.setSubscriptionServiceType(serviceType) requestParameters.setUserParams(userParams) //SubscriberInfo + String globalSubscriberId = execution.getVariable("globalSubscriberId") SubscriberInfo subscriberInfo = new SubscriberInfo() - subscriberInfo.setGlobalSubscriberId(execution.getVariable("globalSubscriberId")) + subscriberInfo.setGlobalSubscriberId(globalSubscriberId) //Owning Entity + String owningEntityId = execution.getVariable("owningEntityId") OwningEntity owningEntity = new OwningEntity() - owningEntity.setOwningEntityId(execution.getVariable("owningEntityId")) + owningEntity.setOwningEntityId(owningEntityId) //Project + String projectName = execution.getVariable("projectName") Project project = new Project() - project.setProjectName(execution.getVariable("projectName")) + project.setProjectName(projectName) RequestDetails requestDetails = new RequestDetails() requestDetails.setModelInfo(serviceModelInfo) @@ -498,8 +492,7 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { Map<String, Object> requestDetailsMap = new LinkedHashMap<>() requestDetailsMap.put("requestDetails", requestDetails) - String requestPayload = objectMapper.writeValueAsString(requestDetailsMap) - + String requestPayload = mapper.writeValueAsString(requestDetailsMap) logger.debug("requestDetails "+requestPayload) execution.setVariable("requestPayload", requestPayload) @@ -511,23 +504,23 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: sendPutRequestToSOMacro ****") try { String msoEndpoint = UrnPropertiesReader.getVariable("mso.infra.endpoint.url", execution) - String url = msoEndpoint+"/serviceInstantiation/v7/serviceInstances/"+execution.getVariable("networkServiceInstanceId")+"/vnfs/"+execution.getVariable("vnfId") + String networkServiceInstanceId = execution.getVariable("networkServiceInstanceId") + String vnfId = execution.getVariable("vnfId") + String url = msoEndpoint+"/serviceInstantiation/v7/serviceInstances/"+networkServiceInstanceId+"/vnfs/"+vnfId String requestBody = execution.getVariable("requestPayload") String msoKey = UrnPropertiesReader.getVariable("mso.msoKey", execution) - String basicAuth = UrnPropertiesReader.getVariable("mso.infra.endpoint.auth", execution) - String basicAuthValue = utils.encrypt(basicAuth, msoKey) - String encodeString = utils.getBasicAuth(basicAuthValue, msoKey) - + String basicAuth = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution) + String encodeString = utils.getBasicAuth(basicAuth, msoKey) + logger.debug("msoEndpoint: "+msoEndpoint +" "+ "url: "+url +" requestBody: "+requestBody +" "+ "encodeString: "+encodeString) HttpClient httpClient = getHttpClientFactory().newJsonClient(new URL(url), ONAPComponents.SO) httpClient.addAdditionalHeader("Authorization", encodeString) httpClient.addAdditionalHeader("Accept", "application/json") Response httpResponse = httpClient.put(requestBody) handleSOResponse(httpResponse, execution) - } catch (BpmnError e) { throw e } catch (any) { - String msg = "Exception in DoActivateCoreNSSSI " + any.getCause() + String msg = Prefix+" Exception in DoActivateCoreNSSI " + any.getCause() logger.error(msg) exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg) } @@ -546,15 +539,15 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { if (soResponseCode >= 200 && soResponseCode < 204 && httpResponse.hasEntity()) { String soResponse = httpResponse.readEntity(String.class) - String operationId = execution.getVariable("operationId") - def macroOperationId = jsonUtil.getJsonValue(soResponse, "operationId") + logger.debug("soResponse: "+soResponse) + String macroOperationId = jsonUtil.getJsonValue(soResponse, "requestReferences.requestId") + String requestSelfLink = jsonUtil.getJsonValue(soResponse, "requestReferences.requestSelfLink") execution.setVariable("macroOperationId", macroOperationId) + execution.setVariable("requestSelfLink", requestSelfLink) execution.setVariable("isSOTimeOut", "no") execution.setVariable("isSOResponseSucceed","yes") } - else - { - String serviceName = execution.getVariable("serviceInstanceName") + else { execution.setVariable("isSOResponseSucceed","no") prepareFailedOperationStatusUpdate(execution) } @@ -562,37 +555,58 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: handleSOResponse ****") } - /** - * prepare to call sub process CheckProcessStatus - * @param execution - */ - void prepareCallCheckProcessStatus(DelegateExecution execution){ - logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: prepareCallCheckProcessStatus ****") - def successConditions = new ArrayList<>() - successConditions.add("finished") - execution.setVariable("successConditions", successConditions) - def errorConditions = new ArrayList<>() - errorConditions.add("error") - execution.setVariable("errorConditions", errorConditions) - execution.setVariable("processServiceType", "Network service") - execution.setVariable("subOperationType", "PUT") - execution.setVariable("initProgress", 20) - execution.setVariable("endProgress",90) - execution.setVariable("timeOut", TIMEOUT) - logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: prepareCallCheckProcessStatus ****") + public void getSOPUTProgress(DelegateExecution execution) { + logger.debug(Prefix+ " **** Enter DoActivateCoreNSSI ::: getSOPUTProgress ****") + String url= execution.getVariable("requestSelfLink") + HttpClient httpClient = getHttpClientFactory().newJsonClient(new URL(url), ONAPComponents.SO) + String msoKey = UrnPropertiesReader.getVariable("mso.msoKey", execution) + String basicAuth = UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution) + String encodeString = utils.getBasicAuth(basicAuth, msoKey) + httpClient.addAdditionalHeader("Authorization", encodeString) + httpClient.addAdditionalHeader("Accept", "application/json") + Response httpResponse = httpClient.get() + logger.debug("httpResponse "+httpResponse) + int soResponseCode = httpResponse.getStatus() + logger.debug("soResponseCode : "+soResponseCode) + if (soResponseCode >= 200 && soResponseCode < 204 && httpResponse.hasEntity()) { + String soResponse = httpResponse.readEntity(String.class) + logger.debug("soResponse: "+soResponse) + String requestState= jsonUtil.getJsonValue(soResponse, "request.requestStatus.requestState") + logger.debug("requestState: "+requestState) + execution.setVariable("requestState", requestState) + } else { + execution.setVariable("isSOResponseSucceed","no") + prepareFailedOperationStatusUpdate(execution) + } + logger.debug(Prefix+ " **** Exit DoActivateCoreNSSI ::: getSOPUTProgress ****") } + public void timeDelay() { + try { + logger.debug(Prefix+ " **** DoActivateCoreNSSI ::: timeDelay going to sleep for 5 sec") + Thread.sleep(5000) + logger.debug("**** DoActivateCoreNSSI ::: timeDelay wakeup after 5 sec") + } catch(InterruptedException e) { + logger.error(Prefix+ " **** DoActivateCoreNSSI ::: timeDelay exception" + e) + } + } + void prepareUpdateResourceOperationStatus(DelegateExecution execution) { logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: prepareUpdateResourceOperationStatus ****") - String nssiOperationId = execution.getVariable("nssiOperationId") - execution.setVariable("operationId", nssiOperationId) + String soRequestState = execution.getVariable("requestState") //Prepare Update Status for PUT failure and success - if(execution.getVariable("isTimeOut").equals("YES")) { - logger.debug("TIMEOUT - SO PUT Failure") + if("COMPLETE".equalsIgnoreCase(soRequestState)) { + execution.setVariable("progress", "100") + execution.setVariable("status", "finished") + execution.setVariable("operationContent", "AllocteCoreNSSI successful.") + logger.debug("Success ,result:${execution.getVariable("result")}, reason: ${execution.getVariable("reason")}") + } else { + logger.debug("SO PUT Failure with State: "+soRequestState) exceptionUtil.buildAndThrowWorkflowException(execution, 7000, "SO PUT Failure") } + setResourceOperationStatus(execution) logger.debug(Prefix +" **** Exit DoActivateCoreNSSI ::: prepareUpdateResourceOperationStatus ****") } @@ -610,14 +624,8 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalCustId).serviceSubscription(serviceType).serviceInstance(sliceProfileInstanceId)) try { - - Response response = getAAIClient().update(uri, si) - - if(response.getStatus()!=200 || response.getStatus()!=201 || response.getStatus()!=202) { - exceptionUtil.buildAndThrowWorkflowException(execution, response.getStatus(), "AAI failed to update sliceProlie service Instance orchestration status") - } else { - setResourceOperationStatus(execution) - } + getAAIClient().update(uri, si) + setResourceOperationStatus(execution) } catch (Exception e) { logger.info("Update OrchestrationStatus in AAI failed") String msg = "Update OrchestrationStatus in AAI failed, " + e.getMessage() @@ -636,14 +644,17 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { logger.debug(Prefix +" **** Enter DoActivateCoreNSSI ::: setResourceOperationStatus ****") - String serviceId = execution.getVariable("nssiId") + String serviceId = execution.getVariable("nsiId") String jobId = execution.getVariable("jobId") - String nsiId = execution.getVariable("nsiId") + String nssiId = execution.getVariable("serviceInstanceID") + String modelUuid= execution.getVariable("modelUuid") String operationType = execution.getVariable("operationType") ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus() resourceOperationStatus.setServiceId(serviceId) + resourceOperationStatus.setJobId(jobId) resourceOperationStatus.setOperationId(jobId) - resourceOperationStatus.setResourceTemplateUUID(nsiId) + resourceOperationStatus.setResourceTemplateUUID(modelUuid) + resourceOperationStatus.setResourceInstanceID(nssiId) resourceOperationStatus.setOperType(operationType) resourceOperationStatus.setStatus("finished") resourceOperationStatus.setProgress("100") @@ -656,17 +667,20 @@ class DoActivateCoreNSSI extends AbstractServiceTaskProcessor { void prepareFailedOperationStatusUpdate(DelegateExecution execution){ logger.debug(Prefix + " **** Enter DoActivateCoreNSSI ::: prepareFailedOperationStatusUpdate ****") - String serviceId = execution.getVariable("nssiId") + String serviceId = execution.getVariable("nsiId") String jobId = execution.getVariable("jobId") - String nsiId = execution.getVariable("nsiId") + String nssiId = execution.getVariable("serviceInstanceID") String operationType = execution.getVariable("operationType") + String modelUuid= execution.getVariable("modelUuid") ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus() resourceOperationStatus.setServiceId(serviceId) + resourceOperationStatus.setJobId(jobId) resourceOperationStatus.setOperationId(jobId) - resourceOperationStatus.setResourceTemplateUUID(nsiId) + resourceOperationStatus.setResourceInstanceID(nssiId) + resourceOperationStatus.setResourceTemplateUUID(modelUuid) resourceOperationStatus.setOperType(operationType) - resourceOperationStatus.setProgress(0) + resourceOperationStatus.setProgress("0") resourceOperationStatus.setStatus("failed") resourceOperationStatus.setStatusDescription("Core NSSI Activation Failed") requestDBUtil.prepareUpdateResourceOperationStatus(execution, resourceOperationStatus) diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy index 91599700ef..a1afe9ae95 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateCoreNonSharedSlice.groovy @@ -368,7 +368,7 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor { String nssiId = execution.getVariable("nssiServiceInstanceId") String globalCustId = execution.getVariable("globalSubscriberId") String serviceType = execution.getVariable("subscriptionServiceType") - logger.debug("networkServiceInstanceId: "+networkServiceInstanceId +" nssiId: "+nssiId +" globalCustId: "+globalCustId+ " serviceType: "+serviceType) + logger.debug("networkServiceInstanceId: {}, nssiId: {}, globalCustId: {}, serviceType: {}", networkServiceInstanceId, nssiId, globalCustId, serviceType) try{ //Update NSSI orchestration status nssiServiceInstance ServiceInstance si = execution.getVariable("nssiServiceInstance") @@ -424,7 +424,7 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor { String LogicalLinkId = jsonUtil.getJsonValue(bh_endpoint, "LogicalLinkId") String nextHopInfo = jsonUtil.getJsonValue(bh_endpoint, "nextHopInfo") NetworkRoute bh_ep = new NetworkRoute() - logger.debug("bh_endpoint: "+bh_endpoint +" "+ "bh_routeId: "+bh_routeId +" "+ "cnIpAddress: "+cnIpAddress +" "+ "role: "+role +" "+ "cnIpAddress: "+cnIpAddress +" "+ "LogicalLinkId: "+LogicalLinkId +" "+ "nextHopInfo: "+nextHopInfo +" "+ "bh_ep: "+bh_ep) + logger.debug("bh_endpoint: {}, bh_routeId: {}, cnIpAddress: {}, role: {}, LogicalLinkId: {}, nextHopInfo: {}, bh_ep: {}", bh_endpoint, bh_routeId, cnIpAddress, role, LogicalLinkId, nextHopInfo, bh_ep) bh_ep.setRouteId(bh_routeId) bh_ep.setFunction(function) bh_ep.setRole(role) @@ -448,7 +448,7 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor { relationship.setRelatedLink(relatedLink) relationship.setRelatedTo("network-route") relationship.setRelationshipLabel("org.onap.relationships.inventory.ComposedOf") - logger.debug("networkRouteUri: "+networkRouteUri+"relationship: "+relationship) + logger.debug("networkRouteUri: {}, relationship: {}",networkRouteUri,relationship) try { AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalSubscriberId).serviceSubscription(subscriptionServiceType).serviceInstance(coreNssi)).relationshipAPI() logger.debug("uri: "+uri) @@ -473,13 +473,14 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor { logger.debug(Prefix+ " **** Enter DoAllocateCoreNonSharedSlice ::: setResourceOperationStatus ****") String serviceId = execution.getVariable("nsiId") String jobId = execution.getVariable("jobId") - String nsiId = execution.getVariable("nsiId") String nssiId = execution.getVariable("nssiServiceInstanceId") String operationType = "ALLOCATE" + String modelUuid= execution.getVariable("modelUuid") ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus() resourceOperationStatus.setServiceId(serviceId) + resourceOperationStatus.setJobId(jobId) resourceOperationStatus.setOperationId(jobId) - resourceOperationStatus.setResourceTemplateUUID(nsiId) + resourceOperationStatus.setResourceTemplateUUID(modelUuid) resourceOperationStatus.setResourceInstanceID(nssiId) resourceOperationStatus.setOperType(operationType) resourceOperationStatus.setStatus(execution.getVariable("status")) @@ -493,17 +494,15 @@ class DoAllocateCoreNonSharedSlice extends AbstractServiceTaskProcessor { logger.debug(Prefix + " **** Enter DoAllocateCoreNonSharedSlice ::: prepareFailedOperationStatusUpdate ****") String serviceId = execution.getVariable("nsiId") String jobId = execution.getVariable("jobId") - String nsiId = execution.getVariable("nsiId") String nssiId = execution.getVariable("nssiServiceInstanceId") String operationType = "ALLOCATE" //modelUuid String modelUuid= execution.getVariable("modelUuid") - logger.debug("serviceId: "+serviceId +" "+ "jobId: "+jobId +" "+ "nsiId: "+nsiId +" "+ "nssiId: "+nssiId +" "+ "operationType: "+operationType) + logger.debug("serviceId: {}, jobId: {}, nssiId: {}, operationType: {}.", serviceId, jobId, nssiId, operationType) ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus() resourceOperationStatus.setServiceId(serviceId) resourceOperationStatus.setJobId(jobId) resourceOperationStatus.setOperationId(jobId) - resourceOperationStatus.setResourceTemplateUUID(nsiId) resourceOperationStatus.setResourceInstanceID(nssiId) resourceOperationStatus.setResourceTemplateUUID(modelUuid) resourceOperationStatus.setOperType(operationType) diff --git a/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy b/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy index 69780939ef..e4c6fe5f60 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateCoreNSSITest.groovy @@ -184,10 +184,9 @@ class DoActivateCoreNSSITest extends MsoGroovyTest { when(mockExecution.getVariable("snssaiAndOrchStatusList")).thenReturn(snssaiList) String returnedJsonAsString= doActivate.prepareVnfInstanceParamsJson(mockExecution) - - String expectedJsonAsString = """{supportedNssai={"sNssai":[{"snssai":"01-5C83F071","status":"activated"},{"snssai":"01-5B179BD4","status":"activated"}]}}""" + String expectedJsonAsString = """{"sNssai":[{"snssai":"01-5C83F071","status":"activated"},{"snssai":"01-5B179BD4","status":"activated"}]}""" assertEquals(expectedJsonAsString, returnedJsonAsString) - } + } String mockQueryNS() { diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn index b422545e84..9ce25ed174 100644 --- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn +++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateCoreNSSI.bpmn @@ -4,7 +4,7 @@ <bpmn:startEvent id="StartEvent_0lgslwq" name="Start"> <bpmn:outgoing>SequenceFlow_0wwo1lh</bpmn:outgoing> </bpmn:startEvent> - <bpmn:scriptTask id="ScriptTask_1x13jc1" name="Pre-process request Check operationType" scriptFormat="groovy"> + <bpmn:scriptTask id="ScriptTask_1x13jc1" name="Pre-process  request Check operationType" scriptFormat="groovy"> <bpmn:incoming>SequenceFlow_0wwo1lh</bpmn:incoming> <bpmn:outgoing>SequenceFlow_139ejmn</bpmn:outgoing> <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* @@ -25,8 +25,8 @@ activateNssi.getServiceVNFAndVFsFromCatalogDB(execution)</bpmn:script> def activateNssi = new DoActivateCoreNSSI() activateNssi.prepareSOMacroRequestPayLoad(execution)</bpmn:script> </bpmn:scriptTask> - <bpmn:scriptTask id="ScriptTask_0lxbaxd" name="Call AAI update sliceProlie service Instance status" scriptFormat="groovy"> - <bpmn:incoming>SequenceFlow_1e20i9g</bpmn:incoming> + <bpmn:scriptTask id="ScriptTask_0lxbaxd" name="Call AAI update sliceProlie service Instance status" scriptFormat="groovy"> + <bpmn:incoming>Flow_09eevay</bpmn:incoming> <bpmn:outgoing>SequenceFlow_0j0egoi</bpmn:outgoing> <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* def activateNssi = new DoActivateCoreNSSI() @@ -46,38 +46,9 @@ activateNssi.getNetworkInstanceWithSPInstanceAssociatedWithNssiId(execution)</bp def activateNssi = new DoActivateCoreNSSI() activateNssi.sendPutRequestToSOMacro(execution)</bpmn:script> </bpmn:scriptTask> - <bpmn:scriptTask id="ScriptTask_1frasll" name="Prepare Call CheckServiceProcessStatus" scriptFormat="groovy"> - <bpmn:incoming>Flow_039sx2v</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_18x9gdi</bpmn:outgoing> - <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* -def activateNssi = new DoActivateCoreNSSI() -activateNssi.prepareCallCheckProcessStatus(execution)</bpmn:script> - </bpmn:scriptTask> - <bpmn:callActivity id="CallActivity_11hntoj" name="CallCheckServiceProcessStatus" calledElement="CheckServiceProcessStatus"> - <bpmn:extensionElements> - <camunda:in source="networkServiceInstanceId" target="serviceInstanceId" /> - <camunda:in source="macroOperationId" target="operationId" /> - <camunda:in source="successConditions" target="successConditions" /> - <camunda:in source="errorConditions" target="errorConditions" /> - <camunda:in source="processServiceType" target="processServiceType" /> - <camunda:in source="timeOut" target="timeOut" /> - <camunda:out source="operationStatus" target="result" /> - <camunda:out source="operationContent" target="reason" /> - <camunda:out source="WorkflowException" target="WorkflowException" /> - <camunda:out source="isTimeOut" target="isTimeOut" /> - <camunda:in source="subOperationType" target="operationType" /> - <camunda:in source="initProgress" target="initProgress" /> - <camunda:in source="endProgress" target="endProgress" /> - <camunda:in source="serviceInstanceID" target="parentServiceInstanceId" /> - <camunda:in source="globalSubscriberId" target="globalSubscriberId" /> - <camunda:in source="operationId" target="parentOperationId" /> - </bpmn:extensionElements> - <bpmn:incoming>SequenceFlow_18x9gdi</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1l9ry0a</bpmn:outgoing> - </bpmn:callActivity> - <bpmn:scriptTask id="ScriptTask_1sfn88d" name="Prepare update Service operation status " scriptFormat="groovy"> - <bpmn:incoming>SequenceFlow_1l9ry0a</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_0wx21io</bpmn:outgoing> + <bpmn:scriptTask id="ScriptTask_1sfn88d" name="Prepare update Service operation status " scriptFormat="groovy"> + <bpmn:incoming>Flow_1a7o8s7</bpmn:incoming> + <bpmn:outgoing>Flow_09eevay</bpmn:outgoing> <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* def activateNssi = new DoActivateCoreNSSI() activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script> @@ -86,7 +57,6 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script> <bpmn:sequenceFlow id="SequenceFlow_139ejmn" sourceRef="ScriptTask_1x13jc1" targetRef="ScriptTask_1rjha8r" /> <bpmn:sequenceFlow id="SequenceFlow_1654pt0" sourceRef="ScriptTask_1rjha8r" targetRef="ScriptTask_0usuysi" /> <bpmn:sequenceFlow id="SequenceFlow_09nihof" sourceRef="ScriptTask_0usuysi" targetRef="ScriptTask_1t06mlw" /> - <bpmn:sequenceFlow id="SequenceFlow_1l9ry0a" sourceRef="CallActivity_11hntoj" targetRef="ScriptTask_1sfn88d" /> <bpmn:sequenceFlow id="SequenceFlow_0fbr356" sourceRef="ScriptTask_1t06mlw" targetRef="IntermediateThrowEvent_0gueutz" /> <bpmn:intermediateThrowEvent id="IntermediateThrowEvent_0gueutz" name="Call SO macro api"> <bpmn:incoming>SequenceFlow_0fbr356</bpmn:incoming> @@ -98,25 +68,15 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script> <bpmn:linkEventDefinition name="CallSO" /> </bpmn:intermediateCatchEvent> <bpmn:sequenceFlow id="SequenceFlow_0rjd7tg" sourceRef="ScriptTask_1tfpgcs" targetRef="Gateway_03lo8jx" /> - <bpmn:exclusiveGateway id="ExclusiveGateway_02nqn2k" name="is TimeOut?" default="SequenceFlow_07u1gfw"> - <bpmn:incoming>SequenceFlow_0wx21io</bpmn:incoming> - <bpmn:outgoing>SequenceFlow_1e20i9g</bpmn:outgoing> - <bpmn:outgoing>SequenceFlow_07u1gfw</bpmn:outgoing> - </bpmn:exclusiveGateway> - <bpmn:sequenceFlow id="SequenceFlow_0wx21io" sourceRef="ScriptTask_1sfn88d" targetRef="ExclusiveGateway_02nqn2k" /> - <bpmn:sequenceFlow id="SequenceFlow_1e20i9g" name="No" sourceRef="ExclusiveGateway_02nqn2k" targetRef="ScriptTask_0lxbaxd"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("isTimeOut") == "NO")}</bpmn:conditionExpression> - </bpmn:sequenceFlow> <bpmn:endEvent id="EndEvent_1061mty" name="End"> <bpmn:incoming>SequenceFlow_0v0dntm</bpmn:incoming> </bpmn:endEvent> - <bpmn:sequenceFlow id="SequenceFlow_18x9gdi" sourceRef="ScriptTask_1frasll" targetRef="CallActivity_11hntoj" /> <bpmn:exclusiveGateway id="Gateway_03lo8jx" name="is SO Response OK?" default="Flow_1jchhgj"> <bpmn:incoming>SequenceFlow_0rjd7tg</bpmn:incoming> <bpmn:outgoing>Flow_039sx2v</bpmn:outgoing> <bpmn:outgoing>Flow_1jchhgj</bpmn:outgoing> </bpmn:exclusiveGateway> - <bpmn:sequenceFlow id="Flow_039sx2v" name="Yes" sourceRef="Gateway_03lo8jx" targetRef="ScriptTask_1frasll"> + <bpmn:sequenceFlow id="Flow_039sx2v" name="Yes" sourceRef="Gateway_03lo8jx" targetRef="Activity_14jev2r"> <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("isSOResponseSucceed" ) == "yes")}</bpmn:conditionExpression> </bpmn:sequenceFlow> <bpmn:serviceTask id="ServiceTask_02x7eqy" name="Update Service Operation Status"> @@ -130,7 +90,7 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script> <camunda:entry key="Authorization">Basic YnBlbDpwYXNzd29yZDEk</camunda:entry> </camunda:map> </camunda:inputParameter> - <camunda:inputParameter name="payload">${updateOperationStatus}</camunda:inputParameter> + <camunda:inputParameter name="payload">${updateResourceOperationStatus}</camunda:inputParameter> <camunda:inputParameter name="method">POST</camunda:inputParameter> <camunda:outputParameter name="NSSMF_dbResponseCode">${statusCode}</camunda:outputParameter> <camunda:outputParameter name="NSSMF_dbResponse">${response}</camunda:outputParameter> @@ -140,13 +100,11 @@ activateNssi.prepareUpdateResourceOperationStatus(execution)</bpmn:script> </bpmn:extensionElements> <bpmn:incoming>Flow_1jchhgj</bpmn:incoming> <bpmn:incoming>SequenceFlow_0j0egoi</bpmn:incoming> - <bpmn:incoming>SequenceFlow_07u1gfw</bpmn:incoming> <bpmn:outgoing>SequenceFlow_0v0dntm</bpmn:outgoing> </bpmn:serviceTask> <bpmn:sequenceFlow id="SequenceFlow_0v0dntm" sourceRef="ServiceTask_02x7eqy" targetRef="EndEvent_1061mty" /> <bpmn:sequenceFlow id="Flow_1jchhgj" name="No" sourceRef="Gateway_03lo8jx" targetRef="ServiceTask_02x7eqy" /> <bpmn:sequenceFlow id="SequenceFlow_0j0egoi" sourceRef="ScriptTask_0lxbaxd" targetRef="ServiceTask_02x7eqy" /> - <bpmn:sequenceFlow id="SequenceFlow_07u1gfw" name="Yes" sourceRef="ExclusiveGateway_02nqn2k" targetRef="ServiceTask_02x7eqy" /> <bpmn:subProcess id="Activity_1tmdw60" name="Sub-process for FalloutHandler and Rollback" triggeredByEvent="true"> <bpmn:startEvent id="Event_159txw2"> <bpmn:outgoing>Flow_149oqyp</bpmn:outgoing> @@ -196,225 +154,236 @@ activateNssi.prepareFailedOperationStatusUpdate(execution)</bpmn:script> <bpmn:sequenceFlow id="Flow_149oqyp" sourceRef="Event_159txw2" targetRef="Activity_0u4a0ry" /> <bpmn:sequenceFlow id="Flow_1qooaff" sourceRef="Activity_0u3yna7" targetRef="Event_0c1ec2y" /> </bpmn:subProcess> + <bpmn:scriptTask id="Activity_14jev2r" name="Call Get SO PUT progress" scriptFormat="groovy"> + <bpmn:incoming>Flow_0q5mlhf</bpmn:incoming> + <bpmn:incoming>Flow_039sx2v</bpmn:incoming> + <bpmn:outgoing>Flow_1mtsx52</bpmn:outgoing> + <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* +def activateNssi = new DoActivateCoreNSSI() +activateNssi.getSOPUTProgress(execution)</bpmn:script> + </bpmn:scriptTask> + <bpmn:exclusiveGateway id="Gateway_0fdseyg" default="Flow_1a7o8s7"> + <bpmn:incoming>Flow_1mtsx52</bpmn:incoming> + <bpmn:outgoing>Flow_1ocji6k</bpmn:outgoing> + <bpmn:outgoing>Flow_1a7o8s7</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:scriptTask id="Activity_0fbp09r" name="Time Delay 5s" scriptFormat="groovy"> + <bpmn:incoming>Flow_1ocji6k</bpmn:incoming> + <bpmn:outgoing>Flow_0q5mlhf</bpmn:outgoing> + <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* +def activateNssi = new DoActivateCoreNSSI() +activateNssi.timeDelay()</bpmn:script> + </bpmn:scriptTask> + <bpmn:sequenceFlow id="Flow_0q5mlhf" sourceRef="Activity_0fbp09r" targetRef="Activity_14jev2r" /> + <bpmn:sequenceFlow id="Flow_1ocji6k" name="requestState=IN_PROGRESS" sourceRef="Gateway_0fdseyg" targetRef="Activity_0fbp09r"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("requestState" ) == "IN_PROGRESS")}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:sequenceFlow id="Flow_1mtsx52" sourceRef="Activity_14jev2r" targetRef="Gateway_0fdseyg" /> + <bpmn:sequenceFlow id="Flow_1a7o8s7" sourceRef="Gateway_0fdseyg" targetRef="ScriptTask_1sfn88d" /> + <bpmn:sequenceFlow id="Flow_09eevay" sourceRef="ScriptTask_1sfn88d" targetRef="ScriptTask_0lxbaxd" /> </bpmn:process> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoActivateCoreNSSI"> - <bpmndi:BPMNEdge id="SequenceFlow_07u1gfw_di" bpmnElement="SequenceFlow_07u1gfw"> - <di:waypoint x="976" y="319" /> - <di:waypoint x="1123" y="319" /> + <bpmndi:BPMNEdge id="Flow_09eevay_di" bpmnElement="Flow_09eevay"> + <di:waypoint x="1020" y="319" /> + <di:waypoint x="1090" y="319" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1a7o8s7_di" bpmnElement="Flow_1a7o8s7"> + <di:waypoint x="845" y="319" /> + <di:waypoint x="920" y="319" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1mtsx52_di" bpmnElement="Flow_1mtsx52"> + <di:waypoint x="690" y="319" /> + <di:waypoint x="795" y="319" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1ocji6k_di" bpmnElement="Flow_1ocji6k"> + <di:waypoint x="820" y="344" /> + <di:waypoint x="820" y="378" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1041" y="301" width="18" height="14" /> + <dc:Bounds x="743" y="342" width="78" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0q5mlhf_di" bpmnElement="Flow_0q5mlhf"> + <di:waypoint x="770" y="418" /> + <di:waypoint x="640" y="418" /> + <di:waypoint x="640" y="359" /> + </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0j0egoi_di" bpmnElement="SequenceFlow_0j0egoi"> - <di:waypoint x="1099" y="258" /> - <di:waypoint x="1173" y="258" /> - <di:waypoint x="1173" y="279" /> + <di:waypoint x="1190" y="319" /> + <di:waypoint x="1253" y="319" /> <bpmndi:BPMNLabel> <dc:Bounds x="376" y="387" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1jchhgj_di" bpmnElement="Flow_1jchhgj"> - <di:waypoint x="400" y="344" /> - <di:waypoint x="400" y="450" /> - <di:waypoint x="1190" y="450" /> - <di:waypoint x="1190" y="360" /> + <di:waypoint x="460" y="344" /> + <di:waypoint x="460" y="480" /> + <di:waypoint x="1320" y="480" /> + <di:waypoint x="1320" y="359" /> <bpmndi:BPMNLabel> - <dc:Bounds x="788" y="432" width="15" height="14" /> + <dc:Bounds x="883" y="462" width="15" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0v0dntm_di" bpmnElement="SequenceFlow_0v0dntm"> - <di:waypoint x="1223" y="319" /> - <di:waypoint x="1263" y="319" /> + <di:waypoint x="1353" y="319" /> + <di:waypoint x="1393" y="319" /> <bpmndi:BPMNLabel> <dc:Bounds x="483" y="448" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_039sx2v_di" bpmnElement="Flow_039sx2v"> - <di:waypoint x="425" y="319" /> - <di:waypoint x="470" y="319" /> + <di:waypoint x="485" y="319" /> + <di:waypoint x="590" y="319" /> <bpmndi:BPMNLabel> - <dc:Bounds x="439" y="301" width="18" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_18x9gdi_di" bpmnElement="SequenceFlow_18x9gdi"> - <di:waypoint x="570" y="319" /> - <di:waypoint x="610" y="319" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="-180.5" y="448" width="0" height="12" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1e20i9g_di" bpmnElement="SequenceFlow_1e20i9g"> - <di:waypoint x="951" y="294" /> - <di:waypoint x="951" y="258" /> - <di:waypoint x="999" y="258" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="959" y="273" width="15" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0wx21io_di" bpmnElement="SequenceFlow_0wx21io"> - <di:waypoint x="868" y="319" /> - <di:waypoint x="926" y="319" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="137" y="448" width="0" height="12" /> + <dc:Bounds x="532" y="301" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0rjd7tg_di" bpmnElement="SequenceFlow_0rjd7tg"> - <di:waypoint x="330" y="319" /> - <di:waypoint x="375" y="319" /> + <di:waypoint x="380" y="319" /> + <di:waypoint x="435" y="319" /> <bpmndi:BPMNLabel> <dc:Bounds x="-336" y="448" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1mi4waj_di" bpmnElement="SequenceFlow_1mi4waj"> - <di:waypoint x="178" y="319" /> - <di:waypoint x="230" y="319" /> + <di:waypoint x="218" y="319" /> + <di:waypoint x="280" y="319" /> <bpmndi:BPMNLabel> <dc:Bounds x="-489.5" y="448" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0fbr356_di" bpmnElement="SequenceFlow_0fbr356"> - <di:waypoint x="1020" y="120" /> - <di:waypoint x="1132" y="120" /> + <di:waypoint x="1150" y="120" /> + <di:waypoint x="1262" y="120" /> <bpmndi:BPMNLabel> <dc:Bounds x="384" y="249" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1l9ry0a_di" bpmnElement="SequenceFlow_1l9ry0a"> - <di:waypoint x="710" y="319" /> - <di:waypoint x="768" y="319" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="-21" y="448" width="0" height="12" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_09nihof_di" bpmnElement="SequenceFlow_09nihof"> - <di:waypoint x="820" y="120" /> - <di:waypoint x="920" y="120" /> + <di:waypoint x="950" y="120" /> + <di:waypoint x="1050" y="120" /> <bpmndi:BPMNLabel> <dc:Bounds x="-460" y="189" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1654pt0_di" bpmnElement="SequenceFlow_1654pt0"> - <di:waypoint x="610" y="120" /> - <di:waypoint x="720" y="120" /> + <di:waypoint x="740" y="120" /> + <di:waypoint x="850" y="120" /> <bpmndi:BPMNLabel> <dc:Bounds x="-910" y="189" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_139ejmn_di" bpmnElement="SequenceFlow_139ejmn"> - <di:waypoint x="430" y="120" /> - <di:waypoint x="510" y="120" /> + <di:waypoint x="560" y="120" /> + <di:waypoint x="640" y="120" /> <bpmndi:BPMNLabel> <dc:Bounds x="-381" y="245" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0wwo1lh_di" bpmnElement="SequenceFlow_0wwo1lh"> - <di:waypoint x="242" y="120" /> - <di:waypoint x="330" y="120" /> + <di:waypoint x="372" y="120" /> + <di:waypoint x="460" y="120" /> <bpmndi:BPMNLabel> <dc:Bounds x="-489.5" y="249" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="StartEvent_0lgslwq_di" bpmnElement="StartEvent_0lgslwq"> - <dc:Bounds x="206" y="102" width="36" height="36" /> + <dc:Bounds x="336" y="102" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="211" y="142" width="25" height="14" /> + <dc:Bounds x="341" y="142" width="25" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_1x13jc1_di" bpmnElement="ScriptTask_1x13jc1"> - <dc:Bounds x="330" y="80" width="100" height="80" /> + <dc:Bounds x="460" y="80" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_0usuysi_di" bpmnElement="ScriptTask_0usuysi"> - <dc:Bounds x="720" y="80" width="100" height="80" /> + <dc:Bounds x="850" y="80" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_1t06mlw_di" bpmnElement="ScriptTask_1t06mlw"> - <dc:Bounds x="920" y="80" width="100" height="80" /> + <dc:Bounds x="1050" y="80" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_0lxbaxd_di" bpmnElement="ScriptTask_0lxbaxd"> - <dc:Bounds x="999" y="218" width="100" height="80" /> + <dc:Bounds x="1090" y="279" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_1rjha8r_di" bpmnElement="ScriptTask_1rjha8r"> - <dc:Bounds x="510" y="80" width="100" height="80" /> + <dc:Bounds x="640" y="80" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_1tfpgcs_di" bpmnElement="ScriptTask_1tfpgcs"> - <dc:Bounds x="230" y="279" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ScriptTask_1frasll_di" bpmnElement="ScriptTask_1frasll"> - <dc:Bounds x="470" y="279" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="CallActivity_11hntoj_di" bpmnElement="CallActivity_11hntoj"> - <dc:Bounds x="610" y="279" width="100" height="80" /> + <dc:Bounds x="280" y="279" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_1sfn88d_di" bpmnElement="ScriptTask_1sfn88d"> - <dc:Bounds x="768" y="279" width="100" height="80" /> + <dc:Bounds x="920" y="279" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_1808y0j_di" bpmnElement="IntermediateThrowEvent_0gueutz"> - <dc:Bounds x="1132" y="102" width="36" height="36" /> + <dc:Bounds x="1262" y="102" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1106" y="142" width="90" height="14" /> + <dc:Bounds x="1236" y="142" width="90" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateCatchEvent_11m7660_di" bpmnElement="IntermediateThrowEvent_150o0dl"> - <dc:Bounds x="142" y="301" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="115" y="341" width="90" height="14" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ExclusiveGateway_02nqn2k_di" bpmnElement="ExclusiveGateway_02nqn2k" isMarkerVisible="true"> - <dc:Bounds x="926" y="294" width="50" height="50" /> + <dc:Bounds x="182" y="301" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="922" y="354" width="59" height="14" /> + <dc:Bounds x="155" y="341" width="90" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="EndEvent_1061mty_di" bpmnElement="EndEvent_1061mty"> - <dc:Bounds x="1263" y="301" width="36" height="36" /> + <dc:Bounds x="1393" y="301" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1271" y="344" width="20" height="14" /> + <dc:Bounds x="1401" y="344" width="20" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Gateway_03lo8jx_di" bpmnElement="Gateway_03lo8jx" isMarkerVisible="true"> - <dc:Bounds x="375" y="294" width="50" height="50" /> + <dc:Bounds x="435" y="294" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="360" y="264" width="80" height="27" /> + <dc:Bounds x="420" y="256.5" width="80" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ServiceTask_02x7eqy_di" bpmnElement="ServiceTask_02x7eqy"> - <dc:Bounds x="1123" y="279" width="100" height="80" /> + <dc:Bounds x="1253" y="279" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1tmdw60_di" bpmnElement="Activity_1tmdw60" isExpanded="true"> - <dc:Bounds x="400" y="560" width="781" height="196" /> + <dc:Bounds x="530" y="560" width="781" height="196" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="Flow_1qooaff_di" bpmnElement="Flow_1qooaff"> - <di:waypoint x="960" y="664" /> - <di:waypoint x="1068" y="664" /> + <di:waypoint x="1090" y="664" /> + <di:waypoint x="1198" y="664" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_149oqyp_di" bpmnElement="Flow_149oqyp"> - <di:waypoint x="466" y="664" /> - <di:waypoint x="530" y="664" /> + <di:waypoint x="596" y="664" /> + <di:waypoint x="660" y="664" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1dh5sht_di" bpmnElement="Flow_1dh5sht"> - <di:waypoint x="630" y="664" /> - <di:waypoint x="690" y="664" /> + <di:waypoint x="760" y="664" /> + <di:waypoint x="820" y="664" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1iqw69c_di" bpmnElement="Flow_1iqw69c"> - <di:waypoint x="790" y="664" /> - <di:waypoint x="860" y="664" /> + <di:waypoint x="920" y="664" /> + <di:waypoint x="990" y="664" /> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="Event_159txw2_di" bpmnElement="Event_159txw2"> - <dc:Bounds x="430" y="646" width="36" height="36" /> + <dc:Bounds x="560" y="646" width="36" height="36" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_0c1ec2y_di" bpmnElement="Event_0c1ec2y"> - <dc:Bounds x="1068" y="646" width="36" height="36" /> + <dc:Bounds x="1198" y="646" width="36" height="36" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0u3yna7_di" bpmnElement="Activity_0u3yna7"> - <dc:Bounds x="860" y="624" width="100" height="80" /> + <dc:Bounds x="990" y="624" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0u4a0ry_di" bpmnElement="Activity_0u4a0ry"> - <dc:Bounds x="530" y="624" width="100" height="80" /> + <dc:Bounds x="660" y="624" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_11422x1_di" bpmnElement="Activity_11422x1"> - <dc:Bounds x="690" y="624" width="100" height="80" /> + <dc:Bounds x="820" y="624" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_14jev2r_di" bpmnElement="Activity_14jev2r"> + <dc:Bounds x="590" y="279" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Gateway_0fdseyg_di" bpmnElement="Gateway_0fdseyg" isMarkerVisible="true"> + <dc:Bounds x="795" y="294" width="50" height="50" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0fbp09r_di" bpmnElement="Activity_0fbp09r"> + <dc:Bounds x="770" y="378" width="100" height="80" /> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> -</bpmn:definitions> +</bpmn:definitions>
\ No newline at end of file |