| *** Settings *** | 
 | Library           Collections | 
 | Library           String | 
 | Library           RequestsLibrary.RequestsKeywords | 
 | Library           OperatingSystem | 
 | Resource          resource.txt | 
 | Library           disable_warning_urllib.py | 
 | Resource          rest_response_code.robot | 
 |  | 
 | *** Variables *** | 
 |  | 
 | # Assign default value to QUIET for programs which may not define it. | 
 | ${QUIET}          ${0} | 
 |  | 
 | *** Keywords *** | 
 |  | 
 | Redfish Login Request | 
 |     [Documentation]  Do REST login and return authorization token. | 
 |     [Arguments]  ${openbmc_username}=${OPENBMC_USERNAME} | 
 |     ...          ${openbmc_password}=${OPENBMC_PASSWORD} | 
 |     ...          ${alias_session}=openbmc | 
 |     ...          ${timeout}=20 | 
 |  | 
 |     # Description of argument(s): | 
 |     # openbmc_username  The username to be used to login to the BMC. | 
 |     #                   This defaults to global ${OPENBMC_USERNAME}. | 
 |     # openbmc_password  The password to be used to login to the BMC. | 
 |     #                   This defaults to global ${OPENBMC_PASSWORD}. | 
 |     # alias_session     Session object name. | 
 |     #                   This defaults to "openbmc" | 
 |     # timeout           REST login attempt time out. | 
 |  | 
 |     Create Session  openbmc  ${AUTH_URI}  timeout=${timeout} | 
 |     ${headers}=  Create Dictionary  Content-Type=application/json | 
 |  | 
 |     ${data}=  Create Dictionary | 
 |     ...  UserName=${openbmc_username}  Password=${openbmc_password} | 
 |  | 
 |     ${resp}=  Post Request  openbmc | 
 |     ...  ${REDFISH_SESSION}  data=${data}  headers=${headers} | 
 |  | 
 |     Should Be Equal As Strings  ${resp.status_code}  ${HTTP_CREATED} | 
 |     ${content} =  To JSON  ${resp.content} | 
 |  | 
 |     Log  ${content["Id"]} | 
 |     Log  ${resp.headers["X-Auth-Token"]} | 
 |  | 
 |     [Return]  ${content["Id"]}  ${resp.headers["X-Auth-Token"]} | 
 |  | 
 |  | 
 | Redfish Get Request | 
 |     [Documentation]  Do REST GET request and return the result. | 
 |     [Arguments]  ${uri_suffix} | 
 |     ...          ${session_id}=${None} | 
 |     ...          ${xauth_token}=${None} | 
 |     ...          ${resp_check}=${1} | 
 |     ...          ${timeout}=30 | 
 |  | 
 |     # Description of argument(s): | 
 |     # uri_suffix       The URI to establish connection with | 
 |     #                  (e.g. 'Systems'). | 
 |     # session_id       Session id. | 
 |     # xauth_token      Authentication token. | 
 |     # resp_check       By default check the response status and return JSON. | 
 |     # timeout          Timeout in seconds to establish connection with URI. | 
 |  | 
 |     ${base_uri} =  Catenate  SEPARATOR=  ${REDFISH_BASE_URI}  ${uri_suffix} | 
 |  | 
 |     # Create session, token list [vIP8IxCQlQ, Nq9l7fgP8FFeFg3QgCpr]. | 
 |     ${id_auth_list} =  Create List  ${session_id}  ${xauth_token} | 
 |  | 
 |     # Set session and auth token variable. | 
 |     ${session_id}  ${xauth_token} = | 
 |     ...  Run Keyword If  "${xauth_token}" == "${None}" | 
 |     ...    Redfish Login Request | 
 |     ...  ELSE | 
 |     ...    Set Variable  ${id_auth_list} | 
 |  | 
 |     # Example: "X-Auth-Token: 3la1JUf1vY4yN2dNOwun" | 
 |     ${headers} =  Create Dictionary  Content-Type=application/json | 
 |     ...  X-Auth-Token=${xauth_token} | 
 |  | 
 |     ${resp}=  Get Request | 
 |     ...  openbmc  ${base_uri}  headers=${headers}  timeout=${timeout} | 
 |  | 
 |     Return From Keyword If  ${resp_check} == ${0}   ${resp} | 
 |  | 
 |     Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK} | 
 |  | 
 |     ${content} =  To JSON  ${resp.content} | 
 |     [Return]  ${content} | 
 |  | 
 |  | 
 | Redfish Delete Request | 
 |     [Documentation]  Delete the resource identified by the URI. | 
 |     [Arguments]  ${uri_suffix} | 
 |     ...          ${xauth_token} | 
 |     ...          ${timeout}=10 | 
 |     ...          ${resp_check}=${1} | 
 |  | 
 |     # Description of argument(s): | 
 |     # uri_suffix   The URI to establish connection with | 
 |     #             (e.g. 'SessionService/Sessions/XIApcw39QU'). | 
 |     # xauth_token  Authentication token. | 
 |     # timeout      Timeout in seconds to establish connection with URI. | 
 |     # resp_check   By default check the response status. | 
 |  | 
 |     ${base_uri} =  Catenate  SEPARATOR=  ${REDFISH_BASE_URI}  ${uri_suffix} | 
 |  | 
 |     # Example: "X-Auth-Token: 3la1JUf1vY4yN2dNOwun" | 
 |     ${headers} =  Create Dictionary  Content-Type=application/json | 
 |     ...  X-Auth-Token=${xauth_token} | 
 |  | 
 |     # Delete server session. | 
 |     ${resp}=  Delete Request  openbmc | 
 |     ...  ${base_uri}  headers=${headers}  timeout=${timeout} | 
 |  | 
 |     Return From Keyword If  ${resp_check} == ${0}  ${resp} | 
 |  | 
 |     Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK} | 
 |  | 
 |     # Delete client sessions. | 
 |     Delete All Sessions |