Enhancement on PNF S/W Upgrade using Ansible
Table of Contents
Scenario Scope In Frankfurt
This scenario will complete the E2E procedure of PNF in-place SW upgrade case started from Casablanca (evolved in Dublin). The E2E procedure is VID→ SO→ Controller(SDNC/CCSDK)→Ansible Server→ EMS → PNF.
- Trigger by VID to upgrade speficific PNF instance's software
- Enhance SO to support PNF S/W upgrade workflow execution
- Add SO BBs to do precheck/downloadNESw/activateNESw/UpdateAAI/postcheck using SDNC client
Support LCM API for downloadNESw and activateNESw actions
Provide ansible playbooks for downloadNESw and activateNESw
- Enhance EMS emulator for integration test
Since this scenario started from Casanblanca, it is helpful to find more details completed in past releases with following link.
- In Casablanca: 5G - PNF Software Update
- In Dublin: 5G - PNF SW Upgrade (Casablanca carry-over items)
Sequence Diagram
Impacts
Project/Component | Story |
---|---|
SO | Support generic PNF workflow design |
SO | Support upgrade sw version at PNF instance level |
SO | Align with SO building block for PNF Upgrade procedure 1) Create new SO BB – downloadNESw 2) Create new SO BB – activateNESw 3) Create new SO BB – update AAI 4) Update SO BB – preCheck and postCheck |
SO | Support different controller decision points in SO |
SDNC/CCSDK | Support LCM API for downloadNESw and activateNESw actions |
SDNC/CCSDK | Provide ansible playbooks for downloadNESw and activateNESw |
VNFRQTS | PNF Software Upgrade with ansible with EM |
Integration | 1) EMS simulator extension 2) Integration document revision for PNF Sw Upgrade UC |
API Impacts Details
- LCM API of CCSDK:
LCM API Abbre. | HTTP Method | URI | Yang Model Section | Request Example | Response Example |
---|---|---|---|---|---|
UpgradePreCheck* | POST | /operations/LCM:upgrade-pre-check | 400: Success | ||
UpgradePostCheck* | /operations/LCM:upgrade-post-check | 400: Success | |||
DownloadNESw | /operations/LCM:download-n-e-sw | 400: Success | |||
ActivateNESw | /operations/LCM:activate-n-e-sw | 400: Success |
*: These LCM APIs are enhanced from R4/R5, and update the vnf-id field in action-identifiers to pnf-name in the request parameter.
The playbook-name in the payload of request is optional. If not set the playbook-name in the request, it will use the value in the config file /opt/onap/sdnc/data/properties/lcm-dg.properties of SDNC.
JIRA Status Tracking
Head Epic :
- INT-1207Getting issue details... STATUS
Test Status
No | Test Case | Test Status |
---|---|---|
1 | UpgradePreCheck for PNF instance from SDNC to EM using LCM API | COMPLETE |
2 | DownloadNESw for PNF instance from SDNC to EM using LCM API | COMPLETE |
3 | ActivateNESw for PNF instance from SDNC to EM using LCM API | COMPLETE |
4 | UpgradePostCheck for PNF instance from SDNC to EM using LCM API | COMPLETE |
5 | Test PNF SW upgrade Workflow for PNF instance from SO to SDNC (using LCM API) to EM | COMPLETE |
Preparation
1. Add topics SDNC-LCM-READ and SDNC-LCM-WRITE to DMaaP if they don't exist.
curl -s -H "Content-Type: application/json" -X POST http://message-router.onap:30227/topics/create -d ' { |
curl -s -H "Content-Type: application/json" -X POST http://message-router.onap:30227/topics/create -d ' { "topicName": "SDNC-LCM-WRITE", "partitionCount": "1", "replicationCount": "1" }' |
2. Add the following line in the file in /opt/ansible-server/Playbooks/Ansible_inventory in ansible-server container:
192.168.35.83 ansible_connection=ssh ansible_port=60032 ansible_user=admin ansible_ssh_private_key_file=/home/ansible/.ssh/ems.key |
Where ems.key is the private key of SSH user admin at EMS Simulator.
3. Initial PNF 5gDU0001 entry in AAI:
{ "pnf-name": "5gDU0001", "pnf-id": "5gDU0001", "ipaddress-v4-oam": "192.168.35.83", "sw-version": "v1", "in-maint": false, "resource-version": "1584873329418" } |
Where Sw Version of PNF 5gDU0001 is "v1".
4. Add some entries to SO catalogdb:
use catalogdb; insert into pnf_resource set MODEL_UUID='f50f34be-9aa7-4a03-aa12-fd29e5f27538', MODEL_VERSION='1.0'; insert into pnf_resource_customization set MODEL_CUSTOMIZATION_UUID='c57939f8-ee46-4700-aa3a-60374507d94f', MODEL_INSTANCE_NAME='TestPnf', PNF_RESOURCE_MODEL_UUID='f50f34be-9aa7-4a03-aa12-fd29e5f27538', CONTROLLER_ACTOR='sdnc'; insert into pnf_resource_customization_to_service set SERVICE_MODEL_UUID='296d49aa-236a-4920-a395-5620df09e765', RESOURCE_MODEL_CUSTOMIZATION_UUID='c57939f8-ee46-4700-aa3a-60374507d94f'; insert into workflow (ARTIFACT_UUID, ARTIFACT_NAME, NAME, VERSION, DESCRIPTION, RESOURCE_TARGET, SOURCE) values ('245a0bca-3816-45c6-9270-1de25d27fc56', 'PNFSoftwareUpgrade.bpmn', 'PNFSoftwareUpgrade', '1.0', 'PNF Software Upgrade Test', 'pnf', 'native'); |
Detailed Description of Integration Testcases and Results
Test case ID | 1 | ||||||
---|---|---|---|---|---|---|---|
Name | UpgradePreCheck for PNF instance from SDNC to EM using LCM API | ||||||
Description | UpgradePreCheck for PNF instance from SDNC to EM using LCM API | ||||||
Release | Frankfurt | ||||||
Pre-conditions | |||||||
Testing Steps |
| ||||||
Conclusion (Pass/Fail) | Pass | ||||||
Test Lab |
Test case ID | 2 | ||||||
---|---|---|---|---|---|---|---|
Name | DownloadNESw for PNF instance from SDNC to EM using LCM API | ||||||
Description | DownloadNESw for PNF instance from SDNC to EM using LCM API | ||||||
Release | Frankfurt | ||||||
Pre-conditions | |||||||
Testing Steps |
| ||||||
Conclusion (Pass/Fail) | Pass | ||||||
Test Lab |
Test case ID | 3 | ||||||
---|---|---|---|---|---|---|---|
Name | ActivateNESw for PNF instance from SDNC to EM using LCM API | ||||||
Description | ActivateNESw for PNF instance from SDNC to EM using LCM API | ||||||
Release | Frankfurt | ||||||
Pre-conditions | |||||||
Testing Steps |
| ||||||
Conclusion (Pass/Fail) | Pass | ||||||
Test Lab |
Test case ID | 4 | ||||||
---|---|---|---|---|---|---|---|
Name | UpgradePostCheck for PNF instance from SDNC to EM using LCM API | ||||||
Description | UpgradePostCheck for PNF instance from SDNC to EM using LCM API | ||||||
Release | Frankfurt | ||||||
Pre-conditions | |||||||
Testing Steps |
| ||||||
Conclusion (Pass/Fail) | Pass | ||||||
Test Lab |
Test case ID | 5 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Name | Test PNF SW upgrade Workflow for PNF instance from SO to SDNC (using LCM API) to EM | ||||||||||||||||
Description | Test PNF SW upgrade Workflow for PNF instance from SO to SDNC (using LCM API) to EM | ||||||||||||||||
Release | Frankfurt | ||||||||||||||||
Pre-conditions | |||||||||||||||||
Testing Steps | NOTE: Befor testing this case, reset the EMS Simulator to initial status.
Retrieve the status of the workflow:
While the requestStatus is "IN_PROGRESS", then wait a minute to retrieve the status of workflow again and agiain, until the requestStatus is "COMPLETED":
While the requestStatus is "COMPLETED", then retrieve the Sw Version of PNF 5gDU0001 in AAI:
The Sw Version of PNF 5gDU0001 in AAI is upgraded to "v2". | ||||||||||||||||
Conclusion (Pass/Fail) | Pass | ||||||||||||||||
Test Lab |