1*** Settings ***
2
3Documentation  Test OpenBMC GUI "Overview" menu.
4
5Resource        ../../lib/gui_resource.robot
6Resource        ../../../lib/logging_utils.robot
7Resource        ../../../lib/list_utils.robot
8Resource        ../../../lib/bmc_network_utils.robot
9
10Library         String
11
12Suite Setup     Run Keywords  Launch Browser And Login GUI  AND  Redfish.Login
13Suite Teardown  Run Keywords  Close Browser  AND  Redfish.Logout
14Test Setup      Test Setup Execution
15
16
17*** Variables ***
18
19${xpath_overview_page_header}                    //h1[contains(text(), "Overview")]
20${xpath_server_information_view_more_button}     (//*[text()="View more"])[1]
21${xpath_firmware_information_view_more_button}   (//*[text()="View more"])[2]
22${xpath_network_information_view_more_button}    (//*[text()="View more"])[3]
23${xpath_power_information_view_more_button}      (//*[text()="View more"])[4]
24${xpath_event_logs_view_more_button}             (//*[text()="View more"])[5]
25${xpath_inventory_and_leds_view_more_button}     (//*[text()="View more"])[6]
26${xpath_launch_host_console}                     //*[@data-test-id='overviewQuickLinks-button-solConsole']
27${xpath_led_button}                              //*[@data-test-id='overviewInventory-checkbox-identifyLed']
28${view_all_Dumps}                                (//*[text()="View more"])[7]
29
30*** Test Cases ***
31
32Verify Existence Of All Sections In Overview Page
33    [Documentation]  Verify existence of all sections in Overview page.
34    [Tags]  Verify_Existence_Of_All_Sections_In_Overview_Page
35
36    Page Should Contain  BMC date and time
37    Page Should Contain  Firmware information
38    Page Should Contain  Server information
39    Wait Until Page Contains  Network information  timeout=10
40    Page Should Contain  Power information
41    Page Should Contain  Event logs
42    Page Should Contain  Inventory and LEDs
43    Page Should Contain  Dumps
44
45
46Verify Network Information In Overview Page
47    [Documentation]  Verify values under network information section.
48    [Tags]  Verify_Network_Information_In_Overview_Page
49
50    ${hostname}=  Get BMC Hostname
51    Page Should Contain  ${hostname}
52
53    # Get all IP addresses and prefix lengths on system.
54
55    ${resp}=  Redfish.Get Attribute  /redfish/v1/Managers/bmc/EthernetInterfaces/eth0  IPv4StaticAddresses
56    ${ip_addr}=  Set Variable  ${resp[0]['Address']}
57    Page Should Contain  ${ip_addr}
58
59
60Verify Server Information Section
61    [Documentation]  Verify values under server information section in overview page.
62    [Tags]  Verify_Server_Information_Section
63
64    ${redfish_machine_model}=  Redfish.Get Attribute  /redfish/v1/Systems/system/  Model
65    Page Should Contain  ${redfish_machine_model}
66
67    ${redfish_serial_number}=  Redfish.Get Attribute  /redfish/v1/Systems/system/  SerialNumber
68    Page Should Contain  ${redfish_serial_number}
69
70    ${redfish_motherboard_manufacturer}=  Redfish.Get Attribute
71    ...  /redfish/v1/Systems/system/  Manufacturer
72
73    Page Should Contain  ${redfish_motherboard_manufacturer}
74
75
76Verify BMC Information Section
77    [Documentation]  Verify BMC information section in overview page.
78    [Tags]  Verify_BMC_Information_Section
79
80    ${firmware_version}=  Redfish Get BMC Version
81    Page Should Contain  ${firmware_version}
82
83
84Verify Edit Network Setting Button
85    [Documentation]  Verify navigation to network setting page after clicking the button in overview page.
86    [Tags]  Verify_Edit_Network_Setting_Button
87
88    Click Element  ${xpath_network_information_view_more_button}
89    Wait Until Page Contains Element  ${xpath_network_heading}
90
91
92Verify Event Under High Priority Events Section
93    [Documentation]  Verify event under high priority events section in case of any event.
94    [Tags]  Verify_Event_Under_High_Priority_Events_Section
95
96    Redfish Purge Event Log
97    Click Element  ${xpath_refresh_button}
98    Generate Test Error Log
99    Click Element  ${xpath_refresh_button}
100    Wait Until Page Contains  xyz.openbmc_project.Common.Error.InternalFailure  timeout=30s
101
102
103Verify View More Event Logs Button
104    [Documentation]  Verify view more event log button in overview page.
105    [Tags]  Verify_View_More_Event_Logs_Button
106
107    Generate Test Error Log
108    Page Should Contain Element  ${xpath_event_logs_view_more_button}  timeout=30
109    Click Element  ${xpath_event_logs_view_more_button}
110    Wait Until Page Contains Element  ${xpath_event_logs_heading}  timeout=30
111
112
113Verify Host Console Button In Overview Page
114    [Documentation]  Click host console button and verify page navigation to host console page.
115    [Tags]  Verify_Host_Console_Button_In_Overview_Page
116
117    Click Element  ${xpath_launch_host_console}
118    Wait Until Page Contains Element  ${xpath_host_console_heading}
119
120
121Verify Server LED Turn On
122    [Documentation]  Turn on server LED via GUI and verify its status via Redfish.
123    [Tags]  Verify_Server_LED_Turn_On
124
125    # Turn Off the server LED via Redfish and refresh GUI.
126    Set IndicatorLED State  Off
127    Refresh GUI
128
129    # Turn ON the LED via GUI.
130    Click Element  ${xpath_led_button}
131
132    # Cross check that server LED ON state via Redfish.
133    Verify Identify LED State Via Redfish  Lit
134
135
136Verify Server LED Turn Off
137    [Documentation]  Turn off server LED via GUI and verify its status via Redfish.
138    [Tags]  Verify_Server_LED_Turn_Off
139
140    # Turn On the server LED via Redfish and refresh GUI.
141    Set IndicatorLED State  Lit
142    Refresh GUI
143
144    # Turn OFF the LED via GUI.
145    Click Element At Coordinates  ${xpath_led_button}  0  0
146
147    # Cross check that server LED off state via Redfish.
148    Verify Identify LED State Via Redfish  Off
149
150
151Verify BMC Time In Overview Page
152    [Documentation]  Verify that BMC date from GUI matches with BMC time via Redfish.
153    [Tags]  Verify_BMC_Time_In_Overview_Page
154
155    ${date_time}=  Redfish.Get Attribute  ${REDFISH_BASE_URI}Managers/bmc  DateTime
156    ${converted_date}=  Convert Date  ${date_time}  result_format=%Y-%m-%d
157
158    Page Should Contain  ${converted_date}
159
160
161Verify BMC Information At Host Power Off State
162    [Documentation]  Verify that BMC information is displayed at host power off state.
163    [Tags]  Verify_BMC_Information_At_Host_Power_Off_State
164
165    Redfish Power Off  stack_mode=skip
166    ${firmware_version}=  Redfish Get BMC Version
167    Page Should Contain  ${firmware_version}
168
169
170Verify View More Button For Dumps
171    [Documentation]  Verify view more button for dumps button in overview page.
172    [Tags]  Verify_View_More_Button_For_Dumps
173
174    Wait Until Page Contains Element  ${view_all_Dumps}  timeout=30
175    Click Element  ${view_all_Dumps}
176    Wait Until Page Contains Element  ${xpath_dumps_header}  timeout=30
177
178
179Verify View More Button Under Server Information Section
180    [Documentation]  Verify view more button under server information section in overview page.
181    [Tags]  Verify_View_More_Button_Under_Server_Information_Section
182
183    Wait Until Page Contains Element  ${xpath_server_information_view_more_button}  timeout=30
184    Click Element   ${xpath_server_information_view_more_button}
185    Wait Until Page Contains Element  ${xpath_inventory_and_leds_heading}  timeout=30
186
187
188Verify View More Button Under Firmware Information Section
189    [Documentation]  Verify view more button under firmware information section in overview page.
190    [Tags]  Verify_View_More_Button_Under_Firmware_Information_Section
191
192    Wait Until Page Contains Element  ${xpath_firmware_information_view_more_button}  timeout=30
193    Click Element  ${xpath_firmware_information_view_more_button}
194    Wait Until Page Contains Element  ${xpath_firmware_heading}  timeout=30
195
196
197Verify View More Button Under Network Information Section
198    [Documentation]  Verify view more button under network information section in overview page.
199    [Tags]  Verify_View_More_Button_Under_Network_Information_Section
200
201    Wait Until Page Contains Element  ${xpath_network_information_view_more_button}  timeout=30
202    Click Element  ${xpath_network_information_view_more_button}
203    Wait Until Page Contains Element  ${xpath_network_heading}  timeout=30
204
205
206Verify View More Button Under Power Information Section
207    [Documentation]  Verify view more button under power information section in overview page.
208    [Tags]  Verify_View_More_Button_Under_Power_Information_Section
209
210    Wait Until Page Contains Element  ${xpath_power_information_view_more_button}  timeout=30
211    Click Element  ${xpath_power_information_view_more_button}
212    Wait Until Page Contains Element  ${xpath_power_heading}  timeout=30
213
214
215Verify View More Button Under Event Logs Section
216    [Documentation]  Verify view more button under event logs section in overview page.
217    [Tags]  Verify_View_More_Button_Under_Event_Logs_Section
218
219    Wait Until Page Contains Element  ${xpath_event_logs_view_more_button}  timeout=30
220    Click Element  ${xpath_event_logs_view_more_button}
221    Wait Until Page Contains Element  ${xpath_event_logs_heading}  timeout=30
222
223
224Verify View More Button Under Inventory And LEDs Section
225    [Documentation]  Verify view more button under inventory and leds section in overview page.
226    [Tags]  Verify_View_More_Button_Under_Inventory_And_LEDs_Section
227
228    Wait Until Page Contains Element  ${xpath_inventory_and_leds_view_more_button}  timeout=30
229    Click Element  ${xpath_inventory_and_leds_view_more_button}
230    Wait Until Page Contains Element  ${xpath_inventory_and_leds_heading}  timeout=30
231
232
233*** Keywords ***
234
235Test Setup Execution
236    [Documentation]  Do test case setup tasks.
237
238    Click Element  ${xpath_overview_menu}
239    Wait Until Page Contains Element  ${xpath_overview_page_header}
240    Wait Until Element Is Not Visible   ${xpath_page_loading_progress_bar}  timeout=30
241
242
243Verify Identify LED State Via Redfish
244    [Documentation]  Verify that Redfish identify LED system with given state.
245    [Arguments]  ${expected_state}
246    # Description of argument(s):
247    # expected_state    Expected value of Identify LED.
248
249    ${led_state}=  Redfish.Get Attribute  /redfish/v1/Systems/system  IndicatorLED
250    Should Be True  '${led_state}' == '${expected_state}'
251
252
253Set IndicatorLED State
254    [Documentation]  Perform redfish PATCH operation.
255    [Arguments]  ${led_state}  ${expect_resp_code}=[200, 204]
256    # Description of argument(s):
257    # led_state            IndicatorLED state to "off", "Lit" etc.
258    # expect_resp_code     Expected HTTPS response code. Default [200, 204]
259
260
261    Redfish.Patch  /redfish/v1/Systems/system  body={"IndicatorLED": "${led_state}"}
262    ...  valid_status_codes=${expect_resp_code}
263
264