Skip to end of metadata
Go to start of metadata

Test update in progress for Guilin release and SO building block flow

PNF PNP Flow - positive scenario Copy

Link to specification:

5G - PNF Plug and Play

PNF PNP message flow diagram

Rainy day scenario - PNF is sending registration request to ONAP where required AAI entry is not present:

PNF PNP Flow - Rainy day

Sunny day scenario - PNF is sending registration request to ONAP where required AAI entry is prepared by SO workflow:

PNF PNP Flow - positive scenario


PNF PNP deployment diagram

PNF_PNP_deployment

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 NameTest Case Description
T01Create and distribute service which contains PNF based on imported VSP Verification if in VID is present PNF enabled service.
T02Waiting for PNF ReadyVerification if PNF PnP functionality within SO is waiting for PNFReady to be published by PRH.
T03PNF 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.

T04PNF 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.

T05PNF 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.

T06Parallel PNF PnP flowsFour 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 IDT01
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
ReleaseFrankfurt/Guilin
Preconditions
  1. Users with roles: Designer (Carlos Santana - cs0008),  Admin (demo) should be available
  2. Robot init sucesfully executed. In intsalation server followin script shoulkd be sucesfully ececuted. ~/oom/kubernetes/robot/demo-k8s.sh onap init

    ubuntu@onap-5915-rke-node:~$ ~/oom/kubernetes/robot/demo-k8s.sh onap init
    Number of parameters:
    2
    KEY:
    init
    ++ kubectl --namespace onap get pods
    ++ sed 's/ .*//'
    ++ grep robot
    + POD=dev-robot-6d67844b64-pgbx5
    ++ dirname ./demo-k8s.sh
    + DIR=.
    + SCRIPTDIR=scripts/demoscript
    + ETEHOME=/var/opt/ONAP
    + '[' ']'
    ++ kubectl --namespace onap exec dev-robot-6d67844b64-pgbx5 -- bash -c 'ls -1q /share/logs/ | wc -l'
    + export GLOBAL_BUILD_NUMBER=0
    + GLOBAL_BUILD_NUMBER=0
    ++ printf %04d 0
    + OUTPUT_FOLDER=0000_demo_init
    + DISPLAY_NUM=90
    + VARIABLEFILES='-V /share/config/robot_properties.py'
    + kubectl --namespace onap exec dev-robot-6d67844b64-pgbx5 -- /var/opt/ONAP/runTags.sh -V /share/config/robot_properties.py -d /share/logs/0000_demo_init -i InitDemo --display 90
    Starting Xvfb on display :90 with res 1280x1024x24
    Executing robot tests at log level TRACE
    ==============================================================================
    Testsuites                                                                    
    ==============================================================================
    Testsuites.Demo :: Executes the VNF Orchestration Test cases including setu...
    ==============================================================================
    Initialize Customer And Models                                        | PASS |
    ------------------------------------------------------------------------------
    Initialize SO Openstack Identity For V3                               | PASS |
    ------------------------------------------------------------------------------
    Testsuites.Demo :: Executes the VNF Orchestration Test cases inclu... | PASS |
    2 critical tests, 2 passed, 0 failed
    2 tests total, 2 passed, 0 failed
    ==============================================================================
    Testsuites                                                            | PASS |
    2 critical tests, 2 passed, 0 failed
    2 tests total, 2 passed, 0 failed
    ==============================================================================
    Output:  /share/logs/0000_demo_init/output.xml
    Log:     /share/logs/0000_demo_init/log.html
    Report:  /share/logs/0000_demo_init/report.html
    
    
