| *** Settings *** | 
 | Documentation          This example demonstrates executing commands on a remote machine | 
 | ...                    and getting their output and the return code. | 
 | ... | 
 | ...                    Notice how connections are handled as part of the suite setup and | 
 | ...                    teardown. This saves some time when executing several test cases. | 
 |  | 
 | Resource               ../lib/rest_client.robot | 
 | Resource               ../lib/ipmi_client.robot | 
 | Resource               ../lib/openbmc_ffdc.robot | 
 | Resource               ../lib/state_manager.robot | 
 | Library                ../data/model.py | 
 | Resource               ../lib/boot_utils.robot | 
 | Resource               ../lib/utils.robot | 
 |  | 
 | Suite Setup            Suite Setup Execution | 
 | Test Teardown          Test Teardown Execution | 
 |  | 
 | *** Variables *** | 
 |  | 
 | ${stack_mode}     skip | 
 | ${model}=         ${OPENBMC_MODEL} | 
 |  | 
 | *** Test Cases *** | 
 |  | 
 | io_board Present | 
 |     [Documentation]  Verify that the IO board is present. | 
 |     [Tags]  io_board_Present | 
 |     ${uri}=  Get System component  io_board | 
 |     Verify The Attribute  ${uri}  Present  ${True} | 
 |  | 
 | io_board Fault | 
 |     [Documentation]  Verify that the IO board signals "fault". | 
 |     [Tags]  io_board_Fault | 
 |     ${uri}=  Get System component  io_board | 
 |     Verify The Attribute  ${uri}  fault  ${False} | 
 |  | 
 | *** Keywords *** | 
 |  | 
 | Suite Setup Execution | 
 |     [Documentation]  Initial suite setup. | 
 |  | 
 |     # Boot Host. | 
 |     REST Power On | 
 |  | 
 |     ${resp}=   Read Properties   ${OPENBMC_BASE_URI}enumerate   timeout=30 | 
 |     Set Suite Variable      ${SYSTEM_INFO}          ${resp} | 
 |     log Dictionary          ${resp} | 
 |  | 
 | Get System component | 
 |     [Documentation]  Get the system component. | 
 |     [Arguments]    ${type} | 
 |     ${list}=    Get Dictionary Keys    ${SYSTEM_INFO} | 
 |     ${resp}=    Get Matches    ${list}    regexp=^.*[0-9a-z_].${type}\[0-9]*$ | 
 |     ${url}=    Get From List    ${resp}    0 | 
 |     [Return]    ${url} | 
 |  | 
 |  | 
 | Test Teardown Execution | 
 |     [Documentation]  Do the post test teardown. | 
 |     ...  1. Capture FFDC on test failure. | 
 |     ...  2. Close all open SSH connections. | 
 |  | 
 |     FFDC On Test Case Fail | 
 |     Close All Connections |