1 *** Settings *** 2 Documentation 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 18 Library ../lib/bmc_ssh_utils.py 19 Resource ../lib/resource.robot 20 Resource ../lib/os_utilities.robot 21 22 Suite Setup Test Setup Execution 23 24 Force Tags Cable_Pull_Recover 25 26 *** Variables *** 27 28 ${PORT_NUMBER} ${EMPTY} 29 30 *** Test Cases *** 31 32 Verify 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 43 Set 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 63 Check 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 76 Test Setup Execution 77 [Documentation] Do suite setup tasks. 78 79 Should Not Be Empty ${PORT_NUMBER} 80 Should Not Be Empty ${NET_INTERFACE} 81