|  | ***Settings*** | 
|  | Documentation   Generic REST/SSH/IPMI stress buster program. | 
|  |  | 
|  | Library        ../lib/jobs_processing.py | 
|  | Resource       ../lib/rest_client.robot | 
|  | Resource       ../lib/connection_client.robot | 
|  | Resource       ../lib/ipmi_client.robot | 
|  | Resource       ../lib/utils.robot | 
|  | Resource       ../lib/openbmc_ffdc.robot | 
|  |  | 
|  | Test Teardown  FFDC On Test Case Fail | 
|  |  | 
|  | ***Variables*** | 
|  |  | 
|  | # Caller can specify a value for the following using -v parms | 
|  | # Currently REST/SSH/IPMI session allowed. | 
|  | ${REST_BUSTER_MAX}    ${16} | 
|  | ${SSH_BUSTER_MAX}     ${16} | 
|  | ${IPMI_BUSTER_MAX}    ${5} | 
|  |  | 
|  | ***Test Cases*** | 
|  |  | 
|  | Stress BMC REST Server | 
|  | [Documentation]  Execute maximum allowed REST operation. | 
|  | [Tags]  Stress_BMC_REST_Server | 
|  |  | 
|  | Log To Console  REST call request burst ${REST_BUSTER_MAX} | 
|  | ${dict}=  Execute Process | 
|  | ...  ${REST_BUSTER_MAX}  REST Enumerate Request On BMC | 
|  | Dictionary Should Not Contain Value  ${dict}  False | 
|  | ...  msg=One or more REST operations has failed. | 
|  |  | 
|  |  | 
|  | Stress BMC SSH Server | 
|  | [Documentation]  Execute maximum allowed SSH operation. | 
|  | [Tags]  Stress_BMC_SSH_Server | 
|  |  | 
|  | Log To Console  SSH call request burst ${SSH_BUSTER_MAX} | 
|  | ${dict}=  Execute Process | 
|  | ...  ${SSH_BUSTER_MAX}  SSH Connect And Execute Command | 
|  | Dictionary Should Not Contain Value  ${dict}  False | 
|  | ...  msg=One or more SSH operations has failed. | 
|  |  | 
|  |  | 
|  | Stress BMC IPMI Server | 
|  | [Documentation]  Execute maximum allowed IPMI operation. | 
|  | [Tags]  Stress_BMC_IPMI_Server | 
|  |  | 
|  | Log To Console  IPMI call request burst ${IPMI_BUSTER_MAX} | 
|  | ${dict}=  Execute Process  ${IPMI_BUSTER_MAX}  IPMI Check Status | 
|  | Dictionary Should Not Contain Value  ${dict}  False | 
|  | ...  msg=One or more IPMI operations has failed. | 
|  |  | 
|  | ***Keywords*** | 
|  |  | 
|  | REST Enumerate Request On BMC | 
|  | [Documentation]  Execute REST GET operation. | 
|  |  | 
|  | # Create REST session. | 
|  | Create Session  openbmc  ${AUTH_URI} | 
|  | ${headers}=  Create Dictionary  Content-Type=application/json | 
|  | @{credentials}=  Create List  ${rest_username}  ${rest_password} | 
|  | ${data}=  Create Dictionary  data=@{credentials} | 
|  | ${resp}=  POST On Session  openbmc  /login  json=${data}  headers=${headers} | 
|  | Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK} | 
|  |  | 
|  | # Trigger GET REST enumeration. | 
|  | ${resp}=  GET On Session  openbmc  /redfish/v1/Managers/${MANAGER_ID}  expected_status=any | 
|  | Log To Console  GET Request /redfish/v1/Managers/${MANAGER_ID} | 
|  | Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK} | 
|  | Delete All Sessions | 
|  |  | 
|  |  | 
|  | SSH Connect And Execute Command | 
|  | [Documentation]  Execute SSH command execution operation. | 
|  | BMC Execute Command  df -h | 
|  |  | 
|  |  | 
|  | IPMI Check Status | 
|  | [Documentation]  Execute IPMI command execution operation. | 
|  | Run IPMI Standard Command  chassis status |