...
The following SOL005-based Operation sequence flow depicts the SO NFVO invocation architecture.
Create/Instantiate NS Sequences
The following diagram depicts the Create/Instantiate NS.
...
- Register ONAP SO NFVO into AAI through ESR
- From VID/UUI, invoke the NS LCM
- CreateVFCNSResource.bpmn
- CreateVFCNSResource.groovy
- preProcessRequest()
- Select vfcAdapter/SOL005 Adapter
instantiateNetworkService()
Populate String reqBody ="""{
"nsServiceName":"${nsServiceName}",
"nsServiceDescription":"${nsServiceDescription}",
"nsOperationKey":${nsOperationKey},
"nsParameters":${nsParameters}
}"""Send a request to vfcAdapter/SOL005 Adapter
- vfcAdapterUrl + "/ns/" + nsInstanceId + "/instantiate" with reqBody
- preProcessRequest()
- CreateVFCNSResource.groovy
- SOL005Adapter
- instantiateNS()
- Create instantiateNsRequest data
- set VnfLocationConstraint if any
- set additionalParamsForNs
- from the additionalParamForNS, get the NFVO orchestrator
- Query AAI to get a proper NFVO instance
- Prepare CreateNs request header
Map<String, String> requestHeader = new HashMap<>();
requestHeader.put("GLOBALCUSTOMERID", segInput.getNsOperationKey().getGlobalSubscriberId());
requestHeader.put("SERVICETYPE", segInput.getNsOperationKey().getServiceType());
- Send a instantiateNS request to ONAP SO NFVO
- Create instantiateNsRequest data
- Get an response status from SOL005 Adapter
- if 202 successful, get an Job id
- Save resource operation information
- Add relation between Service and NS in AAI
- Get an response status from SOL005 Adapter
Terminate/Delete NS
...
Sequences
The following diagram depicts the Terminate /
<TBD>
Delete NS<TBD>.
PlantUML Macro | ||
---|---|---|
| ||
@startuml
participant SO
participant SOL005_Adapter
participant SOL005_NBI
participant NS_LCMGR
participant RIM_Mgr
participant MultiCloud_Adapter
participant OOF
participant Catalog_DB_Adapter
participant ETSI_Catalog_Mgr
participant Inventory_DB_Adapter
participant AAI
participant SOL003_Adapter
participant VIM
participant VNFM
autonumber
group Terminate NS
SO -> SOL005_Adapter : Terminate NS
SOL005_Adapter -> SOL005_NBI : Terminate NS
SOL005_NBI -> NS_LCMGR : Terminate NS
NS_LCMGR -> Inventory_DB_Adapter : Query all instances related to NS
Inventory_DB_Adapter -> AAI : Query all instances related to NS
AAI -> Inventory_DB_Adapter : Return all instances for NS
Inventory_DB_Adapter -> NS_LCMGR : Return all instances for NS
NS_LCMGR --> NS_LCMGR : Start Delete NS instances
NS_LCMGR -> RIM_Mgr : Request Homing Information\nfor Network Service
RIM_Mgr -> OOF : Requests Homing Information\nfor Network Service
OOF -> RIM_Mgr : Response with Homing Information\nfor Network Service
RIM_Mgr --> RIM_Mgr : Persist Homing Information\nfor Network Service
loop Go thru each VNF
NS_LCMGR -> SOL003_Adapter : Delete VNF
SOL003_Adapter -> VNFM : Delete VNF
VNFM -> SOL003_Adapter : Request Grant resource for deletion
SOL003_Adapter -> NS_LCMGR : Request Grant resource for deletion
VNFM -> SOL003_Adapter : Request Grant VNF resource
SOL003_Adapter -> NS_LCMGR : Request Grant VNF resource
NS_LCMGR -> RIM_Mgr : Request Homing Information
RIM_Mgr -> OOF : Request Homing Information
OOF -> RIM_Mgr : Return with Homing Information\nfor the VNF
RIM_Mgr -> NS_LCMGR : Return with Homing Information\nfor the VNF
NS_LCMGR --> NS_LCMGR : Make a Grant decision
NS_LCMGR -> SOL003_Adapter : Return with a Grant decision
SOL003_Adapter -> VNFM: Return with a Grant decision
VNFM --> VNFM : Delete Resources
VNFM -> SOL003_Adapter : Notify changes of VNF/VDUs/CPs
SOL003_Adapter -> NS_LCMGR : Notify changes of VNF/VDUs/CPs
NS_LCMGR -> Inventory_DB_Adapter : Update records for Delete VNF/VDUs/CPs
Inventory_DB_Adapter -> AAI : Update records for Delete VNF/VDUs/CPs
AAI --> AAI : Update records for Delete VNF/VDUs/CPs
AAI -> Inventory_DB_Adapter : Return with Delete VNF/VDUs/CPs
Inventory_DB_Adapter -> NS_LCMGR : Return with Delete VNF/VDUs/CPs
end
NS_LCMGR -> MultiCloud_Adapter : Request for Delete VLs (if needed)
MultiCloud_Adapter -> VIM : Request for Delete VLs
VIM --> VIM : Delete VLs
NS_LCMGR -> Inventory_DB_Adapter : Update records for Delete VLs
Inventory_DB_Adapter -> AAI : Update records for Delete VLs
AAI --> AAI : Update records for Delete VLs
AAI -> Inventory_DB_Adapter : Return with Delete VLs
Inventory_DB_Adapter -> NS_LCMGR : Return with Delete VLs
NS_LCMGR -> SOL005_NBI : Send\nnsLcmOperationOccurrenceNotification
SOL005_NBI -> SOL005_Adapter : Send\nnsLcmOperationOccurrenceNotification
SOL005_Adapter -> SO : Send\nnsLcmOperationOccurrenceNotification
end
@enduml |
Terminate and Delete NS
- Register ONAP SO NFVO into AAI through ESR
- From VID/UUI, invoke the NS LCM
- DeleteVFCNSResource.bpmn
- DeleteVFCNSResource.groovy
- preProcessRequest()
- DoDeleteVFCNetworkServiceInstance.groovy
- preProcessRequest()
- Select vfcAdapter/SOL005 Adapter
String nsOperationKey = """{
"globalSubscriberId":"${globalSubscriberId}",
"serviceType":"${serviceType}",
"serviceId":"${serviceId}",
"operationId":"${operationId}",
"nodeTemplateUUID":"${nodeTemplateUUID}"
}"""
- deleteNSRelationship()
- delete relation between service and resource from AAI
- terminateNetworkService()
- POST vfcAdapterUrl + "/ns/" + nsInstanceId + "/terminate" with nsOperationKey
- preProcessRequest()
- DoDeleteVFCNetworkServiceInstance.groovy
- preProcessRequest()
- Select vfcAdapter/SOL005 Adapter
- String nsOperationKey = """{
"globalSubscriberId":"${globalSubscriberId}",
"serviceType":"${serviceType}",
"serviceId":"${serviceId}",
"operationId":"${operationId}",
"nodeTemplateUUID":"${nodeTemplateUUID}"
}"""
deleteNetworkService()
Send a request to vfcAdapter/SOL005 Adapter
- DELETE vfcAdapterUrl + "/ns/" with nsInstanceId
- preProcessRequest()
- DeleteVFCNSResource.groovy
- SOL005Adapter
- terminateNS()
- Send a terminateNS request to ONAP SO NFVO, with reqBody (terminationTime)
- add operation status to database
- deleteNS()
- Send a deleteNS request to ONAP SO NFVO
- add operation status to database
- deleteNS()
====================================================================================================================================================================================
...
PlantUML Macro | ||
---|---|---|
| ||
@startuml participant SO participant SOL005_Adapter participant SOL005_NBI participant NS_LCMGR participant RIM_Mgr participant MultiCloud_Adapter participant OOF participant Catalog_DB_Adapter participant ETSI_Catalog_Mgr participant Inventory_DB_Adapter participant AAI participant SOL003_Adapter participant VIM participant VNFM autonumber group Terminate NS SO -> SOL005_Adapter : Terminate NS SOL005_Adapter -> SOL005_NBI : Terminate NS SOL005_NBI -> NS_LCMGR : Terminate NS NS_LCMGR -> Inventory_DB_Adapter : Query all instances related to NS Inventory_DB_Adapter -> AAI : Query all instances related to NS AAI -> Inventory_DB_Adapter : Return all instances for NS Inventory_DB_Adapter -> NS_LCMGR : Return all instances for NS NS_LCMGR --> NS_LCMGR : Start Delete NS instances NS_LCMGR -> RIM_Mgr : Request Homing Information\nfor Network Service RIM_Mgr -> OOF : Requests Homing Information\nfor Network Service OOF -> RIM_Mgr : Response with Homing Information\nfor Network Service RIM_Mgr --> RIM_Mgr : Persist Homing Information\nfor Network Service loop Go thru each VNF NS_LCMGR -> SOL003_Adapter : Delete VNF SOL003_Adapter -> VNFM : Delete VNF VNFM -> SOL003_Adapter : Request Grant resource for deletion SOL003_Adapter -> NS_LCMGR : Request Grant resource for deletion VNFM -> SOL003_Adapter : Request Grant VNF resource SOL003_Adapter -> NS_LCMGR : Request Grant VNF resource NS_LCMGR -> RIM_Mgr : Request Homing Information RIM_Mgr -> OOF : Request Homing Information OOF -> RIM_Mgr : Return with Homing Information\nfor the VNF RIM_Mgr -> NS_LCMGR : Return with Homing Information\nfor the VNF NS_LCMGR --> NS_LCMGR : Make a Grant decision NS_LCMGR -> SOL003_Adapter : Return with a Grant decision SOL003_Adapter -> VNFM: Return with a Grant decision VNFM --> VNFM : Delete Resources VNFM -> SOL003_Adapter : Notify changes of VNF/VDUs/CPs SOL003_Adapter -> NS_LCMGR : Notify changes of VNF/VDUs/CPs NS_LCMGR -> Inventory_DB_Adapter : Update records for Delete VNF/VDUs/CPs Inventory_DB_Adapter -> AAI : Update records for Delete VNF/VDUs/CPs AAI --> AAI : Update records for Delete VNF/VDUs/CPs AAI -> Inventory_DB_Adapter : Return with Delete VNF/VDUs/CPs Inventory_DB_Adapter -> NS_LCMGR : Return with Delete VNF/VDUs/CPs end NS_LCMGR -> MultiCloud_Adapter : Request for Delete VLs (if needed) MultiCloud_Adapter -> VIM : Request for Delete VLs VIM --> VIM : Delete VLs NS_LCMGR -> Inventory_DB_Adapter : Update records for Delete VLs Inventory_DB_Adapter -> AAI : Update records for Delete VLs AAI --> AAI : Update records for Delete VLs AAI -> Inventory_DB_Adapter : Return with Delete VLs Inventory_DB_Adapter -> NS_LCMGR : Return with Delete VLs NS_LCMGR -> SOL005_NBI : Send\nnsLcmOperationOccurrenceNotification SOL005_NBI -> SOL005_Adapter : Send\nnsLcmOperationOccurrenceNotification SOL005_Adapter -> SO : Send\nnsLcmOperationOccurrenceNotification end @enduml |
Terminate NS
Request
TerminateNsRequest
...