...
Gliffy Diagram | ||||
---|---|---|---|---|
|
Gliffy Diagram | ||||||
---|---|---|---|---|---|---|
|
VNF Indicator Interface (Ve-Vnfm-em)
External VNFM can subscribe to SOL002 VNF Indicator notifications.
SOL002 Adapter reads VNF spesific specific VES events from DMaaP according to subscriptions and converts events to SOL002 interface format and sends as Notify events to external VNFM.
...
Epic | User Story | Description | Is Frankfurt? | JIRA | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
SOL002 Adapter | Epic: SOL002 Adapter will support EM-triggered VNF/VNFC Management | Partially |
| |||||||||
SOL002 Adapter executes VNF LCM operations towards VNFM | SOL002 Adapter utilizes VNFM exposed SOL002 VNF LCM interface:
| No | ||||||||||
SOL002 Adapter subscribes and consumes VNF LCM notifications from VNFM | SOL002 Adapter utilizes VNFM exposed SOL002 VNF LCM interface to subscribe LCM Notifications:
| Yes |
| |||||||||
SOL002 Adapter receives subscription and sends VNF Indicator notifications to VNFM | SOL002 Adapter exposes VNF Indicator subscription endpoint and sends Indicator notifications to external VNFM:
| No | ||||||||||
SOL002 Adapter receives VNF configuration request from VNFM | SOL002 Adapter exposes VNF configuration endpoint for external VNFM:
| No | ||||||||||
Documentation for SOL002 Adapter features | Documentation for SOL002 Adapter features | YesNo |
| |||||||||
...
draw.io Diagram border true viewerToolbar true fitWindow false diagramName SOL002 adapter architecture simpleViewer false diagramWidth 879877 revision 1016
SOL002Adapter will be the SO microservice component
- SOL002Adapter will be registered in the Microservice Bus (via helm chart)
- SOL002Adapter will be registered manually in the External System Register
- SOL002Adapter on startup will use MSB ESR to get external VNFM data
- SOL002Adapter on startup will register in VNFM for all LCM notifications
- BPMN will trigger LCM operation which will go to SOL003Adapter
- SOL003Adapter triggers the LCM flow in VNFM
- ETSI LCM notification is sent from VNFM and goes to SOL002Adapter
- SOL002Adapter will query A&AI to get VNF data
- SOL002Adapter will construct and publish DMaaP ONAP event via DCAE/DMaaP. At the current phase it will be in proprietary format DMaaP event t but later on it will evolve to VES event.
- Policy will consume DMaaP event
- Policy will call configuration component to configure VNF
For the integration testing, the VNFM Simulator in the CSIT container will be used
...
The following SOL002 operations will be supported:
API Action | Actor | Method | URI | Description |
---|---|---|---|---|
Subscribe for LCM notifications | SOL002 Adapter → VNFM | POST | /vnflcm/v1/subscriptions (LccnSubscriptionRequest) | To create subscription for LCM notification |
Notify on VNF lifecycle changes | VNFM → SOL002 Adapter | POST | /lcm/v1/vnf/instances/notifications (VnfLcmOperationOccurrenceNotification) | To notifify SOL002 adapter on VNF lifecycle changes |
SOL002 Operation Sequence Flows
...
Initially (for Frankfurt) SOL002_Adapter will be located in SO. Later on it has to be moved to other component (e.g. GNFC).
Development
The Ve-Vnfm-Adapter (SOL002Adapter) application is built using spring-boot with the web starter.
Subscription
Several times it tries to connect to AAI and get the list of resources with the type VNFM:
GET: https://aai.onap:8443/aai/v15/external-system/esr-vnfm-list
GET: https://aai.onap:8443/aai/v15/external-system/esr-vnfm-list/esr-vnfm/{name}?depth=1
Then the adapter connects to the URLs of all VNFMs in the list. It sends them its URL address and receives the subscription id.
Later, from time to time, it connects again to the VNFMs and checks if the subscription id is valid.
When it stops to be valid, it tries to re-subscribe for this VNFM again.
Notification
Whenever a VNFM receives an LCM Action message, the VNFM sends the information to the URL of the Ve-Vnfm-Adapter application that had subscribed to this VNFM.
When a Ve-Vnfm-Adapter application receives the Notification it sends a message about it to the Policy through the DMaaP.
DMaaP Message Format
Below is a message (the values are sample) sent over to DMaaP.
Code Block |
---|
{ "closedLoopControlName": "ClosedLoopControlName", "closedLoopAlarmStart": 1589825445, "closedLoopEventClient": "microservice.stringmatcher", "closedLoopEventStatus": "ONSET", "requestID": "8478ff7d-409d-4b7d-b932-f09ab54765ab", "target_type": "VNF", "target": "generic-vnf.vnf-id", "AAI": { "vserver.is-closed-loop-disabled": false, "generic-vnf.vnf-id": "<etsiLcmEventId>" }, "from": "ETSI", "version": "1.0.2", "etsiLcmEvent": { "id": "<etsiLcmEventId>", "notificationType": "VnfLcmOperationOccurrenceNotification", "subscriptionId": null, "timeStamp": null, "notificationStatus": "RESULT", "operationState": "COMPLETED", "vnfInstanceId": "2124DEPF", "operation": "INSTANTIATE", "isAutomaticInvocation": null, "vnfLcmOpOccId": "86d3de41-a7f7-48eb-9868-5b103dc36d26", "affectedVnfcs": [ { "id": "abc123", "vduId": "vdu987", "changeType": "ADDED", "computeResource": { "vimConnectionId": "vim001" } } ], "affectedVirtualLinks": null, "affectedVirtualStorages": null, "changedInfo": null, "changedExtConnectivity": null, "error": null, "_links": { "vnfInstance": { "href": "https://so-vnfm-simulator.onap:9093/vnflcm/v1/vnf_instances/2124DEPF" }, "subscription": null, "vnfLcmOpOcc": { "href": "https://so-vnfm-simulator.onap:9093/vnflcm/v1/vnf_lcm_op_occs/86d3de41-a7f7-48eb-9868-5b103dc36d26" } } } } |