| *** Settings *** | 
 |  | 
 | Documentation       Test auto reboot functionality of host. | 
 |  | 
 | Resource            ../lib/openbmc_ffdc.robot | 
 | Resource            ../lib/rest_client.robot | 
 | Resource            ../lib/state_manager.robot | 
 | Resource            ../lib/boot_utils.robot | 
 |  | 
 | Test Teardown       Test Teardown Execution | 
 | Suite Teardown      Suite Teardown Execution | 
 |  | 
 | *** Variables *** | 
 |  | 
 |  | 
 | *** Test Cases *** | 
 |  | 
 | Verify Host Quiesce State Without Auto Reboot During Boot | 
 |     [Documentation]  Validate "Quiesce" state during boot. | 
 |     [Tags]  Verify_Host_Quiesce_State_Without_Auto_Reboot_During_Boot | 
 |     [Template]  Verify Host Quiesce State | 
 |  | 
 |     # Auto Reboot   Initial Host State     Expected Host Action | 
 |     ${0}               Booting                No Reboot | 
 |  | 
 |  | 
 | Verify Host Quiesce State With Auto Reboot During Boot | 
 |     [Documentation]  Validate "Quiesce" state during boot. | 
 |     [Tags]  Verify_Host_Quiesce_State_With_Auto_Reboot_During_Boot | 
 |     [Template]  Verify Host Quiesce State | 
 |  | 
 |     # Auto Reboot   Initial Host State     Expected Host Action | 
 |     ${1}               Booting                Reboot | 
 |  | 
 |  | 
 | *** Keywords *** | 
 |  | 
 | Verify Host Quiesce State | 
 |     [Documentation]  Inject watchdog error on host to reach "Quiesce" state. | 
 |     ...  Later recover host from this state. | 
 |     [Arguments]  ${auto_reboot}  ${initial_host_state}  ${action} | 
 |     # Description of argument(s): | 
 |     # auto_reboot          Auto reboot setting | 
 |     #                      i.e 1 for enabling and 0 for disabling. | 
 |     # initial_host_state   State of host before injecting error. | 
 |     # action               Action of host due to error ("No Reboot" or | 
 |     #                      "Reboot"). | 
 |  | 
 |     Set Auto Reboot  ${auto_reboot} | 
 |  | 
 |     Run Keyword If  '${initial_host_state}' == 'Booting' | 
 |     # Booting refers to host OS starting in progress. | 
 |     ...  Run Keywords  Get Boot Progress To OS Starting State | 
 |  | 
 |     Trigger Host Watchdog Error | 
 |     ${resp}=  Run Keyword And Return Status  Is Host Rebooted | 
 |  | 
 |     Run Keyword If  '${action}' == 'No Reboot' | 
 |     ...  Run Keywords  Should Be Equal  ${resp}  ${False}  AND | 
 |     ...  Wait Until Keyword Succeeds  3 min  5 sec  Is Host Quiesced  AND | 
 |     ...  Recover Quiesced Host | 
 |     ...  ELSE IF  '${action}' == 'Reboot' | 
 |     ...  Wait Until Keyword Succeeds  3 min  5 sec  Is Host Rebooted | 
 |  | 
 |  | 
 | Test Teardown Execution | 
 |     [Documentation]  Do the post test teardown. | 
 |     ...  1. Capture FFDC on test failure. | 
 |     ...  2. Set default value for auto reboot. | 
 |     ...  3. Close all open SSH connections. | 
 |  | 
 |     FFDC On Test Case Fail | 
 |     Set Auto Reboot  ${1} | 
 |     Close All Connections | 
 |  | 
 | Suite Teardown Execution | 
 |     [Documentation]  Do the suite test teardown. | 
 |  | 
 |     ${status}=  Is Host Quiesced | 
 |     Run Keyword If  ${status} == ${True}  Smart Power Off |