Rainy day scenario - PNF is sending registration request to ONAP where required AAI entry is not present:
Sunny day scenario - PNF is sending registration request to ONAP where required AAI entry is prepared by SO workflow:
PNF PNP deployment diagram
PNF PNP hardware requirements
ONAP - standard ONAP instance located in Wind River lab
4 Virtual machines dedicated for PNF Simulator:
2 VCPU
8 GB of RAM
32 GB of HDD
PNF PNP test cases
High-Level descriptions
Id.
Test Case Name
Test Case Description
T01
Create and distribute service which contains PNF based on imported VSP
Verification if in VID is present PNF enabled service.
T02
Waiting for PNF Ready
Verification if PNF PnP functionality within SO is waiting for PNFReady to be published by PRH.
T03
PNF registration accepted when AAI entry created in advance
Verification if PNF resource registration is done properly when correct AAI record (based on correlationID) is present before first InventoryQuery is done by PRH. Verification if AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on pnfRegistration message contents.
T04
PNF registration accepted when AAI entry created with delay
Verification if PNF resource registration is done properly when correct AAI entry is created after first InventoryQuery is done by PRH. Verification if AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on pnfRegistration message contents.
T05
PNF registration rejected
Verification if PRH drops the PnfRegistration request when no AAI entry exists for the correlationID. AAI entries shall not be created by PRH.
T06
Parallel PNF PnP flows
Four parallel PNF PnP flows are hibernated, PNFRegistration event is received in ONAP, proper PNF PnP enabled workflow instance is re-hydrated.
T07
PNF registration accepted when AAI entry is created using AAI API (without SO instantiation)
Verification if PNF resource registration is done properly when correct AAI record (based on correlationID) is present - created using AAI API Verification if AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on correlationID.
Detailed descriptions
Test Case ID
T01
Test Case Name
Create and distribute service which contains PNF based on imported VSP
Description
Verification if in VID is present PNF enabled service. Test case covers following steps from message flow in 5G - PNF Plug and Play:
STEP 1 RESOURCE DEFINITION
STEP 2 SERVICE DEFINITION
STEP 3 ARTIFACTS DISTRIBUTION
Release
Frankfurt/Guilin
Preconditions
Users with roles: Designer (Carlos Santana - cs0008), Admin (demo) should be available
Robot init sucesfully executed. In intsalation server followin script shoulkd be sucesfully ececuted.~/oom/kubernetes/robot/demo-k8s.sh onap init
Press Submit button and next COMMIT & SUBMIT button
Navigate to Home tab
Click on IMPORT button and select IMPORT VSP
Select previously created VSP and press IMPORT VSP button
In newly opened window yoiu can moduify PNF name.
Next click Create and Certify button
Next press Certify button. Put comment message in Certification confirmation pop-up and press OK button
Navigate to SDC tab / HOME menu
Click on ADD + button and select Add Service
In HOME > Create new service > General page fill all mandatory fields (change service type from default a'lacarte to macro) and press Create button in right top corner
Go to Composition in left menu
In search box find crated PNF using its name
Drag ad drop it to main view
Next click Certify button
Next Press Distribute button in left top corner
Press Monitor button in left top corner and verify distribution status, use refresh button
Re-login as a a demo user
VID Navigate to application
From left menu select Browse SDC Service Models
User is logged in
SDC application is open
ONBOARD CATALOG is visible
New License Model window is present
All mandatory parameters are fulfilled
License Key Group is added
Entitlement Pool is added
Feature Group is added
License Agreement is added
VLM is submitted sucesfully
VLM is visible
New Software Product window is present
All mandatory parameters are fulfilled
Licensing Version, License Agreement and Feature Groups and warning is not present
Licensing Version, License Agreement and Feature Groups are defined
Select file window is opened
File is selected
File is sucesfully uploaded and VSP is submited
Home tab is opened
Import VSP window is presnet with list of dubmited VSPs
Previously create VSP is imported as VSP and Create window is opened
All modifications are present
PNF is successfully Certified
SDC application is open
Page HOME > Create new service > General with fields that must be filled out is open
Create/Update saved successfully message is present in left top corner
Composition main view is open
PNF is visible
PNF is added to service
Service is Cerified and ready for Distribution
Distribute Distribute successfully message is present in left top corner
Monitor main view is opened with information about distribution. Thesr should not be any errors.
User is re-logged
VID application is open
In Browse SDC Service Models main view is present entry about newly created service - it can take couple of minutes ~ 15 minutes
Actual Results
In VID is present PNF enabled service.
Conclusion (Pass/Fail)
Testing Lab
Tester Name
Krzysztof Kuzmicki
Test Case ID
T02
Test Case Name
Waiting for PNFReady
Description
Verification if PNF PnP functionality within SO is waiting for PNFReady to be published by PRH.
Created PNF and Service using Test Case T01 (Create and distribute service which contains PNF based on imported VSP )
Testing Steps
Step
Expected Result
Get created service model in Test Case T01 curl --location --request GET 'https://{worker_ip}:30204/sdc2/rest/v1/catalog/services/serviceName/{service model name}/serviceVersion/1.0' \ --header 'USER_ID: cs0008' \ --header 'X-FromAppId: robot-ete' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'Authorization: Basic YmVlcDpib29w'
Fill all mandatory parameters. To "PNF (Correlation) ID" field put correlationId that will be setup in PNF simulator. Press "Confirm" button.
Close "In Progress" pop-up window
Login to so-so-bpmn-infra pod via rancher console: kubectl exec -it dev-so-so-bpmn-infra-7584f4f887-p9tmn -n onap /bin/sh open debug.log vi logs/bpmn/debug.log
Verify AAI entry created by SO service using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Service model is present
Paremeters are present
Owning Entity ID is presnet
Product Familiy ID is present
SO_request.json is filled accodingly
SO request is send sucesfully.
Service_instance_id is saved from POST response
Actual Results
Correct entry is present in AAI. Entry contains pnf-name equal to correlationID.
SO service is waiting for PNFReady to be published by PRH
Conclusion (Pass/Fail)
Testing Lab
Tester Name
Krzysztof Kuzmicki
Test Case ID
T03
Test Case Name
PNF registration accepting when AAI entry created in advance
Description
Verification if PNF resource registration is done properly when correct AAI record (based on correlationID) is present before first InventoryQuery is done by PRH. Verification if AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on correlationID.
Verify AAI entry created by SO service using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Login to virtual machine with simulator
In config.json file :
fill value for sourceName key - use correlationId value used during service instantiation in prerequisite no. 3
fill pnfOamIpv4Address, pnfOamIpv6Address with some value
Run script ./simulator.sh start-dev in order to start simulator
Run script./simulator.sh run simulator in order to start sending registration request messages
Once again verify AAI entry created by SO service using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Verify if SO service has reacted on PNFReady message from PRH and has ended
Command should return JSON with empty value for IPv4 and IPv6 address
User is logged in
config.json file is updated accordingly
PnP PNF simulator sends registration request
Command should return JSON with IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json
Instantiated SO service has been ended. Verification can be done:
SO-BPMN pod in /app/logs/bpmn/debug.log should be present following message: o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - pnf ready event got from dmaap for correlationId: <correlationId>
Actual Results
PNF registration is accepted and AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on correlationID. SO service is instantieted.
Conclusion (Pass/Fail)
Testing Lab
Tester Name
Krzysztof Kuzmicki
Test Case ID
T04
Test Case Name
PNF registration accepted when AAI entry created with delay
Description
Verification if PNF resource registration is done properly when correct AAI entry is created after first InventoryQuery is done by PRH. Verification if AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on pnfRegistration message contents.
Verify AAI entry created by SO service using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Login to virtual machine with simulator
In config.json file :
fill value for sourceName key - use correlationId value that will be used during service instantiation in step no. 7
fill pnfOamIpv4Address, pnfOamIpv6Address with some value
set testDuration (amount of registration requests) to value that allows incinerate SO service during period of time when messages are send to ONAP
set messageInterval interval with which messages are send to ONAP
Run script./simulator.sh run simulator in order to start sending registration request messages
Download PRH logs and check that registration requests has been rejected.
Instantiated service for PNF using Test Case T02(Waiting for PNFReady) - use corelationID from step no. 3
Once again verify AAI entry created by SO service using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Verify if SO service has reacted on PNFReady message from PRH and has ended
Command should return empty JSON
User is logged in
config.json file is updated accordingly
PnP PNF simulator sends registration request
Command should return JSON with IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json
In PRH log should appear following message: "org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException: Incorrect response code for continuation of tasks workflow"
Command should return JSON with IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json
Instantiated SO service has been ended. Verification can be done:
SO-BPMN pod in /app/logs/bpmn/debug.log should be present following message: o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - pnf ready event got from dmaap for correlationId: <correlationId>
Actual Results
PNF registration is accepted and AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on correlationID even AAI entry has been created after first InventoryQuery is done by PRH. SO service is instantieted.
Conclusion (Pass/Fail)
Testing Lab
Tester Name
Krzysztof Kuzmicki
Test Case ID
T05
Test Case Name
PNF registration rejected
Description
Verification if PRH drops the PnfRegistration request when no AAI entry exists for the correlationID. AAI entries shall not be created by PRH.
Verify AAI entry created by SO service using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Login to virtual machine with simulator
In config.json file :
fill value for sourceName
fill pnfOamIpv4Address, pnfOamIpv6Address with some value
Run script./simulator.sh run simulator in order to start sending registration request messages
Download PRH logs and check that registration requests has been rejected.
Once again verify AAI entry created by SO service using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Command should return HTTP 400 code
User is logged in
config.json file is updated accordingly
PnP PNF simulator sends registration request
In PRH log should appear following message: "org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException: Incorrect response code for continuation of tasks workflow"
Command should return HTTP 400 code
Actual Results
PNF registration is rejected and AAI entries has not be created.
Conclusion (Pass/Fail)
Testing Lab
Tester Name
Krzysztof Kuzmicki
Test Case ID
T06
Test Case Name
Parallel PNF PnP flows
Description
Four parallel PNF PnP flows are hibernated, PNFRegistration event is received in ONAP, proper PNF PnP enabled workflow instance is re-hydrated.
Created PNF and Service using Test Case T01 (Create and distribute service which contains PNF) for 4 PNF
Instantiated service for PNF using Test Case T02(Waiting for PNFReady) for 4 PNF
Testing Steps
Step
Expected Resul
Verify AAI entry created by SO service for 4 PNFs using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Login to each virtual machine with simulator
In config.json file :
fill value for sourceName key - use correlationId value used during service instantiation in prerequisite no. 3
fill pnfOamIpv4Address, pnfOamIpv6Address with some value
Run script./simulator.sh run simulator in order to start sending registration request messages
Once again verify AAI entry created by SO service 4 PNFs using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Verify if SO service has reacted on PNFReady message from PRH and has ended
Command should return JSONs with empty value for IPv4 and IPv6 address
User is logged in
config.json file is updated accordingly
PnP PNF simulator sends registration request
Command should return JSONs with IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json for 3 PNFs For PNF which don't have working simulator command should return once again JSONs with empty value for IPv4 and IPv6 address
Instantiated SO service has been ended for 3 PNFs. Verification can be done:
SO-BPMN pod in /app/logs/bpmn/debug.log should be present following message: o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - pnf ready event got from dmaap for correlationId: <correlationId>
For PNF which don't have working simulator SO service is in waiting state.
Actual Results
PNF registration is accepted and AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on correlationID exept PNF which don't have working simulator.
SO service are intatntieted for PNF except PNF which don't have working simulator. For this PNF service is in progress state.
Conclusion (Pass/Fail)
Testing Lab
Tester Name
Krzysztof Kuzmicki
Test Case ID
T07
Test Case Name
PNF registration accepted when AAI entry is created using AAI API (without SO instantiation)
Description
Verification if PNF resource registration is done properly when correct AAI record (based on correlationID) is present - created using AAI API Verification if AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on correlationID.
Create PNF entry AAI entry using AAI API curl -i -X PUT -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" -d '{"pnf-name":"<correlationID>","pnf-name2":"example-pnf-name2-val-78244","pnf-name2-source":"example-pnf-name2-source-val-99275","pnf-id":"example-pnf-id-val-7989","equip-type":"example-equip-type-val-20348","equip-vendor":"example-equip-vendor-val-52182","equip-model":"example-equip-model-val-8370","management-option":"example-management-option-val-72881", "ipaddress-v4-oam": "", "ipaddress-v6-oam": ""}' "http://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Verify AAI entry: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"
Login to each virtual machine with simulator
In config.json file :
fill value for sourceName key - use correlationId value used during service instantiation in prerequisite no. 3
fill pnfOamIpv4Address, pnfOamIpv6Address with some value
Run script./simulator.sh run simulator in order to start sending registration request messages
Once again verify AAI entry created by SO service 4 PNFs using command: curl -X GET -k -H "accept: application/json" -H "Real-Time: true" -H "Content-Type: application/json" -H "X-FromAppId: dcae-curl" -H "x-transactionId: 9998" "https://AAI:AAI@<kubernetes noed ip address>:<aai service port>/aai/v11/network/pnfs/pnf/<correlationID>"