*** 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
