3 Library RequestsLibrary
4 Library OperatingSystem
6 Documentation Test cases for onboarding a VNF and Network Service package and distributing the VNF Package
7 ... Note: onboarded VNF package is used in later VNF tests including:
8 ... -etsi_vnf_lcm_tests.robot
9 ... -etsi_vnf_package_management_tests.robot
10 ... -etsi_vnf_notification_tests.robot
11 ... Note: onboarded Network Service package is used in later test:
12 ... -etsi_nfvo_ns_lcm_tests.robot
15 ${SLEEP_INTERVAL_SEC}= 5
16 ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}= 48 # Represents the maximum number of attempts that will be made before a timeout. It sleeps for SLEEP_INTERVAL_SEC seconds before retry.
19 OnBoard VNF Package In Etsi Catalog
20 Create Session etsi_catalog_session http://${REPO_IP}:8806
21 ${data}= Get Binary File ${CURDIR}${/}data${/}vnfPackageOnboardRequest.json
22 &{headers}= Create Dictionary Content-Type=application/json Accept=application/json
23 ${resp}= Post On Session etsi_catalog_session /api/catalog/v1/vnfpackages data=${data} headers=${headers}
24 Run Keyword If '${resp.status_code}' == '202' log to console \nexecuted with expected result
25 Should Be Equal As Strings '${resp.status_code}' '202'
26 log to console ${resp.content}
27 ${onboarding_job_json_response}= Evaluate json.loads(r"""${resp.content}""", strict=False) json
28 ${job_ID}= Set Variable ${onboarding_job_json_response}[jobId]
29 Should Not Be Empty ${job_ID}
30 ${actual_job_status}= Set Variable ""
32 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
33 ${onboarding_job_status_request}= Get On Session etsi_catalog_session /api/catalog/v1/jobs/${job_ID}
34 Run Keyword If '${onboarding_job_status_request.status_code}' == '200' log to console \nexecuted with expected result
35 log to console ${onboarding_job_status_request.content}
37 ${onboarding_job_status_json_response}= Evaluate json.loads(r"""${onboarding_job_status_request.content}""", strict=False) json
39 ${actual_job_status}= Set Variable ""
41 ${response_descriptor_exists}= Run Keyword And Return Status Get From Dictionary ${onboarding_job_status_json_response} responseDescriptor
42 ${status_exists}= Run Keyword And Return Status Get From Dictionary ${onboarding_job_status_json_response}[responseDescriptor] status
44 ${actual_job_status}= Set Variable If ${response_descriptor_exists} == True and ${status_exists} == True
45 ... ${onboarding_job_status_json_response}[responseDescriptor][status]
47 Log To Console Received actual repsonse status:${actual_job_status}
48 Run Keyword If '${actual_job_status}' == 'finished' or '${actual_job_status}' == 'error' or '${actual_job_status}' == 'timeout' Exit For Loop
49 log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds
50 SLEEP ${SLEEP_INTERVAL_SEC}
52 Log To Console final repsonse status received: ${actual_job_status}
53 Run Keyword If '${actual_job_status}' == 'finished' log to console \nexecuted with expected result
54 Should Be Equal As Strings '${actual_job_status}' 'finished'
56 Onboard Network Service Package In Etsi Catalog
57 Create Session etsi_catalog_session http://${REPO_IP}:8806
58 ${data}= Get Binary File ${CURDIR}${/}data${/}networkServicePackageOnboardRequest.json
59 &{headers}= Create Dictionary Content-Type=application/json Accept=application/json
60 ${resp}= POST On Session etsi_catalog_session /api/catalog/v1/nspackages data=${data} headers=${headers}
61 log to console ${resp.content}
63 Run Keyword If '${resp.status_code}' == '202' log to console \nexecuted with expected result
64 Should Be Equal As Strings '${resp.status_code}' '202'
67 Distribute Service Template
68 Create Session sdc_controller_session http://${REPO_IP}:8085
69 ${data}= Get Binary File ${CURDIR}${/}data${/}distributeServiceTemplate.json
70 &{headers}= Create Dictionary Authorization=Basic bXNvX2FkbWluOnBhc3N3b3JkMSQ= resource-location=/distribution-test-zip/unzipped/ Content-Type=application/json Accept=application/json
71 ${resp}= Post On Session sdc_controller_session /test/treatNotification/v1 data=${data} headers=${headers}
72 Run Keyword If '${resp.status_code}' == '200' log to console \nexecuted with expected result
73 Should Be Equal As Strings '${resp.status_code}' '200'