blob: 2bbfd10cebb0fa063df95377aed519261d7b2fb7 [file] [log] [blame]
meghagn62945e22021-10-04 02:33:17 -05001*** Settings ***
2
3Documentation Test OpenBMC GUI "SNMP Alerts" sub-menu of "Settings".
4
5Resource ../../lib/gui_resource.robot
Rahul Maheshwaric27708e2021-12-21 06:35:27 -06006Resource ../../../lib/snmp/resource.robot
7Resource ../../../lib/snmp/redfish_snmp_utils.robot
meghagn705c3642021-10-12 04:14:02 -05008
meghagn62945e22021-10-04 02:33:17 -05009Suite Setup Suite Setup Execution
10Suite Teardown Close Browser
11
12
13*** Variables ***
14
meghagn705c3642021-10-12 04:14:02 -050015${xpath_snmp_alerts_sub_menu} //*[@data-test-id='nav-item-snmp-alerts']
rramyasr-ine71ba072022-06-13 11:12:06 -050016${xpath_snmp_alerts_heading} //h1[text()="SNMP alerts"]
meghagn705c3642021-10-12 04:14:02 -050017${xpath_select_all_snmp} //*[@data-test-id='snmpAlerts-checkbox-selectAll']
18${xpath_add_destination} //button[contains(text(),'Add destination')]
19${xpath_snmp_alert_destination_heading} //h5[contains(text(),'Add SNMP alert destination')]
20${xpath_ip_address_input_button} //*[@data-test-id='snmpAlerts-input-ipAddress']
21${xpath_port_optional_input_button} //*[@data-test-id='snmpAlerts-input-port']
22${xpath_snmp_add_destination_button} //*[@data-test-id='snmpAlerts-button-ok']
23${xpath_cancel_button} //button[contains(text(),'Cancel')]
24${xpath_delete_button} //*[@data-test-id='snmpAlerts-button-deleteRow-undefined']
25${xpath_delete_destination} //button[contains(text(),'Delete destination')]
meghagn62945e22021-10-04 02:33:17 -050026
Megha GNc7bcf7c2022-08-04 05:30:58 -050027${snmp_page_heading} SNMP alerts
28${invalid_port_error} Value must be between 0 65535
29${invalid_destination_error} Error in adding SNMP alert destination
30
meghagn62945e22021-10-04 02:33:17 -050031
32*** Test Cases ***
33
34Verify Navigation To SNMP Alerts Page
35 [Documentation] Verify navigation to SNMP alerts page.
36 [Tags] Verify_Navigation_To_SNMP_Alerts_Page
37
38 Page Should Contain Element ${xpath_snmp_alerts_heading}
39
40
41Verify Existence Of All Input Boxes In SNMP Alerts Page
42 [Documentation] Verify existence of all sections in SNMP alerts page.
43 [Tags] Verify_Existence_Of_All_Input_Boxes_In_SNMP_Alerts_Page
44
meghagn705c3642021-10-12 04:14:02 -050045 Page Should Contain Checkbox ${xpath_select_all_snmp}
meghagn62945e22021-10-04 02:33:17 -050046
47
48Verify Existence Of All Buttons In SNMP Alerts Page
49 [Documentation] Verify existence of all buttons in SNMP alerts page.
50 [Tags] Verify_Existence_Of_All_Buttons_In_SNMP_Alerts_Page
51
52 Page should Contain Button ${xpath_add_destination}
53
54
55Verify Existence Of All Fields In Add Destination
56 [Documentation] Verify existence of all buttons and fields in add destination page.
George Keishingd6a77972022-01-31 12:50:29 -060057 [Tags] Verify_Existence_Of_All_Fields_In_Add_Destination
meghagn705c3642021-10-12 04:14:02 -050058 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND
59 ... Wait Until Keyword Succeeds 10 sec 5 sec
Megha GNc7bcf7c2022-08-04 05:30:58 -050060 ... Refresh GUI And Verify Element Value ${xpath_snmp_alerts_heading} ${snmp_page_heading}
meghagn62945e22021-10-04 02:33:17 -050061
62 Click Element ${xpath_add_destination}
63 Wait Until Page Contains Element ${xpath_snmp_alert_destination_heading}
64 Page Should Contain Element ${xpath_ip_address_input_button}
65 Page Should Contain Element ${xpath_port_optional_input_button}
66 Page Should Contain Element ${xpath_cancel_button}
67 Page Should Contain Element ${xpath_snmp_add_destination_button}
68
69
George Keishingd6a77972022-01-31 12:50:29 -060070Configure SNMP Settings On BMC With Non Default Port Via GUI And Verify
meghagn705c3642021-10-12 04:14:02 -050071 [Documentation] Configure SNMP settings on BMC with non default port via GUI and verify.
72 [Tags] Configure_SNMP_Settings_On_BMC_With_Non_Default_Port_Via_GUI_And_Verify
meghagnfe16be92022-01-28 05:50:19 -060073 [Teardown] Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
meghagn705c3642021-10-12 04:14:02 -050074
75 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
76
meghagna80e4d42021-12-14 05:46:15 -060077 Wait Until Page Contains ${SNMP_MGR1_IP} timeout=45s
meghagn705c3642021-10-12 04:14:02 -050078
79 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
Megha G N2b98bc02023-01-20 02:01:48 -060080
meghagn705c3642021-10-12 04:14:02 -050081
meghagnc2436bc2021-10-11 03:49:21 -050082Configure SNMP Settings On BMC Via GUI And Verify
83 [Documentation] Configure SNMP settings on BMC via GUI and verify.
84 [Tags] Configure_SNMP_Settings_On_BMC_Via_GUI_And_Verify
meghagnfe16be92022-01-28 05:50:19 -060085 [Teardown] Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
meghagnc2436bc2021-10-11 03:49:21 -050086
87 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
88
meghagna80e4d42021-12-14 05:46:15 -060089 Wait Until Page Contains ${SNMP_MGR1_IP} timeout=45s
meghagnc2436bc2021-10-11 03:49:21 -050090
91 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
92
93
meghagnd3b19ac2021-10-22 01:09:25 -050094Configure SNMP Settings On BMC With Empty Port Via GUI And Verify
95 [Documentation] Configure SNMP settings on BMC with empty port via GUI and verify.
96 [Tags] Configure_SNMP_Settings_On_BMC_With_Empty_Port_Via_GUI_And_Verify
meghagnfe16be92022-01-28 05:50:19 -060097 [Teardown] Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
meghagnd3b19ac2021-10-22 01:09:25 -050098
99 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${empty_port}
100
meghagna80e4d42021-12-14 05:46:15 -0600101 Wait Until Page Contains ${SNMP_MGR1_IP} timeout=45s
meghagnd3b19ac2021-10-22 01:09:25 -0500102
103 # SNMP Manager IP is set with default port number when no port number is provided.
104 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
105
106
107Configure Invalid SNMP Settings On BMC Via GUI And Verify
108
109 [Documentation] Configure invalid SNMP settings on BMC via GUI and verify.
110 [Tags] Configure_Invalid_SNMP_Settings_On_BMC_Via_GUI_And_Verify
111 [Template] Configure SNMP Manager On BMC With Invalid Setting Via GUI And Verify
112
113 # snmp_manager_ip snmp_manager_port Expected status
Megha GNc7bcf7c2022-08-04 05:30:58 -0500114 ${SNMP_MGR1_IP} ${out_of_range_port} ${invalid_port_error}
115 ${SNMP_MGR1_IP} ${alpha_port} ${invalid_port_error}
116 ${SNMP_MGR1_IP} ${negative_port} ${invalid_port_error}
Megha G N999964d2022-12-06 04:38:10 -0600117 ${SNMP_MGR1_IP} ${alphanumeric_port} ${invalid_port_error}
Megha GNc7bcf7c2022-08-04 05:30:58 -0500118 ${out_of_range_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error}
119 ${alpha_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error}
Megha G N999964d2022-12-06 04:38:10 -0600120 ${negative_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error}
121 ${empty_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error}
Megha G N2b98bc02023-01-20 02:01:48 -0600122 ${less_octet_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error}
meghagnd3b19ac2021-10-22 01:09:25 -0500123
124
meghagn5a4ddb02021-11-09 01:49:23 -0600125Configure Multiple SNMP Managers On BMC Via GUI And Verify
126 [Documentation] Configure multiple SNMP managers on BMC via GUI and verify.
George Keishingd6a77972022-01-31 12:50:29 -0600127 [Tags] Configure_Multiple_SNMP_Managers_On_BMC_Via_GUI_And_Verify
meghagn5a4ddb02021-11-09 01:49:23 -0600128 [Template] Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
129
130 # snmp_manager_ip snmp_port
131 ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
132 ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
133
134
135Configure Multiple SNMP Managers With Non Default Port Via GUI And Verify
136 [Documentation] Configure multiple SNMP managers with non-default port via GUI and verify.
137 [Tags] Configure_Multiple_SNMP_Managers_With_Non_Default_Port_Via_GUI_And_Verify
138 [Template] Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
139
140 # snmp_manager_ip snmp_port
141 ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
142 ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
143
144
145Configure Multiple SNMP Managers With Different Ports Via GUI And Verify
146 [Documentation] Configure multiple SNMP managers with different ports via GUI and verify.
147 [Tags] Configure_Multiple_SNMP_Managers_With_Different_Ports_Via_GUI_And_Verify
148 [Template] Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
149
150 # snmp_manager_ip snmp_port
151 ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
152 ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
153 ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
154
155
meghagnfe16be92022-01-28 05:50:19 -0600156Configure Multiple SNMP Managers On BMC Via GUI And Verify Persistency On BMC Reboot
157 [Documentation] Login GUI SNMP alerts page and
158 ... add multiple SNMP Managers on BMC via GUI and verify persistency on BMC reboot.
159 [Tags] Configure_Multiple_SNMP_Managers_On_BMC_Via_GUI_And_Verify_Persistency_On_BMC_Reboot
160 [Teardown] Run Keywords Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
161 ... AND Delete SNMP Manager Via GUI ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
162
163 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
164 Wait Until Page Contains ${SNMP_MGR1_IP} timeout=45s
165
166 Configure SNMP Manager Via GUI ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
167 Wait Until Page Contains ${SNMP_MGR2_IP} timeout=45s
168
169 # Reboot BMC and check persistency SNMP manager.
170 Reboot BMC via GUI
171
172 Suite Setup Execution
Megha GNc7bcf7c2022-08-04 05:30:58 -0500173 Wait Until Page Contains ${snmp_page_heading} timeout=1min
meghagnfe16be92022-01-28 05:50:19 -0600174
175 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
176 Verify SNMP Manager Configured On BMC ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
177
178
meghagn725ccdd2022-02-09 04:55:52 -0600179Configure SNMP Manager Via GUI And Verify SNMP Trap
180 [Documentation] Login GUI SNMP alerts page and add SNMP manager via GUI
181 ... and generate error on BMC and verify trap and its fields.
182 [Tags] Configure_SNMP_Manager_Via_GUI_And_Verify_SNMP_Trap
183 [Template] Create Error On BMC And Verify Trap On Default Port
184 [Teardown] Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
185
186 # event_log expected_error
187
188 # Generate internal failure error.
189 ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
190
191 # Generate timeout error.
192 ${CMD_FRU_CALLOUT} ${SNMP_TRAP_BMC_CALLOUT_ERROR}
193
194 # Generate informational error.
195 ${CMD_INFORMATIONAL_ERROR} ${SNMP_TRAP_BMC_INFORMATIONAL_ERROR}
196
197
meghagn62945e22021-10-04 02:33:17 -0500198*** Keywords ***
199
200Suite Setup Execution
201 [Documentation] Do test case setup tasks.
202
203 Launch Browser And Login GUI
204
205 Click Element ${xpath_settings_menu}
206 Click Element ${xpath_snmp_alerts_sub_menu}
207 Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain snmp-alerts
meghagn705c3642021-10-12 04:14:02 -0500208
209
210Configure SNMP Manager Via GUI
211 [Documentation] Configure SNMP manager via GUI.
212 [Arguments] ${snmp_ip} ${port}
213
214 # Description of argument(s):
215 # snmp_ip SNMP manager IP address.
216 # port SNMP manager port.
217
218 Click Element ${xpath_add_destination}
219 Wait Until Page Contains Element ${xpath_snmp_alert_destination_heading}
220 Input Text ${xpath_ip_address_input_button} ${snmp_ip}
221 Wait Until Keyword Succeeds 30 sec 5 sec Get Value ${xpath_ip_address_input_button}
222 Input Text ${xpath_port_optional_input_button} ${port}
223 Click Element ${xpath_snmp_add_destination_button}
224
225
226Delete SNMP Manager Via GUI
227 [Documentation] Delete SNMP manager via GUI.
meghagnfe16be92022-01-28 05:50:19 -0600228 [Arguments] ${snmp_mgr_ip} ${snmp_mgr_port}
meghagn705c3642021-10-12 04:14:02 -0500229
meghagnfe16be92022-01-28 05:50:19 -0600230 # Description of argument(s):
231 # snmp_mgr_ip SNMP manager IP address.
232 # snmp_mgr_port SNMP manager port.
233
234 Wait Until Page Contains ${snmp_mgr_ip} ${snmp_mgr_port}
meghagn705c3642021-10-12 04:14:02 -0500235 Click Element At Coordinates ${xpath_select_all_snmp} 0 0
236 Wait Until Keyword Succeeds 30 sec 5 sec Click Element ${xpath_delete_button}
237 Wait Until Page Contains Delete SNMP alert destination
238 Click Element ${xpath_delete_destination}
meghagna80e4d42021-12-14 05:46:15 -0600239 Wait Until Page Contains Successfully deleted SNMP alert destination timeout=45s
meghagnc2436bc2021-10-11 03:49:21 -0500240 Wait Until Keyword Succeeds 30 sec 10 sec Refresh GUI And Verify Element Value
Megha GNc7bcf7c2022-08-04 05:30:58 -0500241 ... ${xpath_snmp_alerts_heading} ${snmp_page_heading}
meghagnd3b19ac2021-10-22 01:09:25 -0500242
243
244Configure SNMP Manager On BMC With Invalid Setting Via GUI And Verify
245
246 [Documentation] Configure SNMP manager on BMC with invalid setting via GUI and verify.
247 [Arguments] ${snmp_manager_ip} ${snmp_manager_port} ${expected_error}
Megha GNc7bcf7c2022-08-04 05:30:58 -0500248 [Teardown] Run Keyword If '${expected_error}' == '${invalid_port_error}'
249 ... Click Element ${xpath_cancel_button}
meghagnd3b19ac2021-10-22 01:09:25 -0500250
251 # Description of argument(s):
252 # snmp_manager_ip SNMP manager IP address.
253 # snmp_manager_port SNMP manager port.
254 # expected_error Expected error optionally provided in testcase
255 # .... (e.g. Invalid format / Value must be between 0 – 65535).
256
257 Configure SNMP Manager Via GUI ${snmp_manager_ip} ${snmp_manager_port}
258 Wait Until Page Contains ${expected_error}
259 ${status}= Run Keyword And Return Status
260 ... Verify SNMP Manager Configured On BMC ${snmp_manager_ip} ${snmp_manager_port}
261 Should Be Equal As Strings ${status} False
262 ... msg=BMC is allowing to configure with invalid SNMP settings.
meghagn5a4ddb02021-11-09 01:49:23 -0600263
264
265Configure Multiple SNMP Managers On BMC With Valid Port Via GUI And Verify
266 [Documentation] Configure multiple SNMP managers on BMC with valid port value via GUI and verify.
267 [Arguments] ${snmp_ip_value} ${snmp_port_value}
meghagnfe16be92022-01-28 05:50:19 -0600268 [Teardown] Delete SNMP Manager Via GUI ${snmp_ip_value} ${snmp_port_value}
meghagn5a4ddb02021-11-09 01:49:23 -0600269
270 # Description of argument(s):
271 # snmp_ip_value SNMP manager IP address.
272 # snmp_port_value SNMP manager port.
273
274 Configure SNMP Manager Via GUI ${snmp_ip_value} ${snmp_port_value}
275 Verify SNMP Manager Configured On BMC ${snmp_ip_value} ${snmp_port_value}
meghagn725ccdd2022-02-09 04:55:52 -0600276
277
278Create Error On BMC And Verify Trap On Default Port
279 [Documentation] Generate error on BMC and verify if trap is sent to default port.
280 [Arguments] ${event_log}=${CMD_INTERNAL_FAILURE} ${expected_error}=${SNMP_TRAP_BMC_INTERNAL_FAILURE}
281
282 # Description of argument(s):
283 # event_log Event logs to be created.
284 # expected_error Expected error on SNMP.
285
286 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
287
288 Start SNMP Manager
289
290 # Generate error log.
291 BMC Execute Command ${event_log}
292
293 SSHLibrary.Switch Connection snmp_server
294 ${SNMP_LISTEN_OUT}= Read delay=1s
295
296 # Stop SNMP manager process.
297 SSHLibrary.Execute Command sudo killall snmptrapd
298
299 # Sample SNMP trap:
300 # 2021-06-16 07:05:29 xx.xx.xx.xx [UDP: [xx.xx.xx.xx]:58154->[xx.xx.xx.xx]:xxx]:
301 # DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2100473) 5:50:04.73
302 # SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1
303 # SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: 369 SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque:
304 # UInt64: 1397718405502468474 SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: 3
305 # SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING: "xxx.xx.xx Failure"
306
307 ${lines}= Split To Lines ${SNMP_LISTEN_OUT}
308 ${trap_info}= Get From List ${lines} -1
309 ${snmp_trap}= Split String ${trap_info} \t
310
311 Verify SNMP Trap ${snmp_trap} ${expected_error}