//TNFH slice profile instance creation
TNFH_sliceProfileInstance.setServiceInstanceId(TNFH_sliceProfileInstanceId)
- sliceInstanceName = "sliceprofile _ "+TNFH_sliceProfileId
+ sliceInstanceName = "sliceprofile_"+TNFH_sliceProfileId
TNFH_sliceProfileInstance.setServiceInstanceName(sliceInstanceName)
serviceType = jsonUtil.getJsonValue(execution.getVariable("tnFhSliceProfile"), "sST")
TNFH_sliceProfileInstance.setServiceType(serviceType)
//TNMH slice profile instance creation
TNMH_sliceProfileInstance.setServiceInstanceId(TNMH_sliceProfileInstanceId)
- sliceInstanceName = "sliceprofile _ "+TNMH_sliceProfileId
+ sliceInstanceName = "sliceprofile_"+TNMH_sliceProfileId
TNMH_sliceProfileInstance.setServiceInstanceName(sliceInstanceName)
serviceType = jsonUtil.getJsonValue(execution.getVariable("tnMhSliceProfile"), "sST")
TNMH_sliceProfileInstance.setServiceType(serviceType)
private static final String KEY_SLICE_PROFILE = "SliceProfile"
private static final String KEY_NSSI = "NSSI"
- private static final String AN_NF = "AN-NF"
- private static final String TN_FH = "TN-FH"
- private static final String TN_MH = "TN-MH"
+ private static final String AN_NF = "AN_NF"
+ private static final String TN_FH = "TN_FH"
+ private static final String TN_MH = "TN_MH"
private static final String ACTIVATE = "activateInstance"
private static final String DEACTIVATE = "deactivateInstance"
execution.setVariable("relatedSPs", getRelatedInstancesByRole(execution, ROLE_SLICE_PROFILE,KEY_SLICE_PROFILE, anSliceProfileId))
Map<String,ServiceInstance> relatedNssis = new HashMap<>()
- execution.setVariable("relatedNssis", getRelatedInstancesByRole(execution, ROLE_NSSI,KEY_NSSI, anNssiId))
+ relatedNssis = getRelatedInstancesByRole(execution, ROLE_NSSI,KEY_NSSI, anNssiId)
+ if(relatedNssis.size() == 1) {
+ execution.setVariable("IsRANNfAlonePresent", true)
+ }
+ execution.setVariable("relatedNssis", relatedNssis)
logger.trace("${Prefix} - Exit Get Related instances")
}
input.addProperty("sNSSAI", sNssai.toString())
JsonObject wrapinput = new JsonObject()
- wrapinput.addProperty("Action", action)
+ wrapinput.addProperty("action", action)
JsonObject CommonHeader = new JsonObject()
- CommonHeader.addProperty("TimeStamp", new Date(System.currentTimeMillis()).format("yyyy-MM-dd'T'HH:mm:ss.sss", TimeZone.getDefault()))
- CommonHeader.addProperty("APIver", "1.0")
- CommonHeader.addProperty("RequestID", reqId)
- CommonHeader.addProperty("SubRequestID", "1")
+ CommonHeader.addProperty("timestamp",new Date(System.currentTimeMillis()).format("yyyy-MM-dd'T'HH:mm:ss.sss'Z'", TimeZone.getDefault()))
+ CommonHeader.addProperty("api-ver", "1.0")
+ CommonHeader.addProperty("request-id", reqId)
+ CommonHeader.addProperty("sub-request-id", "1")
JsonObject body = new JsonObject()
body.add("input", wrapinput)
JsonObject sdnrRequest = new JsonObject()
JsonObject payload = new JsonObject()
payload.add("input", input)
- wrapinput.addProperty("Payload", payload.toString())
- wrapinput.add("CommonHeader", CommonHeader)
+ wrapinput.addProperty("payload", payload.toString())
+ wrapinput.add("common-header", CommonHeader)
body.add("input", wrapinput)
sdnrRequest.add("body", body)
sdnrRequest.addProperty("version", "1.0")
- sdnrRequest.addProperty("rpc-name", "activateRANSlice")
+ sdnrRequest.addProperty("rpc-name", "activateRANSliceInstance")
sdnrRequest.addProperty("correlation-id", reqId)
sdnrRequest.addProperty("type", "request")
ActDeActNssi actDeActNssi = new ActDeActNssi()
actDeActNssi.setNsiId(customerInfo.nsiId)
actDeActNssi.setNssiId(nssInstance.nssiId)
+ actDeActNssi.setSnssaiList(Arrays.asList(customerInfo.snssai))
+
nbiRequest.setEsrInfo(esrInfo)
nbiRequest.setServiceInfo(serviceInfo)
logger.debug("completed AN service instance build " + ANServiceInstance.toString())
//create RAN NF NSSI
ANNFServiceInstance.setServiceInstanceId(execution.getVariable("RANNFServiceInstanceId") as String)
- sliceInstanceName = "nssi_"+execution.getVariable("ANNF_modelName")
+ String ANNF_nssiInstanceId = UUID.randomUUID().toString()
+ sliceInstanceName = "nssi_an_nf_" + ANNF_nssiInstanceId
ANNFServiceInstance.setServiceInstanceName(sliceInstanceName)
ANNFServiceInstance.setServiceType(execution.getVariable("sst") as String)
ANNFServiceInstance.setOrchestrationStatus(serviceStatus)
ANNFServiceInstance.setServiceRole(serviceRole)
snssaiList = jsonUtil.StringArrayToList(execution.getVariable("snssaiList") as String)
snssai = snssaiList.get(0)
- ANNFServiceInstance.setEnvironmentContext(snssai)
+ ANNFServiceInstance.setEnvironmentContext(execution.getVariable("networkType") as String)
ANNFServiceInstance.setModelInvariantId(execution.getVariable("ANNF_modelInvariantUuid"))
ANNFServiceInstance.setModelVersionId(execution.getVariable("ANNF_modelUuid"))
ANNFServiceInstance.setWorkloadContext("AN_NF")
RU_ep.setType(type)
RU_ep.setIpAddress("192.168.100.4")
RU_ep.setLogicalInterfaceId("1234")
- RU_ep.setNextHop("Host1")
+ RU_ep.setNextHop("networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.1-ltpId-512")
RU_ep.setPrefixLength(prefixLength)
RU_ep.setAddressFamily(addressFamily)
//DU Ingress
DU_ep.setType(type)
DU_ep.setIpAddress("192.168.100.5")
DU_ep.setLogicalInterfaceId("1234")
- DU_ep.setNextHop("Host2")
+ DU_ep.setNextHop("networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512")
DU_ep.setPrefixLength(prefixLength)
DU_ep.setAddressFamily(addressFamily)
//MH RAN end point update
DUEG_ep.setLogicalInterfaceId("1234")
DUEG_ep.setPrefixLength(prefixLength)
DUEG_ep.setAddressFamily(addressFamily)
- DUEG_ep.setNextHop("Host3")
+ DUEG_ep.setNextHop("networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.1-ltpId-512")
//CUIN
String CUIN_routeId = UUID.randomUUID().toString()
execution.setVariable("tranportEp_ID_CUIN", CUIN_routeId)
CUIN_ep.setType(type)
CUIN_ep.setIpAddress("192.168.100.6")
CUIN_ep.setLogicalInterfaceId("1234")
- CUIN_ep.setNextHop("Host4")
+ CUIN_ep.setNextHop("networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512")
CUIN_ep.setPrefixLength(prefixLength)
CUIN_ep.setAddressFamily(addressFamily)
try {
.sST(sliceTaskInfo.getSliceProfile().getSST() ?: sliceParams.getServiceProfile().get("sST") as String)
.nssiName(sliceTaskInfo.getSuggestNssiId() ? sliceTaskInfo.getNSSTInfo().getName() : allocateAnNssi.getNssiName())
.nssiId(sliceTaskInfo.getSuggestNssiId())
+ .resourceSharingLevel(sliceParams.serviceProfile.get("resourceSharingLevel") as String)
.build()
nbiRequest.setServiceInfo(serviceInfo)
serviceInfo.nssiId = sliceTaskInfo.suggestNssiId //if shared
serviceInfo.sST = sliceTaskInfo.sliceProfile.sST ?: sliceParams.serviceProfile.get("sST")
serviceInfo.nssiName = allocateCnNssi.nssiName
+ serviceInfo.resourceSharingLevel = sliceParams.serviceProfile.get("resourceSharingLevel")
nbiRequest.setServiceInfo(serviceInfo)
nbiRequest.setEsrInfo(esrInfo)
serviceInfo.nssiId = sliceTaskInfo.suggestNssiId
serviceInfo.sST = sliceTaskInfo.sliceProfile.sST ?: sliceParams.serviceProfile.get("sST")
serviceInfo.nssiName = "nssi_tn" + execution.getVariable("sliceServiceInstanceName")
+ serviceInfo.resourceSharingLevel = sliceParams.serviceProfile.get("resourceSharingLevel")
nbiRequest.setServiceInfo(serviceInfo)
nbiRequest.setEsrInfo(esrInfo)
String modelUuid = modelInfo.getModelUuid()
ss.setModelInvariantId(modelInvariantUuid)
ss.setModelVersionId(modelUuid)
- String serviceInstanceLocationid = serviceProfile.get("pLMNIdList")
+ String serviceInstanceLocationid = serviceProfile.get("plmnIdList")
ss.setServiceInstanceLocationId(serviceInstanceLocationid)
String snssai = serviceProfile.get("sNSSAI")
ss.setEnvironmentContext(snssai)
package org.onap.so.bpmn.infrastructure.scripts
import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.core.type.TypeReference
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.aai.domain.yang.ServiceInstance
import org.onap.so.beans.nsmf.EsrInfo
* @return
*/
private SubnetType convertServiceCategory(String serviceCategory){
- if("CN NSST".equals(serviceCategory)){
+ if(serviceCategory ==~ /CN.*/){
return SubnetType.CN
}
- if ("AN NF NSST".equals(serviceCategory)){
- return SubnetType.AN_NF
- }
- if ("AN NSST".equals(serviceCategory)){
+ if (serviceCategory ==~ /AN.*/){
return SubnetType.AN
}
- if ("TN BH NSST".equals(serviceCategory)){
+ if (serviceCategory ==~ /TN.*BH.*/){
return SubnetType.TN_BH
}
- if("TN MH NSST".equals(serviceCategory)){
+ if(serviceCategory ==~ /TN.*MH.*/){
return SubnetType.TN_MH
}
- if("TN FH NSST".equals(serviceCategory)){
+ if(serviceCategory ==~ /TN.*FH.*/){
return SubnetType.TN_FH
}
+
return null
}
*/
void getNSSISelectionCap4AN(DelegateExecution execution) {
- def vendor = execution.getVariable("vendor") as String
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ def vendor = sliceParams.anSliceTaskInfo.vendor
String strRequest = buildNSSISelectionReq(vendor, NetworkType.ACCESS)
*/
void getNSSISelectionCap4TN(DelegateExecution execution) {
- def vendor = execution.getVariable("vendor") as String
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ def vendor = sliceParams.tnBHSliceTaskInfo.vendor
String strRequest = buildNSSISelectionReq(vendor, NetworkType.TRANSPORT)
*/
void getNSSISelectionCap4CN(DelegateExecution execution) {
- def vendor = execution.getVariable("vendor") as String
+ SliceTaskParamsAdapter sliceParams =
+ execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
+
+ def vendor = sliceParams.cnSliceTaskInfo.vendor
String strRequest = buildNSSISelectionReq(vendor, NetworkType.CORE)
Map nssiNeedHandlerInfo = nssiNeedHandlerInfos.get(currNssiIndex) as Map
TemplateInfo nsstInfo = nssiNeedHandlerInfo.get("nsstInfo") as TemplateInfo
- Map<String, Object> profileInfo = nssiNeedHandlerInfo.get("sliceProfile") as Map
- //profileInfo.remove("profileId")
+ SliceProfileAdapter sliceProfileInfo = nssiNeedHandlerInfo.get("sliceProfile") as SliceProfileAdapter
+
+ Map profileInfo = objectMapper.convertValue(sliceProfileInfo, new TypeReference<Map<String, Object>>() {});
+ while (profileInfo.values().remove(null));
String urlString = UrnPropertiesReader.getVariable("mso.oof.endpoint", execution)
logger.debug( "get NSI option OOF Url: " + urlString)
String timeout = UrnPropertiesReader.getVariable("mso.adapters.oof.timeout", execution)
execution.setVariable("nssiSelection_timeout", timeout)
- String oofRequest = oofUtils.buildSelectNSSIRequest(requestId, nsstInfo, messageType,
- profileInfo, 600)
+ String oofRequest = oofUtils.buildSelectNSSIRequest(requestId, messageType, nsstInfo.UUID,
+ nsstInfo.invariantUUID, nsstInfo.name, profileInfo)
execution.setVariable("nssiSelection_oofRequest", oofRequest)
logger.debug("Sending request to OOF: " + oofRequest)
Map<String, Object> resMap = objectMapper.readValue(OOFResponse, Map.class)
List<Map<String, Object>> nsiSolutions = (List<Map<String, Object>>) resMap.get("solutions")
- Map<String, Object> solution = nsiSolutions.get(0)
-
- String resourceSharingLevel = execution.getVariable("resourceSharingLevel")
- Boolean isSharable = resourceSharingLevel == "shared" //todo
- if (isSharable && solution != null) {
- processNssiResult(sliceTaskParams, subnetType, solution)
+ if(nsiSolutions.size()>=1) {
+ Map<String,Object> solution = nsiSolutions.get(0) as Map
+ processNssiResult(sliceTaskParams, subnetType, solution)
}
execution.setVariable("sliceTaskParams", sliceTaskParams)
execution.setVariable("anNfSliceProfileId", getInstanceIdByWorkloadContext(execution.getVariable("relatedSPs"), AN_NF))
Map<String,ServiceInstance> relatedNssis = new HashMap<>()
- execution.setVariable("relatedNssis", getRelatedInstancesByRole(execution, ROLE_NSSI, anNssiId))
+ relatedNssis = getRelatedInstancesByRole(execution, ROLE_NSSI, anNssiId)
+ if(relatedNssis.size() == 1) {
+ execution.setVariable("IsRANNfAlonePresent", true)
+ }
+ execution.setVariable("relatedNssis", relatedNssis)
}
input.addProperty("RANNFNSSIId", anNfNssiId)
input.addProperty("callbackURL", callbackURL.toString())
input.addProperty("sNSSAI", sNssai)
+ input.addProperty("globalSubscriberId", execution.getVariable("globalSubscriberId") as String)
+ input.addProperty("subscriptionServiceType", execution.getVariable("subscriptionServiceType") as String)
input.addProperty("sliceProfileId",sliceProfileId)
input.add("additionalproperties", new JsonObject())
logger.debug("mso.workflow.TnNssmf.enableSDNCNetworkConfig is undefined, so use default value (true)")
enableSdnc = "true"
}
- enableSdnc = "false"
logger.debug("setEnableSdncConfig: enableSdnc=" + enableSdnc)
execution.setVariable("enableSdnc", enableSdnc)
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0rh5ux5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0rh5ux5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
<bpmn:process id="DoActivateAccessNSSI" name="DoActivateAccessNSSI" isExecutable="true">
<bpmn:startEvent id="Event_055gbp2" name="Start">
<bpmn:outgoing>Flow_0rh43xe</bpmn:outgoing>
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("shouldChangeAN_NF_SPStatus") == true}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:intermediateThrowEvent id="Event_1n5z71a" name="Goto TN NSSI Activation">
- <bpmn:incoming>Flow_0mtkhmv</bpmn:incoming>
+ <bpmn:incoming>Flow_0umba3p</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_0x6han6" name="TNNSSIActivation" />
</bpmn:intermediateThrowEvent>
<bpmn:intermediateCatchEvent id="Event_0kkeo9m" name="TN NSSI Activation">
<bpmn:incoming>Flow_1b6vtso</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_05qiudr" name="AN_NSSI_Activation" />
</bpmn:intermediateThrowEvent>
- <bpmn:sequenceFlow id="Flow_0523saw" sourceRef="Gateway_12oq1sa" targetRef="Event_0rzo7gj" />
+ <bpmn:sequenceFlow id="Flow_0523saw" sourceRef="Gateway_12oq1sa" targetRef="Gateway_0ci374j" />
<bpmn:intermediateThrowEvent id="Event_0rzo7gj" name="Check TN NSSI Activation">
- <bpmn:incoming>Flow_0523saw</bpmn:incoming>
+ <bpmn:incoming>Flow_1vyktdh</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_0s7s95j" name="TNNSSIActivation" />
</bpmn:intermediateThrowEvent>
<bpmn:sequenceFlow id="Flow_1cnfilb" sourceRef="Event_1azfo77" targetRef="Activity_1j0xkqc" />
def activator = new DoActivateAccessNSSI()
activator.updateAnNfStatus(execution)</bpmn:script>
</bpmn:scriptTask>
- <bpmn:sequenceFlow id="Flow_0mtkhmv" sourceRef="Activity_08yj5gq" targetRef="Event_1n5z71a" />
+ <bpmn:sequenceFlow id="Flow_0mtkhmv" sourceRef="Activity_08yj5gq" targetRef="Gateway_0n3zhxo" />
<bpmn:scriptTask id="Activity_1fzg56b" name="Check TN FH Slice profile status" scriptFormat="groovy">
<bpmn:incoming>Flow_1q7frye</bpmn:incoming>
<bpmn:outgoing>Flow_1yd57bl</bpmn:outgoing>
<bpmn:incoming>Flow_0g9k299</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_1h9r8pc" name="AN_NSSI_Activation" />
</bpmn:intermediateThrowEvent>
+ <bpmn:exclusiveGateway id="Gateway_0ci374j" name="Is TN NSSI present?" default="Flow_1vyktdh">
+ <bpmn:incoming>Flow_0523saw</bpmn:incoming>
+ <bpmn:outgoing>Flow_1vyktdh</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1buy9ji</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_1vyktdh" name="Yes" sourceRef="Gateway_0ci374j" targetRef="Event_0rzo7gj" />
+ <bpmn:intermediateThrowEvent id="Event_04dd3u6" name="Goto AN NSSI Activation">
+ <bpmn:incoming>Flow_1buy9ji</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1x4z9d9" name="AN_NSSI_Activation" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1buy9ji" name="No" sourceRef="Gateway_0ci374j" targetRef="Event_04dd3u6">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:exclusiveGateway id="Gateway_0n3zhxo" name="Is TN present?" default="Flow_0umba3p">
+ <bpmn:incoming>Flow_0mtkhmv</bpmn:incoming>
+ <bpmn:outgoing>Flow_0umba3p</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1xrbneh</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_0umba3p" name="Yes" sourceRef="Gateway_0n3zhxo" targetRef="Event_1n5z71a" />
+ <bpmn:intermediateThrowEvent id="Event_1akyxj9" name="Goto AN NSSI Activation">
+ <bpmn:incoming>Flow_1xrbneh</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1inqa6n" name="AN_NSSI_Activation" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1xrbneh" name="No" sourceRef="Gateway_0n3zhxo" targetRef="Event_1akyxj9">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
</bpmn:process>
<bpmn:error id="Error_1beg2za" name="ActivationWorkflowError" errorCode="2500" />
<bpmn:error id="Error_0vgjqok" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoActivateAccessNSSI">
<bpmndi:BPMNEdge id="Flow_1876ml0_di" bpmnElement="Flow_1876ml0">
- <di:waypoint x="660" y="940" />
- <di:waypoint x="712" y="940" />
+ <di:waypoint x="660" y="1050" />
+ <di:waypoint x="712" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0cblklk_di" bpmnElement="Flow_0cblklk">
- <di:waypoint x="350" y="940" />
- <di:waypoint x="390" y="940" />
+ <di:waypoint x="350" y="1050" />
+ <di:waypoint x="390" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_06nfip0_di" bpmnElement="Flow_06nfip0">
- <di:waypoint x="490" y="940" />
- <di:waypoint x="560" y="940" />
+ <di:waypoint x="490" y="1050" />
+ <di:waypoint x="560" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0k5cyz7_di" bpmnElement="Flow_0k5cyz7">
- <di:waypoint x="1330" y="690" />
- <di:waypoint x="1410" y="690" />
+ <di:waypoint x="1330" y="800" />
+ <di:waypoint x="1410" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1b95clk_di" bpmnElement="Flow_1b95clk">
- <di:waypoint x="1320" y="450" />
- <di:waypoint x="1410" y="450" />
+ <di:waypoint x="1320" y="560" />
+ <di:waypoint x="1410" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1b6vtso_di" bpmnElement="Flow_1b6vtso">
- <di:waypoint x="1680" y="690" />
- <di:waypoint x="1742" y="690" />
+ <di:waypoint x="1680" y="800" />
+ <di:waypoint x="1742" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1s0xcf5_di" bpmnElement="Flow_1s0xcf5">
- <di:waypoint x="580" y="690" />
- <di:waypoint x="640" y="690" />
+ <di:waypoint x="580" y="800" />
+ <di:waypoint x="640" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1wx5w6i_di" bpmnElement="Flow_1wx5w6i">
- <di:waypoint x="1510" y="690" />
- <di:waypoint x="1580" y="690" />
+ <di:waypoint x="1510" y="800" />
+ <di:waypoint x="1580" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0rzuxa0_di" bpmnElement="Flow_0rzuxa0">
- <di:waypoint x="1140" y="715" />
- <di:waypoint x="1140" y="762" />
+ <di:waypoint x="1140" y="825" />
+ <di:waypoint x="1140" y="872" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1i4cc7e_di" bpmnElement="Flow_1i4cc7e">
- <di:waypoint x="1165" y="690" />
- <di:waypoint x="1230" y="690" />
+ <di:waypoint x="1165" y="800" />
+ <di:waypoint x="1230" y="800" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1168" y="672" width="18" height="14" />
+ <dc:Bounds x="1168" y="782" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0to1idt_di" bpmnElement="Flow_0to1idt">
- <di:waypoint x="1070" y="690" />
- <di:waypoint x="1115" y="690" />
+ <di:waypoint x="1070" y="800" />
+ <di:waypoint x="1115" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0b7aq1k_di" bpmnElement="Flow_0b7aq1k">
- <di:waypoint x="900" y="690" />
- <di:waypoint x="970" y="690" />
+ <di:waypoint x="900" y="800" />
+ <di:waypoint x="970" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0sqsq1x_di" bpmnElement="Flow_0sqsq1x">
- <di:waypoint x="740" y="690" />
- <di:waypoint x="800" y="690" />
+ <di:waypoint x="740" y="800" />
+ <di:waypoint x="800" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qszzfv_di" bpmnElement="Flow_1qszzfv">
- <di:waypoint x="1680" y="450" />
- <di:waypoint x="1732" y="450" />
+ <di:waypoint x="1680" y="560" />
+ <di:waypoint x="1732" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ldkgyg_di" bpmnElement="Flow_1ldkgyg">
- <di:waypoint x="1510" y="450" />
- <di:waypoint x="1580" y="450" />
+ <di:waypoint x="1510" y="560" />
+ <di:waypoint x="1580" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ajre96_di" bpmnElement="Flow_0ajre96">
- <di:waypoint x="1130" y="475" />
- <di:waypoint x="1130" y="522" />
+ <di:waypoint x="1130" y="585" />
+ <di:waypoint x="1130" y="632" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bukcmf_di" bpmnElement="Flow_0bukcmf">
- <di:waypoint x="1155" y="450" />
- <di:waypoint x="1220" y="450" />
+ <di:waypoint x="1155" y="560" />
+ <di:waypoint x="1220" y="560" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1158" y="432" width="18" height="14" />
+ <dc:Bounds x="1158" y="542" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0heuc95_di" bpmnElement="Flow_0heuc95">
- <di:waypoint x="580" y="450" />
- <di:waypoint x="630" y="450" />
+ <di:waypoint x="580" y="560" />
+ <di:waypoint x="630" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1i0s8nu_di" bpmnElement="Flow_1i0s8nu">
- <di:waypoint x="1060" y="450" />
- <di:waypoint x="1105" y="450" />
+ <di:waypoint x="1060" y="560" />
+ <di:waypoint x="1105" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16pqv7g_di" bpmnElement="Flow_16pqv7g">
- <di:waypoint x="890" y="450" />
- <di:waypoint x="960" y="450" />
+ <di:waypoint x="890" y="560" />
+ <di:waypoint x="960" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1w3h345_di" bpmnElement="Flow_1w3h345">
- <di:waypoint x="730" y="450" />
- <di:waypoint x="790" y="450" />
+ <di:waypoint x="730" y="560" />
+ <di:waypoint x="790" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0mtkhmv_di" bpmnElement="Flow_0mtkhmv">
- <di:waypoint x="2110" y="230" />
- <di:waypoint x="2152" y="230" />
+ <di:waypoint x="2110" y="340" />
+ <di:waypoint x="2180" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1sroz8o_di" bpmnElement="Flow_1sroz8o">
- <di:waypoint x="1800" y="230" />
- <di:waypoint x="1870" y="230" />
+ <di:waypoint x="1800" y="340" />
+ <di:waypoint x="1870" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1myzbqw_di" bpmnElement="Flow_1myzbqw">
- <di:waypoint x="1500" y="230" />
- <di:waypoint x="1565" y="230" />
+ <di:waypoint x="1500" y="340" />
+ <di:waypoint x="1565" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0o7xomf_di" bpmnElement="Flow_0o7xomf">
- <di:waypoint x="1340" y="230" />
- <di:waypoint x="1400" y="230" />
+ <di:waypoint x="1340" y="340" />
+ <di:waypoint x="1400" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0rizzsm_di" bpmnElement="Flow_0rizzsm">
- <di:waypoint x="1970" y="230" />
- <di:waypoint x="2010" y="230" />
+ <di:waypoint x="1970" y="340" />
+ <di:waypoint x="2010" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1v4zg98_di" bpmnElement="Flow_1v4zg98">
- <di:waypoint x="1590" y="255" />
- <di:waypoint x="1590" y="302" />
+ <di:waypoint x="1590" y="365" />
+ <di:waypoint x="1590" y="412" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yrel0t_di" bpmnElement="Flow_1yrel0t">
- <di:waypoint x="1615" y="230" />
- <di:waypoint x="1700" y="230" />
+ <di:waypoint x="1615" y="340" />
+ <di:waypoint x="1700" y="340" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1649" y="212" width="18" height="14" />
+ <dc:Bounds x="1649" y="322" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gxv9id_di" bpmnElement="Flow_1gxv9id">
- <di:waypoint x="1180" y="230" />
- <di:waypoint x="1240" y="230" />
+ <di:waypoint x="1180" y="340" />
+ <di:waypoint x="1240" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_147tw7h_di" bpmnElement="Flow_147tw7h">
- <di:waypoint x="435" y="690" />
- <di:waypoint x="480" y="690" />
+ <di:waypoint x="435" y="800" />
+ <di:waypoint x="480" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0wvzz2r_di" bpmnElement="Flow_0wvzz2r">
- <di:waypoint x="198" y="690" />
- <di:waypoint x="240" y="690" />
+ <di:waypoint x="198" y="800" />
+ <di:waypoint x="240" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00clpwn_di" bpmnElement="Flow_00clpwn">
- <di:waypoint x="410" y="715" />
- <di:waypoint x="410" y="800" />
- <di:waypoint x="482" y="800" />
+ <di:waypoint x="410" y="825" />
+ <di:waypoint x="410" y="910" />
+ <di:waypoint x="482" y="910" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0q02qno_di" bpmnElement="Flow_0q02qno">
- <di:waypoint x="340" y="690" />
- <di:waypoint x="385" y="690" />
+ <di:waypoint x="340" y="800" />
+ <di:waypoint x="385" y="800" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10b15um_di" bpmnElement="Flow_10b15um">
- <di:waypoint x="410" y="475" />
- <di:waypoint x="410" y="560" />
- <di:waypoint x="482" y="560" />
+ <di:waypoint x="410" y="585" />
+ <di:waypoint x="410" y="670" />
+ <di:waypoint x="482" y="670" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0zjaac9_di" bpmnElement="Flow_0zjaac9">
- <di:waypoint x="435" y="450" />
- <di:waypoint x="480" y="450" />
+ <di:waypoint x="435" y="560" />
+ <di:waypoint x="480" y="560" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="449" y="432" width="18" height="14" />
+ <dc:Bounds x="449" y="542" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1q7frye_di" bpmnElement="Flow_1q7frye">
- <di:waypoint x="198" y="450" />
- <di:waypoint x="240" y="450" />
+ <di:waypoint x="198" y="560" />
+ <di:waypoint x="240" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yd57bl_di" bpmnElement="Flow_1yd57bl">
- <di:waypoint x="340" y="450" />
- <di:waypoint x="385" y="450" />
+ <di:waypoint x="340" y="560" />
+ <di:waypoint x="385" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0g9k299_di" bpmnElement="Flow_0g9k299">
- <di:waypoint x="690" y="205" />
- <di:waypoint x="690" y="100" />
- <di:waypoint x="752" y="100" />
+ <di:waypoint x="690" y="315" />
+ <di:waypoint x="690" y="210" />
+ <di:waypoint x="752" y="210" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="698" y="150" width="15" height="14" />
+ <dc:Bounds x="698" y="260" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00vt4gf_di" bpmnElement="Flow_00vt4gf">
- <di:waypoint x="715" y="230" />
- <di:waypoint x="800" y="230" />
+ <di:waypoint x="715" y="340" />
+ <di:waypoint x="800" y="340" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="749" y="212" width="18" height="14" />
+ <dc:Bounds x="749" y="322" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0uxerfg_di" bpmnElement="Flow_0uxerfg">
- <di:waypoint x="620" y="230" />
- <di:waypoint x="665" y="230" />
+ <di:waypoint x="620" y="340" />
+ <di:waypoint x="665" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10f44ab_di" bpmnElement="Flow_10f44ab">
- <di:waypoint x="480" y="230" />
- <di:waypoint x="520" y="230" />
+ <di:waypoint x="480" y="340" />
+ <di:waypoint x="520" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1cnfilb_di" bpmnElement="Flow_1cnfilb">
- <di:waypoint x="198" y="940" />
- <di:waypoint x="250" y="940" />
+ <di:waypoint x="198" y="1050" />
+ <di:waypoint x="250" y="1050" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0523saw_di" bpmnElement="Flow_0523saw">
- <di:waypoint x="990" y="205" />
- <di:waypoint x="990" y="130" />
- <di:waypoint x="1062" y="130" />
+ <di:waypoint x="990" y="315" />
+ <di:waypoint x="990" y="190" />
+ <di:waypoint x="1065" y="190" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00fb28f_di" bpmnElement="Flow_00fb28f">
- <di:waypoint x="1015" y="230" />
- <di:waypoint x="1080" y="230" />
+ <di:waypoint x="1015" y="340" />
+ <di:waypoint x="1080" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00yl2jk_di" bpmnElement="Flow_00yl2jk">
- <di:waypoint x="900" y="230" />
- <di:waypoint x="965" y="230" />
+ <di:waypoint x="900" y="340" />
+ <di:waypoint x="965" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14z4acw_di" bpmnElement="Flow_14z4acw">
- <di:waypoint x="340" y="230" />
- <di:waypoint x="380" y="230" />
+ <di:waypoint x="340" y="340" />
+ <di:waypoint x="380" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0rh43xe_di" bpmnElement="Flow_0rh43xe">
- <di:waypoint x="198" y="230" />
- <di:waypoint x="240" y="230" />
+ <di:waypoint x="198" y="340" />
+ <di:waypoint x="240" y="340" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_055gbp2_di" bpmnElement="Event_055gbp2">
- <dc:Bounds x="162" y="212" width="36" height="36" />
+ <bpmndi:BPMNEdge id="Flow_1vyktdh_di" bpmnElement="Flow_1vyktdh">
+ <di:waypoint x="1115" y="190" />
+ <di:waypoint x="1222" y="190" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="168" y="255" width="24" height="14" />
+ <dc:Bounds x="1160" y="172" width="18" height="14" />
</bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Gateway_12oq1sa_di" bpmnElement="Gateway_12oq1sa" isMarkerVisible="true">
- <dc:Bounds x="965" y="205" width="50" height="50" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1buy9ji_di" bpmnElement="Flow_1buy9ji">
+ <di:waypoint x="1090" y="165" />
+ <di:waypoint x="1090" y="100" />
+ <di:waypoint x="1222" y="100" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="945" y="265" width="90" height="27" />
+ <dc:Bounds x="1098" y="130" width="15" height="14" />
</bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1v7p5kl_di" bpmnElement="Event_1n5z71a">
- <dc:Bounds x="2152" y="212" width="36" height="36" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0umba3p_di" bpmnElement="Flow_0umba3p">
+ <di:waypoint x="2230" y="340" />
+ <di:waypoint x="2297" y="340" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2255" y="322" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1xrbneh_di" bpmnElement="Flow_1xrbneh">
+ <di:waypoint x="2205" y="365" />
+ <di:waypoint x="2205" y="412" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="2137" y="255" width="71" height="27" />
+ <dc:Bounds x="2213" y="386" width="15" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_055gbp2_di" bpmnElement="Event_055gbp2">
+ <dc:Bounds x="162" y="322" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="168" y="365" width="25" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_01vyapf_di" bpmnElement="Event_0kkeo9m">
- <dc:Bounds x="162" y="432" width="36" height="36" />
+ <bpmndi:BPMNShape id="Gateway_12oq1sa_di" bpmnElement="Gateway_12oq1sa" isMarkerVisible="true">
+ <dc:Bounds x="965" y="315" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="157" y="475" width="48" height="27" />
+ <dc:Bounds x="945" y="375" width="90" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1u3s42m_di" bpmnElement="Event_09ey569">
- <dc:Bounds x="1742" y="672" width="36" height="36" />
+ <bpmndi:BPMNShape id="Event_01vyapf_di" bpmnElement="Event_0kkeo9m">
+ <dc:Bounds x="162" y="542" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1728" y="715" width="71" height="27" />
+ <dc:Bounds x="158" y="585" width="47" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_01fudey_di" bpmnElement="Event_0rzo7gj">
- <dc:Bounds x="1062" y="112" width="36" height="36" />
+ <bpmndi:BPMNShape id="Event_1u3s42m_di" bpmnElement="Event_09ey569">
+ <dc:Bounds x="1742" y="782" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1042" y="155" width="78" height="27" />
+ <dc:Bounds x="1728" y="825" width="71" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0gx3ps0_di" bpmnElement="Event_0gx3ps0">
- <dc:Bounds x="712" y="922" width="36" height="36" />
+ <dc:Bounds x="712" y="1032" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="720" y="965" width="20" height="14" />
+ <dc:Bounds x="720" y="1075" width="20" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0xcg677_di" bpmnElement="Gateway_0xcg677" isMarkerVisible="true">
- <dc:Bounds x="665" y="205" width="50" height="50" />
+ <dc:Bounds x="665" y="315" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="647" y="262" width="86" height="27" />
+ <dc:Bounds x="647" y="372" width="87" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0nr3me0_di" bpmnElement="Gateway_0nr3me0" isMarkerVisible="true">
- <dc:Bounds x="385" y="425" width="50" height="50" />
+ <dc:Bounds x="385" y="535" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="370" y="395" width="84" height="27" />
+ <dc:Bounds x="370" y="505" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0j998yp_di" bpmnElement="Event_0j998yp">
- <dc:Bounds x="162" y="672" width="36" height="36" />
+ <dc:Bounds x="162" y="782" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="150" y="715" width="64" height="27" />
+ <dc:Bounds x="151" y="825" width="63" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_05lm9ln_di" bpmnElement="Event_1nqpg0o">
- <dc:Bounds x="482" y="542" width="36" height="36" />
+ <dc:Bounds x="482" y="652" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="457" y="585" width="86" height="27" />
+ <dc:Bounds x="457" y="695" width="86" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0wv22e3_di" bpmnElement="Event_0ki3ncn">
- <dc:Bounds x="1732" y="432" width="36" height="36" />
+ <dc:Bounds x="1732" y="542" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1706" y="475" width="88" height="27" />
+ <dc:Bounds x="1706" y="585" width="88" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1djcl9x_di" bpmnElement="Event_1djcl9x">
- <dc:Bounds x="482" y="782" width="36" height="36" />
+ <dc:Bounds x="482" y="892" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="469" y="825" width="62" height="27" />
+ <dc:Bounds x="469" y="935" width="62" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0cemhjv_di" bpmnElement="Gateway_0cemhjv" isMarkerVisible="true">
- <dc:Bounds x="385" y="665" width="50" height="50" />
+ <dc:Bounds x="385" y="775" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="368" y="635" width="84" height="27" />
+ <dc:Bounds x="368" y="745" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_00e6sqq_di" bpmnElement="Activity_089t9fj">
- <dc:Bounds x="380" y="190" width="100" height="80" />
+ <dc:Bounds x="380" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_147vycg_di" bpmnElement="Activity_1fv6ljk">
- <dc:Bounds x="240" y="190" width="100" height="80" />
+ <dc:Bounds x="240" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1465ih9_di" bpmnElement="Activity_19myg2v">
- <dc:Bounds x="520" y="190" width="100" height="80" />
+ <dc:Bounds x="520" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_16l1ykw_di" bpmnElement="Activity_1atych2">
- <dc:Bounds x="800" y="190" width="100" height="80" />
+ <dc:Bounds x="800" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_10uophi_di" bpmnElement="Activity_0iluozh">
- <dc:Bounds x="1080" y="190" width="100" height="80" />
+ <dc:Bounds x="1080" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0u2aqld_di" bpmnElement="Activity_0u2aqld">
- <dc:Bounds x="1240" y="190" width="100" height="80" />
+ <dc:Bounds x="1240" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1hr68mt_di" bpmnElement="Activity_1hr68mt">
- <dc:Bounds x="1400" y="190" width="100" height="80" />
+ <dc:Bounds x="1400" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1xwu5f0_di" bpmnElement="Gateway_1xwu5f0" isMarkerVisible="true">
- <dc:Bounds x="1565" y="205" width="50" height="50" />
+ <dc:Bounds x="1565" y="315" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1564" y="175" width="54" height="27" />
+ <dc:Bounds x="1564" y="285" width="54" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0yfi3mj_di" bpmnElement="Event_0yfi3mj">
- <dc:Bounds x="1572" y="302" width="36" height="36" />
+ <dc:Bounds x="1572" y="412" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1607" y="286" width="85" height="27" />
+ <dc:Bounds x="1608" y="396" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_03sbng2_di" bpmnElement="Activity_03sbng2">
- <dc:Bounds x="1870" y="190" width="100" height="80" />
+ <dc:Bounds x="1870" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_08yj5gq_di" bpmnElement="Activity_08yj5gq">
- <dc:Bounds x="2010" y="190" width="100" height="80" />
+ <dc:Bounds x="2010" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1aesimf_di" bpmnElement="Activity_1aesimf" isExpanded="true">
- <dc:Bounds x="210" y="1130" width="770" height="170" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_1bqk5yt_di" bpmnElement="Flow_1bqk5yt">
- <di:waypoint x="630" y="1234" />
- <di:waypoint x="710" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0tw7xsp_di" bpmnElement="Flow_0tw7xsp">
- <di:waypoint x="278" y="1234" />
- <di:waypoint x="380" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_075rb1i_di" bpmnElement="Flow_075rb1i">
- <di:waypoint x="480" y="1234" />
- <di:waypoint x="530" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0y0r82m_di" bpmnElement="Flow_0y0r82m">
- <di:waypoint x="810" y="1234" />
- <di:waypoint x="892" y="1234" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_156ogc4_di" bpmnElement="Event_156ogc4">
- <dc:Bounds x="242" y="1216" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1n2qjvx_di" bpmnElement="Event_1n2qjvx">
- <dc:Bounds x="892" y="1216" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1eedm9e_di" bpmnElement="Activity_1eedm9e">
- <dc:Bounds x="710" y="1194" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1szd5yp_di" bpmnElement="Activity_1szd5yp">
- <dc:Bounds x="530" y="1194" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_01fudey_di" bpmnElement="Event_0rzo7gj">
+ <dc:Bounds x="1222" y="172" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1202" y="215" width="78" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0lpw3j7_di" bpmnElement="Activity_0lpw3j7">
- <dc:Bounds x="380" y="1194" width="100" height="80" />
+ <bpmndi:BPMNShape id="Gateway_0ci374j_di" bpmnElement="Gateway_0ci374j" isMarkerVisible="true">
+ <dc:Bounds x="1065" y="165" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1063" y="222" width="56" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0hioign_di" bpmnElement="Activity_0hioign" isExpanded="true">
- <dc:Bounds x="320" y="1420" width="440" height="140" />
+ <bpmndi:BPMNShape id="Event_04dd3u6_di" bpmnElement="Event_04dd3u6">
+ <dc:Bounds x="1222" y="82" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1206" y="125" width="71" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_0cvs8zk_di" bpmnElement="Flow_0cvs8zk">
- <di:waypoint x="408" y="1481" />
- <di:waypoint x="473" y="1481" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_01jdnrt_di" bpmnElement="Flow_01jdnrt">
- <di:waypoint x="573" y="1481" />
- <di:waypoint x="672" y="1481" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Activity_1f3cipf_di" bpmnElement="Activity_1f3cipf">
- <dc:Bounds x="473" y="1441" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_1v7p5kl_di" bpmnElement="Event_1n5z71a">
+ <dc:Bounds x="2297" y="322" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2282" y="365" width="71" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_18qzt1n_di" bpmnElement="Event_18qzt1n">
- <dc:Bounds x="672" y="1463" width="36" height="36" />
+ <bpmndi:BPMNShape id="Gateway_0n3zhxo_di" bpmnElement="Gateway_0n3zhxo" isMarkerVisible="true">
+ <dc:Bounds x="2180" y="315" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2169" y="285" width="73" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_0lvvn7i_di" bpmnElement="Event_0lvvn7i">
- <dc:Bounds x="372" y="1463" width="36" height="36" />
+ <bpmndi:BPMNShape id="Event_1akyxj9_di" bpmnElement="Event_1akyxj9">
+ <dc:Bounds x="2187" y="412" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2171" y="455" width="71" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1u5yry2_di" bpmnElement="Activity_09e5oh6">
- <dc:Bounds x="1700" y="190" width="100" height="80" />
+ <dc:Bounds x="1700" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ng1vyl_di" bpmnElement="Activity_1fzg56b">
- <dc:Bounds x="240" y="410" width="100" height="80" />
+ <dc:Bounds x="240" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1vabe3f_di" bpmnElement="Activity_0gtw2p7">
- <dc:Bounds x="480" y="410" width="100" height="80" />
+ <dc:Bounds x="480" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_07cr1m2_di" bpmnElement="Activity_07cr1m2">
- <dc:Bounds x="630" y="410" width="100" height="80" />
+ <dc:Bounds x="630" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_03hbxfi_di" bpmnElement="Activity_03hbxfi">
- <dc:Bounds x="790" y="410" width="100" height="80" />
+ <dc:Bounds x="790" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0br2i5b_di" bpmnElement="Activity_0br2i5b">
- <dc:Bounds x="960" y="410" width="100" height="80" />
+ <dc:Bounds x="960" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1ot96tc_di" bpmnElement="Gateway_1ot96tc" isMarkerVisible="true">
- <dc:Bounds x="1105" y="425" width="50" height="50" />
+ <dc:Bounds x="1105" y="535" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1088" y="395" width="84" height="14" />
+ <dc:Bounds x="1088" y="505" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0h9nwqd_di" bpmnElement="Event_0uco28x">
- <dc:Bounds x="1112" y="522" width="36" height="36" />
+ <dc:Bounds x="1112" y="632" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1088" y="565" width="85" height="27" />
+ <dc:Bounds x="1089" y="675" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1t28p4r_di" bpmnElement="Activity_1t28p4r">
- <dc:Bounds x="1580" y="410" width="100" height="80" />
+ <dc:Bounds x="1580" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_03o12kw_di" bpmnElement="Activity_1o0a55b">
- <dc:Bounds x="1410" y="410" width="100" height="80" />
+ <dc:Bounds x="1410" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1hkx6j5_di" bpmnElement="Activity_068a0cy">
- <dc:Bounds x="240" y="650" width="100" height="80" />
+ <dc:Bounds x="240" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_18xtkyi_di" bpmnElement="Event_1azfo77">
- <dc:Bounds x="162" y="922" width="36" height="36" />
+ <dc:Bounds x="162" y="1032" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="156" y="965" width="48" height="27" />
+ <dc:Bounds x="157" y="1075" width="47" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1wvru6z_di" bpmnElement="Activity_02vl5kt">
- <dc:Bounds x="480" y="650" width="100" height="80" />
+ <dc:Bounds x="480" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1kszh5k_di" bpmnElement="Activity_1kszh5k">
- <dc:Bounds x="640" y="650" width="100" height="80" />
+ <dc:Bounds x="640" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_09jt4b0_di" bpmnElement="Activity_09jt4b0">
- <dc:Bounds x="800" y="650" width="100" height="80" />
+ <dc:Bounds x="800" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1su25xm_di" bpmnElement="Activity_1su25xm">
- <dc:Bounds x="970" y="650" width="100" height="80" />
+ <dc:Bounds x="970" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_114io6q_di" bpmnElement="Gateway_114io6q" isMarkerVisible="true">
- <dc:Bounds x="1115" y="665" width="50" height="50" />
+ <dc:Bounds x="1115" y="775" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1098" y="641" width="84" height="14" />
+ <dc:Bounds x="1098" y="751" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_08ecfyj_di" bpmnElement="Event_08ecfyj">
- <dc:Bounds x="1122" y="762" width="36" height="36" />
+ <dc:Bounds x="1122" y="872" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1098" y="805" width="85" height="27" />
+ <dc:Bounds x="1099" y="915" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ftm8b6_di" bpmnElement="Activity_0ftm8b6">
- <dc:Bounds x="1410" y="650" width="100" height="80" />
+ <dc:Bounds x="1410" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1xnstqr_di" bpmnElement="Activity_1xnstqr">
- <dc:Bounds x="1580" y="650" width="100" height="80" />
+ <dc:Bounds x="1580" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_15f8u0i_di" bpmnElement="Activity_1xirwg3">
- <dc:Bounds x="1220" y="410" width="100" height="80" />
+ <dc:Bounds x="1220" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0xmezab_di" bpmnElement="Activity_0xmezab">
- <dc:Bounds x="1230" y="650" width="100" height="80" />
+ <dc:Bounds x="1230" y="760" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_17abdcy_di" bpmnElement="Activity_1j0xkqc">
- <dc:Bounds x="250" y="900" width="100" height="80" />
+ <dc:Bounds x="250" y="1010" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0huy5ph_di" bpmnElement="Activity_0huy5ph">
- <dc:Bounds x="390" y="900" width="100" height="80" />
+ <dc:Bounds x="390" y="1010" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tbardv_di" bpmnElement="Activity_1tbardv">
- <dc:Bounds x="560" y="900" width="100" height="80" />
+ <dc:Bounds x="560" y="1010" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0kp0sqc_di" bpmnElement="Event_0ocuo1o">
- <dc:Bounds x="752" y="82" width="36" height="36" />
+ <dc:Bounds x="752" y="192" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="735" y="125" width="71" height="27" />
+ <dc:Bounds x="735" y="235" width="71" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1aesimf_di" bpmnElement="Activity_1aesimf" isExpanded="true">
+ <dc:Bounds x="210" y="1240" width="770" height="170" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_1bqk5yt_di" bpmnElement="Flow_1bqk5yt">
+ <di:waypoint x="630" y="1344" />
+ <di:waypoint x="710" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0tw7xsp_di" bpmnElement="Flow_0tw7xsp">
+ <di:waypoint x="278" y="1344" />
+ <di:waypoint x="380" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_075rb1i_di" bpmnElement="Flow_075rb1i">
+ <di:waypoint x="480" y="1344" />
+ <di:waypoint x="530" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0y0r82m_di" bpmnElement="Flow_0y0r82m">
+ <di:waypoint x="810" y="1344" />
+ <di:waypoint x="892" y="1344" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_156ogc4_di" bpmnElement="Event_156ogc4">
+ <dc:Bounds x="242" y="1326" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_1n2qjvx_di" bpmnElement="Event_1n2qjvx">
+ <dc:Bounds x="892" y="1326" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1eedm9e_di" bpmnElement="Activity_1eedm9e">
+ <dc:Bounds x="710" y="1304" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1szd5yp_di" bpmnElement="Activity_1szd5yp">
+ <dc:Bounds x="530" y="1304" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0lpw3j7_di" bpmnElement="Activity_0lpw3j7">
+ <dc:Bounds x="380" y="1304" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0hioign_di" bpmnElement="Activity_0hioign" isExpanded="true">
+ <dc:Bounds x="320" y="1530" width="440" height="140" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_0cvs8zk_di" bpmnElement="Flow_0cvs8zk">
+ <di:waypoint x="408" y="1591" />
+ <di:waypoint x="473" y="1591" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_01jdnrt_di" bpmnElement="Flow_01jdnrt">
+ <di:waypoint x="573" y="1591" />
+ <di:waypoint x="672" y="1591" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Activity_1f3cipf_di" bpmnElement="Activity_1f3cipf">
+ <dc:Bounds x="473" y="1551" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_18qzt1n_di" bpmnElement="Event_18qzt1n">
+ <dc:Bounds x="672" y="1573" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0lvvn7i_di" bpmnElement="Event_0lvvn7i">
+ <dc:Bounds x="372" y="1573" width="36" height="36" />
+ </bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17amn3o" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17amn3o" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
<bpmn:process id="DoDeallocateAccessNSSI" name="DoDeallocateAccessNSSI" isExecutable="true">
<bpmn:startEvent id="Event_0seox25" name="Start">
<bpmn:outgoing>Flow_14g5p2j</bpmn:outgoing>
<bpmn:sequenceFlow id="Flow_16hk034" name="No" sourceRef="Gateway_1ypyzn3" targetRef="Activity_0umktii" />
<bpmn:sequenceFlow id="Flow_1she7i5" sourceRef="Activity_0szls0v" targetRef="Activity_0tbndh6" />
<bpmn:intermediateThrowEvent id="Event_0vthuwp" name="Goto Terminate TN FH/MH NSSI">
- <bpmn:incoming>Flow_1lfvp5s</bpmn:incoming>
+ <bpmn:incoming>Flow_01ssl7f</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_0dpa9td" name="TerminateTnNSSI" />
</bpmn:intermediateThrowEvent>
<bpmn:intermediateCatchEvent id="Event_0opsm2p" name="TN FH/MH Termination">
<bpmn:linkEventDefinition id="LinkEventDefinition_1gactc9" name="TerminateTnNSSI" />
</bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_0cj22bs" sourceRef="Event_0opsm2p" targetRef="Activity_0uul9fb" />
- <bpmn:sequenceFlow id="Flow_0412ven" sourceRef="Activity_0qho4pw" targetRef="Activity_03zg1pp" />
- <bpmn:sequenceFlow id="Flow_0tlog6y" sourceRef="Activity_03zg1pp" targetRef="Activity_1ri9jrn" />
- <bpmn:sequenceFlow id="Flow_1lfvp5s" sourceRef="Activity_1v1ra2k" targetRef="Event_0vthuwp" />
+ <bpmn:sequenceFlow id="Flow_0412ven" sourceRef="Activity_0qho4pw" targetRef="Gateway_11aiy0x" />
+ <bpmn:sequenceFlow id="Flow_1lfvp5s" sourceRef="Activity_1v1ra2k" targetRef="Gateway_0qsknv5" />
<bpmn:scriptTask id="Activity_1i58rru" name="Fetch Related NSSI and Slice profile details" scriptFormat="groovy">
<bpmn:incoming>Flow_1hm17vz</bpmn:incoming>
<bpmn:outgoing>Flow_0kt6k2i</bpmn:outgoing>
deallocator.performOofAnNfNSSITerminationCall(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:intermediateThrowEvent id="Event_18fpd51" name="Goto Terminate TN FH/MH NSSI">
- <bpmn:incoming>Flow_1x4e0k3</bpmn:incoming>
+ <bpmn:incoming>Flow_0b3qqvw</bpmn:incoming>
<bpmn:linkEventDefinition id="LinkEventDefinition_07j10pb" name="TerminateTnNSSI" />
</bpmn:intermediateThrowEvent>
<bpmn:scriptTask id="Activity_1v1ra2k" name="Delete RAN NF NSSI" scriptFormat="groovy">
<bpmn:outgoing>Flow_1x4e0k3</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_1bgguw0" sourceRef="Activity_17w3onz" targetRef="Activity_05frw6w" />
- <bpmn:sequenceFlow id="Flow_1x4e0k3" sourceRef="Activity_05frw6w" targetRef="Event_18fpd51" />
+ <bpmn:sequenceFlow id="Flow_1x4e0k3" sourceRef="Activity_05frw6w" targetRef="Gateway_0jjou51" />
<bpmn:scriptTask id="Activity_17w3onz" name="Update Job status" scriptFormat="groovy">
<bpmn:incoming>Flow_0vcn5tl</bpmn:incoming>
<bpmn:outgoing>Flow_1bgguw0</bpmn:outgoing>
deallocator.deleteRanNfSliceProfileInAAI(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_03zg1pp" name="Delete TN Slice profiles" scriptFormat="groovy">
- <bpmn:incoming>Flow_0412ven</bpmn:incoming>
- <bpmn:outgoing>Flow_0tlog6y</bpmn:outgoing>
+ <bpmn:incoming>Flow_12wqmdr</bpmn:incoming>
+ <bpmn:outgoing>Flow_15ok12u</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def deallocator = new DoDeAllocateAccessNSSI()
deallocator.deleteTNSliceProfileInAAI(execution)</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_1ri9jrn" name="Delete RAN NSSI" scriptFormat="groovy">
- <bpmn:incoming>Flow_0tlog6y</bpmn:incoming>
+ <bpmn:incoming>Flow_183aijy</bpmn:incoming>
<bpmn:outgoing>Flow_1nh3x4j</bpmn:outgoing>
<bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
def deallocator = new DoDeAllocateAccessNSSI()
<bpmn:callActivity id="Activity_0umktii" name="Modify RAN NF NSSI" calledElement="DoModifyRanNfNssi">
<bpmn:extensionElements>
<camunda:in source="anNfNssiId" target="serviceInstanceID" />
- <camunda:in source="anNfSliceProfileId" target="sliceProfileId" />
+ <camunda:in source="anNfSliceProfileId" target="SliceProfileId" />
<camunda:in source="msoRequestId" target="msoRequestId" />
<camunda:in source="globalSubscriberId" target="globalSubscriberId" />
<camunda:in source="subscriptionServiceType" target="subscriptionServiceType" />
<bpmn:errorEventDefinition id="ErrorEventDefinition_031y5kl" errorRef="Error_0i5gql0" />
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0x71rer" sourceRef="Activity_1wu2d9y" targetRef="Activity_0drkoau" />
+ <bpmn:exclusiveGateway id="Gateway_0jjou51" name="Is TN present?" default="Flow_0b3qqvw">
+ <bpmn:incoming>Flow_1x4e0k3</bpmn:incoming>
+ <bpmn:outgoing>Flow_0b3qqvw</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1yewqtt</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_0b3qqvw" name="Yes" sourceRef="Gateway_0jjou51" targetRef="Event_18fpd51" />
+ <bpmn:intermediateThrowEvent id="Event_05q1nj2" name="Goto AAI Updates">
+ <bpmn:incoming>Flow_1yewqtt</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_1tasi5v" name="UpdateAAI" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1yewqtt" name="No" sourceRef="Gateway_0jjou51" targetRef="Event_05q1nj2">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:exclusiveGateway id="Gateway_0qsknv5" name="Is TN present?" default="Flow_01ssl7f">
+ <bpmn:incoming>Flow_1lfvp5s</bpmn:incoming>
+ <bpmn:outgoing>Flow_01ssl7f</bpmn:outgoing>
+ <bpmn:outgoing>Flow_1scubfn</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_01ssl7f" name="Yes" sourceRef="Gateway_0qsknv5" targetRef="Event_0vthuwp" />
+ <bpmn:intermediateThrowEvent id="Event_0y39bzp" name="Goto AAI Updates">
+ <bpmn:incoming>Flow_1scubfn</bpmn:incoming>
+ <bpmn:linkEventDefinition id="LinkEventDefinition_01g0uqc" name="UpdateAAI" />
+ </bpmn:intermediateThrowEvent>
+ <bpmn:sequenceFlow id="Flow_1scubfn" name="No" sourceRef="Gateway_0qsknv5" targetRef="Event_0y39bzp">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:exclusiveGateway id="Gateway_11aiy0x" name="Is TN present?" default="Flow_12wqmdr">
+ <bpmn:incoming>Flow_0412ven</bpmn:incoming>
+ <bpmn:outgoing>Flow_12wqmdr</bpmn:outgoing>
+ <bpmn:outgoing>Flow_0r8ldai</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="Flow_12wqmdr" name="Yes" sourceRef="Gateway_11aiy0x" targetRef="Activity_03zg1pp" />
+ <bpmn:sequenceFlow id="Flow_0r8ldai" name="No" sourceRef="Gateway_11aiy0x" targetRef="Gateway_187nc60">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="Flow_183aijy" sourceRef="Gateway_187nc60" targetRef="Activity_1ri9jrn" />
+ <bpmn:parallelGateway id="Gateway_187nc60">
+ <bpmn:incoming>Flow_0r8ldai</bpmn:incoming>
+ <bpmn:incoming>Flow_15ok12u</bpmn:incoming>
+ <bpmn:outgoing>Flow_183aijy</bpmn:outgoing>
+ </bpmn:parallelGateway>
+ <bpmn:sequenceFlow id="Flow_15ok12u" sourceRef="Activity_03zg1pp" targetRef="Gateway_187nc60" />
</bpmn:process>
<bpmn:error id="Error_0i5gql0" name="DeallocateWorkflowError" errorCode="2500" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoDeallocateAccessNSSI">
+ <bpmndi:BPMNEdge id="Flow_0x71rer_di" bpmnElement="Flow_0x71rer">
+ <di:waypoint x="1275" y="650" />
+ <di:waypoint x="1320" y="650" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0k55zuy_di" bpmnElement="Flow_0k55zuy">
+ <di:waypoint x="1650" y="215" />
+ <di:waypoint x="1650" y="100" />
+ <di:waypoint x="1822" y="100" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1658" y="155" width="15" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0vcn5tl_di" bpmnElement="Flow_0vcn5tl">
+ <di:waypoint x="1675" y="240" />
+ <di:waypoint x="1820" y="240" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1739" y="222" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_18y4ab2_di" bpmnElement="Flow_18y4ab2">
+ <di:waypoint x="1500" y="240" />
+ <di:waypoint x="1625" y="240" />
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0omhxaj_di" bpmnElement="Flow_0omhxaj">
<di:waypoint x="238" y="1110" />
- <di:waypoint x="360" y="1110" />
+ <di:waypoint x="290" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_03fig6p_di" bpmnElement="Flow_03fig6p">
<di:waypoint x="2085" y="880" />
<di:waypoint x="1420" y="650" />
<di:waypoint x="1460" y="650" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0x71rer_di" bpmnElement="Flow_0x71rer">
- <di:waypoint x="1275" y="650" />
- <di:waypoint x="1320" y="650" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1s5fdmz_di" bpmnElement="Flow_1s5fdmz">
<di:waypoint x="1130" y="650" />
<di:waypoint x="1175" y="650" />
<di:waypoint x="1207" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1nh3x4j_di" bpmnElement="Flow_1nh3x4j">
- <di:waypoint x="810" y="1110" />
+ <di:waypoint x="840" y="1110" />
<di:waypoint x="880" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15bkzm7_di" bpmnElement="Flow_15bkzm7">
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1x4e0k3_di" bpmnElement="Flow_1x4e0k3">
<di:waypoint x="2130" y="240" />
- <di:waypoint x="2232" y="240" />
+ <di:waypoint x="2235" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1bgguw0_di" bpmnElement="Flow_1bgguw0">
<di:waypoint x="1920" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1lfvp5s_di" bpmnElement="Flow_1lfvp5s">
<di:waypoint x="2380" y="410" />
- <di:waypoint x="2422" y="410" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0tlog6y_di" bpmnElement="Flow_0tlog6y">
- <di:waypoint x="630" y="1110" />
- <di:waypoint x="710" y="1110" />
+ <di:waypoint x="2435" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0412ven_di" bpmnElement="Flow_0412ven">
- <di:waypoint x="460" y="1110" />
- <di:waypoint x="530" y="1110" />
+ <di:waypoint x="390" y="1110" />
+ <di:waypoint x="435" y="1110" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0cj22bs_di" bpmnElement="Flow_0cj22bs">
<di:waypoint x="238" y="880" />
<di:waypoint x="238" y="410" />
<di:waypoint x="290" y="410" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_18y4ab2_di" bpmnElement="Flow_18y4ab2">
- <di:waypoint x="1500" y="240" />
- <di:waypoint x="1625" y="240" />
+ <bpmndi:BPMNEdge id="Flow_0b3qqvw_di" bpmnElement="Flow_0b3qqvw">
+ <di:waypoint x="2285" y="240" />
+ <di:waypoint x="2362" y="240" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2315" y="222" width="18" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0vcn5tl_di" bpmnElement="Flow_0vcn5tl">
- <di:waypoint x="1675" y="240" />
- <di:waypoint x="1820" y="240" />
+ <bpmndi:BPMNEdge id="Flow_1yewqtt_di" bpmnElement="Flow_1yewqtt">
+ <di:waypoint x="2260" y="265" />
+ <di:waypoint x="2260" y="282" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1739" y="222" width="18" height="14" />
+ <dc:Bounds x="2268" y="271" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0k55zuy_di" bpmnElement="Flow_0k55zuy">
- <di:waypoint x="1650" y="215" />
- <di:waypoint x="1650" y="100" />
- <di:waypoint x="1822" y="100" />
+ <bpmndi:BPMNEdge id="Flow_01ssl7f_di" bpmnElement="Flow_01ssl7f">
+ <di:waypoint x="2485" y="410" />
+ <di:waypoint x="2552" y="410" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1658" y="155" width="15" height="14" />
+ <dc:Bounds x="2510" y="392" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1scubfn_di" bpmnElement="Flow_1scubfn">
+ <di:waypoint x="2460" y="435" />
+ <di:waypoint x="2460" y="482" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2468" y="456" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_12wqmdr_di" bpmnElement="Flow_12wqmdr">
+ <di:waypoint x="460" y="1135" />
+ <di:waypoint x="460" y="1260" />
+ <di:waypoint x="520" y="1260" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="466" y="1199" width="18" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0r8ldai_di" bpmnElement="Flow_0r8ldai">
+ <di:waypoint x="485" y="1110" />
+ <di:waypoint x="655" y="1110" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="589" y="1092" width="15" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_183aijy_di" bpmnElement="Flow_183aijy">
+ <di:waypoint x="705" y="1110" />
+ <di:waypoint x="740" y="1110" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_15ok12u_di" bpmnElement="Flow_15ok12u">
+ <di:waypoint x="620" y="1260" />
+ <di:waypoint x="680" y="1260" />
+ <di:waypoint x="680" y="1135" />
+ </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0seox25_di" bpmnElement="Event_0seox25">
<dc:Bounds x="202" y="392" width="36" height="36" />
<bpmndi:BPMNLabel>
<bpmndi:BPMNShape id="Gateway_1ypyzn3_di" bpmnElement="Gateway_1ypyzn3" isMarkerVisible="true">
<dc:Bounds x="1265" y="385" width="50" height="50" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_1dvx4n9_di" bpmnElement="Event_0vthuwp">
- <dc:Bounds x="2422" y="392" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="2399" y="438" width="82" height="27" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1ekryu8_di" bpmnElement="Event_0opsm2p">
<dc:Bounds x="202" y="862" width="36" height="36" />
<bpmndi:BPMNLabel>
<bpmndi:BPMNShape id="Activity_1h4jup8_di" bpmnElement="Activity_0gzrekf">
<dc:Bounds x="1100" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_18fpd51_di" bpmnElement="Event_18fpd51">
- <dc:Bounds x="2232" y="222" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="2209" y="268" width="82" height="27" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0m43umg_di" bpmnElement="Activity_1v1ra2k">
<dc:Bounds x="2280" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_05frw6w_di" bpmnElement="Activity_05frw6w">
+ <dc:Bounds x="2030" y="200" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0njdei2_di" bpmnElement="Activity_17w3onz">
+ <dc:Bounds x="1820" y="200" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1i1fknn_di" bpmnElement="Activity_1irtrgt">
<dc:Bounds x="1970" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1i9b3oi_di" bpmnElement="Activity_114fx71">
<dc:Bounds x="1330" y="840" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_01s2lve_di" bpmnElement="Activity_0umktii">
- <dc:Bounds x="1400" y="200" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_18fpd51_di" bpmnElement="Event_18fpd51">
+ <dc:Bounds x="2362" y="222" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2340" y="268" width="81" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_05frw6w_di" bpmnElement="Activity_05frw6w">
- <dc:Bounds x="2030" y="200" width="100" height="80" />
+ <bpmndi:BPMNShape id="Event_1dvx4n9_di" bpmnElement="Event_0vthuwp">
+ <dc:Bounds x="2552" y="392" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2530" y="438" width="81" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0njdei2_di" bpmnElement="Activity_17w3onz">
- <dc:Bounds x="1820" y="200" width="100" height="80" />
+ <bpmndi:BPMNShape id="Gateway_0jjou51_di" bpmnElement="Gateway_0jjou51" isMarkerVisible="true">
+ <dc:Bounds x="2235" y="215" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2224" y="185" width="73" height="14" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Gateway_0g02vzi_di" bpmnElement="Gateway_0g02vzi" isMarkerVisible="true">
- <dc:Bounds x="1625" y="215" width="50" height="50" />
+ <bpmndi:BPMNShape id="Event_05q1nj2_di" bpmnElement="Event_05q1nj2">
+ <dc:Bounds x="2242" y="282" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1619" y="272" width="63" height="27" />
+ <dc:Bounds x="2218" y="328" width="90" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_0qsknv5_di" bpmnElement="Gateway_0qsknv5" isMarkerVisible="true">
+ <dc:Bounds x="2435" y="385" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2423" y="361" width="73" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0y39bzp_di" bpmnElement="Event_0y39bzp">
+ <dc:Bounds x="2442" y="482" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="2418" y="528" width="90" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0r4899a_di" bpmnElement="Activity_0qho4pw">
+ <dc:Bounds x="290" y="1070" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_11aiy0x_di" bpmnElement="Gateway_11aiy0x" isMarkerVisible="true">
+ <dc:Bounds x="435" y="1085" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="424" y="1055" width="73" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0b0pl0x_di" bpmnElement="Activity_03zg1pp">
+ <dc:Bounds x="520" y="1220" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0dreslj_di" bpmnElement="Activity_1ri9jrn">
+ <dc:Bounds x="740" y="1070" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Gateway_10923hr_di" bpmnElement="Gateway_187nc60">
+ <dc:Bounds x="655" y="1085" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0qbd3cz_di" bpmnElement="Activity_0qbd3cz" isExpanded="true">
+ <dc:Bounds x="820" y="1310" width="770" height="170" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_0nsc2oc_di" bpmnElement="Flow_0nsc2oc">
+ <di:waypoint x="1240" y="1414" />
+ <di:waypoint x="1320" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1q1450g_di" bpmnElement="Flow_1q1450g">
+ <di:waypoint x="888" y="1414" />
+ <di:waypoint x="990" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_0alqcat_di" bpmnElement="Flow_0alqcat">
+ <di:waypoint x="1090" y="1414" />
+ <di:waypoint x="1140" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_035ivcv_di" bpmnElement="Flow_035ivcv">
+ <di:waypoint x="1420" y="1414" />
+ <di:waypoint x="1502" y="1414" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_13wl9ag_di" bpmnElement="Event_13wl9ag">
+ <dc:Bounds x="852" y="1396" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0ugnt78_di" bpmnElement="Event_0ugnt78">
+ <dc:Bounds x="1502" y="1396" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1mzoss1_di" bpmnElement="Activity_1mzoss1">
+ <dc:Bounds x="1320" y="1374" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_055w5hr_di" bpmnElement="Activity_055w5hr">
+ <dc:Bounds x="1140" y="1374" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_1nr7xyr_di" bpmnElement="Activity_1nr7xyr">
+ <dc:Bounds x="990" y="1374" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0jtob0z_di" bpmnElement="Activity_0jtob0z">
<dc:Bounds x="1780" y="610" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_10vgzv9_di" bpmnElement="Activity_0lszayp">
<dc:Bounds x="1720" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0c0vkj6_di" bpmnElement="Activity_0c0vkj6" isExpanded="true">
+ <dc:Bounds x="930" y="1600" width="440" height="140" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="Flow_0bkcs42_di" bpmnElement="Flow_0bkcs42">
+ <di:waypoint x="1018" y="1661" />
+ <di:waypoint x="1083" y="1661" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="Flow_1b5mtc4_di" bpmnElement="Flow_1b5mtc4">
+ <di:waypoint x="1183" y="1661" />
+ <di:waypoint x="1282" y="1661" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Event_1bqq1on_di" bpmnElement="Event_1bqq1on">
+ <dc:Bounds x="982" y="1643" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Event_0qb738v_di" bpmnElement="Event_0qb738v">
+ <dc:Bounds x="1282" y="1643" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Activity_0187ysa_di" bpmnElement="Activity_0187ysa">
+ <dc:Bounds x="1083" y="1621" width="100" height="80" />
+ </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_115teb9_di" bpmnElement="Activity_115teb9">
<dc:Bounds x="1460" y="610" width="100" height="80" />
</bpmndi:BPMNShape>
<dc:Bounds x="189" y="1135" width="62" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0r4899a_di" bpmnElement="Activity_0qho4pw">
- <dc:Bounds x="360" y="1070" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0b0pl0x_di" bpmnElement="Activity_03zg1pp">
- <dc:Bounds x="530" y="1070" width="100" height="80" />
+ <bpmndi:BPMNShape id="Activity_01s2lve_di" bpmnElement="Activity_0umktii">
+ <dc:Bounds x="1400" y="200" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0dreslj_di" bpmnElement="Activity_1ri9jrn">
- <dc:Bounds x="710" y="1070" width="100" height="80" />
+ <bpmndi:BPMNShape id="Gateway_0g02vzi_di" bpmnElement="Gateway_0g02vzi" isMarkerVisible="true">
+ <dc:Bounds x="1625" y="215" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1619" y="272" width="63" height="27" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1m6hsxq_di" bpmnElement="Event_161u9s2">
<dc:Bounds x="1822" y="82" width="36" height="36" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0qbd3cz_di" bpmnElement="Activity_0qbd3cz" isExpanded="true">
- <dc:Bounds x="820" y="1310" width="770" height="170" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_0nsc2oc_di" bpmnElement="Flow_0nsc2oc">
- <di:waypoint x="1240" y="1414" />
- <di:waypoint x="1320" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_1q1450g_di" bpmnElement="Flow_1q1450g">
- <di:waypoint x="888" y="1414" />
- <di:waypoint x="990" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_0alqcat_di" bpmnElement="Flow_0alqcat">
- <di:waypoint x="1090" y="1414" />
- <di:waypoint x="1140" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_035ivcv_di" bpmnElement="Flow_035ivcv">
- <di:waypoint x="1420" y="1414" />
- <di:waypoint x="1502" y="1414" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_13wl9ag_di" bpmnElement="Event_13wl9ag">
- <dc:Bounds x="852" y="1396" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_0ugnt78_di" bpmnElement="Event_0ugnt78">
- <dc:Bounds x="1502" y="1396" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1mzoss1_di" bpmnElement="Activity_1mzoss1">
- <dc:Bounds x="1320" y="1374" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_055w5hr_di" bpmnElement="Activity_055w5hr">
- <dc:Bounds x="1140" y="1374" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_1nr7xyr_di" bpmnElement="Activity_1nr7xyr">
- <dc:Bounds x="990" y="1374" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0c0vkj6_di" bpmnElement="Activity_0c0vkj6" isExpanded="true">
- <dc:Bounds x="930" y="1600" width="440" height="140" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="Flow_0bkcs42_di" bpmnElement="Flow_0bkcs42">
- <di:waypoint x="1018" y="1661" />
- <di:waypoint x="1083" y="1661" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="Flow_1b5mtc4_di" bpmnElement="Flow_1b5mtc4">
- <di:waypoint x="1183" y="1661" />
- <di:waypoint x="1282" y="1661" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="Event_1bqq1on_di" bpmnElement="Event_1bqq1on">
- <dc:Bounds x="982" y="1643" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Event_0qb738v_di" bpmnElement="Event_0qb738v">
- <dc:Bounds x="1282" y="1643" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Activity_0187ysa_di" bpmnElement="Activity_0187ysa">
- <dc:Bounds x="1083" y="1621" width="100" height="80" />
- </bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
List<Resource> resourceList = new ArrayList<>();
List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
- if (resourceType == WorkflowType.SERVICE || isVNFCreateOrDelete(resourceType, requestAction)) {
+ if (resourceType == WorkflowType.SERVICE || isVNFCreate(resourceType, requestAction)) {
resourceList = serviceEBBLoader.getResourceListForService(sIRequest, requestAction, execution,
serviceInstanceId, resourceId, aaiResourceIds);
- } else if (resourceType == WorkflowType.VNF && (REPLACEINSTANCE.equalsIgnoreCase(requestAction)
- || (RECREATE_INSTANCE.equalsIgnoreCase(requestAction)))) {
+ } else if (resourceType == WorkflowType.VNF
+ && (DELETE_INSTANCE.equalsIgnoreCase(requestAction) || REPLACEINSTANCE.equalsIgnoreCase(requestAction)
+ || (RECREATE_INSTANCE.equalsIgnoreCase(requestAction)))) {
vnfEBBLoader.traverseAAIVnf(execution, resourceList, workflowResourceIds.getServiceInstanceId(),
workflowResourceIds.getVnfId(), aaiResourceIds);
} else if (resourceType == WorkflowType.VNF && UPDATE_INSTANCE.equalsIgnoreCase(requestAction)) {
return flowsToExecute;
}
- private boolean isVNFCreateOrDelete(WorkflowType resourceType, String requestAction) {
- return resourceType == WorkflowType.VNF
- && (CREATE_INSTANCE.equalsIgnoreCase(requestAction) || DELETE_INSTANCE.equalsIgnoreCase(requestAction));
+ private boolean isVNFCreate(WorkflowType resourceType, String requestAction) {
+ return resourceType == WorkflowType.VNF && CREATE_INSTANCE.equalsIgnoreCase(requestAction);
}
private void setExecutionVariables(DelegateExecution execution, List<ExecuteBuildingBlock> flowsToExecute,
import com.fasterxml.jackson.core.JsonProcessingException;
import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.javatuples.Pair;
+import org.onap.aai.domain.yang.GenericVnf;
import org.onap.aai.domain.yang.Relationship;
import org.onap.aai.domain.yang.ServiceInstance;
import org.onap.aai.domain.yang.VpnBinding;
}
for (org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf : serviceInstanceMSO.getVnfs()) {
aaiResourceIds.add(new Pair<>(WorkflowType.VNF, vnf.getVnfId()));
+ GenericVnf genericVnf = bbInputSetupUtils.getAAIGenericVnf(vnf.getVnfId());
Resource vnfResource = new Resource(WorkflowType.VNF, vnf.getVnfId(), false, serviceResource);
+ vnfResource.setVnfCustomizationId(genericVnf.getModelCustomizationId());
resourceList.add(vnfResource);
traverseVnfModules(resourceList, vnfResource, aaiResourceIds, vnf);
if (vnf.getVolumeGroups() != null) {
import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
aaiResourceIds.add(new Pair<>(WorkflowType.VFMODULE, vfModule.getVfModuleId()));
Resource vfModuleResource =
new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false, vnfResource);
+ Optional.ofNullable(vfModule.getModelInfoVfModule()).map(ModelInfoVfModule::getIsBaseBoolean)
+ .ifPresent(vfModuleResource::setBaseVfModule);
resourceList.add(vfModuleResource);
findConfigurationsInsideVfModule(execution, vnf.getVnfId(), vfModule.getVfModuleId(), resourceList,
vfModuleResource, aaiResourceIds);
import org.junit.rules.ExpectedException;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.Spy;
+import org.onap.aai.domain.yang.GenericVnf;
import org.onap.aai.domain.yang.Relationship;
import org.onap.aai.domain.yang.RelationshipList;
import org.onap.aai.domain.yang.ServiceInstance;
doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any());
when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
workflowAction.selectExecutionList(execution);
doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any());
when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
workflowAction.selectExecutionList(execution);
doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any());
when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource,
false, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
workflowAction.selectExecutionList(execution);
import org.onap.so.bpmn.infrastructure.workflow.tasks.VrfBondingServiceException;
import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType;
import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
serviceInstanceAAI.setServiceInstanceId(resourceId);
org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstance = setServiceInstance();
- setGenericVnf();
+ GenericVnf genericVnf = setGenericVnf();
setVfModule(true);
setVolumeGroup();
setL3Network();
setCollection();
setConfiguration();
+ org.onap.aai.domain.yang.GenericVnf genericVnfAai = new org.onap.aai.domain.yang.GenericVnf();
+ genericVnfAai.setModelCustomizationId(genericVnf.getModelInfoGenericVnf().getModelCustomizationUuid());
+
Configuration config = new Configuration();
config.setConfigurationId("testConfigurationId2");
serviceInstance.getConfigurations().add(config);
aaiConfiguration2.setRelationshipList(relationshipList1);
try {
+ doReturn(genericVnfAai).when(mockBbInputSetupUtils).getAAIGenericVnf(genericVnf.getVnfId());
doReturn(serviceInstanceAAI).when(mockBbInputSetupUtils).getAAIServiceInstanceById(resourceId);
doReturn(serviceInstance).when(mockBbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
doReturn(Optional.of(aaiConfiguration1)).when(mockAaiConfigurationResources)
import org.javatuples.Pair;
import org.junit.Before;
import org.junit.Test;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
cut.traverseAAIVnf(delegateExecution, resourceList, serviceId, vnfId, aaiResourceIds);
assertEquals(WorkflowType.SERVICE, resourceList.get(0).getResourceType());
}
+
+ @Test
+ public void traverseAAIVnf_should_add_vnfs_and_vfmodules() throws Exception {
+ List<Resource> resourceList = new ArrayList<>();
+ List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>();
+
+ GenericVnf genericVnf = mock(GenericVnf.class);
+ doReturn(vnfId).when(genericVnf).getVnfId();
+
+ VfModule vfModule = mock(VfModule.class);
+ ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
+ modelInfoVfModule.setIsBaseBoolean(true);
+ doReturn(modelInfoVfModule).when(vfModule).getModelInfoVfModule();
+
+ doReturn(serviceInstanceAAI).when(bbInputSetupUtils).getAAIServiceInstanceById(serviceId);
+ doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
+ doReturn(List.of(genericVnf)).when(serviceInstanceMSO).getVnfs();
+ doReturn(List.of(vfModule)).when(genericVnf).getVfModules();
+ cut = new VnfEBBLoader(bbInputSetupUtils, bbInputSetup, workflowActionUtils, exceptionBuilder);
+
+ cut.traverseAAIVnf(delegateExecution, resourceList, serviceId, vnfId, aaiResourceIds);
+
+ assertEquals(3, resourceList.size());
+ assertEquals(WorkflowType.VNF, resourceList.get(1).getResourceType());
+ assertEquals(WorkflowType.VFMODULE, resourceList.get(2).getResourceType());
+ assertTrue(resourceList.get(2).isBaseVfModule());
+ }
}
private String pLMNIdList;
private String actionType;
+
+ private String resourceSharingLevel;
+
}
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2021 Wipro Ltd.
+
+E2E Network Slicing
+===================
+The objective of this use case is to realize **End-to-End 5G Network
+Slicing** using ONAP. An End-to-End Network Slice consists of RAN (Radio
+Access Network), Transport Network (TN) and Core Network (CN) slice
+sub-nets. This use case intends to demonstrate the modeling,
+orchestration (life cycle and resources) and assurance of a network
+slice which are implemented in alignment with relevant standards.
+
+Overall High level view for ONAP-based Slice Management
+=======================================================
+
+Architecture Choice
+-------------------
+
+3GPP(TS 28.801) defines three layer slice management functions which include:
+
+CSMF(Communication Service Management Function):
+
+- Responsible for translating the communication service related requirement to network slice related requirements.
+
+- Communicate with Network Slice Management Function (NSMF).
+
+NSMF(Network Slice Management Function):
+
+- Responsible for management and orchestration of NSI.
+
+- Derive network slice subnet related requirements from network slice related requirements.
+
+- Communicate with the Network Slice Subnet Management Function (NSSMF) and Communication Service Management Function.
+
+NSSMF(Network Slice Subnet Management Function):
+
+- Responsible for management and orchestration of NSSI.
+
+- Communicate with the NSMF.
+
+.. image:: ../images/e2e-network-slicing-architecture.png
+
+To realize the three layers of the slice management function, we need to decide whether to implement CSMF, NSMF or NSMF within ONAP, or use the external CSMF, NSMF or NSSMF. This implies that for ONAP-based network slice management, we have different choices from an architectural perspective:
+
+1. Implement CSMF, NSMF, NSSMF all within ONAP;
+
+2. Connect an external CSMF from the Northbound, Implement NSMF and NSSMF within ONAP;
+
+3. Connect an external CSMF from the Northbound, Implement NSMF within ONAP, Connect a 3rd party NSSMF from the Southbound;
+
+4. Implement CSMF, NSMF within ONAP, Connect a 3rd party NSSMF from then Southbound.
+
+5. Use external CSMF and NSMF, only implement NSSMF within ONAP.
+
+.. image:: ../images/architecture-choices-e2e-slicing.png
+
+Slice Management Functions - Realization in SO
+----------------------------------------------
+
+- CSMF and NSMF is realized within ONAP (enhancement in Frankfurt functionality), and the NB interfaces is standardized using ExtAPI.
+
+- All 3 NSSMFs shall be realized within ONAP (From Guilin).
+
+- ONAP acting as NSMF shall also interact with external RAN and Transport NSSMF using 3GPP APIs
+
+- CSMF reliazed within SO receives service requirements from EXT-API, which translates service requirements to slice profile(NST selection) and sends request to NSMF for slice allocation.
+
+- NSMF reliazed within SO receives request for slice allocation (slice profile, S-NSSAI, NST) and determines slice instantiation/modification (with OOF) to fulfil the slice allocation request.
+
+- NSSMF reliazed within SO receive information from NSMF & trigger RAN/Core/Transport NSSMF for orchestration actions.
+
+Network Slice Instance (NSI) Life Cycle View
+--------------------------------------------
+
+Design and pre-provision: Creation of necessary slice/slice sub-net templates. Creation, activation, deactivation and termination of NSI, including its constituent slice sub-nets (RAN, Core and Transport)
+
+3GPP Specification (3GPP TS 28.530) describes management aspects of a Network Slice Instance, which can be described by the four phases:
+
+Preparation: The preparation phase includes network slice design, network slice capacity planning, on-boarding and evaluation of the network functions, preparing the network environment and other necessary preparations required to be done before the creation of an NSI
+
+Commisioning: NSI provisioning in the commissioning phase includes creation of the NSI. During NSI creation all needed resources are allocated and configured to satisfy the network slice requirements. The creation of an NSI can include creation and/or modification of the NSI constituents
+
+Operation: The Operation phase includes the activation, supervision, performance reporting (e.g. for KPI monitoring), resource capacity planning, modification,and de-activation of an NSI.
+
+Decommissioning: Network slice instance provisioning in the decommissioning phase includes decommissioning of non-shared constituents if required and removing the NSI specific configuration from the shared constituents. After the decommissioning phase, the NSI is terminated and does not exist anymore. The ONAP-based NSI lifecycle management will finally provide the demonstration of all these phases.
+
+The ONAP-based NSI lifecycle management will finally provide the demonstration of all these phases.
+
+.. image:: ../images/lifecycle-of-network-slice-instance.png
+
+Support for Option1 &Option2 in E2E Network Slicing
+---------------------------------------------------
+
+ONAP E2E Network Slicing option 1 and 2 differs on the RAN and FH/BH relationship.
+
+- In option 1, RAN NSSMF will decide FH/MH requirements and send to TN side, so RAN NSST will nest FH/MH NSST, and slice profile requirements will contain not only RAN side requirements but also FH/MH.
+
+Template design for option 1: https://wiki.onap.org/display/DW/Template+Design+for+Option+1
+
+.. image:: ../images/slicing-option1.png
+
+- In option 2, FH and MH are independent requirments when doing E2E requirements decomposition. Detailed background of option 1 and 2, please see E2E Network Slicing Use Case in R7 Guilin.
+
+Template design for option 2: https://wiki.onap.org/display/DW/Template+Design+for+Option2
+
+.. image:: ../images/slicing-option2.png
+
+3 domain combination solution -Endpoint
+---------------------------------------
+In order to enable 3 subnet connectivity, making end-to-end forwarding and control plane interacting, in slicing services, we need slicing interworking identifier and information to tell how RAN and Core connect with TN. Slicing interworking identifier(in ONAP is vlan Id, allocated by NSMF) is used to isolate differerent service datas, and identify the unique slicing service across RAN, TN and Core, 1 S-NSSAI will need to be assigned with 1 slicing interworking identifier(vlan Id). The slicing interworking information is used as bridges to connect RAN/Core and TN,it should be RAN/Core side outgress and TN ingress, like port, ipAddress, next hops and etc.
@Override
public boolean shouldRunFor(String requestUri, ServiceInstancesRequest request, Actions action) {
return Pattern.compile("[Vv][5-8]/serviceInstances/[^/]+/vnfs/[^/]+").matcher(requestUri).matches()
- && action.equals(Action.deleteInstance);
+ && action.equals(Action.deleteInstance)
+ && Boolean.TRUE.equals(request.getRequestDetails().getRequestParameters().getALaCarte());
}
@Override
import org.onap.so.apihandlerinfra.Action;
import org.onap.so.apihandlerinfra.infra.rest.AAIDataRetrieval;
import org.onap.so.apihandlerinfra.infra.rest.validators.VnfDeleteValidator;
+import org.onap.so.serviceinstancebeans.RequestDetails;
+import org.onap.so.serviceinstancebeans.RequestParameters;
import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
private Map<String, String> instanceIdMap = new HashMap<>();
+ public ServiceInstancesRequest createServiceInstancesRequest(boolean alacarte) {
+ ServiceInstancesRequest sir = new ServiceInstancesRequest();
+ sir.setRequestDetails(new RequestDetails());
+ sir.getRequestDetails().setRequestParameters(new RequestParameters());
+ sir.getRequestDetails().getRequestParameters().setaLaCarte(alacarte);
+ return sir;
+ }
+
@Test
public void validateURIMatchTest() {
assertEquals(true, vnfValidator.shouldRunFor("v8/serviceInstances/uasdfasdf/vnfs/asdfasdf",
- new ServiceInstancesRequest(), Action.deleteInstance));
+ createServiceInstancesRequest(true), Action.deleteInstance));
+ }
+
+ @Test
+ public void validateURIMatchNonAlacarteTest() {
+ assertEquals(false, vnfValidator.shouldRunFor("v8/serviceInstances/uasdfasdf/vnfs/asdfasdf",
+ createServiceInstancesRequest(false), Action.deleteInstance));
}
@Test