blob: 940d53bf4b955fc6825d84abedfc9e2f08b3c49f [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 ***
Sivas SRRc70e9ae2018-02-14 23:53:49 -060026${obmc_gui_url} https://${OPENBMC_HOST}
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
47 Run Keyword If '${op_system}' == 'windows'
Sivas SRRa0113482018-02-22 22:27:05 -060048 ... Launch Header Browser
49 ... ELSE IF '${op_system}' == 'Darwin'
50 # Mac OS is currently having some issues with firefox, so using
51 # chrome.
52 # TODO: Need to add support for other browsers. Issue #1280.
53 ... Launch Header Browser chrome
Sathyajith M S4f26ae72018-01-16 04:45:05 -060054 ... ELSE
Sivas SRRa0113482018-02-22 22:27:05 -060055 # Linux OS.
Sathyajith M S4f26ae72018-01-16 04:45:05 -060056 ... Launch Headless Browser
57
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:\
64 ${op_system}= Run Keyword If '${windows_platform}' == 'True'
Sivas SRRa0113482018-02-22 22:27:05 -060065 ... Set Variable windows
66 ... ELSE
67 ... Run uname
Sathyajith M S4f26ae72018-01-16 04:45:05 -060068 [Return] ${op_system}
69
Sivas SRRa0113482018-02-22 22:27:05 -060070Launch Header Browser
Sathyajith M S4f26ae72018-01-16 04:45:05 -060071 [Documentation] Open the browser with the URL and
72 ... login on windows platform.
Rahul Maheshwaridd38aef2018-11-15 23:33:10 -060073 [Arguments] ${browser_type}=${GUI_BROWSER}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060074
Sivas SRRa0113482018-02-22 22:27:05 -060075 # Description of argument(s):
76 # browser_type Type of browser (e.g. "firefox", "chrome", etc.).
Sathyajith M S2cdab0a2018-02-13 19:36:28 -060077
Sivas SRRa0113482018-02-22 22:27:05 -060078 ${BROWSER_ID}= Open Browser ${obmc_gui_url} ${browser_type}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060079 Maximize Browser Window
80 Set Global Variable ${BROWSER_ID}
81
82Launch Headless Browser
83 [Documentation] Launch headless browser.
Rahul Maheshwaridd38aef2018-11-15 23:33:10 -060084 [Arguments] ${URL}=${obmc_gui_url} ${browser}=${GUI_BROWSER}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060085
Rahul Maheshwari79e276c2018-06-11 01:23:15 -050086 # Description of argument(s):
87 # URL Openbmc GUI URL to be open
88 # (e.g. https://openbmc-test.mybluemix.net/#/login).
89 # browser Browser to open given URL in headless way
90 # (e.g. gc for google chrome, ff for firefox).
91
92 Start Virtual Display
93 ${browser_ID}= Open Browser ${URL}
Sathyajith M S4f26ae72018-01-16 04:45:05 -060094 Set Window Size 1920 1080
95
Rahul Maheshwari79e276c2018-06-11 01:23:15 -050096 [Return] ${browser_ID}
97
Sathyajith M S4f26ae72018-01-16 04:45:05 -060098Login OpenBMC GUI
99 [Documentation] Perform login to open BMC GUI.
100 [Arguments] ${username}=${OPENBMC_USERNAME}
101 ... ${password}=${OPENBMC_PASSWORD}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600102
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600103 # Description of argument(s):
104 # username The username.
105 # password The password.
106
Sivas SRRc70e9ae2018-02-14 23:53:49 -0600107 Go To ${obmc_gui_url}
Sivas SRRa6925352018-02-19 08:59:03 -0600108 Wait Until Element Is Enabled ${xpath_textbox_hostname}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600109 Input Text ${xpath_textbox_hostname} ${OPENBMC_HOST}
110 Input Text ${xpath_textbox_username} ${username}
111 Input Password ${xpath_textbox_password} ${password}
Sivas SRRffa42692018-01-17 05:17:35 -0600112 Click Element login__submit
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600113 Wait Until Element Is Enabled ${xpath_button_logout}
Sivas SRRffa42692018-01-17 05:17:35 -0600114 Page Should Contain Server information
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600115
116
117Test Setup Execution
118 [Documentation] Verify all the preconditions to be tested.
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600119 [Arguments] ${obmc_test_setup_state}=${OBMC_PowerOff_state}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600120
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600121 # Description of argument(s):
122 # obmc_test_setup The OpenBMC required state.
123
Michael Walshc108e422019-03-28 12:27:18 -0500124 Print Timen ${TEST NAME} ==> [STARTED]
Rahul Maheshwari7872f052018-06-19 01:12:34 -0500125 Launch Browser And Login OpenBMC GUI
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600126 Log To Console Verifying the system state and stablity...
Rahul Maheshwari8b5b5a42018-11-30 01:41:35 -0600127
Anusha Dathatrif7a407c2019-07-22 00:59:38 -0500128 Click Element ${xpath_select_server_power}
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500129 Wait Until Page Does Not Contain Unreachable
Rahul Maheshwari8b5b5a42018-11-30 01:41:35 -0600130 ${obmc_current_state}= Get Text ${xpath_power_indicator}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600131 Rpvars obmc_current_state
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600132
133 ${obmc_state_status}= Run Keyword And Return Status
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600134 ... Should Contain ${obmc_current_state} ${obmc_test_setup_state}
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600135 Return From Keyword If '${obmc_state_status}' == 'True'
136
137 ${obmc_standby_state}= Run Keyword And Return Status
138 ... Should Contain ${obmc_current_state} ${obmc_standby_state}
139
140 Run Keyword If '${obmc_standby_state}' == 'True'
141 ... Reboot OpenBMC
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600142 Run Keyword If '${obmc_test_setup_state}' == '${obmc_PowerRunning_state}'
Rahul Maheshwari1ea8fec2018-12-07 12:42:04 -0600143 ... Run Keywords Power On OpenBMC AND
144 ... Wait Until Keyword Succeeds 10 min 60 sec Is Host Running
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600145 Run Keyword If '${obmc_test_setup_state}' == '${obmc_PowerOff_state}'
Anusha Dathatri37159da2019-10-01 04:51:26 -0500146 ... Run Keywords Redfish.Login AND Redfish Power Off AND Redfish.Logout
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600147
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600148
149Power On OpenBMC
150 [Documentation] Power on the OBMC system.
151
152 Log To Console Power On OpenBMC...
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500153 Click Element ${xpath_select_server_power}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600154 Click Button ${xpath_select_button_power_on }
155 Wait OpenBMC To Become Stable ${obmc_running_state}
156
157Reboot OpenBMC
158 [Documentation] Rebooting the OBMC system.
159
160 Log To Console Reboting the OpenBMC...
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500161 Click Element ${xpath_select_server_power}
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600162 Click Button ${xpath_select_button_orderly_shutdown}
163 Click Yes Button ${xpath_select_button_orderly_shutdown_yes}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600164 Wait OpenBMC To Become Stable ${obmc_off_state}
165
166Wait OpenBMC To Become Stable
167 [Documentation] Power off the OBMC.
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600168 [Arguments] ${obmc_expected_state} ${retry_time}=15 min
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600169 ... ${retry_interval}=45 sec
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600170
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600171 # Description of argument(s):
172 # OBMC_expected_state The OBMC state which is required for test.
173 # retry_time Total wait time after executing the command.
174 # retry_interval Time interval for to keep checking with in the
175 # above total wait time.
176
177 Wait Until Keyword Succeeds ${retry_time} ${retry_interval}
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500178 ... Wait Until Element Contains ${xpath_select_server_power}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600179 ... ${obmc_expected_state}
180 Wait Until Keyword Succeeds ${retry_time} ${retry_interval}
181 ... Verify OpenBMC State From REST Interface ${obmc_expected_state}
182
183Verify OpenBMC State From REST Interface
184 [Documentation] Verify system state from REST Interface.
185 [Arguments] ${obmc_required_state}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600186
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600187 # Description of argument(s):
188 # obmc_required_state The OBMC state which is required for test.
189
190 ${obmc_current_state_REST}= Get Host State
191 Should Be Equal ${obmc_current_state_REST} ${obmc_required_state}
192
193Click Yes Button
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600194 [Documentation] Click the 'Yes' button.
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600195 [Arguments] ${xpath_button_yes}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600196
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600197 # Description of argument(s):
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600198 # xpath_button_yes The xpath of 'Yes' button.
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600199
200 Click Button ${xpath_button_yes}
201
202LogOut OpenBMC GUI
203 [Documentation] Log out of OpenBMC GUI.
204 SSHLibrary.Close All Connections
Rahul Maheshwari31b3c432020-06-26 05:24:13 -0500205 Click Button ${xpath_button_user_action}
Rahul Maheshwarid36b6ac2018-06-19 01:44:06 -0500206 Click Element ${xpath_button_logout}
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600207 Wait Until Page Contains Element ${xpath_button_login}
208
209Test Teardown Execution
210 [Documentation] Do final closure activities of test case execution.
Michael Walshc108e422019-03-28 12:27:18 -0500211 Print Pgm Footer
Sathyajith M S4f26ae72018-01-16 04:45:05 -0600212 Print Dashes 0 100 1 =
Rahul Maheshwaricfdec852018-11-30 03:44:49 -0600213 Close Browser
Sivas SRRffa42692018-01-17 05:17:35 -0600214
Rahul Maheshwari1b5369b2018-06-11 00:57:03 -0500215
Sivas SRRffa42692018-01-17 05:17:35 -0600216Open Browser With URL
217 [Documentation] Open browser with specified URL and returns browser id.
Rahul Maheshwaridd38aef2018-11-15 23:33:10 -0600218 [Arguments] ${URL} ${browser}=ff ${mode}=${GUI_MODE}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600219
Sivas SRRffa42692018-01-17 05:17:35 -0600220 # Description of argument(s):
221 # URL Openbmc GUI URL to be open
Rahul Maheshwari79e276c2018-06-11 01:23:15 -0500222 # (e.g. https://openbmc-test.mybluemix.net/#/login).
223 # browser Browser used to open above URL
224 # (e.g. gc for google chrome, ff for firefox).
225 # mode Browser opening mode(e.g. headless, header).
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600226
Rahul Maheshwari79e276c2018-06-11 01:23:15 -0500227 ${browser_ID}= Run Keyword If '${mode}' == 'headless'
228 ... Launch Headless Browser ${URL} ${browser}
229 ... ELSE Open Browser ${URL} ${browser}
230
Sivas SRRffa42692018-01-17 05:17:35 -0600231 [Return] ${browser_ID}
232
Rahul Maheshwari1b5369b2018-06-11 00:57:03 -0500233
Sivas SRRffa42692018-01-17 05:17:35 -0600234Controller Server Power Click Button
235 [Documentation] Click main server power in the header section.
236 [Arguments] ${controller_element}
Sathyajith M S2cdab0a2018-02-13 19:36:28 -0600237
Sivas SRRffa42692018-01-17 05:17:35 -0600238 # Description of argument(s):
239 # controller_element Server power controller element
240 # (e.g. power__power-on.)
241
Rahul Maheshwaridbbf1792018-10-31 05:36:29 -0500242 Click Element ${xpath_select_server_power}
Sivas SRRffa42692018-01-17 05:17:35 -0600243 Wait Until Element Is Visible ${controller_element}
244 Page Should Contain Button ${controller_element}
245 Click Element ${controller_element}
246
Sivas SRRffa42692018-01-17 05:17:35 -0600247
248GUI Power On
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600249 [Documentation] Power on the host using GUI.
Sivas SRRffa42692018-01-17 05:17:35 -0600250
Sivas SRRffa42692018-01-17 05:17:35 -0600251 Controller Server Power Click Button power__power-on
Anusha Dathatri7ea44c12019-09-04 09:28:38 -0500252 Wait Until Page Contains Running timeout=30s
Sivas SRRffa42692018-01-17 05:17:35 -0600253
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600254Verify Display Content
255 [Documentation] Verify text content display.
256 [Arguments] ${display_text}
257
258 # Description of argument(s):
259 # display_text The text which is expected to be found on the web page.
260
261 Page Should Contain ${display_text}
262
Sathyajith M Sf52d6fc2018-01-24 10:11:18 -0600263
264Verify Warning Message Display Text
265 [Documentation] Verify the warning message display text.
266 [Arguments] ${xpath_text_message} ${text_message}
267
268 # xpath_text_message Xpath of warning message display.
269 # text_message Content of the display message info.
270
Anusha Dathatrif93a5c42019-07-24 05:29:44 -0500271 Element Should Contain ${xpath_text_message} ${text_message}
Sivas SRRca534e62018-02-20 02:22:02 -0600272
273
274Expected Initial Test State
275 [Documentation] Power on the host if "Running" expected, Power off the
276 ... host if "Off" expected as per the requirement of initial test state.
277 [Arguments] ${expectedState}
278 # Description of argument(s):
279 # expectedState Test initial host state.
280
281 Run Keyword If '${expectedState}' == 'Running'
Rahul Maheshwari23491692018-11-09 03:42:41 -0600282 ... REST Power On stack_mode=skip quiet=1
Sivas SRRca534e62018-02-20 02:22:02 -0600283
284 Run Keyword If '${expectedState}' == 'Off'
Rahul Maheshwari23491692018-11-09 03:42:41 -0600285 ... REST Power Off stack_mode=skip quiet=1
Sivas SRR008dcc62018-02-27 06:34:56 -0600286
287Launch Browser And Login OpenBMC GUI
288 [Documentation] Launch browser and log into openbmc GUI.
289
290 Open Browser With URL ${obmc_gui_url}
291 Login OpenBMC GUI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD}
292
293Logout And Close Browser
294 [Documentation] Logout from openbmc application and close the browser.
295
Rahul Maheshwari31b3c432020-06-26 05:24:13 -0500296 Click Button ${xpath_button_user_action}
297 Click Button ${xpath_button_logout}
Sivas SRR008dcc62018-02-27 06:34:56 -0600298 Close Browser
Rahul Maheshwarif3fa6742020-05-18 06:24:04 -0500299