blob: 025e4e1a2d1af303d563f584ce990a5124d5ec86 [file] [log] [blame]
***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