diff options
Diffstat (limited to 'robot/resources/mso_interface.robot')
-rw-r--r-- | robot/resources/mso_interface.robot | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/robot/resources/mso_interface.robot b/robot/resources/mso_interface.robot new file mode 100644 index 00000000..b6a53b40 --- /dev/null +++ b/robot/resources/mso_interface.robot @@ -0,0 +1,54 @@ +*** Settings *** +Documentation The main interface for interacting with MSO. It handles low level stuff like managing the http request library and MSO required fields +Library RequestsLibrary +Library UUID +Library OperatingSystem +Library Collections +Resource global_properties.robot +Resource ../resources/json_templater.robot +*** Variables *** +${MSO_HEALTH_CHECK_PATH} /ecomp/mso/infra/globalhealthcheck + +*** Keywords *** +Run MSO Health Check + [Documentation] Runs an MSO global health check + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + ${session}= Create Session mso ${GLOBAL_MSO_SERVER} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=text/html Content-Type=text/html X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Get Request mso ${MSO_HEALTH_CHECK_PATH} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + +Run MSO Get Request + [Documentation] Runs an MSO get request + [Arguments] ${data_path} ${accept}=application/json + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + Log Creating session ${GLOBAL_MSO_SERVER} + ${session}= Create Session mso ${GLOBAL_MSO_SERVER} auth=${auth} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=${accept} Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Get Request mso ${data_path} headers=${headers} + Log Received response from mso ${resp.text} + [Return] ${resp} + +Poll MSO Get Request + [Documentation] Runs an MSO get request until a certain status is received. valid values are COMPLETE + [Arguments] ${data_path} ${status} + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + Log Creating session ${GLOBAL_MSO_SERVER} + ${session}= Create Session mso ${GLOBAL_MSO_SERVER} auth=${auth} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + #do this until it is done + :FOR ${i} IN RANGE 20 + \ ${resp}= Get Request mso ${data_path} headers=${headers} + \ Should Not Contain ${resp.text} FAILED + \ Log ${resp.json()['request']['requestStatus']['requestState']} + \ ${exit_loop}= Evaluate "${resp.json()['request']['requestStatus']['requestState']}" == "${status}" + \ Exit For Loop If ${exit_loop} + \ Sleep 15s + Log Received response from mso ${resp.text} + [Return] ${resp} + + + |