Add orchestration project to SO integration testing repository
[integration/csit.git] / tests / so / orchestration / resources / so_interface.robot
1 *** Settings ***
2 Documentation     The main interface for interacting with SO. It handles low level stuff like managing the http request library and SO required fields
3 Library               RequestsLibrary
4 Library           UUID
5 Library           OperatingSystem
6 Library           Collections
7 Library           HTTPUtils
8 Resource          global_properties.robot
9 Resource          json_templater.robot
10 *** Variables ***
11 ${SO_ENDPOINT}     ${GLOBAL_SO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_SO_SERVER_PORT}
12 ${CATALOG_DB_ENDPOINT}   ${GLOBAL_SO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_SO_CATALOG_PORT}
13 ${CAMUNDA_DB_ENDPOINT}    ${GLOBAL_SO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_SO_CAMUNDA_PORT}
14 ${SIMULATOR_ENDPOINT}    ${GLOBAL_SO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_SO_SIMULATOR_PORT}
15
16 *** Keywords ***
17   
18 Run SO Get Request
19     [Documentation]    Runs an SO get request
20     [Arguments]    ${full_path}    ${accept}=application/json    ${endPoint}=${SO_ENDPOINT}
21     Disable Warnings
22     Log    Creating session ${SO_ENDPOINT}
23     ${session}=    Create Session       so      ${SO_ENDPOINT}
24     ${uuid}=    Generate UUID
25     ${uuidstring}=    Convert To String    ${uuid}
26     &{headers}=  Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
27     ${resp}=    Get Request     so      ${full_path}     headers=${headers}
28     Log    Received response from so ${resp.text}
29     [Return]    ${resp}
30
31 Poll SO Get Request
32     [Documentation]    Runs an SO get request until a certain status is received. valid values are COMPLETE
33     [Arguments]    ${data_path}     ${status}
34     Disable Warnings
35     Log    Creating session ${SO_ENDPOINT}
36     ${session}=    Create Session       so      ${SO_ENDPOINT}
37     ${uuid}=    Generate UUID
38     ${uuidstring}=    Convert To String    ${uuid}
39     &{headers}=  Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
40     #do this until it is done
41     :FOR    ${i}    IN RANGE    20
42     \    ${resp}=       Get Request     so      ${data_path}     headers=${headers}
43     \    Should Not Contain    ${resp.text}    FAILED
44     \    Log    ${resp.json()['request']['requestStatus']['requestState']}
45     \    ${exit_loop}=    Evaluate    "${resp.json()['request']['requestStatus']['requestState']}" == "${status}"
46     \    Exit For Loop If  ${exit_loop}
47     \    Sleep    15s
48     Log    Received response from so ${resp.text}
49     [Return]    ${resp}
50
51 Run SO Post request
52     [Documentation]    Runs an SO post request
53     [Arguments]  ${data_path}  ${data}
54     Disable Warnings
55     Log    Creating session ${SO_ENDPOINT}
56     ${session}=    Create Session       so      ${SO_ENDPOINT}
57     ${uuid}=    Generate UUID
58     ${uuidstring}=    Convert To String    ${uuid}
59     &{headers}=  Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
60         ${resp}=        Post Request    so      ${data_path}     data=${data}   headers=${headers}
61         Log    Received response from so ${resp.text}
62         [Return]  ${resp}
63         
64
65 Run SO Delete request
66     [Documentation]    Runs an SO Delete request
67     [Arguments]  ${data_path}  ${data}
68     Disable Warnings
69     Log    Creating session ${SO_ENDPOINT}
70     ${session}=    Create Session       so      ${SO_ENDPOINT}
71     ${uuid}=    Generate UUID
72     ${uuidstring}=    Convert To String    ${uuid}
73     &{headers}=  Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
74     ${resp}=    Delete Request    so    ${data_path}    ${data}    headers=${headers}
75     Log    Received response from so ${resp.text}
76     [Return]    ${resp}