2 Library StringTemplater
4 Library RequestsLibrary
5 Library HttpLibrary.HTTP
6 Library OperatingSystem
10 Resource common/Variables.robot
11 Resource SoVariables.robot
12 Resource global_properties.robot
13 Resource so_interface.robot
16 ${SO_REST_URL} ${GLOBAL_SO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_SO_SERVER_PORT}
20 [Documentation] Sleep the execution for the specified time (in seconds).
21 Sleep ${POLL_WAIT_TIME}
23 Poll Orchestration Request
24 [Documentation] Poll the service orchestration request for the completion. Uses MAX_POLL_COUNT to specify the maximum number of polling attempts.
25 [Arguments] ${request_id}
26 : FOR ${INDEX} IN RANGE 1 ${MAX_POLL_COUNT}
29 \ ${orchestration_request_response}= Get Orchestration Request Status ${request_id}
31 # First check request status code
32 \ ${orch_request_status_code}= Set Variable ${orchestration_request_response.status_code}
33 \ ${orchestration_failure_message}= Run Keyword If ${orch_request_status_code} != ${HTTP_OK} Catenate Error Code ${orch_request_status_code}
34 \ ${request_completion_status}= Run Keyword If ${orch_request_status_code} != ${HTTP_OK} Set Variable '${ORCH_REQUEST_FAILED}'
35 \ Exit For Loop If ${orch_request_status_code} != ${HTTP_OK}
37 # Get Status of Orchestration request
38 \ Log ${orchestration_request_response.content}
39 \ ${request_completion_status} Get Json Value ${orchestration_request_response.content} /request/requestStatus/requestState
40 \ ${orchestration_status_message}= Run Keyword If ${request_completion_status} != '${ORCH_REQUEST_IN_PROGRESS}' Get Json Value ${orchestration_request_response.content} /request/requestStatus/statusMessage
41 \ Log ${request_completion_status}
43 # Check for FAILED status
44 \ ${orchestration_failure_message}= Run Keyword If ${request_completion_status} == '${ORCH_REQUEST_FAILED}' Set Variable ${orchestration_status_message}
45 \ Exit For Loop If ${request_completion_status} == '${ORCH_REQUEST_FAILED}'
47 # Check for COMPLETE status
48 \ Exit For Loop If ${request_completion_status} == '${ORCH_REQUEST_COMPLETE}'
50 # Check for MAX NO OF POLL count, and exit if it has reached the maximum poll count
51 \ ${orchestration_failure_message}= Run Keyword If ${INDEX} == ${MaxPollCount}-1 Set Variable ${TIME_OUT_MESSAGE}
52 \ Exit For Loop If ${INDEX} == ${MaxPollCount}-1
54 LOG ${orchestration_failure_message}
55 ${request_completion_status} Get Substring ${request_completion_status} 1 -1
56 [Return] ${request_completion_status} ${orchestration_failure_message}
58 Get Orchestration Request Status
59 [Documentation] Get the status of the orchestrated service request.
60 [Arguments] ${request_id}
62 ${url}= Catenate SEPARATOR=/ ${SO_ORCHESTRATION_REQUESTS_URI} ${request_id}
63 ${orchestration_request_response} Run SO Get Request ${url}
64 [Return] ${orchestration_request_response}
66 Get Orchestration Request Status with parameters
67 [Documentation] Get the status of the orchestrated service request.
68 [Arguments] ${request_id} ${parameter}
70 ${url}= Catenate ${SO_ORCHESTRATION_REQUESTS_URI}/${request_id}?${parameter}
71 ${orchestration_request_response} Run SO Get Request ${url}
72 [Return] ${orchestration_request_response}
74 Get ExtSystemErrorSource
75 [Documentation] Return ExtSystemErrorSource from Get Orchestration Request
76 [Arguments] ${request_id}
78 ${orchestration_request_response} Get Orchestration Request Status with parameters ${request_id} format=statusdetail
79 ${orchestration_request_response_json} Parse Json ${orchestration_request_response.content}
80 ${extSystemErrorSource} Convert to String ${orchestration_request_response_json['request']['requestStatus']['extSystemErrorSource']}
82 [Return] ${extSystemErrorSource}
84 Get RollbackExtSystemErrorSource
85 [Documentation] Return ExtSystemErrorSource from Get Orchestration Request
86 [Arguments] ${request_id}
88 ${orchestration_request_response} Get Orchestration Request Status with parameters ${request_id} format=statusdetail
89 ${orchestration_request_response_json} Parse Json ${orchestration_request_response.content}
90 ${rollbackExtSystemErrorSource} Convert to String ${orchestration_request_response_json['request']['requestStatus']['rollbackExtSystemErrorSource']}
92 [Return] ${rollbackExtSystemErrorSource}
95 [Documentation] Return Flow Status from Get Orchestration Request
96 [Arguments] ${request_id}
98 ${orchestration_request_response} Get Orchestration Request Status with parameters ${request_id} format=statusdetail
99 ${orchestration_request_response_json} Parse Json ${orchestration_request_response.content}
100 Log ${orchestration_request_response_json}
101 ${flow_status} Convert to String ${orchestration_request_response_json['request']['requestStatus']['flowStatus']}
103 [Return] ${flow_status}