*** Settings ***

Documentation  Verify that the OS network interfaces are configured and
...  stable.

# TEST PARAMETERS:
#   OS_HOST                     The OS host name or IP address.
#   OS_USERNAME                 The OS user name.
#   OS_PASSWORD                 The OS Host password.
#   FAIL_ON_LINK_DOWN           If set to 1, the test will exit if
#                               a link is down. Default is 1.

Resource         ../syslib/utils_install.robot

*** Variables ***
${FAIL_ON_LINK_DOWN}  1


*** Test Cases ***
Verify Network Interfaces
    [Documentation]  Verify the states of all system interfaces.
    [Tags]  Verify_Network_Interfaces

    Printn
    REST Power On
    @{interface_names}=  Get OS Network Interface Names
    FOR  ${interface_name}  IN  @{interface_names}
       ${ethtool_dict}=  Get OS Ethtool  ${interface_name}
       Run Keyword If  ${FAIL_ON__LINK_DOWN} == 1
       ...  Should Be Equal  ${ethtool_dict['link_detected']}  yes
       ...  msg=Link ${interface_name} is down.
    END
