| *** Settings *** |
| Documentation Contains all keywords and supporting keywords to do various reboots. |
| |
| Resource ../resource.txt |
| Resource ../utils.robot |
| Resource ../connection_client.robot |
| Library DateTime |
| |
| *** Keywords *** |
| BMC Reboot |
| [Documentation] Gets the uptime of the BMC, then reboots the BMC. If an OS_HOST |
| ... is given, will also attempt to get the uptime of the OS Host and verify that |
| ... the host stayed active during the reboot. |
| |
| &{bmc_connection_args}= Create Dictionary alias=bmc_connection |
| ${OS_exists}= Set Variable If '${OS_HOST}' != '${EMPTY}' ${True} |
| ... '${OS_HOST}' == '${EMPTY}' ${False} |
| |
| &{os_connection_args}= Run Keyword If ${OS_exists} == ${True} |
| ... Create Dictionary host=${OS_HOST} alias=os_connection |
| |
| Open Connection and Log In &{bmc_connection_args} |
| |
| ${bmc_start_uptime}= Get Uptime In Seconds |
| |
| ${conn_rc}= Run Keyword and Return Status Run Keyword If ${OS_exists} == ${True} |
| ... Open Connection and Log In ${OS_USERNAME} ${OS_PASSWORD} &{os_connection_args} |
| |
| ${OS_exists}= Set Variable If ${conn_rc} == False ${False} |
| |
| ${ping_rc}= Run Keyword and Return Status Ping Host ${OS_HOST} |
| ${OS_exists}= Set Variable If ${ping_rc} == ${False} ${False} |
| |
| ${os_start_uptime}= Run Keyword If ${OS_exists} == ${True} Get Uptime In Seconds |
| |
| Validate or Open Connection bmc_connection |
| |
| Reboot BMC |
| Check If BMC Is Up |
| |
| Close All Connections |
| |
| Open Connection and Log In &{bmc_connection_args} |
| |
| ${bmc_end_uptime}= Get Uptime In Seconds |
| Should Be True ${bmc_end_uptime} < ${bmc_start_uptime} |
| |
| Run Keyword If ${OS_exists} == ${True} |
| ... Open Connection and Log In ${OS_USERNAME} ${OS_PASSWORD} &{os_connection_args} |
| |
| ${os_end_uptime}= Run Keyword If ${OS_exists} == ${True} Get Uptime In Seconds |
| |
| Run Keyword If ${OS_exists} == ${True} |
| ... Should Be True ${os_end_uptime} > ${os_start_uptime} |
| |
| Close All Connections |
| |
| Get Uptime In Seconds |
| ${uptime_string} ${stderr} ${rc}= Execute Command cat /proc/uptime |
| ... return_stderr=True return_rc=True |
| |
| Should Be Empty ${stderr} |
| Should Be Equal ${rc} ${0} |
| |
| ${uptime} ${idle_time}= Split String ${uptime_string} ${SPACE} |
| |
| [Return] ${uptime} |
| |
| Reboot BMC |
| Start Command /sbin/reboot |