blob: c77bd010cf7e8869d96f130f26caaa4b04b7fd51 [file] [log] [blame]
*** Settings ***
Documentation This is a resource file of OpenBMC ASMI It contains the
... user-defined keywords which are available to all gui modules
Library String
Library Collections
Library DateTime
Library XvfbRobot
Library OperatingSystem
Library Selenium2Library 120 120
Library AngularJSLibrary
Library SSHLibrary 30 Seconds
Library Process
Library supporting_libs.py
Library ../../../lib/gen_print.py
Library ../../../lib/gen_robot_print.py
Library ../../../lib/gen_valid.py
Library ../../../lib/gen_robot_ssh.py
Library ../../../lib/bmc_ssh_utils.py
Resource ../../../lib/resource.txt
Resource ../../../lib/rest_client.robot
Resource ../../../lib/state_manager.robot
Variables ../data/resource_variables.py
*** Variables ***
${obmc_gui_url} http://localhost:8080/#/login
# Default Browser.
${default_browser} chrome
${obmc_PowerOff_state} Off
${obmc_PowerRunning_state} Running
${obmc_PowerQuiesced_state} Quiesced
*** Keywords ***
Launch OpenBMC GUI Browser
[Documentation] Launch the OpenBMC GUI URL on a browser.
# By default uses headless mode, otherwise, the GUI browser.
${op_system}= Get Operating System
Run Keyword If '${op_system}' == 'windows'
... Launch Browser in Windows Platform
... ELSE
... Launch Headless Browser
Get Operating System
[Documentation] Identify platform/OS.
${curdir_lower_case}= Convert To Lowercase ${CURDIR}
${windows_platform}= Run Keyword And Return Status
... Should Contain ${curdir_lower_case} c:\
${op_system}= Run Keyword If '${windows_platform}' == 'True'
... Set Variable windows
... ELSE
... Set Variable linux
[Return] ${op_system}
Launch Browser in Windows Platform
[Documentation] Open the browser with the URL and
... login on windows platform.
${BROWSER_ID}= Open Browser ${obmc_gui_url} ${default_browser}
Maximize Browser Window
Set Global Variable ${BROWSER_ID}
Launch Headless Browser
[Documentation] Launch headless browser.
Start Virtual Display 1920 1080
${BROWSER_ID}= Open Browser ${obmc_gui_url}
Set Global Variable ${BROWSER_ID}
Set Window Size 1920 1080
Login OpenBMC GUI
[Documentation] Perform login to open BMC GUI.
[Arguments] ${username}=${OPENBMC_USERNAME}
... ${password}=${OPENBMC_PASSWORD}
# Description of argument(s):
# username The username.
# password The password.
Go To ${obmc_gui_url}
Input Text ${xpath_textbox_hostname} ${OPENBMC_HOST}
Input Text ${xpath_textbox_username} ${username}
Input Password ${xpath_textbox_password} ${password}
Click Button ${xpath_button_login}
Wait Until Element Is Enabled ${xpath_button_logout}
Test Setup Execution
[Documentation] Verify all the preconditions to be tested.
[Arguments] ${obmc_test_setup_state}=NONE
# Description of argument(s):
# obmc_test_setup The OpenBMC required state.
Rprint Timen ${TEST NAME} ==> [STARTED]
Login OpenBMC GUI
Log To Console Verifying the system state and stablity...
${obmc_current_state}= Get Text ${xpath_display_server_power_status}
Rpvars obmc_current_state
${obmc_state}= Run Keyword And Return Status
... Should Contain ${obmc_current_state} ${obmc_test_setup_state}
Return From Keyword If '${obmc_state}' == 'True'
${obmc_quiesced_state}= Run Keyword And Return Status
... Should Contain ${obmc_current_state} ${obmc_quiesced_state}
Run Keyword If '${obmc_quiesced_state}' == 'True' Reboot OpenBMC
Run Keyword If '${obmc_test_setup_state}' == '${obmc_PowerRunning_state}'
... Power On OpenBMC
Run Keyword If '${obmc_test_setup_state}' == '${obmc_PowerOff_state}'
... Power Off OpenBMC
Power Off OpenBMC
[Documentation] Power off the OBMC system.
Log To Console Power Off OpenBMC...
Click Element ${xpath_display_server_power_status}
Execute JavaScript window.scrollTo(0, document.body.scrollHeight)
Click Button ${xpath_select_button_orderly_power_shutdown}
Click Yes Button ${xpath_select_button_orderly_power_shutdown_yes}
Wait OpenBMC To Become Stable ${obmc_off_state}
Power On OpenBMC
[Documentation] Power on the OBMC system.
Log To Console Power On OpenBMC...
Click Element ${xpath_display_server_power_status}
Click Button ${xpath_select_button_power_on }
Wait OpenBMC To Become Stable ${obmc_running_state}
Reboot OpenBMC
[Documentation] Rebooting the OBMC system.
Log To Console Reboting the OpenBMC...
Click Element ${xpath_display_server_power_status}
Click Button ${xpath_select_button_orderly_power_shutdown}
Click Yes Button ${xpath_select_button_orderly_power_shutdown_yes}
Wait OpenBMC To Become Stable ${obmc_off_state}
Wait OpenBMC To Become Stable
[Documentation] Power off the OBMC.
[Arguments] ${OBMC_expected_state} ${retry_time}=5 min
... ${retry_interval}=45 sec
# Description of argument(s):
# OBMC_expected_state The OBMC state which is required for test.
# retry_time Total wait time after executing the command.
# retry_interval Time interval for to keep checking with in the
# above total wait time.
Wait Until Keyword Succeeds ${retry_time} ${retry_interval}
... Wait Until Element Contains ${xpath_display_server_power_status}
... ${obmc_expected_state}
Wait Until Keyword Succeeds ${retry_time} ${retry_interval}
... Verify OpenBMC State From REST Interface ${obmc_expected_state}
Verify OpenBMC State From REST Interface
[Documentation] Verify system state from REST Interface.
[Arguments] ${obmc_required_state}
# Description of argument(s):
# obmc_required_state The OBMC state which is required for test.
${obmc_current_state_REST}= Get Host State
Should Be Equal ${obmc_current_state_REST} ${obmc_required_state}
Click Yes Button
[Documentation] Click the 'yes' button.
[Arguments] ${xpath_button_yes}
# Description of argument(s):
# xpath_button_yes The xpath of 'yes' button.
Click Button ${xpath_button_yes}
LogOut OpenBMC GUI
[Documentation] Log out of OpenBMC GUI.
SSHLibrary.Close All Connections
click button ${xpath_button_logout}
Wait Until Page Contains Element ${xpath_button_login}
Test Teardown Execution
[Documentation] Do final closure activities of test case execution.
Rprint Pgm Footer
Print Dashes 0 100 1 =
LogOut OpenBMC GUI