blob: 48a72b5786e01c62f7b41ec5818347cb78a56028 [file] [log] [blame]
Sathyajith M S4f26ae72018-01-16 04:45:05 -06001*** Settings ***
2Documentation This is a resource file of OpenBMC ASMI It contains the
3... user-defined keywords which are available to all gui modules
4
5Library String
6Library Collections
7Library DateTime
8Library XvfbRobot
9Library OperatingSystem
Rahul Maheshwari2b666cc2019-09-02 23:53:37 -050010Library SeleniumLibrary
Sathyajith M S4f26ae72018-01-16 04:45:05 -060011Library AngularJSLibrary
12Library SSHLibrary 30 Seconds
13Library Process
14Library supporting_libs.py
Rahul Maheshwari439ce712019-03-07 03:23:13 -060015Library ../../lib/gen_print.py
16Library ../../lib/gen_robot_print.py
17Library ../../lib/gen_valid.py
18Library ../../lib/gen_robot_ssh.py
19Library ../../lib/bmc_ssh_utils.py
20Resource ../../lib/resource.robot
21Resource ../../lib/rest_client.robot
22Resource ../../lib/state_manager.robot
Sathyajith M S4f26ae72018-01-16 04:45:05 -060023Variables ../data/resource_variables.py
24
25*** Variables ***
Sridevi Rameshfba7a392025-03-27 10:21:40 -050026${OPENBMC_GUI_URL} https://${OPENBMC_HOST}:${HTTPS_PORT}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -060027
Sathyajith M S4f26ae72018-01-16 04:45:05 -060028${obmc_PowerOff_state} Off
29${obmc_PowerRunning_state} Running
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -060030${obmc_PowerStandby_state} Standby
Sathyajith M S4f26ae72018-01-16 04:45:05 -060031
George Keishing4d4ef992021-01-28 09:56:53 -060032# Default GUI browser and mode is set to "Firefox" and "headless"
Rahul Maheshwaridd38aef2018-11-15 23:33:10 -060033# respectively here.
34${GUI_BROWSER} ff
35${GUI_MODE} headless
36
manashsarmafb353662020-08-27 05:12:04 -050037${CMD_INTERNAL_FAILURE} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
38... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.InternalFailure
39... xyz.openbmc_project.Logging.Entry.Level.Error 0
40
Sathyajith M S4f26ae72018-01-16 04:45:05 -060041*** Keywords ***
42Launch OpenBMC GUI Browser
43 [Documentation] Launch the OpenBMC GUI URL on a browser.
44 # By default uses headless mode, otherwise, the GUI browser.
45
46 ${op_system}= Get Operating System
rramyasr-in714ed722025-05-20 02:19:50 -050047 IF '${op_system}' == 'windows'
48 Launch Header Browser
49 ELSE IF '${op_system}' == 'Darwin'
50 # Mac OS is currently having some issues with Firefox, so using Chrome.
51 Launch Header Browser chrome
52 ELSE
53 # Linux OS.
54 Launch Headless Browser
55 END
56
Sathyajith M S4f26ae72018-01-16 04:45:05 -060057
58Get Operating System
59 [Documentation] Identify platform/OS.
60
61 ${curdir_lower_case}= Convert To Lowercase ${CURDIR}
62 ${windows_platform}= Run Keyword And Return Status
63 ... Should Contain ${curdir_lower_case} c:\
rramyasr-in714ed722025-05-20 02:19:50 -050064 IF '${windows_platform}' == 'True'
65 ${op_system}= Set Variable windows
66 ELSE
67 ${op_system}= Run uname
68 END
George Keishing409df052024-01-17 22:36:14 +053069 RETURN ${op_system}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060070
rramyasr-in714ed722025-05-20 02:19:50 -050071
Sivas SRRa0113482018-02-22 22:27:05 -060072Launch Header Browser
Sathyajith M S4f26ae72018-01-16 04:45:05 -060073 [Documentation] Open the browser with the URL and
74 ... login on windows platform.
Rahul Maheshwaridd38aef2018-11-15 23:33:10 -060075 [Arguments] ${browser_type}=${GUI_BROWSER}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060076
Sivas SRRa0113482018-02-22 22:27:05 -060077 # Description of argument(s):
78 # browser_type Type of browser (e.g. "firefox", "chrome", etc.).
Sathyajith M S2cdab0a2018-02-13 19:36:28 -060079
Sridevi Rameshfba7a392025-03-27 10:21:40 -050080 ${BROWSER_ID}= Open Browser ${OPENBMC_GUI_URL} ${browser_type}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060081 Maximize Browser Window
82 Set Global Variable ${BROWSER_ID}
83
84Launch Headless Browser
85 [Documentation] Launch headless browser.
Sridevi Rameshfba7a392025-03-27 10:21:40 -050086 [Arguments] ${URL}=${OPENBMC_GUI_URL} ${browser}=${GUI_BROWSER}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060087
Rahul Maheshwari79e276c2018-06-11 01:23:15 -050088 # Description of argument(s):
89 # URL Openbmc GUI URL to be open
90 # (e.g. https://openbmc-test.mybluemix.net/#/login).
91 # browser Browser to open given URL in headless way
92 # (e.g. gc for google chrome, ff for firefox).
93
94 Start Virtual Display
95 ${browser_ID}= Open Browser ${URL}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060096 Set Window Size 1920 1080
97
George Keishing409df052024-01-17 22:36:14 +053098 RETURN ${browser_ID}
Rahul Maheshwari79e276c2018-06-11 01:23:15 -050099
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600100Login OpenBMC GUI
101 [Documentation] Perform login to open BMC GUI.
102 [Arguments] ${username}=${OPENBMC_USERNAME}
103 ... ${password}=${OPENBMC_PASSWORD}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600104
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600105 # Description of argument(s):
106 # username The username.
107 # password The password.
108
Sridevi Rameshfba7a392025-03-27 10:21:40 -0500109 Go To ${OPENBMC_GUI_URL}
Sivas SRRa6925352018-02-19 08:59:03 -0600110 Wait Until Element Is Enabled ${xpath_textbox_hostname}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600111 Input Text ${xpath_textbox_hostname} ${OPENBMC_HOST}
112 Input Text ${xpath_textbox_username} ${username}
113 Input Password ${xpath_textbox_password} ${password}
Sivas SRRffa42692018-01-17 05:17:35 -0600114 Click Element login__submit
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600115 Wait Until Element Is Enabled ${xpath_button_logout}
Sivas SRRffa42692018-01-17 05:17:35 -0600116 Page Should Contain Server information
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600117
118
119Test Setup Execution
120 [Documentation] Verify all the preconditions to be tested.
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600121 [Arguments] ${obmc_test_setup_state}=${OBMC_PowerOff_state}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600122
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600123 # Description of argument(s):
124 # obmc_test_setup The OpenBMC required state.
125
Michael Walshc108e422019-03-28 12:27:18 -0500126 Print Timen ${TEST NAME} ==> [STARTED]
Rahul Maheshwari7872f052018-06-19 01:12:34 -0500127 Launch Browser And Login OpenBMC GUI
George Keishing9bfdf8a2024-04-19 11:09:07 +0530128 Log To Console Verifying the system state and stability.
Rahul Maheshwari8b5b5a42018-11-30 01:41:35 -0600129
Anusha Dathatrif7a407c2019-07-22 00:59:38 -0500130 Click Element ${xpath_select_server_power}
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500131 Wait Until Page Does Not Contain Unreachable
Rahul Maheshwari8b5b5a42018-11-30 01:41:35 -0600132 ${obmc_current_state}= Get Text ${xpath_power_indicator}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600133 Rpvars obmc_current_state
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600134
135 ${obmc_state_status}= Run Keyword And Return Status
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600136 ... Should Contain ${obmc_current_state} ${obmc_test_setup_state}
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600137 Return From Keyword If '${obmc_state_status}' == 'True'
138
139 ${obmc_standby_state}= Run Keyword And Return Status
140 ... Should Contain ${obmc_current_state} ${obmc_standby_state}
141
rramyasr-in714ed722025-05-20 02:19:50 -0500142 IF '${obmc_standby_state}' == 'True'
143 Reboot OpenBMC
144 END
145 IF '${obmc_test_setup_state}' == '${obmc_PowerRunning_state}'
146 Run Keywords Power On OpenBMC AND
147 Wait Until Keyword Succeeds 10 min 60 sec Is Host Running
148 END
149 IF '${obmc_test_setup_state}' == '${obmc_PowerOff_state}'
150 Redfish.Login
151 Redfish Power Off
152 Redfish.Logout
153 END
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600154
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600155
156Power On OpenBMC
157 [Documentation] Power on the OBMC system.
158
159 Log To Console Power On OpenBMC...
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500160 Click Element ${xpath_select_server_power}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600161 Click Button ${xpath_select_button_power_on }
162 Wait OpenBMC To Become Stable ${obmc_running_state}
163
164Reboot OpenBMC
165 [Documentation] Rebooting the OBMC system.
166
167 Log To Console Reboting the OpenBMC...
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500168 Click Element ${xpath_select_server_power}
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600169 Click Button ${xpath_select_button_orderly_shutdown}
170 Click Yes Button ${xpath_select_button_orderly_shutdown_yes}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600171 Wait OpenBMC To Become Stable ${obmc_off_state}
172
173Wait OpenBMC To Become Stable
174 [Documentation] Power off the OBMC.
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600175 [Arguments] ${obmc_expected_state} ${retry_time}=15 min
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600176 ... ${retry_interval}=45 sec
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600177
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600178 # Description of argument(s):
179 # OBMC_expected_state The OBMC state which is required for test.
180 # retry_time Total wait time after executing the command.
181 # retry_interval Time interval for to keep checking with in the
182 # above total wait time.
183
184 Wait Until Keyword Succeeds ${retry_time} ${retry_interval}
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500185 ... Wait Until Element Contains ${xpath_select_server_power}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600186 ... ${obmc_expected_state}
187 Wait Until Keyword Succeeds ${retry_time} ${retry_interval}
188 ... Verify OpenBMC State From REST Interface ${obmc_expected_state}
189
190Verify OpenBMC State From REST Interface
191 [Documentation] Verify system state from REST Interface.
192 [Arguments] ${obmc_required_state}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600193
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600194 # Description of argument(s):
195 # obmc_required_state The OBMC state which is required for test.
196
197 ${obmc_current_state_REST}= Get Host State
198 Should Be Equal ${obmc_current_state_REST} ${obmc_required_state}
199
200Click Yes Button
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600201 [Documentation] Click the 'Yes' button.
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600202 [Arguments] ${xpath_button_yes}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600203
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600204 # Description of argument(s):
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600205 # xpath_button_yes The xpath of 'Yes' button.
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600206
207 Click Button ${xpath_button_yes}
208
209LogOut OpenBMC GUI
210 [Documentation] Log out of OpenBMC GUI.
211 SSHLibrary.Close All Connections
Rahul Maheshwari31b3c432020-06-26 05:24:13 -0500212 Click Button ${xpath_button_user_action}
Rahul Maheshwarid36b6ac2018-06-19 01:44:06 -0500213 Click Element ${xpath_button_logout}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600214 Wait Until Page Contains Element ${xpath_button_login}
215
216Test Teardown Execution
217 [Documentation] Do final closure activities of test case execution.
Michael Walshc108e422019-03-28 12:27:18 -0500218 Print Pgm Footer
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600219 Print Dashes 0 100 1 =
Rahul Maheshwaricfdec852018-11-30 03:44:49 -0600220 Close Browser
Sivas SRRffa42692018-01-17 05:17:35 -0600221
Rahul Maheshwari1b5369b2018-06-11 00:57:03 -0500222
Sivas SRRffa42692018-01-17 05:17:35 -0600223Open Browser With URL
224 [Documentation] Open browser with specified URL and returns browser id.
Rahul Maheshwaridd38aef2018-11-15 23:33:10 -0600225 [Arguments] ${URL} ${browser}=ff ${mode}=${GUI_MODE}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600226
Sivas SRRffa42692018-01-17 05:17:35 -0600227 # Description of argument(s):
228 # URL Openbmc GUI URL to be open
Rahul Maheshwari79e276c2018-06-11 01:23:15 -0500229 # (e.g. https://openbmc-test.mybluemix.net/#/login).
230 # browser Browser used to open above URL
231 # (e.g. gc for google chrome, ff for firefox).
232 # mode Browser opening mode(e.g. headless, header).
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600233
rramyasr-in714ed722025-05-20 02:19:50 -0500234 IF '${mode}' == 'headless'
235 ${browser_ID}= Launch Headless Browser ${URL} ${browser}
236 ELSE
237 ${browser_ID}= Open Browser ${URL} ${browser}
238 END
George Keishing409df052024-01-17 22:36:14 +0530239 RETURN ${browser_ID}
Sivas SRRffa42692018-01-17 05:17:35 -0600240
Rahul Maheshwari1b5369b2018-06-11 00:57:03 -0500241
Sivas SRRffa42692018-01-17 05:17:35 -0600242Controller Server Power Click Button
243 [Documentation] Click main server power in the header section.
244 [Arguments] ${controller_element}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600245
Sivas SRRffa42692018-01-17 05:17:35 -0600246 # Description of argument(s):
247 # controller_element Server power controller element
248 # (e.g. power__power-on.)
249
Rahul Maheshwaridbbf1792018-10-31 05:36:29 -0500250 Click Element ${xpath_select_server_power}
Sivas SRRffa42692018-01-17 05:17:35 -0600251 Wait Until Element Is Visible ${controller_element}
252 Page Should Contain Button ${controller_element}
253 Click Element ${controller_element}
254
Sivas SRRffa42692018-01-17 05:17:35 -0600255
256GUI Power On
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600257 [Documentation] Power on the host using GUI.
Sivas SRRffa42692018-01-17 05:17:35 -0600258
Sivas SRRffa42692018-01-17 05:17:35 -0600259 Controller Server Power Click Button power__power-on
Anusha Dathatri7ea44c12019-09-04 09:28:38 -0500260 Wait Until Page Contains Running timeout=30s
Sivas SRRffa42692018-01-17 05:17:35 -0600261
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600262Verify Display Content
263 [Documentation] Verify text content display.
264 [Arguments] ${display_text}
265
266 # Description of argument(s):
267 # display_text The text which is expected to be found on the web page.
268
269 Page Should Contain ${display_text}
270
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600271
272Verify Warning Message Display Text
273 [Documentation] Verify the warning message display text.
274 [Arguments] ${xpath_text_message} ${text_message}
275
276 # xpath_text_message Xpath of warning message display.
277 # text_message Content of the display message info.
278
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500279 Element Should Contain ${xpath_text_message} ${text_message}
Sivas SRRca534e62018-02-20 02:22:02 -0600280
281
282Expected Initial Test State
283 [Documentation] Power on the host if "Running" expected, Power off the
284 ... host if "Off" expected as per the requirement of initial test state.
285 [Arguments] ${expectedState}
286 # Description of argument(s):
287 # expectedState Test initial host state.
288
rramyasr-in714ed722025-05-20 02:19:50 -0500289 IF '${expectedState}' == 'Running'
290 REST Power On stack_mode=skip quiet=1
291 END
Sivas SRRca534e62018-02-20 02:22:02 -0600292
rramyasr-in714ed722025-05-20 02:19:50 -0500293 IF '${expectedState}' == 'Off'
294 REST Power Off stack_mode=skip quiet=1
295 END
Sivas SRR008dcc62018-02-27 06:34:56 -0600296
297Launch Browser And Login OpenBMC GUI
298 [Documentation] Launch browser and log into openbmc GUI.
299
Sridevi Rameshfba7a392025-03-27 10:21:40 -0500300 Open Browser With URL ${OPENBMC_GUI_URL}
Sivas SRR008dcc62018-02-27 06:34:56 -0600301 Login OpenBMC GUI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD}
302
303Logout And Close Browser
304 [Documentation] Logout from openbmc application and close the browser.
305
Rahul Maheshwari31b3c432020-06-26 05:24:13 -0500306 Click Button ${xpath_button_user_action}
307 Click Button ${xpath_button_logout}
Sivas SRR008dcc62018-02-27 06:34:56 -0600308 Close Browser
Rahul Maheshwarif3fa6742020-05-18 06:24:04 -0500309