1*** Settings *** 2Documentation Test BMC manager protocol enable/disable functionality. 3 4Resource ../../lib/bmc_redfish_resource.robot 5Resource ../../lib/openbmc_ffdc.robot 6Resource ../../lib/protocol_setting_utils.robot 7 8Suite Setup Suite Setup Execution 9Suite Teardown Run Keywords Enable IPMI Protocol ${initial_ipmi_state} AND Redfish.Logout 10Test Teardown FFDC On Test Case Fail 11 12 13*** Variables *** 14 15${cmd_prefix} ipmitool -I lanplus -C 17 -p 623 -U ${OPENBMC_USERNAME} -P ${OPENBMC_PASSWORD} 16 17 18*** Test Cases *** 19 20Verify SSH Is Enabled By Default 21 [Documentation] Verify SSH is enabled by default. 22 [Tags] Verify_SSH_Is_Enabled_By_Default 23 24 # Check if SSH is enabled by default. 25 Verify SSH Protocol State ${True} 26 27 28Enable SSH Protocol And Verify 29 [Documentation] Enable SSH protocol and verify. 30 [Tags] Enable_SSH_Protocol_And_Verify 31 32 Enable SSH Protocol ${True} 33 34 # Check if SSH is really enabled via Redfish. 35 Verify SSH Protocol State ${True} 36 37 # Check if SSH login and commands on SSH session work. 38 Verify SSH Login And Commands Work 39 40 41Disable SSH Protocol And Verify 42 [Documentation] Disable SSH protocol and verify. 43 [Teardown] Enable SSH Protocol ${True} 44 45 # Disable SSH interface. 46 Enable SSH Protocol ${False} 47 48 # Check if SSH is really disabled via Redfish. 49 Verify SSH Protocol State ${False} 50 51 # Check if SSH login and commands fail. 52 ${status}= Run Keyword And Return Status 53 ... Verify SSH Login And Commands Work 54 55 Should Be Equal As Strings ${status} False 56 ... msg=SSH Login and commands are working after disabling SSH. 57 58 59Enable SSH Protocol And Check Persistency On BMC Reboot 60 [Documentation] Enable SSH protocol and verify persistency. 61 62 Enable SSH Protocol ${True} 63 64 # Reboot BMC and verify persistency. 65 OBMC Reboot (off) 66 67 # Check if SSH is really enabled via Redfish. 68 Verify SSH Protocol State ${True} 69 70 # Check if SSH login and commands on SSH session work. 71 Verify SSH Login And Commands Work 72 73 74Disable SSH Protocol And Check Persistency On BMC Reboot 75 [Documentation] Disable SSH protocol and verify persistency. 76 [Teardown] Enable SSH Protocol ${True} 77 78 # Disable SSH interface. 79 Enable SSH Protocol ${False} 80 81 # Reboot BMC and verify persistency. 82 Redfish BMC Reboot 83 84 # Check if SSH is really disabled via Redfish. 85 Verify SSH Protocol State ${False} 86 87 # Check if SSH login and commands fail. 88 ${status}= Run Keyword And Return Status 89 ... Verify SSH Login And Commands Work 90 91 Should Be Equal As Strings ${status} False 92 ... msg=SSH Login and commands are working after disabling SSH. 93 94 95Verify Disabling SSH Port Does Not Disable Serial Console Port 96 [Documentation] Verify disabling SSH does not disable serial console port. 97 [Tags] Verify_Disabling_SSH_Port_Does_Not_Disable_Serial_Console_Port 98 [Teardown] Enable SSH Protocol ${True} 99 100 # Disable SSH interface. 101 Enable SSH Protocol ${False} 102 103 # Check able to establish connection with serial port console. 104 Open Connection And Log In host=${OPENBMC_HOST} port=2200 105 Close All Connections 106 107 108Verify Existing SSH Session Gets Closed On Disabling SSH 109 [Documentation] Verify existing SSH session gets closed on disabling ssh. 110 [Tags] Verify_Existing_SSH_Session_Gets_Closed_On_Disabling_SSH 111 [Teardown] Enable SSH Protocol ${True} 112 113 # Open SSH connection. 114 Open Connection And Login 115 116 # Disable SSH interface. 117 Enable SSH Protocol ${False} 118 119 # Check if SSH is really disabled via Redfish. 120 Verify SSH Protocol State ${False} 121 122 # Try to execute CLI command on SSH connection. 123 # It should fail as disable SSH will close pre existing sessions. 124 ${status}= Run Keyword And Return Status 125 ... BMC Execute Command /sbin/ip addr 126 127 Should Be Equal As Strings ${status} False 128 ... msg=Disabling SSH has not closed existing SSH sessions. 129 130 131Enable IPMI Protocol And Verify 132 [Documentation] Enable IPMI protocol and verify. 133 [Tags] Enable_IPMI_Protocol_And_Verify 134 135 Enable IPMI Protocol ${True} 136 137 # Check if IPMI is really enabled via Redfish. 138 Verify IPMI Protocol State ${True} 139 140 # Check if IPMI commands starts working. 141 Verify IPMI Works lan print 142 143 144Disable IPMI Protocol And Verify 145 [Documentation] Disable IPMI protocol and verify. 146 [Tags] Disable_IPMI_Protocol_And_Verify 147 148 # Disable IPMI interface. 149 Enable IPMI Protocol ${False} 150 151 # Check if IPMI is really disabled via Redfish. 152 Verify IPMI Protocol State ${False} 153 154 # Check if IPMI commands fail. 155 ${status}= Run Keyword And Return Status 156 ... Verify IPMI Works lan print 157 158 Should Be Equal As Strings ${status} False 159 ... msg=IPMI commands are working after disabling IPMI. 160 161 162Enable IPMI Protocol And Check Persistency On BMC Reboot 163 [Documentation] Set the IPMI protocol attribute to True, reset BMC, and verify 164 ... that the setting persists. 165 [Tags] Enable_IPMI_Protocol_And_Check_Persistency_On_BMC_Reboot 166 167 Enable IPMI Protocol ${True} 168 169 Redfish OBMC Reboot (off) stack_mode=skip 170 171 # Check if the IPMI enabled is set. 172 Verify IPMI Protocol State ${True} 173 174 # Confirm that IPMI commands to access BMC work. 175 Verify IPMI Works lan print 176 177 178Disable IPMI Protocol And Check Persistency On BMC Reboot 179 [Documentation] Set the IPMI protocol attribute to False, reset BMC, and verify 180 ... that the setting persists. 181 [Tags] Disable_IPMI_Protocol_And_Check_Persistency_On_BMC_Reboot 182 183 # Disable IPMI interface. 184 Enable IPMI Protocol ${False} 185 186 Redfish OBMC Reboot (off) stack_mode=skip 187 188 # Check if the IPMI disabled is set. 189 Verify IPMI Protocol State ${False} 190 191 # Confirm that IPMI connection request fails. 192 ${status}= Run Keyword And Return Status 193 ... Verify IPMI Works lan print 194 195 Should Be Equal As Strings ${status} False 196 ... msg=IPMI commands are working after disabling IPMI. 197 198 199*** Keywords *** 200 201Suite Setup Execution 202 [Documentation] Do suite setup tasks. 203 204 Redfish.Login 205 206 ${state}= Run Keyword And Return Status Verify IPMI Protocol State 207 Set Suite Variable ${initial_ipmi_state} ${state} 208 209 210Is BMC LastResetTime Changed 211 [Documentation] return fail if BMC last reset time is not changed 212 [Arguments] ${reset_time} 213 214 ${last_reset_time}= Redfish.Get Attribute /redfish/v1/Managers/bmc LastResetTime 215 Should Not Be Equal ${last_reset_time} ${reset_time} 216 217 218Redfish BMC Reboot 219 [Documentation] Use Redfish API reboot BMC and wait for BMC ready 220 221 # Get BMC last reset time for compare 222 ${last_reset_time}= Redfish.Get Attribute /redfish/v1/Managers/bmc LastResetTime 223 224 # Reboot BMC by Redfish API 225 Redfish BMC Reset Operation 226 227 # Wait for BMC real reboot and Redfish API ready 228 Wait Until Keyword Succeeds 3 min 10 sec Is BMC LastResetTime Changed ${last_reset_time} 229 230