1*** Settings *** 2Documentation Verify the port recovery by simulating its disconnection. 3 4# Test Parameters: 5 6# OS_HOST The OS host name or IP Address. 7# OS_USERNAME The OS login userid (usually root). 8# OS_PASSWORD The OS login password. 9# DEVICE_HOST The network device hostname or IP where the ports will 10# be shutdown. 11# DEVICE_USERNAME The network device username. 12# DEVICE_PASSWORD The network device password. 13# PORT_NUMBER The switch port where the server is connected (e.g. 14# "1", "2", etc). 15# NET_INTERFACE The network interface name that will be tested (e.g. 16# "enP5s1f0", "eth0"). 17 18Library ../lib/bmc_ssh_utils.py 19Resource ../lib/resource.robot 20Resource ../syslib/utils_os.robot 21 22Suite Setup Test Setup Execution 23 24*** Variables *** 25 26${PORT_NUMBER} ${EMPTY} 27 28*** Test Cases *** 29 30Verify Network Interface Recovery 31 [Documentation] Test the recovery of the network interface that has been 32 ... shutdown from the switch port. 33 [Tags] Verify_Network_Interface_Recovery 34 35 Rprintn 36 Set Switch Port State DOWN 37 Set Switch Port State UP 38 39*** Keywords *** 40 41Set Switch Port State 42 [Documentation] Disable the port connected to the server. 43 [Arguments] ${port_number}=${PORT_NUMBER} ${state}=${EMPTY} 44 45 # Description of argument(s): 46 # port_number The switch port where the server is connected (e.g. 47 # "1", "2", etc). 48 # state The state to be set in the network interface ("UP" or 49 # "DOWN"). 50 51 Device Write enable 52 Device Write configure terminal 53 Device Write interface port ${PORT_NUMBER} 54 Run Keyword If '${state}' == 'DOWN' 55 ... Device Write shutdown 56 ... ELSE 57 ... Device Write no shutdown 58 Wait Until Keyword Succeeds 30 sec 5 sec 59 ... Check Network Interface State ${state} 60 61Check Network Interface State 62 [Documentation] Check the status of the network interface. 63 [Arguments] ${NET_INTERFACE}=${NET_INTERFACE} ${state}=${EMPTY} 64 65 # Description of argument(s): 66 # NET_INTERFACE The network interface name that will be tested (e.g. 67 # "enP5s1f0", "eth0"). 68 # state The network interface expected state ("UP" or "DOWN"). 69 70 ${stdout} ${stderr} ${rc}= OS Execute Command 71 ... ip link | grep "${NET_INTERFACE}" | cut -d " " -f9 72 Should Contain ${stdout} ${state} msg=State not found as expected. 73 74Test Setup Execution 75 [Documentation] Do suite setup tasks. 76 77 Should Not Be Empty ${PORT_NUMBER} 78 Should Not Be Empty ${NET_INTERFACE} 79