blob: 0e0e921c09c0ab0213d336c4020e5801860f0c30 [file] [log] [blame]
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -05001*** Settings ***
2
meghagn12345f942dae2021-08-27 02:53:00 -05003Documentation Test OpenBMC GUI "Policies" sub-menu of "Security and Access" menu.
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -05004
5Resource ../../lib/gui_resource.robot
meghagn56eba262021-09-16 07:05:52 -05006Resource ../lib/ipmi_client.robot
meghagn2052fdd2021-12-07 02:42:31 -06007Resource ../lib/protocol_setting_utils.robot
8Resource ../lib/common_utils.robot
Priya Sinha9f3de2b2022-08-26 01:59:46 -05009Suite Setup Run Keywords Launch Browser And Login GUI AND Redfish.Login
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050010Suite Teardown Close Browser
11Test Setup Test Setup Execution
12
13
14*** Variables ***
rramyasr-in34960622022-08-11 11:35:04 -050015${xpath_policies_heading} //h1[text()="Policies"]
16${xpath_bmc_ssh_toggle} //*[@data-test-id='policies-toggle-bmcShell']
17... /following-sibling::label
18${xpath_network_ipmi_toggle} //*[@data-test-id='polices-toggle-networkIpmi']
19... /following-sibling::label
20${xpath_host_tpm_toggle} //input[@id='host-tpm-policy']
21${xpath_virtual_tpm_toggle} //*[@data-test-id='policies-toggle-vtpm']
22${xpath_rtad_toggle} //*[@data-test-id='policies-toggle-rtad']
23${xpath_usb_firmware_update_policy_toggle} //*[@data-test-id='policies-toggle-usbFirmwareUpdatePolicy']
24${xpath_secure_version_lockin_toggle} //*[@data-test-id='policies-toggle-svle']
25${xpath_host_usb_enablement_toggle} //*[@data-test-id='policies-toggle-hostUsb']
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050026
27*** Test Cases ***
28
Rahul Maheshwari142642d2021-08-24 00:00:15 -050029Verify Navigation To Policies Page
meghagn12345f942dae2021-08-27 02:53:00 -050030 [Documentation] Verify navigation to policies page.
Rahul Maheshwari142642d2021-08-24 00:00:15 -050031 [Tags] Verify_Navigation_To_Policies_Page
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050032
Rahul Maheshwari142642d2021-08-24 00:00:15 -050033 Page Should Contain Element ${xpath_policies_heading}
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050034
35
Rahul Maheshwari142642d2021-08-24 00:00:15 -050036Verify Existence Of All Sections In Policies Page
37 [Documentation] Verify existence of all sections in policies page.
38 [Tags] Verify_Existence_Of_All_Sections_In_Policies_Page
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050039
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050040 Page Should Contain BMC shell (via SSH)
41 Page Should Contain Network IPMI (out-of-band IPMI)
rramyasr-in03f42372022-06-16 11:51:11 -050042 Page Should Contain Host TPM
43 Page Should Contain VirtualTPM
44 Page Should Contain RTAD
45 Page Should Contain USB firmware update policy
46 Page Should Contain Secure version lock-in
47 Page Should Contain Host USB enablement
meghagn2052fdd2021-12-07 02:42:31 -060048
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050049
Rahul Maheshwari142642d2021-08-24 00:00:15 -050050Verify Existence Of All Buttons In Policies Page
51 [Documentation] Verify existence of All Buttons in policies page.
52 [Tags] Verify_Existence_Of_All_Buttons_In_Policies_Page
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050053
54 Page Should Contain Element ${xpath_bmc_ssh_toggle}
55 Page Should Contain Element ${xpath_network_ipmi_toggle}
rramyasr-in34960622022-08-11 11:35:04 -050056 Page Should Contain Element ${xpath_host_tpm_toggle}
57 Page Should Contain Element ${xpath_virtual_tpm_toggle}
58 Page Should Contain Element ${xpath_rtad_toggle}
59 Page Should Contain Element ${xpath_usb_firmware_update_policy_toggle}
60 Page Should Contain Element ${xpath_secure_version_lockin_toggle}
61 Page Should Contain Element ${xpath_host_usb_enablement_toggle}
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -050062
63
meghagn12345f942dae2021-08-27 02:53:00 -050064Enable SSH Via GUI And Verify
meghagn2052fdd2021-12-07 02:42:31 -060065 [Documentation] Login to GUI Policies page,enable SSH toggle and
66 ... verify that SSH to BMC starts working after enabling SSH.
meghagn12345f942dae2021-08-27 02:53:00 -050067 [Tags] Enable_SSH_Via_GUI_And_Verify
meghagn12345f942dae2021-08-27 02:53:00 -050068
meghagn2052fdd2021-12-07 02:42:31 -060069 Set Policy Via GUI SSH Enabled
Priya Sinha9f3de2b2022-08-26 01:59:46 -050070 Wait Until Keyword Succeeds ${NETWORK_TIMEOUT} ${NETWORK_RETRY_TIME} Open Connection And Login
meghagn12345f942dae2021-08-27 02:53:00 -050071
72
meghagn07db9622021-09-13 07:22:28 -050073Disable SSH Via GUI And Verify
meghagn2052fdd2021-12-07 02:42:31 -060074 [Documentation] Login to GUI Policies page,disable SSH and
75 ... verify that SSH to BMC stops working after disabling SSH.
meghagn07db9622021-09-13 07:22:28 -050076 [Tags] Disable_SSH_Via_GUI_And_Verify
meghagn2052fdd2021-12-07 02:42:31 -060077 [Teardown] Run Keywords Enable SSH Protocol ${True} AND
Priya Sinha9f3de2b2022-08-26 01:59:46 -050078 ... Wait Until Keyword Succeeds 30 sec 15 sec Open Connection And Login
meghagn07db9622021-09-13 07:22:28 -050079
meghagn2052fdd2021-12-07 02:42:31 -060080 Set Policy Via GUI SSH Disabled
meghagn07db9622021-09-13 07:22:28 -050081
82 ${status}= Run Keyword And Return Status
83 ... Open Connection And Login
84
85 Should Be Equal As Strings ${status} False
86 ... msg=SSH login still working after disabling SSH.
87
88
meghagn56eba262021-09-16 07:05:52 -050089Disable IPMI Via GUI And Verify
meghagn2052fdd2021-12-07 02:42:31 -060090 [Documentation] Login to GUI Policies page,disable IPMI and
George Keishingde7e0452022-02-01 07:04:41 -060091 ... verify that IPMI command does not work after disabling IPMI.
meghagn56eba262021-09-16 07:05:52 -050092 [Tags] Disable_IPMI_Via_GUI_And_Verify
meghagn56eba262021-09-16 07:05:52 -050093
meghagn2052fdd2021-12-07 02:42:31 -060094 Set Policy Via GUI IPMI Disabled
meghagn56eba262021-09-16 07:05:52 -050095
96 ${status}= Run Keyword And Return Status
Priya Sinha9f3de2b2022-08-26 01:59:46 -050097 ... Wait Until Keyword Succeeds ${NETWORK_TIMEOUT} ${NETWORK_RETRY_TIME} Run IPMI Standard Command sel info
meghagn56eba262021-09-16 07:05:52 -050098
99 Should Be Equal As Strings ${status} False
100 ... msg=IPMI command is working after disabling IPMI.
101
102
meghagnb5c88b02021-09-14 00:32:27 -0500103Enable IPMI Via GUI And Verify
meghagn2052fdd2021-12-07 02:42:31 -0600104 [Documentation] Login to GUI Policies page,enable IPMI and
105 ... verify that IPMI command works after enabling IPMI.
meghagnb5c88b02021-09-14 00:32:27 -0500106 [Tags] Enable_IPMI_Via_GUI_And_Verify
meghagnb5c88b02021-09-14 00:32:27 -0500107
meghagn2052fdd2021-12-07 02:42:31 -0600108 Set Policy Via GUI IPMI Enabled
Priya Sinha9f3de2b2022-08-26 01:59:46 -0500109 Wait Until Keyword Succeeds ${NETWORK_TIMEOUT} ${NETWORK_RETRY_TIME} Run IPMI Standard Command sel info
meghagnb5c88b02021-09-14 00:32:27 -0500110
111
meghagn2052fdd2021-12-07 02:42:31 -0600112Enable SSH Via GUI And Verify Persistency On BMC Reboot
113 [Documentation] Login to GUI Policies page,enable SSH and
114 ... verify persistency of SSH connection on BMC reboot.
115 [Tags] Enable_SSH_Via_GUI_And_Verify_Persistency_On_BMC_Reboot
116
117 Set Policy Via GUI SSH Enabled
118
119 Reboot BMC via GUI
120
121 Wait Until Keyword Succeeds 5 min 30 sec Open Connection And Login
122
123
124Enable IPMI Via GUI And Verify Persistency On BMC Reboot
125 [Documentation] Login to GUI Policies page,enable IPMI and
126 ... verify persistency of IPMI command work on BMC reboot.
127 [Tags] Enable_IPMI_Via_GUI_And_Verify_Persistency_On_BMC_Reboot
128
129 Set Policy Via GUI IPMI Enabled
130
131 Reboot BMC via GUI
132
133 Wait Until Keyword Succeeds 2 min 30 sec Run IPMI Standard Command sel info
134
135
meghagn3fb3d1b2022-01-28 01:27:59 -0600136Disable SSH Via GUI And Verify Persistency On BMC Reboot
137 [Documentation] Login to GUI Policies page,disable SSH and
138 ... verify that SSH to BMC stops working after disabling SSH on BMC reboot.
139 [Tags] Disable_SSH_Via_GUI_And_Verify_Persistency_On_BMC_Reboot
140 [Teardown] Run Keywords Wait Until Keyword Succeeds 2 min 15 sec Enable SSH Protocol ${True}
141 ... AND Wait Until Keyword Succeeds 2 min 15 sec Open Connection And Login
142
143 Set Policy Via GUI SSH Disabled
144
145 Reboot BMC via GUI
146
147 ${status}= Run Keyword And Return Status
Priya Sinha9f3de2b2022-08-26 01:59:46 -0500148 ... Wait Until Keyword Succeeds ${NETWORK_TIMEOUT} ${NETWORK_RETRY_TIME} Open Connection And Login
meghagn3fb3d1b2022-01-28 01:27:59 -0600149
150 Should Be Equal As Strings ${status} False
151 ... msg=SSH login still working after disabling SSH.
152
153
154Disable IPMI Via GUI And Verify Persistency On BMC Reboot
155 [Documentation] Login to GUI Policies page,disable IPMI and
George Keishing86d85f42022-08-18 23:02:22 -0500156 ... verify persistency of IPMI command does not work on BMC reboot.
meghagn3fb3d1b2022-01-28 01:27:59 -0600157 [Tags] Disable_IPMI_Via_GUI_And_Verify_Persistency_On_BMC_Reboot
158 [Teardown] Run Keywords Wait Until Keyword Succeeds 2 min 15 sec Enable IPMI Protocol ${True}
159 ... AND Wait Until Keyword Succeeds 2 min 15 sec Run IPMI Standard Command sel info
160
161 Set Policy Via GUI IPMI Disabled
162
163 Reboot BMC via GUI
164
165 ${status}= Run Keyword And Return Status
Priya Sinha9f3de2b2022-08-26 01:59:46 -0500166 ... Wait Until Keyword Succeeds ${NETWORK_TIMEOUT} ${NETWORK_RETRY_TIME} Run IPMI Standard Command sel info
meghagn3fb3d1b2022-01-28 01:27:59 -0600167
168 Should Be Equal As Strings ${status} False
169 ... msg=IPMI command is working after disabling IPMI.
170
171
Megha G N212f0cf2022-11-22 00:55:49 -0600172Configure SSH And IPMI Settings Via GUI And Verify
173 [Documentation] Login to GUI Policies page,set SSH and IPMI toggle and
174 ... verify SSH & IPMI after the settings.
175 [Tags] Configure_SSH_And_IPMI_Settings_Via_GUI_And_Verify
176 [Setup] Fetch IPMI And SSH Settings
177 [Template] Set SSH And IPMI State Via GUI
178 [Teardown] Set SSH And IPMI State Via GUI ${initial_ssh_setting} ${initial_ipmi_setting}
179
180 # ssh_state ipmi_state
181 Enabled Enabled
182 Disabled Disabled
183 Enabled Disabled
184 Disabled Enabled
185
186
Megha G N50eaf4e2023-01-18 01:28:24 -0600187Configure SSH And IPMI Settings Via GUI And Verify Its Persistency
188 [Documentation] Login to GUI Policies page,set SSH and IPMI toggle and
189 ... verify SSH & IPMI settings after BMC reboot.
190 [Tags] Configure_SSH_And_IPMI_Settings_Via_GUI_And_Verify_Its_Persistency
191 [Setup] Fetch IPMI And SSH Settings
192 [Template] Set SSH And IPMI State Via GUI
193 [Teardown] Set SSH And IPMI State Via GUI ${initial_ssh_setting} ${initial_ipmi_setting}
194
195 # ssh_state ipmi_state persistency_check
196 Enabled Enabled True
197 Disabled Disabled True
198 Enabled Disabled True
199 Disabled Enabled True
200
201
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -0500202*** Keywords ***
203
204Test Setup Execution
205 [Documentation] Do test case setup tasks.
meghagn2052fdd2021-12-07 02:42:31 -0600206
Megha G N212f0cf2022-11-22 00:55:49 -0600207 Wait Until Keyword Succeeds 30 sec 15 sec Click Element ${xpath_secuity_and_accesss_menu}
Rahul Maheshwari142642d2021-08-24 00:00:15 -0500208 Click Element ${xpath_policies_sub_menu}
Priya Sinha9f3de2b2022-08-26 01:59:46 -0500209 Wait Until Keyword Succeeds 30 sec 15 sec Location Should Contain policies
meghagn12345f942dae2021-08-27 02:53:00 -0500210
211
meghagn2052fdd2021-12-07 02:42:31 -0600212Set Policy Via GUI
213
214 [Documentation] Login to GUI Policies page and set policy.
215 [Arguments] ${policy} ${state}
216
217 # Description of argument(s):
218 # policy policy to be set(e.g. SSH, IPMI).
219 # state state to be set(e.g. Enable, Disable).
220
221 ${opposite_state_gui} ${opposite_state_redfish}= Run Keyword If
222 ... '${state}' == 'Enabled' Set Variable Disabled ${False}
223 ... ELSE IF '${state}' == 'Disabled' Set Variable Enabled ${True}
224
225 # Setting policy to an opposite value via Redfish.
226 Run Keyword If '${policy}' == 'SSH'
227 ... Enable SSH Protocol ${opposite_state_redfish}
228 ... ELSE IF '${policy}' == 'IPMI'
229 ... Enable IPMI Protocol ${opposite_state_redfish}
230
231 ${policy_toggle_button}= Run Keyword If '${policy}' == 'SSH'
232 ... Set variable ${xpath_bmc_ssh_toggle}
233 ... ELSE IF '${policy}' == 'IPMI'
234 ... Set variable ${xpath_network_ipmi_toggle}
235
236 Wait Until Keyword Succeeds 1 min 30 sec
237 ... Refresh GUI And Verify Element Value ${policy_toggle_button} ${opposite_state_gui}
238 Click Element ${policy_toggle_button}
239
240 # Wait for GUI to reflect policy status.
241 Wait Until Keyword Succeeds 1 min 30 sec
242 ... Refresh GUI And Verify Element Value ${policy_toggle_button} ${state}
Megha G N212f0cf2022-11-22 00:55:49 -0600243
244
245Verify Policy State
246 [Documentation] Verify if the current SSH and IPMI setting matches with
247 ... given values.
248
249 # Verify SSH state value.
250 ${status}= Run Keyword And Return Status
251 ... Open Connection And Login
252
253 Run Keyword If '${status}' == 'True'
254 ... Element Text Should Be ${xpath_bmc_ssh_toggle} Enabled
255 ... ELSE IF '${status}' == 'False'
256 ... Element Text Should Be ${xpath_bmc_ssh_toggle} Disabled
257
258 # Verify IPMI state value.
259 ${status}= Run Keyword And Return Status
260 ... Wait Until Keyword Succeeds ${NETWORK_TIMEOUT} ${NETWORK_RETRY_TIME} Run IPMI Standard Command sel info
261
262 Run Keyword If '${status}' == 'True'
263 ... Element Text Should Be ${xpath_network_ipmi_toggle} Enabled
264 ... ELSE IF '${status}' == 'False'
265 ... Element Text Should Be ${xpath_network_ipmi_toggle} Disabled
266
267
268Set SSH And IPMI State Via GUI
269 [Documentation] Set SSH and IPMI states via GUI.
270 [Arguments] ${ssh_state} ${ipmi_state}
271
272 # Description of argument(s):
273 # ssh_state State of SSH to be set (e.g. Enabled, Disabled).
George Keishinga87ee1e2023-01-11 22:55:45 -0600274 # ipmi_state State of IPMI to be set (e.g. Enabled, Disabled).
Megha G N212f0cf2022-11-22 00:55:49 -0600275
276 ${current_ssh_state}= Get Text ${xpath_bmc_ssh_toggle}
277
278 Run Keyword If '${ssh_state}' == '${current_ssh_state}'
279 # When SSH state is already set to given value, click SSH toggle
280 # button twice to reset SSH value back to its original value.
281 ... Run Keywords Click Element ${xpath_bmc_ssh_toggle}
282 ... AND Click Element ${xpath_bmc_ssh_toggle}
283 ... ELSE IF '${ssh_state}' != '${current_ssh_state}'
284 ... Click Element ${xpath_bmc_ssh_toggle}
285
286 ${current_ipmi_state}= Get Text ${xpath_network_ipmi_toggle}
287
288 Run Keyword If '${ipmi_state}' == '${current_ipmi_state}'
289 # When IPMI state is already set to given value, click IPMI toggle
290 # button twice to reset IPMI value back to its original value.
291 ... Run Keywords Click Element ${xpath_network_ipmi_toggle}
292 ... AND Click Element ${xpath_network_ipmi_toggle}
293 ... ELSE IF '${ipmi_state}' != '${current_ipmi_state}'
294 ... Click Element ${xpath_network_ipmi_toggle}
295
Megha G N50eaf4e2023-01-18 01:28:24 -0600296 Run Keyword If ${persistency_check} == ${True}
297 ... Run Keywords Reboot BMC via GUI AND Test Setup Execution
298
Megha G N212f0cf2022-11-22 00:55:49 -0600299 Wait Until Keyword Succeeds 30 sec 15 sec Verify Policy State ${ssh_state} ${ipmi_state}
300
301
302Fetch IPMI And SSH Settings
303 [Documentation] Note down the initial states of SSH and IPMI.
304
305 Test Setup Execution
306 ${initial_ssh_setting}= Get Text ${xpath_bmc_ssh_toggle}
307 Set Suite Variable ${initial_ssh_setting}
308 ${initial_ipmi_setting}= Get Text ${xpath_network_ipmi_toggle}
309 Set Suite Variable ${initial_ipmi_setting}