blob: 2ddbae208b90ebcf170c955e66dc727c435db427 [file] [log] [blame]
Prashanth Kattiabbce3d2021-06-29 04:56:37 -05001*** Settings ***
2Documentation Test BMC manager protocol enable/disable functionality.
3
Prashanth Kattiabbce3d2021-06-29 04:56:37 -05004Resource ../../lib/bmc_redfish_resource.robot
5Resource ../../lib/openbmc_ffdc.robot
Prashanth Kattif59a73e2021-09-22 03:03:58 -05006Resource ../../lib/protocol_setting_utils.robot
Prashanth Kattiabbce3d2021-06-29 04:56:37 -05007
Brian Ma274b7242021-12-09 09:00:45 +08008Suite Setup Suite Setup Execution
9Suite Teardown Run Keywords Enable IPMI Protocol ${initial_ipmi_state} AND Redfish.Logout
Prashanth Katti2e413452021-07-13 02:26:45 -050010Test Teardown FFDC On Test Case Fail
Prashanth Kattiabbce3d2021-06-29 04:56:37 -050011
12
Prashanth Katti70620172021-07-28 07:17:39 -050013*** Variables ***
14
15${cmd_prefix} ipmitool -I lanplus -C 17 -p 623 -U ${OPENBMC_USERNAME} -P ${OPENBMC_PASSWORD}
16
17
Prashanth Kattiabbce3d2021-06-29 04:56:37 -050018*** Test Cases ***
19
Prashanth Katti2e413452021-07-13 02:26:45 -050020Verify 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
Prashanth Kattiabbce3d2021-06-29 04:56:37 -050028Enable 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.
Brian Ma4ddcb4d2021-12-03 09:31:05 +080082 Redfish BMC Reboot
Prashanth Kattiabbce3d2021-06-29 04:56:37 -050083
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
Prashanth Katti2e413452021-07-13 02:26:45 -050095Verify 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
Prashanth Katti70620172021-07-28 07:17:39 -0500131Enable IPMI Protocol And Verify
132 [Documentation] Enable IPMI protocol and verify.
133 [Tags] Enable_IPMI_Protocol_And_Verify
Prashanth Katti70620172021-07-28 07:17:39 -0500134
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
meghagnef433de2022-02-08 00:57:52 -0600162Enable IPMI Protocol And Check Persistency On BMC Reboot
George Keishing33be3592022-03-08 08:52:25 -0600163 [Documentation] Set the IPMI protocol attribute to True, reset BMC, and verify
164 ... that the setting persists.
meghagnef433de2022-02-08 00:57:52 -0600165 [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
George Keishing33be3592022-03-08 08:52:25 -0600179 [Documentation] Set the IPMI protocol attribute to False, reset BMC, and verify
180 ... that the setting persists.
meghagnef433de2022-02-08 00:57:52 -0600181 [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
Prashanth Kattiabbce3d2021-06-29 04:56:37 -0500199*** Keywords ***
200
Brian Ma274b7242021-12-09 09:00:45 +0800201Suite 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
Brian Ma4ddcb4d2021-12-03 09:31:05 +0800210Is 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