blob: 1a4a06a503bf5136b85c448abdd39bb89c18a5e4 [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
Ashwini Chandrappafdfd7e32021-08-02 07:59:11 -0500172*** Keywords ***
173
174Test Setup Execution
175 [Documentation] Do test case setup tasks.
meghagn2052fdd2021-12-07 02:42:31 -0600176
Rahul Maheshwari142642d2021-08-24 00:00:15 -0500177 Click Element ${xpath_secuity_and_accesss_menu}
178 Click Element ${xpath_policies_sub_menu}
Priya Sinha9f3de2b2022-08-26 01:59:46 -0500179 Wait Until Keyword Succeeds 30 sec 15 sec Location Should Contain policies
meghagn12345f942dae2021-08-27 02:53:00 -0500180
181
meghagn2052fdd2021-12-07 02:42:31 -0600182Set Policy Via GUI
183
184 [Documentation] Login to GUI Policies page and set policy.
185 [Arguments] ${policy} ${state}
186
187 # Description of argument(s):
188 # policy policy to be set(e.g. SSH, IPMI).
189 # state state to be set(e.g. Enable, Disable).
190
191 ${opposite_state_gui} ${opposite_state_redfish}= Run Keyword If
192 ... '${state}' == 'Enabled' Set Variable Disabled ${False}
193 ... ELSE IF '${state}' == 'Disabled' Set Variable Enabled ${True}
194
195 # Setting policy to an opposite value via Redfish.
196 Run Keyword If '${policy}' == 'SSH'
197 ... Enable SSH Protocol ${opposite_state_redfish}
198 ... ELSE IF '${policy}' == 'IPMI'
199 ... Enable IPMI Protocol ${opposite_state_redfish}
200
201 ${policy_toggle_button}= Run Keyword If '${policy}' == 'SSH'
202 ... Set variable ${xpath_bmc_ssh_toggle}
203 ... ELSE IF '${policy}' == 'IPMI'
204 ... Set variable ${xpath_network_ipmi_toggle}
205
206 Wait Until Keyword Succeeds 1 min 30 sec
207 ... Refresh GUI And Verify Element Value ${policy_toggle_button} ${opposite_state_gui}
208 Click Element ${policy_toggle_button}
209
210 # Wait for GUI to reflect policy status.
211 Wait Until Keyword Succeeds 1 min 30 sec
212 ... Refresh GUI And Verify Element Value ${policy_toggle_button} ${state}