3 Library RequestsLibrary
4 Library OperatingSystem
6 Documentation Test cases for VNF lifecycle management operations
8 ... -package being onboarded in etsi_package_onboarding_tests
11 ${SLEEP_INTERVAL_SEC}= 5
12 ${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.
15 Invoke Service Instantiation
16 Create Session api_handler_session http://${REPO_IP}:8080
17 ${data}= Get Binary File ${CURDIR}${/}data${/}serviceInstantiationRequest.json
18 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
19 ${service_instantiation_request}= Post On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances data=${data} headers=${headers}
20 Run Keyword If '${service_instantiation_request.status_code}' == '200' log to console \nexecuted with expected result
21 log to console ${service_instantiation_request.content}
22 ${service_instantiation_json_response}= Evaluate json.loads(r"""${service_instantiation_request.content}""", strict=False) json
23 ${request_ID}= Set Variable ${service_instantiation_json_response}[requestReferences][requestId]
24 ${service_instance_Id}= Set Variable ${service_instantiation_json_response}[requestReferences][instanceId]
25 SET GLOBAL VARIABLE ${service_instance_Id}
26 ${actual_request_state}= Set Variable ""
28 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
29 ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
30 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
31 log to console ${orchestration_status_request.content}
32 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""", strict=False) json
33 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
34 Log To Console Received actual repsonse status:${actual_request_state}
35 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
36 log to console Will try again after ${SLEEP_INTERVAL_SEC} seconds
37 SLEEP ${SLEEP_INTERVAL_SEC}s
40 Log To Console final repsonse status received: ${actual_request_state}
41 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
42 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
44 Invoke VNF Instantiation
45 Run Keyword If "${service_instance_Id}"!="${EMPTY}" Log to Console Service Instance ID :${service_instance_Id} received
46 ... ELSE Fail Log to Console Invalid Service Instance ID :${service_instance_Id} recieved
48 Create Session api_handler_session http://${REPO_IP}:8080
49 ${data}= Get Binary File ${CURDIR}${/}data${/}vnfInstantiationRequest.json
50 ${vnf_instantiate_request_json}= evaluate json.loads(r'''${data}''', strict=False) json
51 set to dictionary ${vnf_instantiate_request_json}[requestDetails][relatedInstanceList][0][relatedInstance] instanceId=${service_instance_Id}
52 ${vnf_instantiate_request_string}= evaluate json.dumps(${vnf_instantiate_request_json}) json
53 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
54 ${vnf_instantiate_request}= Post On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/vnfs data=${vnf_instantiate_request_string} headers=${headers}
55 Run Keyword If '${vnf_instantiate_request.status_code}' == '200' log to console \nexecuted with expected result
56 ${vnf_instantiate_json_response}= Evaluate json.loads(r"""${vnf_instantiate_request.content}""") json
57 ${request_ID}= Set Variable ${vnf_instantiate_json_response}[requestReferences][requestId]
58 ${actual_request_state}= SET VARIABLE ""
59 ${vnf_instance_Id}= Set Variable ${vnf_instantiate_json_response}[requestReferences][instanceId]
60 SET GLOBAL VARIABLE ${vnf_instance_Id}
62 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
63 ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
64 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
65 Log To Console ${orchestration_status_request.content}
66 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""", strict=False) json
67 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
68 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
69 Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds
70 SLEEP ${SLEEP_INTERVAL_SEC}s
73 ${service_instance_Id}= SET VARIABLE ${orchestration_json_response}[request][instanceReferences][serviceInstanceId]
74 Log To Console final repsonse status received: ${actual_request_state}
75 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
76 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
79 Run Keyword If "${vnf_instance_Id}" != "${EMPTY}" Log to Console VNF Instance ID :${vnf_instance_Id} received
80 ... ELSE Fail Log to Console Invalid VNF Instance ID :${vnf_instance_Id} recieved
81 Run Keyword If "${service_instance_Id}" != "${EMPTY}" Log to Console VNF Instance ID :${service_instance_Id} received
82 ... ELSE Fail Log to Console Invalid VNF Instance ID :${service_instance_Id} recieved
84 Create Session api_handler_session http://${REPO_IP}:8080
85 ${data}= Get Binary File ${CURDIR}${/}data${/}vnfDeleteRequest.json
86 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
87 ${vnf_delete_request}= Delete On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/vnfs/${vnf_instance_Id} data=${data} headers=${headers}
88 ${vnf_delete_json_response}= Evaluate json.loads(r"""${vnf_delete_request.content}""") json
89 Log to Console ${vnf_delete_json_response}
90 ${request_ID}= Set Variable ${vnf_delete_json_response}[requestReferences][requestId]
91 ${actual_request_state}= Set Variable ""
93 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
94 ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
95 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
96 Log To Console ${orchestration_status_request.content}
97 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""") json
98 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
99 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
100 Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds
101 SLEEP ${SLEEP_INTERVAL_SEC}s
104 Log To Console final repsonse status received: ${actual_request_state}
105 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
106 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
109 Delete Service Instance
110 Run Keyword If "${service_instance_Id}" != "${EMPTY}" Log to Console VNF Instance ID :${service_instance_Id} received
111 ... ELSE Fail Log to Console Invalid Service Instance ID :${service_instance_Id} recieved
113 Create Session api_handler_session http://${REPO_IP}:8080
114 ${data}= Get Binary File ${CURDIR}${/}data${/}serviceDeleteRequest.json
115 &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json
116 ${service_delete_request}= Delete On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id} data=${data} headers=${headers}
117 ${service_delete_json_response}= Evaluate json.loads(r"""${service_delete_request.content}""") json
118 Log to Console ${service_delete_json_response}
119 ${request_ID}= Set Variable ${service_delete_json_response}[requestReferences][requestId]
120 ${actual_request_state}= Set Variable ""
122 FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
123 ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
124 Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
125 Log To Console ${orchestration_status_request.content}
126 ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""") json
127 ${actual_request_state}= SET VARIABLE ${orchestration_json_response}[request][requestStatus][requestState]
128 RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
129 Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds
130 SLEEP ${SLEEP_INTERVAL_SEC}s
133 Log To Console final repsonse status received: ${actual_request_state}
134 Run Keyword If '${actual_request_state}' == 'COMPLETE' log to console \nexecuted with expected result
135 Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'