Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Test Case IDT02
Test Case NameWaiting for PNFReady

PNF registration accepting when AAI entry created in advance

Description

Verification if PNF PnP functionality within SO is waiting for PNFReady to be published by PRH.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 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
  • 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
ReleaseFrankfurt/Guilin
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. 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'
  2. From response get following parameters
    • service_model_uuid → resp_json.uuid;
    • service_model_invariant_uuid -> resp_json.invariantUUID
    • nf_resource_name -> resp_json.componentInstances[0].name
    • nf_resource_uuid -> resp_json.componentInstances[0].customizationUUID
    • componentName -> resp_json.componentInstances[0].componentName
    • nf_model_invariant_uuid -> resp_json.invariantUUID
    • nf_model_uuid -> resp_json.uuid
    • nf_model_name -> resp_json.name
  3. Get owning entity id:
    curl -k -O --location --request GET 'https://{worker_ip}:30233/aai/v13/business/owning-entities?owning-entity-name=OE-Demonstration' \

    --header 'Content-Type: application/json' \
    --header 'X-FromAppId: dcae-curl' \
    --header 'x-transactionId: 9998' \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic QUFJOkFBSQ=='

    From response get following parameter:
    • owningEntityId -> resp_json.owning-entity[0].owning-entity-id

  4. Get product family id:

    curl -k -O  --location --request GET 'https://{worker_ip}:30233/aai/v13/service-design-and-creation/services?service-description=gNB' \
    --header 'Content-Type: application/json' \
    --header 'X-FromAppId: dcae-curl' \
    --header 'x-transactionId: 9998' \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic QUFJOkFBSQ=='

    From response get following parameter:
    • productFamilyId -> resp_json.service[0].service-id

  5. Fill SO_request.json with above paremeters and:
    • owningEntityName=OE-Demonstration
    • full_customer_name=Demonstration
    • platformName=Platform-Demonstration
    • lineOfBusinessName=LOB-Demonstration
    • service=gNB
    • nf_instance_name=<your pnf name - send by pnf>

  6. Send Instantiation request to SO

    curl -k  --request POST 'http://{worker_ip}:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances' \
    --header 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    -d @SO_request.json

  7. Login to so- so-bpmn-infra pod via rke console:
    kubectl exec -it dev-so-so-bpmn-infra-<....> -n onap /bin/sh
    open debug.log
    vi logs/bpmn/debug.log
  8. Verify AAI entry for PNF created by SO service using command:

    curl --location --request GET 'https:///{worker_ip}:30233/aai/v17/network/pnfs/pnf/{nf_instance_name}' \
    --header 'Content-Type: application/json' \
    --header 'X-FromAppId: dcae-curl' \
    --header 'x-transactionId: 9998' \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic QUFJOkFBSQ==' \
    --header 'Cookie: JSESSIONID=2F951F19C99CDAED4CA5AFB3DCCD5D61'

  9. Verify AAI entry for Service Instance created by SO service using command:

    curl --location --request GET 'https://{worker_ip}:30233/aai/v13/business/customers/customer/{full_customer_name}/service-subscriptions/service-subscription/{service}/service-instances/service-instance/{instanceId}' \
    --header 'Content-Type: application/json' \
    --header 'X-FromAppId: dcae-curl' \
    --header 'x-transactionId: 9998' \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic QUFJOkFBSQ==' \
    --header 'Cookie: JSESSIONID=2F951F19C99CDAED4CA5AFB3DCCD5D61'

  10. Send PNF Regitration request from real PNF or simulate it using following curl comand.
      • set sourceName=nf_instance_nam
    • Send regitration request:

      curl -k --request POST 'https://{worker_ip}:30417/eventListener/v7' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Basic c2FtcGxlMTpzYW1wbGUx' \
      --header 'Cookie: JSESSIONID=17A9DC67B33C079DE46F4A304143A5C2' \
      -d @reqistration_request,json

  11. Verify if SO service has reacted on PNFReady message Verify if SO service has reacted on PNFReady message from PRH and has ended
  12. Once again Verify AAI entry for PNF created by SO service using command:

    curl --location --request GET 'https:///{worker_ip}:30233/aai/v17/network/pnfs/pnf/{nf_instance_name}' \
    --header 'Content-Type: application/json' \
    --header 'X-FromAppId: dcae-curl' \
    --header 'x-transactionId: 9998' \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic QUFJOkFBSQ==' \
    --header 'Cookie: JSESSIONID=2F951F19C99CDAED4CA5AFB3DCCD5D61'

  13. Once again Verify AAI entry for Service Instance created by SO service using command:

    curl --location --request GET 'https://{worker_ip}:30233/aai/v13/business/customers/customer/{full_customer_name}/service-subscriptions/service-subscription/{service}/service-instances/service-instance/{instanceId}' \
    --header 'Content-Type: application/json' \
    --header 'X-FromAppId: dcae-curl' \
    --header 'x-transactionId: 9998' \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic QUFJOkFBSQ==' \
    --header 'Cookie: JSESSIONID=2F951F19C99CDAED4CA5AFB3DCCD5D61'


  1. Service model is present
  2. Paremeters are present
  3. Owning Entity ID is presnet
  4. Product Familiy ID is present
  5. SO_request.json is filled accodingly
  6. SO request is send sucesfully.

    Service_instance_id is saved from POST response (example of response: {"requestReferences":{"requestId":"10e2577f-3547-4e66-901d-b7b0c6e1d3ab","instanceId":"10004a65-20c4-44d2-bd27-53544fe99916","requestSelfLink":"http://10.183.42.156:30277/orchestrationRequests/v7/10e2577f-3547-4e66-901d-b7b0c6e1d3ab"}})

  7. In debug log should be presnet following entry:

    Code Block
    2020-08-20T20:59:35.865Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.l.filter.spring.SpringClientPayloadFilter - =======================response end=================================================
    2020-08-20T20:59:35.875Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - registering for pnf ready dmaap event for pnf correlation id: test_pnf_name
    2020-08-20T20:59:35.881Z|87f367b7-5d84-47e9-a955-6b2143e8424a|org.onap.so.client.RestClient - RestClientSSL using default SSL context!
    2020-08-20T20:59:35.894Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.logging.filter.base.PayloadLoggingClientFilter - Sending HTTP POST (overridden to PATCH) to:https://aai.onap:8443/aai/v19/network/pnfs/pnf
    /test_pnf_name with request headers:{Authorization=[***REDACTED***], X-RequestID=[87f367b7-5d84-47e9-a955-6b2143e8424a], X-FromAppId=[MSO], X-ONAP-PartnerName=[UNKNOWN], X-HTTP-Method-Override=[PATCH], Ac
    cept=[application/json], X-InvocationID=[a9b7b7c1-4912-4e48-8f3a-df7cd3123a54], X-ECOMP-RequestID=[87f367b7-5d84-47e9-a955-6b2143e8424a], X-TransactionId=[], X-ONAP-RequestID=[87f367b7-5d84-47e9-a955-6b21
    43e8424a], Content-Type=[application/merge-patch+json]}
  8. Service model is present
  9. Paremeters are present
  10. Owning Entity ID is presnet
  11. Product Familiy ID is present
  12. SO_request.json is filled accodingly
  13. SO request is send sucesfully.

    Service_instance_id is saved from POST response (example of response: {"requestReferences":{"requestId":"10e2577f-3547-4e66-901d-b7b0c6e1d3ab","instanceId":"10004a65-20c4-44d2-bd27-53544fe99916","requestSelfLink":"http://10.183.42.156:30277/orchestrationRequests/v7/10e2577f-3547-4e66-901d-b7b0c6e1d3ab"}})

  14. In debug log should be presnet following entry:

    Code Block
    2020-08-20T20:59:35.865Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.l.filter.spring.SpringClientPayloadFilter - =======================response end=================================================
    2020-08-20T20:59:35.875Z895Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.slogging.bfilter.i.pnf.dmaap.PnfEventReadyDmaapClientbase.PayloadLoggingClientFilter - registering for pnf ready dmaap event for pnf correlation id: test_pnf_name
    2020-08-20T20:59:35.881Z|87f367b7-5d84-47e9-a955-6b2143e8424a|org.onap.so.client.RestClient - RestClientSSL using default SSL context!{"pnf-id":"f792d78d-7c2c-4858-980b-23968923b3f4","orchestration-status":"Register"}
    
    2020-08-20T20:59:35.894Z982Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.logging.filter.base.PayloadLoggingClientFilter - SendingResponse HTTPfrom method:POST (overridden to PATCH) performed on touri:https://aai.onap:8443/aaiaa
    i/v19/network/pnfs/pnf
    /test_pnf_name has withhttp requeststatus headers:{Authorization=[***REDACTED***], X-RequestID=[87f367b7-5d84-47e9-a955-6b2143e8424a], X-FromAppId=[MSO], X-ONAP-PartnerName=[UNKNOWN], X-HTTP-Method-Override=[PATCH], Ac
    ceptcode:200 and response headers:{Content-Length=[0], content-type=[application/json], X-InvocationID=[a9b7b7c1-4912-4e48-8f3a-df7cd3123a54Date=[Thu, 20 Aug 2020 20:59:35 GMT], XStrict-ECOMPTransport-RequestIDSecurity=[87f367b7-5d84-47e9-a955-6b2143e8424ama
    x-age=16000000; includeSubDomains; preload;], Xvertex-TransactionIdid=[254096], X-ONAP-RequestID=[87f367b7-5d84-47e9-a955-6b21
    43e8424a], Content-Type=[application/merge-patch+json-AAI-TXID=[2-aai-resources-200820-20:59:35:904-22741]}
    2020-08-20T20:59:35.895Z983Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.logging.filter.base.PayloadLoggingClientFilter - {"pnf-id":"f792d78d-7c2c-4858-980b-23968923b3f4","orchestration-status":"Register"}
     Response was returned with an empty entity.
    2020-08-20T20:59:39.896Z||o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - dmaap listener starts listening pnf ready dmaap topic
    2020-08-20T20:59:3554.982Z|87f367b7-5d84-47e9-a955-6b2143e8424a485Z||o.o.s.b.loggingi.filterpnf.basedmaap.PayloadLoggingClientFilterPnfEventReadyDmaapClient - Responsedmaap fromlistener method:POST (overridden to PATCH) performed on uri:https://aai.onap:8443/aa
    i/v19/network/pnfs/pnf/test_pnf_name has http status code:200 and response headers:{Content-Length=[0], content-type=[application/json], Date=[Thu, 20 Aug 2020 20:59:35 GMT], Strict-Transport-Security=[ma
    x-age=16000000; includeSubDomains; preload;], vertex-id=[254096], X-AAI-TXID=[2-aai-resources-200820-20:59:35:904-22741]}
    2020-08-20T20:59:35.983Z|87f367b7-5d84-47e9-a955-6b2143e8424a|o.o.logging.filter.base.PayloadLoggingClientFilter - Response was returned with an empty entity.
    2020-08-20T20:59:39.896Z||o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - dmaap listener starts listening pnf ready dmaap topic
    2020-08-20T20:59:54.485Zstarts listening pnf ready dmaap topic
    2020-08-20T21:00:09.016Z||o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - dmaap listener starts listening pnf ready dmaap topic
    
    

    especially following entries:
    correlation id: test_pnf_name same as nf_instance_name from SO request
    and
    dmaap listener starts listening pnf ready dmaap topic is pnf name

  15. Request is successful. Request should contain following values:

    • "pnf-name": equals to nf_instance_name

    • "orchestration-status":  in status Register

    • "relationship-list":  with information about service id (instanceId) to which PNF is connected

    • "model-invariant-id": equals to nf_model_invariant_uuid

    • "model-version-id": equals to nf_model_uuid

    • "ipaddress-v4-oam": should be missing

    • "ipaddress-v6-oam": should be missing

    • "equip-type": should be missing

    • "equip-vendor": should be missing

    • "equip-model": should be missing

    • "sw-version": should be missing

    • "serial-number": should be missing

    • "nf-role": should be missing

  16. Request is successful. Request should contain following values:

    • "service-instance-name": equals to service_model_name_nf_instance_name

    • "model-invariant-id": equals to service_model_invariant_uuid

    • "model-version-id": equals to service_model_uuid

    • "orchestration-status": equals to "Assigned",

    • "relationship-list":  with information pnf name  (nf_instance_name)
  17. Regitration request is send sucesfully.
  18. SO-BPMN pod in /app/logs/bpmn/debug.log should be present following message:
    2020-08-21T08:01:19.862Z||o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - dmaap listener starts listening pnf ready dmaap topic - unregistering from pnf ready dmaap event for pnf correlation id: nf_instance_name
    2020-08-20T2121T08:0001:0919.016Z862Z||o.o.s.b.i.pnf.dmaap.PnfEventReadyDmaapClient - dmaap listener starts listening gets pnf ready dmaap topic especially following entries:
    correlation id: test_pnf_name same as ready event for pnfCorrelationId: nf_instance_name from SO request
    and
    dmaap listener starts listening pnf ready dmaap topic is pnf name
    2020-08-21T08:01:19.930Z|626785f1-baea-427d-aa7a-cdfddc209f5d|org.onap.so.client.RestClient - RestClientSSL using default SSL context!
  19. Request is successful. Request should contain following values:

    • "pnf-name": equals to nf_instance_name

    • "orchestration-status":  in status RegisterActive

    • "relationship-list":  with information about service id (instanceId) to which PNF is connected

    • "model-invariant-id": equals to nf_model_invariant_uuid

    • "model-version-id": equals to nf_model_uuid

    • "ipaddress-v4-oam": should be missingfilled according to registration_request,json

    • "ipaddress-v6-oam":  should be missing should be filled according to registration_request,json

    • "equip-type":should be missing should be filled according to registration_request,json

    • "equip-vendor":should be missing should be filled according to registration_request,json

    • "equip-model": should be missingfilled according to registration_request,json

    • "sw-version": should be missingfilled according to registration_request,json

    • "serial-number": should be missingfilled according to registration_request,json

    • "nf-role": should be missingfilled according to registration_request,json

  20. Request is successful. Request should contain following values:

    • "service-instance-name":  "VENDOR_c20b091e-9d1b-47a6-9c38-f34d65d62dd6","model-invariant-id""1acbfcc0-f6de-4ccb-8586-9af4b71ef94c",equals to service_model_name_nf_instance_name

    • "model-versioninvariant-id":  equals to service_model_invariant_uuid

    • "model-version-id": equals to service_model_uuid "f3ea4c45-aee8-43c1-a0c8-a03046a4be1d",

    • "orchestration-status": equals to Active

    • "Assigned",relationship-list":  with information pnf name  (nf_instance_name)
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 PRHPNF 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 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

...