Testing StepsStepExpected Result
  1. Login to ONAP portal as a designer user
  2. Navigate to SDC application
  3. Navigate to ONBOARD tab
  4. Click on CREATE NEW VLM

  5. Fill all mandatory parameters

  6. Add License Key Group and fill all mandatory parameters

  7. Add Entitlement Pool and fill all mandatory parameters

  8. Add  Feature Group fill all mandatory parameters and add already created Entitlement Pool and License Key Group

  9. Add License Agreement fill mandatory parameters and add already created Feature Group

  10. Press Submit button and next COMMIT & SUBMIT button
  11. Navigate to ONBOARD tab
  12. Click on CREATE NEW VSP

  13. Fill all mandatory parameters:

    1. select Vendor defined in already created VLM
    2. Name will be used in next steps
    3. in ONBOARDING PROCEDURE select Network Package
  14. Click on warning under License Agreement
  15. Fill Licensing Version, License Agreement and Feature Groups from already created VLM
  16. Click on Overview from left menu and press SELECT FILE button.
  17. Select attached pNF.csar file from your PC
  18. Press Submit button and next COMMIT & SUBMIT button
  19. Navigate to Home tab
  20. Click on IMPORT button and select  IMPORT VSP
  21. Select previously created VSP and press IMPORT VSP button
  22. In newly opened window yoiu can moduify PNF name.
  23. Next click Create and Certify button
  24. Next press Certify button. Put comment message in Certification confirmation pop-up and press OK button
  25. Navigate to SDC tab / HOME menu
  26. Click on ADD + button and select  Add Service
  27. 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
  28. Go to Composition in left menu
  29. In search box find crated PNF using its name
  30. Drag ad drop it to main view
  31. Next click Certify button
  32. Next Press Distribute button in left top corner
  33. Press Monitor button in left top corner and verify distribution status, use refresh button
  34. Re-login as a a demo user
  35. VID Navigate to  application
  36. From left menu select Browse SDC Service Models
  1. User is logged in
  2. SDC application is open
  3. ONBOARD CATALOG is visible
  4. New License Model window is present
  5. All mandatory parameters are fulfilled
  6. License Key Group is added
  7. Entitlement Pool is added
  8. Feature Group is added
  9. License Agreement is added
  10. VLM is submitted sucesfully
  11. VLM is visible
  12. New Software Product window is present

  13. All mandatory parameters are fulfilled

  14. Licensing Version, License Agreement and Feature Groups and warning is not present
  15. Licensing Version, License Agreement and Feature Groups are defined
  16. Select file window is opened
  17. File is selected
  18. File is sucesfully uploaded and VSP is submited
  19. Home tab is opened
  20. Import VSP window is presnet with list of dubmited VSPs
  21. Previously create VSP is imported as VSP and Create window is opened
  22. All modifications are present
  23. PNF is successfully Certified
  24. SDC application is open
  25. Page HOME > Create new service > General with fields that must be filled out is open
  26. Create/Update saved successfully message is present in left top corner
  27. Composition main view is open
  28. PNF is visible
  29. PNF is added to service
  30. Service is Cerified and ready for Distribution
  31. Distribute Distribute successfully message is present in left top corner
  32. Monitor main view is opened with information about distribution. Thesr should not be any errors.
  33. User is re-logged
  34. VID application is open
  35. In Browse SDC Service Models main view is present entry about newly created service - it can take couple of minutes ~ 15 minutes
Actual ResultsIn VID is present PNF enabled service.
Conclusion (Pass/Fail)
Testing Lab
Tester NameKrzysztof Kuzmicki

Test Case IDT02
Test Case Name

Waiting for PNFReady

Description

Verification if PNF PnP functionality within SO is waiting for PNFReady to be published by PRH.

Test case covers following steps from message flow in 5G - PNF Plug and Play:

  • STEP 16 – SERVICE INSTANTIATION
  • STEP 18 – RESOURCE LEVEL FLOW STEP 20 – PNF A&AI ENTRY MISSING
  • STEP 21 – SUBSCRIBE
  • STEP 22 – RESOURCE LEVEL FLOW (RLF) TERMINATES
ReleaseCasablanca
Preconditions
  1. Created PNF and Service using Test Case T01 (Create and distribute service which contains PNF based on imported VSP )
