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 24Force Tags Cable_Pull_Recover 25 26*** Variables *** 27 28${PORT_NUMBER} ${EMPTY} 29 30*** Test Cases *** 31 32Verify Network Interface Recovery 33 [Documentation] Test the recovery of the network interface that has been 34 ... shutdown from the switch port. 35 [Tags] Verify_Network_Interface_Recovery 36 37 Printn 38 Set Switch Port State DOWN 39 Set Switch Port State UP 40 41*** Keywords *** 42 43Set Switch Port State 44 [Documentation] Disable the port connected to the server. 45 [Arguments] ${port_number}=${PORT_NUMBER} ${state}=${EMPTY} 46 47 # Description of argument(s): 48 # port_number The switch port where the server is connected (e.g. 49 # "1", "2", etc). 50 # state The state to be set in the network interface ("UP" or 51 # "DOWN"). 52 53 Device Write enable 54 Device Write configure terminal 55 Device Write interface port ${PORT_NUMBER} 56 Run Keyword If '${state}' == 'DOWN' 57 ... Device Write shutdown 58 ... ELSE 59 ... Device Write no shutdown 60 Wait Until Keyword Succeeds 30 sec 5 sec 61 ... Check Network Interface State ${state} 62 63Check Network Interface State 64 [Documentation] Check the status of the network interface. 65 [Arguments] ${NET_INTERFACE}=${NET_INTERFACE} ${state}=${EMPTY} 66 67 # Description of argument(s): 68 # NET_INTERFACE The network interface name that will be tested (e.g. 69 # "enP5s1f0", "eth0"). 70 # state The network interface expected state ("UP" or "DOWN"). 71 72 ${stdout} ${stderr} ${rc}= OS Execute Command 73 ... ip link | grep "${NET_INTERFACE}" | cut -d " " -f9 74 Should Contain ${stdout} ${state} msg=State not found as expected. 75 76Test Setup Execution 77 [Documentation] Do suite setup tasks. 78 79 Should Not Be Empty ${PORT_NUMBER} 80 Should Not Be Empty ${NET_INTERFACE} 81