3 Library RequestsLibrary
4 Library OperatingSystem
8 ${SLEEP_INTERVAL_SEC}= 5
9 ${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.
12 OnBoard VNF Package In Etsi Catalog
13 Create Session etsi_catalog_session http://${REPO_IP}:8806
14 ${data}= Get Binary File ${CURDIR}${/}data${/}vnfPackageOnboardRequest.json
15 &{headers}= Create Dictionary Content-Type=application/json Accept=application/json
16 ${resp}= Post Request etsi_catalog_session /api/catalog/v1/vnfpackages data=${data} headers=${headers}
17 Run Keyword If '${resp.status_code}' == '202' log to console \nexecuted with expected result
18 Should Be Equal As Strings '${resp.status_code}' '202'
19 log to console ${resp.content}
20 ${onboarding_job_json_response}= Evaluate json.loads(r"""${resp.content}""", strict=False) json
21 ${job_ID}= Set Variable ${onboarding_job_json_response}[jobId]
22 Should Not Be Empty ${job_ID}
23 ${actual_job_status}= Set Variable ""
25 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
26 ${onboarding_job_status_request}= Get Request etsi_catalog_session /api/catalog/v1/jobs/${job_ID}
27 Run Keyword If '${onboarding_job_status_request.status_code}' == '200' log to console \nexecuted with expected result
28 log to console ${onboarding_job_status_request.content}
30 ${onboarding_job_status_json_response}= Evaluate json.loads(r"""${onboarding_job_status_request.content}""", strict=False) json
32 ${actual_job_status}= Set Variable ""
34 ${response_descriptor_exists}= Run Keyword And Return Status Get From Dictionary ${onboarding_job_status_json_response} responseDescriptor
35 ${status_exists}= Run Keyword And Return Status Get From Dictionary ${onboarding_job_status_json_response}[responseDescriptor] status
37 ${actual_job_status}= Set Variable If ${response_descriptor_exists} == True and ${status_exists} == True
38 ... ${onboarding_job_status_json_response}[responseDescriptor][status]
40 Log To Console Received actual repsonse status:${actual_job_status}
41 Run Keyword If '${actual_job_status}' == 'finished' or '${actual_job_status}' == 'error' or '${actual_job_status}' == 'timeout' Exit For Loop
42 log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds
43 SLEEP ${SLEEP_INTERVAL_SEC}
45 Log To Console final repsonse status received: ${actual_job_status}
46 Run Keyword If '${actual_job_status}' == 'finished' log to console \nexecuted with expected result
47 Should Be Equal As Strings '${actual_job_status}' 'finished'
49 Distribute Service Template
50 Create Session sdc_controller_session http://${REPO_IP}:8085
51 ${data}= Get Binary File ${CURDIR}${/}data${/}distributeServiceTemplate.json
52 &{headers}= Create Dictionary Authorization=Basic bXNvX2FkbWluOnBhc3N3b3JkMSQ= resource-location=/distribution-test-zip/unzipped/ Content-Type=application/json Accept=application/json
53 ${resp}= Post Request sdc_controller_session /test/treatNotification/v1 data=${data} headers=${headers}
54 Run Keyword If '${resp.status_code}' == '200' log to console \nexecuted with expected result
55 Should Be Equal As Strings '${resp.status_code}' '200'
57 Invoke Service Instantiation
58 Create Session api_handler_session http://${REPO_IP}:8080
59 ${data}= Get Binary File ${CURDIR}${/}data${/}serviceInstantiationRequest.json
60 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
61 ${service_instantiation_request}= Post Request api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances data=${data} headers=${headers}
62 Run Keyword If '${service_instantiation_request.status_code}' == '200' log to console \nexecuted with expected result
63 log to console ${service_instantiation_request.content}
64 ${service_instantiation_json_response}= Evaluate json.loads(r"""${service_instantiation_request.content}""", strict=False) json
65 ${request_ID}= Set Variable ${service_instantiation_json_response}[requestReferences][requestId]
66 ${service_instance_Id}= Set Variable ${service_instantiation_json_response}[requestReferences][instanceId]
67 SET GLOBAL VARIABLE ${service_instance_Id}
68 ${actual_request_state}= Set Variable ""
70 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
71 ${orchestration_status_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
72 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
73 log to console ${orchestration_status_request.content}
74 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""", strict=False) json
75 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
76 Log To Console Received actual repsonse status:${actual_request_state}
77 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
78 log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds
79 SLEEP ${SLEEP_INTERVAL_SEC}s
82 Log To Console final repsonse status received: ${actual_request_state}
83 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
84 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
86 Invoke VNF Instantiation
87 Run Keyword If "${service_instance_Id}"!="${EMPTY}" Log to Console Service Instance ID :${service_instance_Id} received
88 ... ELSE Fail Log to Console Invalid Service Instance ID :${service_instance_Id} recieved
90 Create Session api_handler_session http://${REPO_IP}:8080
91 ${data}= Get Binary File ${CURDIR}${/}data${/}vnfInstantiationRequest.json
92 ${vnf_instantiate_request_json}= evaluate json.loads(r'''${data}''', strict=False) json
93 set to dictionary ${vnf_instantiate_request_json}[requestDetails][relatedInstanceList][0][relatedInstance] instanceId=${service_instance_Id}
94 ${vnf_instantiate_request_string}= evaluate json.dumps(${vnf_instantiate_request_json}) json
95 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
96 ${vnf_instantiate_request}= Post Request api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/vnfs data=${vnf_instantiate_request_string} headers=${headers}
97 Run Keyword If '${vnf_instantiate_request.status_code}' == '200' log to console \nexecuted with expected result
98 ${vnf_instantiate_json_response}= Evaluate json.loads(r"""${vnf_instantiate_request.content}""") json
99 ${request_ID}= Set Variable ${vnf_instantiate_json_response}[requestReferences][requestId]
100 ${actual_request_state}= SET VARIABLE ""
101 ${vnf_instance_Id}= Set Variable ${vnf_instantiate_json_response}[requestReferences][instanceId]
102 SET GLOBAL VARIABLE ${vnf_instance_Id}
104 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
105 ${orchestration_status_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
106 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
107 Log To Console ${orchestration_status_request.content}
108 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""", strict=False) json
109 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
110 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
111 Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds
112 SLEEP ${SLEEP_INTERVAL_SEC}s
115 ${service_instance_Id}= SET VARIABLE ${orchestration_json_response}[request][instanceReferences][serviceInstanceId]
116 Log To Console final repsonse status received: ${actual_request_state}
117 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
118 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
121 Run Keyword If "${vnf_instance_Id}" != "${EMPTY}" Log to Console VNF Instance ID :${vnf_instance_Id} received
122 ... ELSE Fail Log to Console Invalid VNF Instance ID :${vnf_instance_Id} recieved
123 Run Keyword If "${service_instance_Id}" != "${EMPTY}" Log to Console VNF Instance ID :${service_instance_Id} received
124 ... ELSE Fail Log to Console Invalid VNF Instance ID :${service_instance_Id} recieved
126 Create Session api_handler_session http://${REPO_IP}:8080
127 ${data}= Get Binary File ${CURDIR}${/}data${/}vnfDeleteRequest.json
128 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
129 ${vnf_delete_request}= Delete Request api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/vnfs/${vnf_instance_Id} data=${data} headers=${headers}
130 ${vnf_delete_json_response}= Evaluate json.loads(r"""${vnf_delete_request.content}""") json
131 Log to Console ${vnf_delete_json_response}
132 ${request_ID}= Set Variable ${vnf_delete_json_response}[requestReferences][requestId]
133 ${actual_request_state}= Set Variable ""
135 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
136 ${orchestration_status_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
137 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
138 Log To Console ${orchestration_status_request.content}
139 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""") json
140 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
141 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
142 Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds
143 SLEEP ${SLEEP_INTERVAL_SEC}s
146 Log To Console final repsonse status received: ${actual_request_state}
147 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
148 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
151 Delete Service Instance
152 Run Keyword If "${service_instance_Id}" != "${EMPTY}" Log to Console VNF Instance ID :${service_instance_Id} received
153 ... ELSE Fail Log to Console Invalid Service Instance ID :${service_instance_Id} recieved
155 Create Session api_handler_session http://${REPO_IP}:8080
156 ${data}= Get Binary File ${CURDIR}${/}data${/}serviceDeleteRequest.json
157 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
158 ${service_delete_request}= Delete Request api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id} data=${data} headers=${headers}
159 ${service_delete_json_response}= Evaluate json.loads(r"""${service_delete_request.content}""") json
160 Log to Console ${service_delete_json_response}
161 ${request_ID}= Set Variable ${service_delete_json_response}[requestReferences][requestId]
162 ${actual_request_state}= Set Variable ""
164 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
165 ${orchestration_status_request}= Get Request api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
166 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
167 Log To Console ${orchestration_status_request.content}
168 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""") json
169 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
170 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
171 Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds
172 SLEEP ${SLEEP_INTERVAL_SEC}s
175 Log To Console final repsonse status received: ${actual_request_state}
176 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
177 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'