diff options
Diffstat (limited to 'tests')
13 files changed, 319 insertions, 79 deletions
diff --git a/tests/ccsdk/healthcheck/__init__.robot b/tests/ccsdk/healthcheck/__init__.robot deleted file mode 100644 index 1259b890..00000000 --- a/tests/ccsdk/healthcheck/__init__.robot +++ /dev/null @@ -1,2 +0,0 @@ -*** Settings *** -Documentation CCSDK - healthcheck diff --git a/tests/ccsdk/healthcheck/test1.robot b/tests/ccsdk/healthcheck/test1.robot deleted file mode 100644 index fea86c3d..00000000 --- a/tests/ccsdk/healthcheck/test1.robot +++ /dev/null @@ -1,16 +0,0 @@ -*** Settings *** -Library OperatingSystem -Library Process - -*** Variables *** - -${health_check} ${SCRIPTS}/ccsdk/healthcheck/health_check.sh - - -*** Test Cases *** -Health check test case for CCSDK - [Documentation] Health check - ${result_hc}= Run Process bash ${health_check} > log_hc.txt shell=yes - Should Be Equal As Integers ${result_hc.rc} 0 - - diff --git a/tests/music/music-distributed-kv-store-suite/__init__.robot b/tests/music/music-distributed-kv-store-suite/__init__.robot deleted file mode 100644 index d1da7f38..00000000 --- a/tests/music/music-distributed-kv-store-suite/__init__.robot +++ /dev/null @@ -1,2 +0,0 @@ -*** Settings *** -Documentation Integration - Suite 1
\ No newline at end of file diff --git a/tests/music/music-distributed-kv-store-suite/data/register_domain.json b/tests/music/music-distributed-kv-store-suite/data/register_domain.json deleted file mode 100644 index 96811ee9..00000000 --- a/tests/music/music-distributed-kv-store-suite/data/register_domain.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "domain":"test_domain" -}
\ No newline at end of file diff --git a/tests/music/music-distributed-kv-store-suite/music-distributed-kv-store-test.robot b/tests/music/music-distributed-kv-store-suite/music-distributed-kv-store-test.robot deleted file mode 100644 index de26e5f6..00000000 --- a/tests/music/music-distributed-kv-store-suite/music-distributed-kv-store-test.robot +++ /dev/null @@ -1,53 +0,0 @@ -*** Settings *** -Library OperatingSystem -Library RequestsLibrary -Library json - -*** Variables *** -${MESSAGE} {"ping": "ok"} - -#global variables -${generatedAID} - -*** Test Cases *** -DKV Check Distributed KV Store API Docker Container - [Documentation] Checks if DKV docker container is running - ${rc} ${output}= Run and Return RC and Output docker ps - Log To Console ********************* - Log To Console retrurn_code = ${rc} - Log To Console output = ${output} - Should Be Equal As Integers ${rc} 0 - Should Contain ${output} nexus3.onap.org:10001/onap/music/distributed-kv-store - -DKV LoadDefaultProperties - [Documentation] Loads default configuration files into Consul - Create Session dkv ${DKV_HOSTNAME}:${DKV_PORT} - &{headers}= Create Dictionary Content-Type=application/json Accept=application/json - ${resp}= Get Request dkv /v1/config/load-default headers=${headers} - Log To Console ********************* - Log To Console response = ${resp} - Log To Console body = ${resp.text} - Should Be Equal As Integers ${resp.status_code} 200 - -DKV FetchDefaultProperties - [Documentation] Fetches all default keys from Consul - Create Session dkv ${DKV_HOSTNAME}:${DKV_PORT} - &{headers}= Create Dictionary Content-Type=application/json Accept=application/json - ${resp}= Get Request dkv /v1/getconfigs headers=${headers} - Log To Console ********************* - Log To Console response = ${resp} - Log To Console body = ${resp.text} - Should Be Equal As Integers ${resp.status_code} 200 - -#DKV RegisterDomain -# [Documentation] Send a POST request to create a domain -# Create Session dkv ${DKV_HOSTNAME}:${DKV_PORT} -# ${data}= Get Binary File ${CURDIR}${/}data${/}register_domain.json -# &{headers}= Create Dictionary Content-Type=application/json Accept=application/json -# ${resp}= Post Request dkv v1/register data=${data} headers=${headers} -# Log To Console ********************* -# Log To Console response = ${resp} -# Log To Console body = ${resp.text} -# Should Be Equal As Integers ${resp.status_code} 200 - -*** Keywords *** diff --git a/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/blueprint_archive.zip b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/blueprint_archive.zip Binary files differindex 4edc9ded..055d7dec 100644 --- a/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/blueprint_archive.zip +++ b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/blueprint_archive.zip diff --git a/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/distributeServiceTemplate_2.0.json b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/distributeServiceTemplate_2.0.json new file mode 100644 index 00000000..e5b3d890 --- /dev/null +++ b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/distributeServiceTemplate_2.0.json @@ -0,0 +1,35 @@ +{ + "distributionID": "6ac9fa0c-70f0-4213-a8d4-5b58d6a17697", + "serviceName": "Demo_svc", + "serviceVersion": "2.0", + "serviceUUID": "8351245d-50da-4695-8756-3a22618377f7", + "serviceDescription": "ServiceLevelUpgrade", + "serviceInvariantUUID": "fe41489e-1563-46a3-b90a-1db629e4375b", + "resources": [ + { + "resourceInstanceName": "Demo_pnf 0", + "resourceCustomizationUUID": "23b43821-4eds-31f4-bfd4-66a7e0fd9bb2", + "resourceName": "Demo_pnf", + "resourceVersion": "1.0", + "resoucreType": "PNF", + "resourceUUID": "a42f6566-6a29-43e1-bac9-b91a59d702ac", + "resourceInvariantUUID": "fdf44827-35db-4ee5-bd70-7500e633576e", + "category": "Network L4+", + "subcategory": "Common Network Resources", + "artifacts": [] + } + ], + "serviceArtifacts": [ + { + "artifactName": "service-DemoSvc-csar_2.0.csar", + "artifactType": "TOSCA_CSAR", + "artifactURL": "//unzipped_sdc_csar/v1/catalog/services/DemoSvc/2.0/artifacts/service-DemoSvc-csar.csar", + "artifactChecksum": "YjFhZWZhOTU2MzljMDI4ZmVlNzlhOTgxYTcxMzg5ODI\u003d", + "artifactDescription": "TOSCA definition package of the asset", + "artifactTimeout": 0, + "artifactVersion": "2", + "artifactUUID": "809894a4-c862-4294-b2fb-e016b4268546" + } + ], + "workloadContext": "Production" + }
\ No newline at end of file diff --git a/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/mount2.json b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/mount2.json new file mode 100755 index 00000000..efe94b42 --- /dev/null +++ b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/mount2.json @@ -0,0 +1,18 @@ +{ + "node": [ + { + "node-id": "PNFDemo1", + "netconf-node-topology:protocol": { + "name": "TLS" + }, + "netconf-node-topology:host": "pnfaddr", + "netconf-node-topology:key-based": { + "username": "netconf", + "key-id": "ODL_private_key_0" + }, + "netconf-node-topology:port": 6514, + "netconf-node-topology:tcp-only": false, + "netconf-node-topology:max-connection-attempts": 5 + } + ] +}
\ No newline at end of file diff --git a/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/serviceLevelUpgradeRequest.json b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/serviceLevelUpgradeRequest.json new file mode 100644 index 00000000..d7a6b57f --- /dev/null +++ b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/data/serviceLevelUpgradeRequest.json @@ -0,0 +1,38 @@ +{ + "requestDetails": { + "subscriberInfo": { + "globalSubscriberId": "807c7a02-249c-4db8-9fa9-bee973fe08ce" + }, + "modelInfo": { + "modelVersion": "2.0", + "modelVersionId": "8351245d-50da-4695-8756-3a22618377f7", + "modelInvariantId": "fe41489e-1563-46a3-b90a-1db629e4375b", + "modelName": "Demo_svc", + "modelType": "service" + }, + "requestInfo": { + "suppressRollback": false, + "requestorId": "demo", + "instanceName": "testInstanceName", + "source": "VID" + }, + "requestParameters": { + "subscriptionServiceType": "pNF", + "userParams": [ + { + "name": "targetSoftwareVersion", + "value": "pnf_sw_version-4.0.0" + } + ], + "aLaCarte": false, + "payload": "{\"k1\": \"v1\"}" + }, + "project": { + "projectName": "ServiceLevelUpgrade" + }, + "owningEntity": { + "owningEntityId": "67f2e84c-734d-4e90-a1e4-d2ffa2e75849", + "owningEntityName": "OE-Test" + } + } +}
\ No newline at end of file diff --git a/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/pnf-sw-upgrade.robot b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/pnf-sw-upgrade.robot index d3762a0b..1bb2d714 100644 --- a/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/pnf-sw-upgrade.robot +++ b/tests/usecases-pnf-sw-upgrade/pnf-sw-upgrade/pnf-sw-upgrade.robot @@ -8,7 +8,9 @@ Library String *** Variables *** ${SDNC_KEYSTORE_CONFIG_PATH} /restconf/config/netconf-keystore:keystore ${SDNC_MOUNT_PATH} /restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo +${SDNC_MOUNT_PATH2} /restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo1 ${PNFSIM_MOUNT_PATH} /restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo/yang-ext:mount/pnf-sw-upgrade:software-upgrade +${PNFSIM_MOUNT_PATH2} /restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo1/yang-ext:mount/pnf-sw-upgrade:software-upgrade ${PNFSIM_DELETE_PATH} /restconf/config/network-topology:network-topology/topology/topology-netconf/node/PNFDemo ${BP_UPLOAD_URL} /api/v1/blueprint-model/publish ${BP_PROCESS_URL} /api/v1/execution-service/process @@ -48,12 +50,14 @@ Distribute Service Template ${serviceInstanceId}= Set Variable cd4decf6-4f27-4775-9561-0e683ed43635 SET GLOBAL VARIABLE ${serviceInstanceId} ${pnfName}= Set Variable PNFDemo - SET GLOBAL VARIABLE ${pnfName} + SET GLOBAL VARIABLE ${pnfName} + ${pnfName1}= Set Variable PNFDemo1 + SET GLOBAL VARIABLE ${pnfName1} Get pnf workflow Create Session api_handler_session http://${REPO_IP}:8080 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json - ${get_pnfworkflows_request}= Get Request api_handler_session /onap/so/infra/workflowSpecifications/v1/pnfWorkflows headers=${headers} + ${get_pnfworkflows_request}= Get Request api_handler_session /onap/so/infra/workflowSpecifications/v1/workflows headers=${headers} Run Keyword If '${get_pnfworkflows_request.status_code}' == '200' log to console \nexecuted with expected result log to console ${get_pnfworkflows_request.content} ${pnfworkflows_json_response}= Evaluate json.loads(r"""${get_pnfworkflows_request.content}""", strict=False) json @@ -62,6 +66,8 @@ Get pnf workflow ${activate_workflow_name}= Set Variable "" ${download_workflow_uuid}= Set Variable "" ${download_workflow_name}= Set Variable "" + ${serviceLevel_workflow_uuid}= Set Variable "" + ${serviceLevel_workflow_name}= Set Variable "" FOR ${member} IN @{all_wf_members} ${workflow_uuid}= Set Variable ${member}[workflowSpecification][artifactInfo][artifactUuid] ${workflow_name}= Set Variable ${member}[workflowSpecification][artifactInfo][artifactName] @@ -70,14 +76,19 @@ Get pnf workflow ${activate_workflow_name}= Set Variable If '${workflow_name}' == 'GenericPnfSoftwareUpgrade' ${workflow_name} ${activate_workflow_name} ${download_workflow_uuid}= Set Variable If '${workflow_name}' == 'GenericPnfSWUPDownload' ${workflow_uuid} ${download_workflow_uuid} ${download_workflow_name}= Set Variable If '${workflow_name}' == 'GenericPnfSWUPDownload' ${workflow_name} ${download_workflow_name} + ${serviceLevel_workflow_uuid}= Set Variable If '${workflow_name}' == 'ServiceLevelUpgrade' ${workflow_uuid} ${serviceLevel_workflow_uuid} + ${serviceLevel_workflow_name}= Set Variable If '${workflow_name}' == 'ServiceLevelUpgrade' ${workflow_name} ${serviceLevel_workflow_name} END SET GLOBAL VARIABLE ${activate_workflow_uuid} SET GLOBAL VARIABLE ${download_workflow_uuid} + SET GLOBAL VARIABLE ${serviceLevel_workflow_uuid} Run Keyword If '${activate_workflow_name}' == 'GenericPnfSoftwareUpgrade' log to console \nexecuted with expected result Run Keyword If '${download_workflow_name}' == 'GenericPnfSWUPDownload' log to console \nexecuted with expected result + Run Keyword If '${serviceLevel_workflow_name}' == 'ServiceLevelUpgrade' log to console \nexecuted with expected result Should Be Equal As Strings '${activate_workflow_name}' 'GenericPnfSoftwareUpgrade' Should Be Equal As Strings '${download_workflow_name}' 'GenericPnfSWUPDownload' + Should Be Equal As Strings '${serviceLevel_workflow_name}' 'ServiceLevelUpgrade' Invoke Service Instantiation for pnf software download Create Session api_handler_session http://${REPO_IP}:8080 @@ -194,3 +205,158 @@ Test AAI-update for target software version verify Log To Console final target software version received: ${sw_version} Run Keyword If '${sw_version}' == 'pnf_sw_version-3.0.0' log to console \nexecuted with expected result Should Be Equal As Strings '${sw_version}' 'pnf_sw_version-3.0.0' + +Distribute ServiceLevel Upgrade Template + Create Session sdc_controller_session http://${REPO_IP}:8085 + ${data}= Get Binary File ${CURDIR}${/}data${/}distributeServiceTemplate_2.0.json + &{headers}= Create Dictionary Authorization=Basic bXNvX2FkbWluOnBhc3N3b3JkMSQ= resource-location=/app/distribution-test-zip/unzipped/ Content-Type=application/json Accept=application/json + ${resp}= Post Request sdc_controller_session /test/treatNotification/v1 data=${data} headers=${headers} + Run Keyword If '${resp.status_code}' == '200' log to console \nexecuted with expected result + Should Be Equal As Strings '${resp.status_code}' '200' + ${model_version_id_2}= Set Variable 8351245d-50da-4695-8756-3a22618377f7 + SET GLOBAL VARIABLE ${model_version_id_2} + +Get Service-Model-Version From AAI Using Service-Model-InVariant-UUId + Create Session aai_simulator_session https://${REPO_IP}:9993 + &{headers}= Create Dictionary Authorization=Basic YWFpOmFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ== Content-Type=application/xml Accept=application/xml verify=False + ${model-invariant-id}= Set Variable a51e2bef-961c-496f-b235-b4540400e885 + ${get_serviceVersion}= Get Request aai_simulator_session aai/v11/service-design-and-creation/models/model/${model-invariant-id}/model-vers headers=${headers} + Run Keyword If '${get_serviceVersion.status_code}' == '200' log to console \nExecuted with expected + Log to console ${get_serviceVersion.content} + Should Be Equal As Strings ${get_serviceVersion.status_code} 200 + ${serviceVersion_json_response}= Evaluate json.loads(r"""${get_serviceVersion.content}""", strict=False) json + ${all_service_version}= Set Variable ${serviceVersion_json_response['model-vers']['model-ver']} + ${model-version-id_1}= Set Variable "" + ${model-version-id_2}= Set Variable "" + FOR ${member} IN @{all_service_version} + ${model-version}= Set Variable ${member}[model-version] + ${model-version-id}= Set Variable ${member}[model-version-id] + Log to console The ServiceModel Version ${model-version} has ModelVersion Id : ${model-version-id} + ${model-version-id_1}= Set Variable If '${model-version}' == '1.0' ${model-version-id} ${model-version-id_1} + ${model-version-id_2}= Set Variable If '${model-version}' == '2.0' ${model-version-id} ${model-version-id_2} + END + SET GLOBAL VARIABLE ${model-version-id_1} + SET GLOBAL VARIABLE ${model-version-id_2} + +Invoke Service Instantiation for ServiceLevel Upgrade + Create Session api_handler_session http://${REPO_IP}:8080 + ${data}= Get Binary File ${CURDIR}${/}data${/}serviceLevelUpgradeRequest.json + ${serviceInstanceId}= Set Variable ${model-version-id_1} + &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json X-ONAP-RequestID=0ffc559c-5513-44bc-8b02-5759d84600f4 X-ONAP-PartnerName=ONAP X-RequestorID=VID + ${service_instantiation_request}= Post Request api_handler_session /onap/so/infra/instanceManagement/v1/serviceInstances/${serviceInstanceId}/workflows/${serviceLevel_workflow_uuid} data=${data} headers=${headers} + Run Keyword If '${service_instantiation_request.status_code}' == '200' log to console \nexecuted with expected result + log to console ${service_instantiation_request.content} + ${service_instantiation_json_response}= Evaluate json.loads(r"""${service_instantiation_request.content}""", strict=False) json + ${request_ID}= Set Variable ${service_instantiation_json_response}[requestReferences][requestId] + ${actual_service_request_state}= Set Variable "" + FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT} + ${orchestration_status_service_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID} + Run Keyword If '${orchestration_status_service_request.status_code}' == '200' log to console \nexecuted with expected result + log to console ${orchestration_status_service_request.content} + ${orchestration_json_service_response}= Evaluate json.loads(r"""${orchestration_status_service_request.content}""", strict=False) json + ${actual_service_request_state}= SET VARIABLE ${orchestration_json_service_response}[request][requestStatus][requestState] + Log To Console Received actual repsonse status:${actual_service_request_state} + RUN KEYWORD IF '${actual_service_request_state}' == 'COMPLETE' or '${actual_service_request_state}' == 'FAILED' Exit For Loop + log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds + SLEEP ${SLEEP_INTERVAL_SEC}s + END + Log To Console final repsonse status received: ${actual_service_request_state} + Run Keyword If '${actual_service_request_state}' == 'COMPLETE' log to console \nexecuted with expected result + Should Be Equal As Strings '${actual_service_request_state}' 'COMPLETE' + +Test Verify PNF-1 Configuration for Service Level Upgrade + [Documentation] Checking PNF configuration params + Create Session sdnc http://${REPO_IP}:8282 + &{headers}= Create Dictionary Authorization=Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ== Content-Type=application/json + ${mount}= Get File ${CURDIR}${/}data${/}mount.json + Log to console ${mount} + ${pnf_mount_resp}= Put Request sdnc ${SDNC_MOUNT_PATH} data=${mount} headers=${headers} + Should Be Equal As Strings ${pnf_mount_resp.status_code} 201 + SLEEP 10 + ${pnfsim_software_resp}= Get Request sdnc ${PNFSIM_MOUNT_PATH} headers=${headers} + Should Be Equal As Strings ${pnfsim_software_resp.status_code} 200 + Log to console ${pnfsim_software_resp.content} + ${pnfsim_software_resp_json}= Evaluate json.loads(r"""${pnfsim_software_resp.content}""", strict=False) json + ${all_upgp_members}= Set Variable ${pnfsim_software_resp_json['software-upgrade']['upgrade-package']} + FOR ${member} IN @{all_upgp_members} + ${soft_ver}= Get From Dictionary ${member} software-version + ${soft_status}= Get From Dictionary ${member} current-status + Log to console The node ${pnfName} has software version ${soft_ver} : ${soft_status} + Run Keyword If '${soft_ver}' == 'pnf_sw_version-4.0.0' Exit For Loop + END + Run Keyword If '${soft_ver}' == 'pnf_sw_version-4.0.0' log to console \nexecuted with expected result + Should Be Equal As Strings '${soft_ver}' 'pnf_sw_version-4.0.0' + Should Be Equal As Strings '${soft_status}' 'ACTIVATION_COMPLETED' + +Test AAI-Update for PNF-1 Target Software Version after Service Level Upgrade + Create Session aai_simulator_session https://${REPO_IP}:9993 + &{headers}= Create Dictionary Authorization=Basic YWFpOmFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ== Content-Type=application/json Accept=application/json verify=False + FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT} + ${get_pnf_request}= Get Request aai_simulator_session aai/v11/network/pnfs/pnf/${pnfName} headers=${headers} + Run Keyword If '${get_pnf_request.status_code}' == '200' log to console \nexecuted with expected result + ${get_pnf_json_response}= Evaluate json.loads(r"""${get_pnf_request.content}""", strict=False) json + Log to console ${get_pnf_json_response} + ${sw_version}= Set Variable ${get_pnf_json_response}[sw-version] + Log to console ${sw_version} + Run Keyword If '${sw_version}' == 'pnf_sw_version-4.0.0' Exit For Loop + log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds + SLEEP ${SLEEP_INTERVAL_SEC}s + END + Log To Console final target software version received: ${sw_version} + Run Keyword If '${sw_version}' == 'pnf_sw_version-4.0.0' log to console \nexecuted with expected result + Should Be Equal As Strings '${sw_version}' 'pnf_sw_version-4.0.0' + +Test Verify PNF-2 Configuration for Service Level Upgrade + [Documentation] Checking PNF configuration params + Create Session sdnc http://${REPO_IP}:8282 + &{headers}= Create Dictionary Authorization=Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ== Content-Type=application/json + ${mount}= Get File ${CURDIR}${/}data${/}mount2.json + Log to console ${mount} + ${pnf_mount_resp}= Put Request sdnc ${SDNC_MOUNT_PATH2} data=${mount} headers=${headers} + Should Be Equal As Strings ${pnf_mount_resp.status_code} 201 + SLEEP 10 + ${pnfsim_software_resp}= Get Request sdnc ${PNFSIM_MOUNT_PATH2} headers=${headers} + Should Be Equal As Strings ${pnfsim_software_resp.status_code} 200 + Log to console ${pnfsim_software_resp.content} + ${pnfsim_software_resp_json}= Evaluate json.loads(r"""${pnfsim_software_resp.content}""", strict=False) json + ${all_upgp_members}= Set Variable ${pnfsim_software_resp_json['software-upgrade']['upgrade-package']} + FOR ${member} IN @{all_upgp_members} + ${soft_ver}= Get From Dictionary ${member} software-version + ${soft_status}= Get From Dictionary ${member} current-status + Log to console The node ${pnfName1} has software version ${soft_ver} : ${soft_status} + Run Keyword If '${soft_ver}' == 'pnf_sw_version-4.0.0' Exit For Loop + END + Run Keyword If '${soft_ver}' == 'pnf_sw_version-4.0.0' log to console \nexecuted with expected result + Should Be Equal As Strings '${soft_ver}' 'pnf_sw_version-4.0.0' + Should Be Equal As Strings '${soft_status}' 'ACTIVATION_COMPLETED' + +Test AAI-Update for PNF-2 Target Software Version after Service Level Upgrade + Create Session aai_simulator_session https://${REPO_IP}:9993 + &{headers}= Create Dictionary Authorization=Basic YWFpOmFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ== Content-Type=application/json Accept=application/json verify=False + FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT} + ${get_pnf_request}= Get Request aai_simulator_session aai/v11/network/pnfs/pnf/${pnfName1} headers=${headers} + Run Keyword If '${get_pnf_request.status_code}' == '200' log to console \nexecuted with expected result + ${get_pnf_json_response}= Evaluate json.loads(r"""${get_pnf_request.content}""", strict=False) json + Log to console ${get_pnf_json_response} + ${sw_version}= Set Variable ${get_pnf_json_response}[sw-version] + Log to console ${sw_version} + Run Keyword If '${sw_version}' == 'pnf_sw_version-4.0.0' Exit For Loop + log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds + SLEEP ${SLEEP_INTERVAL_SEC}s + END + Log To Console final target software version received: ${sw_version} + Run Keyword If '${sw_version}' == 'pnf_sw_version-4.0.0' log to console \nexecuted with expected result + Should Be Equal As Strings '${sw_version}' 'pnf_sw_version-4.0.0' + +Test AAI-Update for ServiceInstance after Service Level Upgrade + ${globalSubscriberId}= Set Variable 807c7a02-249c-4db8-9fa9-bee973fe08ce + Create Session aai_simulator_session https://${REPO_IP}:9993 + &{headers}= Create Dictionary Authorization=Basic YWFpOmFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ== Content-Type=application/json Accept=application/json verify=False + ${get_service_request}= Get Request aai_simulator_session aai/v17/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/pNF/service-instances/service-instance/${model_version_id_2} headers=${headers} + Run Keyword If '${get_service_request.status_code}' == '200' log to console \nexecuted with expected result + ${get_service_json_response}= Evaluate json.loads(r"""${get_service_request.content}""", strict=False) json + Log to console ${get_service_json_response} + ${service_instance_id}= Set Variable ${get_service_json_response}[service-instance-id] + Should Be Equal As Strings '${service_instance_id}' 'df4decf6-h727-8875-8761-89683ed43645' + ${model_version_id}= Set Variable ${get_service_json_response}[model-version-id] + Should Be Equal As Strings '${model_version_id}' '${model_version_id_2}'
\ No newline at end of file diff --git a/tests/vnfsdk-refrepo/csar/invalid_with_security.csar b/tests/vnfsdk-refrepo/csar/invalid_with_security.csar Binary files differnew file mode 100644 index 00000000..1b258558 --- /dev/null +++ b/tests/vnfsdk-refrepo/csar/invalid_with_security.csar diff --git a/tests/vnfsdk-refrepo/csar_validation_tests.robot b/tests/vnfsdk-refrepo/csar_validation_tests.robot index 9994d567..9097c1a9 100644 --- a/tests/vnfsdk-refrepo/csar_validation_tests.robot +++ b/tests/vnfsdk-refrepo/csar_validation_tests.robot @@ -18,13 +18,60 @@ Validate correct, no security CSAR # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\" ${json_response}= evaluate json.loads('''${response}''') json - Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} PASS + Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_PASS} FOR ${resault} IN @{json_response[0]["results"]["results"]} Should Be Equal As Strings ${resault["errors"]} [] Should Be Equal As Strings ${resault["passed"]} True + run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}" + ... Should Be Equal As Strings ${resault["warnings"]} ${expected_valid_no_security_warnings} END +Validate secure CSAR with invalid certificate + [Documentation] Valid CSAR with cms signature in manifest file and certificate in TOSCA, containing individual signatures for multiple artifacts, using common certificate and individual certificate + + ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation} + # Removing strings that are causing errors during evaluation, + # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes + ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\" + ${json_response}= evaluate json.loads('''${response}''') json + Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED} + ${validated_rules}= Get Length ${json_response[0]["results"]["results"]} + Should Be Equal As Strings ${validated_rules} 14 + FOR ${resault} IN @{json_response[0]["results"]["results"]} + ${validation_errors}= Get Length ${resault["errors"]} + run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}" + ... Should Be Equal As Strings ${validation_errors} 9 + run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}" + ... Should Be Equal As Strings ${validation_errors} 1 + run keyword if "${resault["vnfreqName"]}" == "${MANIFEST_FILE_RULE}" + ... Should Be Equal As Strings ${validation_errors} 1 + run keyword if "${resault["vnfreqName"]}" == "${NON_MANO_FILES_RULE}" + ... Should Be Equal As Strings ${validation_errors} 4 + END + + +Validate CSAR using selected rules + [Documentation] Valid CSAR using only selected rules provided in request parameters + + ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation_selected_rules} + # Removing strings that are causing errors during evaluation, + # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes + ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\" + ${json_response}= evaluate json.loads('''${response}''') json + Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED} + ${validated_rules}= Get Length ${json_response[0]["results"]["results"]} + Should Be Equal As Strings ${validated_rules} 3 + FOR ${resault} IN @{json_response[0]["results"]["results"]} + ${validation_errors}= Get Length ${resault["errors"]} + run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}" + ... Should Be Equal As Strings ${validation_errors} 9 + run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}" + ... Should Be Equal As Strings ${validation_errors} 1 + END + + + Validate CSAR using rule r130206 and use get method to receive outcome [Documentation] Validate CSAR with invalid PM_Dictionary (r130206) using rule r130206 , then use get method with validation id to receive valdiation outcome diff --git a/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot b/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot index e46eba6f..bc9684d6 100644 --- a/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot +++ b/tests/vnfsdk-refrepo/resources/vnfsdk_properties.robot @@ -3,8 +3,20 @@ ${base_url}= http://${REFREPO_IP}:8702/onapapi/vnfsdk-marketplace/v1 ${csarpath}= ${SCRIPTS}/../tests/vnfsdk-refrepo/csar +${CERTIFICATION_RULE}= r130206 +${PM_DICTIONARY_YAML_RULE}= r816745 +${MANIFEST_FILE_RULE}= r01123 +${NON_MANO_FILES_RULE}= r146092 +${OPERATION_STATUS_FAILED}= FAILED +${OPERATION_STATUS_PASS}= PASS + ${csar_valid_no_security}= valid_no_security.csar ${execute_no_security_csar_validation}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate","parameters": {"csar": "file://${csar_valid_no_security}","pnf":"true"}}] +${expected_valid_no_security_warnings}= [{u'lineNumber': -1, u'message': u'Warning. Consider adding package integrity and authenticity assurance according to ETSI NFV-SOL 004 Security Option 1', u'code': u'0x1006', u'file': u'', u'vnfreqNo': u'R130206'}] + +${csar_invalid_with_security}= invalid_with_security.csar +${execute_security_csar_validation}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate","parameters": {"csar": "file://${csar_invalid_with_security}","pnf":"true"}}] +${execute_security_csar_validation_selected_rules}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate","parameters": {"csar": "file://${csar_invalid_with_security}","pnf":"true","rules":"${CERTIFICATION_RULE},${PM_DICTIONARY_YAML_RULE}"}}] ${csar_invalid_pm_dictionary}= invalid_pm_dictionary.csar ${execute_invalid_pm_dictionary_r130206_validation}= [{"scenario": "onap-dublin","testSuiteName": "validation","testCaseName": "csar-validate-r130206","parameters": {"csar": "file://${csar_invalid_pm_dictionary}","pnf":"true"}}] |