aboutsummaryrefslogtreecommitdiffstats
path: root/tests/so/orchestration/resources/SoKeywords.robot
diff options
context:
space:
mode:
authorMnushkin, Dmitry (dm4252) <dm4252@att.com>2019-09-06 15:03:01 -0500
committerMnushkin, Dmitry (dm4252) <dm4252@att.com>2019-09-06 15:03:01 -0500
commit6f09e1be817c52ce3685f94a938ee3180525aad9 (patch)
treec39529bca5093bf21a2386776244cd9fc09247c5 /tests/so/orchestration/resources/SoKeywords.robot
parent8e8379fc709b077fcb2ab3035dd22e2a2a46ed53 (diff)
Add orchestration project to SO integration testing repository
Add orchestration project containing robot setup for testing Create and Delete Service Instance that will utilize requests directed to simulator (SIM) Container and AAI image Issue-ID: SO-2264 Signed-off-by: Mnushkin, Dmitry (dm4252) <dm4252@att.com>;;; Change-Id: Iac4ac97fcbe5e73712486547d4a5046387751e5b
Diffstat (limited to 'tests/so/orchestration/resources/SoKeywords.robot')
-rw-r--r--tests/so/orchestration/resources/SoKeywords.robot103
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/so/orchestration/resources/SoKeywords.robot b/tests/so/orchestration/resources/SoKeywords.robot
new file mode 100644
index 00000000..f9f68984
--- /dev/null
+++ b/tests/so/orchestration/resources/SoKeywords.robot
@@ -0,0 +1,103 @@
+*** Settings ***
+Library StringTemplater
+Library Collections
+Library RequestsLibrary
+Library HttpLibrary.HTTP
+Library OperatingSystem
+Library BuiltIn
+Library String
+Library XML
+Resource common/Variables.robot
+Resource SoVariables.robot
+Resource global_properties.robot
+Resource so_interface.robot
+
+***Variables***
+${SO_REST_URL} ${GLOBAL_SO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_SO_SERVER_PORT}
+
+*** Keywords ***
+Wait To Poll
+ [Documentation] Sleep the execution for the specified time (in seconds).
+ Sleep ${POLL_WAIT_TIME}
+
+Poll Orchestration Request
+ [Documentation] Poll the service orchestration request for the completion. Uses MAX_POLL_COUNT to specify the maximum number of polling attempts.
+ [Arguments] ${request_id}
+ : FOR ${INDEX} IN RANGE 1 ${MAX_POLL_COUNT}
+ \ Log 'Poll Count :'
+ \ Log ${INDEX}
+ \ ${orchestration_request_response}= Get Orchestration Request Status ${request_id}
+
+ # First check request status code
+ \ ${orch_request_status_code}= Set Variable ${orchestration_request_response.status_code}
+ \ ${orchestration_failure_message}= Run Keyword If ${orch_request_status_code} != ${HTTP_OK} Catenate Error Code ${orch_request_status_code}
+ \ ${request_completion_status}= Run Keyword If ${orch_request_status_code} != ${HTTP_OK} Set Variable '${ORCH_REQUEST_FAILED}'
+ \ Exit For Loop If ${orch_request_status_code} != ${HTTP_OK}
+
+ # Get Status of Orchestration request
+ \ Log ${orchestration_request_response.content}
+ \ ${request_completion_status} Get Json Value ${orchestration_request_response.content} /request/requestStatus/requestState
+ \ ${orchestration_status_message}= Run Keyword If ${request_completion_status} != '${ORCH_REQUEST_IN_PROGRESS}' Get Json Value ${orchestration_request_response.content} /request/requestStatus/statusMessage
+ \ Log ${request_completion_status}
+
+ # Check for FAILED status
+ \ ${orchestration_failure_message}= Run Keyword If ${request_completion_status} == '${ORCH_REQUEST_FAILED}' Set Variable ${orchestration_status_message}
+ \ Exit For Loop If ${request_completion_status} == '${ORCH_REQUEST_FAILED}'
+
+ # Check for COMPLETE status
+ \ Exit For Loop If ${request_completion_status} == '${ORCH_REQUEST_COMPLETE}'
+
+ # Check for MAX NO OF POLL count, and exit if it has reached the maximum poll count
+ \ ${orchestration_failure_message}= Run Keyword If ${INDEX} == ${MaxPollCount}-1 Set Variable ${TIME_OUT_MESSAGE}
+ \ Exit For Loop If ${INDEX} == ${MaxPollCount}-1
+ \ Wait To Poll
+ LOG ${orchestration_failure_message}
+ ${request_completion_status} Get Substring ${request_completion_status} 1 -1
+ [Return] ${request_completion_status} ${orchestration_failure_message}
+
+Get Orchestration Request Status
+ [Documentation] Get the status of the orchestrated service request.
+ [Arguments] ${request_id}
+
+ ${url}= Catenate SEPARATOR=/ ${SO_ORCHESTRATION_REQUESTS_URI} ${request_id}
+ ${orchestration_request_response} Run SO Get Request ${url}
+ [Return] ${orchestration_request_response}
+
+Get Orchestration Request Status with parameters
+ [Documentation] Get the status of the orchestrated service request.
+ [Arguments] ${request_id} ${parameter}
+
+ ${url}= Catenate ${SO_ORCHESTRATION_REQUESTS_URI}/${request_id}?${parameter}
+ ${orchestration_request_response} Run SO Get Request ${url}
+ [Return] ${orchestration_request_response}
+
+Get ExtSystemErrorSource
+ [Documentation] Return ExtSystemErrorSource from Get Orchestration Request
+ [Arguments] ${request_id}
+
+ ${orchestration_request_response} Get Orchestration Request Status with parameters ${request_id} format=statusdetail
+ ${orchestration_request_response_json} Parse Json ${orchestration_request_response.content}
+ ${extSystemErrorSource} Convert to String ${orchestration_request_response_json['request']['requestStatus']['extSystemErrorSource']}
+
+ [Return] ${extSystemErrorSource}
+
+Get RollbackExtSystemErrorSource
+ [Documentation] Return ExtSystemErrorSource from Get Orchestration Request
+ [Arguments] ${request_id}
+
+ ${orchestration_request_response} Get Orchestration Request Status with parameters ${request_id} format=statusdetail
+ ${orchestration_request_response_json} Parse Json ${orchestration_request_response.content}
+ ${rollbackExtSystemErrorSource} Convert to String ${orchestration_request_response_json['request']['requestStatus']['rollbackExtSystemErrorSource']}
+
+ [Return] ${rollbackExtSystemErrorSource}
+
+Get FlowStatus
+ [Documentation] Return Flow Status from Get Orchestration Request
+ [Arguments] ${request_id}
+
+ ${orchestration_request_response} Get Orchestration Request Status with parameters ${request_id} format=statusdetail
+ ${orchestration_request_response_json} Parse Json ${orchestration_request_response.content}
+ Log ${orchestration_request_response_json}
+ ${flow_status} Convert to String ${orchestration_request_response_json['request']['requestStatus']['flowStatus']}
+
+ [Return] ${flow_status} \ No newline at end of file