onap on kubernetes source files
[oom.git] / kubernetes / config / docker / init / src / config / robot / robot / resources / mso_interface.robot
diff --git a/kubernetes/config/docker/init/src/config/robot/robot/resources/mso_interface.robot b/kubernetes/config/docker/init/src/config/robot/robot/resources/mso_interface.robot
new file mode 100644 (file)
index 0000000..b6a53b4
--- /dev/null
@@ -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}
+
+
+