Testing StepsStepExpected Result
  1. Login to ONAP portal as a demo user
  2. Navigate to VID application
  3. Navigate to Browse SDC Service Models in left menu
  4. Deploy distributed SDC Service Model for PNF
  5. Fill all mandatory parameters. To "PNF (Correlation) ID" field put correlationId that will be setup in PNF simulator. Press "Confirm" button.
  6. Close " In Progress" pop-up window
  7. 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
  8. 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>"
  1. User is logged in
  2. VID application is open
  3. Distributed SDC Service Model for PNF is present
  4. Create Service Instance -- Macro pop-up is present
  5. All fields are filled. Pop-up window " In Progress" is visible
  6. Window is closed. Service is still not instantiated. Is not visible in "  Search for Existing Service Instances" left menu
  7. In debug.log should be present following message:
    o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - registering for pnf ready dmaap event for correlation id: <correlationId>
  8. Command should return JSON with empty value for IPv4 and IPv6 address
    {"pnf-name":"<correlationID>"","pnf-id":"testtest","in-maint":true,"resource-version":"1541720264047"}

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 NameKrzysztof Kuzmicki



Test Case IDT03
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.

Test case covers following steps from message flow in 5G - PNF Plug and Play:

  • STEP 26 PNF SENDS PNF REGISTRATION
  • STEP 26A pnfREGISTRATION EVENT ONTO DMAAP
  • STEP 26B pnfREGISTRATION EVENT RETRIEVED BY PRH
  • STEP 27 PRH DOES INVENTORY QUERY
  • STEP 29 INVENTORY QUERY
  • STEP 30 UPDATE PNF ENTRY
  • STEP 31 PNF READY EVENT
  • STEP 34 UPDATE PNF WORKFLOW
  • STEP 43 INFORM OSS
ReleaseCasablanca
Preconditions
  1. Created PNF and Service using Test Case T01 (Create and distribute service which contains PNF)
  2. Instantiated service for PNF using Test Case T02 (Waiting for PNFReady)
  3. Up and running PnP PNF Simualtor according to https://wiki.onap.org/display/DW/PnP+PNF+Simulator
Testing StepsStepExpected Result
  1. 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>"
  2. Login to virtual machine with simulator
  3. In config.json file :
    1. fill value for sourceName key - use correlationId value used during service instantiation in prerequisite no. 3
    2. fill pnfOamIpv4Address, pnfOamIpv6Address with some value
  4. Run script ./simulator.sh start-dev in order to start simulator
  5. Run script ./simulator.sh run simulator in order to start sending registration request messages 
  6. 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>"
  7. Verify if SO service has reacted on PNFReady message from PRH and has ended
  1. Command should return JSON with empty value for IPv4 and IPv6 address
  2. User is logged in
  3. config.json file is updated accordingly
  4. PnP PNF simulator sends registration request
  5. Command should return JSON with  IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json 
  6. Instantiated SO service has been ended. Verification can be done:
    1. VID,
      Service is instantiated. It is visible in Search for Existing Service Instances menu
    2. 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 NameKrzysztof Kuzmicki
Test Case IDT04
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.

Test case covers following steps from message flow in 5G - PNF Plug and Play:

  • STEP 26 PNF SENDS PNF REGISTRATION
  • STEP 26A pnfREGISTRATION EVENT ONTO DMAAP
  • STEP 26B pnfREGISTRATION EVENT RETRIEVED BY PRH
  • STEP 27 PRH DOES INVENTORY QUERY
  • STEP 28 PNF SENDS PNF REGISTRATION
  • STEP 29 INVENTORY QUERY
  • STEP 30 UPDATE PNF ENTRY
  • STEP 31 PNF READY EVENT
  • STEP 34 UPDATE PNF WORKFLOW
  • STEP 43 INFORM OSS
ReleaseCasablanca
Preconditions
  1. Created PNF and Service using Test Case T01 (Create and distribute service which contains PNF)
  2. Up and running PnP PNF Simualtor according to https://wiki.onap.org/display/DW/PnP+PNF+Simulator
Testing StepsStepExpected Result
  1. 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>"
  2. Login to virtual machine with simulator
  3. In config.json file :
    1. fill value for sourceName key - use correlationId value that will be used during service instantiation in step no. 7
    2. fill pnfOamIpv4Address, pnfOamIpv6Address with some value
    3. set  testDuration (amount of registration requests) to value that allows incinerate SO service during  period of time when messages are send to ONAP
    4. set messageInterval interval with which messages are send to ONAP
  4. Run script ./simulator.sh run simulator in order to start sending registration request messages
  5. Download  PRH logs and check that registration requests has been rejected.
  6. Instantiated service for PNF using Test Case T02 (Waiting for PNFReady) - use corelationID from step no. 3
  7. 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>"
  8. Verify if SO service has reacted on PNFReady message from PRH and has ended
  1. Command should return empty JSON
  2. User is logged in
  3. config.json file is updated accordingly
  4. PnP PNF simulator sends registration request
  5. Command should return JSON with  IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json
  6. In PRH log should appear following message:
    "org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException: Incorrect response code for continuation of tasks workflow"
  7. Command should return JSON with  IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json
  8. Instantiated SO service has been ended. Verification can be done:
    1. VID,
      Service is instantiated. It is visible in Search for Existing Service Instances menu
      PNF resource is assigned to Service
    2. 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 NameKrzysztof Kuzmicki
Test Case IDT05
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.

Test case covers following steps from message flow in 5G - PNF Plug and Play:

  • STEP 26 PNF SENDS PNF REGISTRATION
  • STEP 26A pnfREGISTRATION EVENT ONTO DMAAP
  • STEP 26B pnfREGISTRATION EVENT RETRIEVED BY PRH
  • STEP 27 PRH DOES INVENTORY QUERY
  • STEP 28 PNF SENDS PNF REGISTRATION
  • STEP 29 INVENTORY QUERY
ReleaseCasablanca
Preconditions
  1. Up and running PnP PNF Simualtor according to https://wiki.onap.org/display/DW/PnP+PNF+Simulator
Testing StepsStepExpected Result
  1. 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>"
  2. Login to virtual machine with simulator
  3. In config.json file :
    1. fill value for sourceName
    2. fill pnfOamIpv4Address, pnfOamIpv6Address with some value
  4. Run script ./simulator.sh run simulator in order to start sending registration request messages
  5. Download  PRH logs and check that registration requests has been rejected.
  6. 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>"

  1. Command should return HTTP 400 code
  2. User is logged in
  3. config.json file is updated accordingly

  4. PnP PNF simulator sends registration request
  5. In PRH log should appear following message:
    "org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException: Incorrect response code for continuation of tasks workflow"
  6. 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 NameKrzysztof Kuzmicki
Test Case IDT06
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.

Test case covers following steps from message flow in 5G - PNF Plug and Play:

  • STEP 26 PNF SENDS PNF REGISTRATION
  • STEP 26A pnfREGISTRATION EVENT ONTO DMAAP
  • STEP 26B pnfREGISTRATION EVENT RETRIEVED BY PRH
  • STEP 27 PRH DOES INVENTORY QUERY
  • STEP 28 PNF SENDS PNF REGISTRATION
  • STEP 29 INVENTORY QUERY
  • STEP 30 UPDATE PNF ENTRY
  • STEP 31 PNF READY EVENT
  • STEP 34 UPDATE PNF WORKFLOW
  • STEP 43 INFORM OSS
ReleaseCasablanca
Preconditions
  1. Up and running 3 PnP PNF Simualtors according to https://wiki.onap.org/display/DW/PnP+PNF+Simulator
  2. Created PNF and Service using Test Case T01 (Create and distribute service which contains PNF) for 4 PNF
  3. Instantiated service for PNF using Test Case T02 (Waiting for PNFReady) for 4 PNF
Testing StepsStepExpected Resul
  1. 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>"
  2. Login to each virtual machine with simulator
  3. In config.json file :
    1. fill value for sourceName key - use correlationId value used during service instantiation in prerequisite no. 3
    2. fill pnfOamIpv4Address, pnfOamIpv6Address with some value
  4. Run script ./simulator.sh run simulator in order to start sending registration request messages 
  5. 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>"
  6. Verify if SO service has reacted on PNFReady message from PRH and has ended
  1. Command should return JSONs with empty value for IPv4 and IPv6 address
  2. User is logged in
  3. config.json file is updated accordingly
  4. PnP PNF simulator sends registration request
  5. 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
  6. Instantiated SO service has been ended for 3 PNFs. Verification can be done:
    1. VID,
      Service is instantiated. It is visible in Search for Existing Service Instances menu
      PNF resource is assigned to Service
    2. 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 NameKrzysztof Kuzmicki
Test Case IDT07
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.

Test case covers following steps from message flow in 5G - PNF Plug and Play:

  • STEP 26 PNF SENDS PNF REGISTRATION
  • STEP 26A pnfREGISTRATION EVENT ONTO DMAAP
  • STEP 26B pnfREGISTRATION EVENT RETRIEVED BY PRH
  • STEP 27 PRH DOES INVENTORY QUERY
  • STEP 29 INVENTORY QUERY
  • STEP 30 UPDATE PNF ENTRY
  • STEP 31 PNF READY EVENT
ReleaseCasablanca
Preconditions
  1. Up and running PnP PNF Simualtor according to https://wiki.onap.org/display/DW/PnP+PNF+Simulator
Testing StepsStepExpected Result
  1. 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>"
  2. 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>"
  3. Login to each virtual machine with simulator
  4. In config.json file :
    1. fill value for sourceName key - use correlationId value used during service instantiation in prerequisite no. 3
    2. fill pnfOamIpv4Address, pnfOamIpv6Address with some value
  5. Run script ./simulator.sh run simulator in order to start sending registration request messages 
  6. 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>"
  7. Verify available message in Message Router topic
    curl -i -X GET http://<kubernetes noed ip address>:<message router service port>/events/unauthenticated.PNF_READY/2/1
  1. Command should return HTTP 202 code
  2. Command should return JSONs
    with empty value for IPv4 and IPv6 address
  3. User is logged in
  4. config.json file is updated accordingly
  5. PnP PNF simulator sends registration request
  6. Command should return JSONs with  IPv4 and IPv6 address filled accordingly with inputs from simulator's config.json
  7. Command should return JSONs with  IPv4, IPv6 and correlationID filled accordingly with inputs from simulator's config.json
Actual Results

PNF registration is accepted and AAI entries: ipaddress-v4-oam and ipaddress-v6-oam are updated correctly based on correlationID

Conclusion (Pass/Fail)
Testing Lab
Tester NameKrzysztof Kuzmicki

PNF PnP Casablanca demo

Theoretical introduction

PnP_PNF_theory.mp4

Live demo

PnP_PNF_live_demo.mp4

  • No labels

8 Comments

  1. Any hints regarding T02 testing steps?

  2. Still we have problems in our ONAP with SO in order to have it working.

    Currently so-bpmn-infra is not getting up.




  3. To confirm, there is no testing of the final service configuration message back to PNF?   Do we anticipate that the SO workflow will include this?   If this is not included, how does the PNF know to stop sending the PNF Registration VES event?

    1. We confirm that this is not included.
      We (Marek Kukulski and Damian Nowak) agreed with Seshu that we will prepare generic building block for PNF registration and include it in some testing/example work-flow. Sending configuration down to PNF is related to a domain specific work-flow which is expected to include PNF registration building block. Prepared example work-flow is not planned to be a production work-flow, and as such it doesn't contain configuration steps.


      1. Thank you for the clarification.   My understanding from PNP documentation is that the PNF is to continuously send the registration messages until it receives the configuration data.   If the receiving of configuration data is optional and may not necessarily happen, how does the PNF know to stop sending the registration messages?   Will there be some kind of ACK sent back once the PNF registration completes?

  4. I am getting below error in PRH logs while for PNF_REGISTRATION

    "org.onap.dcaegen2.services.prh.tasks.ScheduledTasks |2019-05-01T20:51:42.969Z |WARN |Chain of tasks have been aborted due to errors in PRH workflow | |org.onap.dcaegen2.services.sdk.rest.services.adapters.http.exceptions.HttpException: Request failed for URL 'http://message-router:3904//events/unauthenticated.VES_PNFREG_OUTPUT/OpenDCAE-c12/c12'. Response code: 404 Not Found\n\tat org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse.throwIfUnsuccessful(HttpResponse.java:74)\n\tat reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:190)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:241)\n\tat reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:123)\n\tat reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)\n\tat reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:92)\n\tat reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:113)\n\tat reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:287)\n\tat reactor.core.publisher.FluxUsing$UsingFuseableSubscriber.onNext(FluxUsing.java:350)\n\tat reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:113)\n\tat reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onNext(FluxPeekFuseable.java:486)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoReduceSeed$ReduceSeedSubscriber.onComplete(MonoReduceSeed.java:156)\n\tat reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136)\n\tat reactor.netty.channel.FluxReceive.terminateReceiver(FluxReceive.java:372)\n\tat reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:196)\n\tat reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:337)\n\tat reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:334)\n\tat reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:381)\n\tat reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:520)\n\tat reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:141)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\n\tat io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)\n\tat io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)\n\tat io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:648)\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:583)\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:500)\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$5.run(.java:897)\n\tat java.lang.Thread.run(Thread.java:748)\n | |reactor-http-nio-6"


    I am using prh-app-server image 1.2.2.-SNAPSHOT and dmaap-mr image 1.1.12.

    Do I need to make any config changes? Kindly suggest.



  5. Hi

    There was an issue and R&D had to increase version to 1.2.2

    OOM-1831 - Getting issue details... STATUS

    Marcin Migdal could you have a look?

    I will be present at office on 5th of May.


    br,

    K

  6. Hi, 

    I am using the Dublin release , 

    version: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:1.2.4


    I am getting below error (PRH pod logs) when i trigger the events from pnf simulator and service instance was created without any failure but  due to below error in the SO BPMN logs i wasn't see any DMAAP related information...

    But AAI was updated with pnf-simulator triggered event information...


    org.onap.dcaegen2.services.prh.tasks.ScheduledTasks |2019-09-25T06:36:24.220Z |WARN |DMaaPProducerTask exception has been registered: | |org.onap.dcaegen2.services.sdk.rest.services.adapters.http.exceptions.HttpException: Request failed for URL 'http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_PNFREG_OUTPUT/OpenDCAE-c12/c12'. Response code: 404 Not Found\n\tat org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse.throwIfUnsuccessful(HttpResponse.java:74)\n\tat reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:190)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:241)\n\tat reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:123)\n\tat reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)\n\tat reactor.core.publisher.FluxDefaultIfEmpty$DefaultIf