aboutsummaryrefslogtreecommitdiffstats
path: root/tests/so/integration-cnfm-testing/cnf_lcm_tests.robot
diff options
context:
space:
mode:
Diffstat (limited to 'tests/so/integration-cnfm-testing/cnf_lcm_tests.robot')
-rw-r--r--tests/so/integration-cnfm-testing/cnf_lcm_tests.robot148
1 files changed, 148 insertions, 0 deletions
diff --git a/tests/so/integration-cnfm-testing/cnf_lcm_tests.robot b/tests/so/integration-cnfm-testing/cnf_lcm_tests.robot
new file mode 100644
index 00000000..85838861
--- /dev/null
+++ b/tests/so/integration-cnfm-testing/cnf_lcm_tests.robot
@@ -0,0 +1,148 @@
+*** Settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+
+Documentation Test cases for CNF lifecycle management operations
+... Note, relies on:
+... -package being onboarded in cnf_package_onboarding_tests
+
+*** Variables ***
+${SLEEP_INTERVAL_SEC}= 10
+${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}= 60 # Represents the maximum number of attempts that will be made before a timeout. It sleeps for SLEEP_INTERVAL_SEC seconds before retry.
+${BASIC_AUTH}= Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
+${SERVICE_INSTANTIATION_TEMPLATE}= ${CURDIR}${/}data${/}serviceInstantiationRequest.json
+${CNF_RESOURCE_INSTANTIATION_TEMPLATE}= ${CURDIR}${/}data${/}cnfResourceInstantiationRequest.json
+${CNF_RESOURCE_DELETE_TEMPLATE}= ${CURDIR}${/}data${/}cnfResourceDeleteRequest.json
+${SERVICE_DELETE_TEMPLATE}= ${CURDIR}${/}data${/}serviceDeleteRequest.json
+
+*** Test Cases ***
+Invoke Service Instantiation
+ Create Session api_handler_session http://${REPO_IP}:8080
+ ${data}= Get Binary File ${SERVICE_INSTANTIATION_TEMPLATE}
+ &{headers}= Create Dictionary Authorization=${BASIC_AUTH} Content-Type=application/json Accept=application/json
+ ${service_instantiation_request}= Post On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances data=${data} headers=${headers}
+ Log to Console \nStatus code received: ${service_instantiation_request.status_code}
+ Log to Console Content received: ${service_instantiation_request.content}
+ Should Be Equal As Strings '${service_instantiation_request.status_code}' '202'
+
+ ${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]
+ ${service_instance_Id}= Set Variable ${service_instantiation_json_response}[requestReferences][instanceId]
+ Set Global Variable ${service_instance_Id}
+ ${actual_request_state}= Set Variable ""
+
+ FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
+ ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
+ Log to Console Orchestration status code received: ${orchestration_status_request.status_code}
+ Log to Console Orchestration Content received: ${orchestration_status_request.content}
+ ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""", strict=False) json
+ ${actual_request_state}= Set Variable ${orchestration_json_response}[request][requestStatus][requestState]
+ Log To Console Received actual repsonse status:${actual_request_state}
+ Run Keyword If '${actual_request_state}' == 'COMPLETE' or '${actual_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_request_state}
+ Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
+
+Invoke CNF Instantiation
+ Run Keyword If "${service_instance_Id}"!="${EMPTY}" Log to Console Service Instance ID :${service_instance_Id} received
+ ... ELSE Fail Log to Console Invalid Service Instance ID :${service_instance_Id} recieved
+
+ ${data}= Get Binary File ${CNF_RESOURCE_INSTANTIATION_TEMPLATE}
+ ${cnf_instantiate_request_json}= Evaluate json.loads(r'''${data}''', strict=False) json
+ Set To Dictionary ${cnf_instantiate_request_json}[requestDetails][relatedInstanceList][0][relatedInstance] instanceId=${service_instance_Id}
+ ${cnf_instantiate_request_string}= Evaluate json.dumps(${cnf_instantiate_request_json}) json
+
+ Create Session api_handler_session http://${REPO_IP}:8080
+ &{headers}= Create Dictionary Authorization=${BASIC_AUTH} Content-Type=application/json Accept=application/json
+ ${cnf_instantiate_request}= Post On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/cnfs data=${cnf_instantiate_request_string} headers=${headers}
+ Log to Console \nStatus code received: ${cnf_instantiate_request.status_code}
+ Log to Console Content received: ${cnf_instantiate_request.content}
+ Should Be Equal As Strings '${cnf_instantiate_request.status_code}' '202'
+
+ ${cnf_instantiate_json_response}= Evaluate json.loads(r"""${cnf_instantiate_request.content}""") json
+ ${request_ID}= Set Variable ${cnf_instantiate_json_response}[requestReferences][requestId]
+ ${actual_request_state}= Set Variable ""
+ ${cnf_instance_Id}= Set Variable ${cnf_instantiate_json_response}[requestReferences][instanceId]
+ SET GLOBAL VARIABLE ${cnf_instance_Id}
+
+ FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
+ ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
+ Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
+ Log To Console ${orchestration_status_request.content}
+ ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""", strict=False) json
+ ${actual_request_state}= Set Variable ${orchestration_json_response}[request][requestStatus][requestState]
+ Run Keyword If '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED' Exit For Loop
+ Log To Console Will try again after ${SLEEP_INTERVAL_SEC} seconds
+ SLEEP ${SLEEP_INTERVAL_SEC}s
+ END
+
+ ${service_instance_Id}= Set Variable ${orchestration_json_response}[request][instanceReferences][serviceInstanceId]
+ Log To Console Final repsonse status received: ${actual_request_state}
+ Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
+
+Invoke CNF Delete
+ Run Keyword If "${cnf_instance_Id}" != "${EMPTY}" Log to Console CNF Instance ID :${cnf_instance_Id} received
+ ... ELSE Fail Log to Console Invalid CNF Instance ID :${cnf_instance_Id} recieved
+ Run Keyword If "${service_instance_Id}" != "${EMPTY}" Log to Console CNF Instance ID :${service_instance_Id} received
+ ... ELSE Fail Log to Console Invalid CNF Instance ID :${service_instance_Id} recieved
+
+ Create Session api_handler_session http://${REPO_IP}:8080
+ ${data}= Get Binary File ${CNF_RESOURCE_DELETE_TEMPLATE}
+ &{headers}= Create Dictionary Authorization=${BASIC_AUTH} Content-Type=application/json Accept=application/json
+ ${cnf_delete_request}= Delete On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/cnfs/${cnf_instance_Id} data=${data} headers=${headers}
+ Log to Console \nStatus code received: ${cnf_delete_request.status_code}
+ Log to Console Content received: ${cnf_delete_request.content}
+ Should Be Equal As Strings '${cnf_delete_request.status_code}' '202'
+
+ ${cnf_delete_json_response}= Evaluate json.loads(r"""${cnf_delete_request.content}""") json
+ ${request_ID}= Set Variable ${cnf_delete_json_response}[requestReferences][requestId]
+ ${actual_request_state}= Set Variable ""
+
+ FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
+ ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
+ Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
+ Log To Console ${orchestration_status_request.content}
+ ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""") json
+ ${actual_request_state}= Set Variable ${orchestration_json_response}[request][requestStatus][requestState]
+ RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_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_request_state}
+ Should Be Equal As Strings '${actual_request_state}' 'COMPLETE'
+
+Delete Service Instance
+ Run Keyword If "${service_instance_Id}" != "${EMPTY}" Log to Console CNF Instance ID :${service_instance_Id} received
+ ... ELSE Fail Log to Console Invalid Service Instance ID :${service_instance_Id} recieved
+
+ Create Session api_handler_session http://${REPO_IP}:8080
+ ${data}= Get Binary File ${SERVICE_DELETE_TEMPLATE}
+ &{headers}= Create Dictionary Authorization=${BASIC_AUTH} Content-Type=application/json Accept=application/json
+ ${service_delete_request}= Delete On Session api_handler_session /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id} data=${data} headers=${headers}
+ ${service_delete_json_response}= Evaluate json.loads(r"""${service_delete_request.content}""") json
+ Log to Console \nStatus code received: ${service_delete_request.status_code}
+ Log to Console Content received: ${service_delete_request.content}
+ Should Be Equal As Strings '${service_delete_request.status_code}' '202'
+
+ ${request_ID}= Set Variable ${service_delete_json_response}[requestReferences][requestId]
+ ${actual_request_state}= Set Variable ""
+
+ FOR ${INDEX} IN RANGE ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
+ ${orchestration_status_request}= Get On Session api_handler_session /onap/so/infra/orchestrationRequests/v7/${request_ID}
+ Run Keyword If '${orchestration_status_request.status_code}' == '200' log to console \nexecuted with expected result
+ Log To Console ${orchestration_status_request.content}
+ ${orchestration_json_response}= Evaluate json.loads(r"""${orchestration_status_request.content}""") json
+ ${actual_request_state}= Set Variable ${orchestration_json_response}[request][requestStatus][requestState]
+ RUN KEYWORD IF '${actual_request_state}' == 'COMPLETE' or '${actual_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_request_state}
+ Should Be Equal As Strings '${actual_request_state}' 'COMPLETE' \ No newline at end of file