1*** Settings *** 2 3Documentation Test OpenBMC GUI "SNMP Alerts" sub-menu of "Settings". 4 5Resource ../../lib/gui_resource.robot 6Resource ../../../lib/snmp/resource.robot 7Resource ../../../lib/snmp/redfish_snmp_utils.robot 8 9Suite Setup Suite Setup Execution 10Suite Teardown Close Browser 11 12 13*** Variables *** 14 15${xpath_snmp_alerts_sub_menu} //*[@data-test-id='nav-item-snmp-alerts'] 16${xpath_snmp_alerts_heading} //h1[text()="SNMP alerts"] 17${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')] 26 27${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 31 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 45 Page Should Contain Checkbox ${xpath_select_all_snmp} 46 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. 57 [Tags] Verify_Existence_Of_All_Fields_In_Add_Destination 58 [Teardown] Run Keywords Click Button ${xpath_cancel_button} AND 59 ... Wait Until Keyword Succeeds 10 sec 5 sec 60 ... Refresh GUI And Verify Element Value ${xpath_snmp_alerts_heading} ${snmp_page_heading} 61 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 70Configure SNMP Settings On BMC With Non Default Port Via GUI And Verify 71 [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 73 [Teardown] Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} 74 75 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} 76 77 Wait Until Page Contains ${SNMP_MGR1_IP} timeout=45s 78 79 Redfish.Login 80 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} 81 Redfish.Logout 82 83Configure SNMP Settings On BMC Via GUI And Verify 84 [Documentation] Configure SNMP settings on BMC via GUI and verify. 85 [Tags] Configure_SNMP_Settings_On_BMC_Via_GUI_And_Verify 86 [Teardown] Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 87 88 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 89 90 Wait Until Page Contains ${SNMP_MGR1_IP} timeout=45s 91 92 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 93 94 95Configure SNMP Settings On BMC With Empty Port Via GUI And Verify 96 [Documentation] Configure SNMP settings on BMC with empty port via GUI and verify. 97 [Tags] Configure_SNMP_Settings_On_BMC_With_Empty_Port_Via_GUI_And_Verify 98 [Teardown] Delete SNMP Manager Via GUI ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 99 100 Configure SNMP Manager Via GUI ${SNMP_MGR1_IP} ${empty_port} 101 102 Wait Until Page Contains ${SNMP_MGR1_IP} timeout=45s 103 104 # SNMP Manager IP is set with default port number when no port number is provided. 105 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 106 107 108Configure Invalid SNMP Settings On BMC Via GUI And Verify 109 110 [Documentation] Configure invalid SNMP settings on BMC via GUI and verify. 111 [Tags] Configure_Invalid_SNMP_Settings_On_BMC_Via_GUI_And_Verify 112 [Template] Configure SNMP Manager On BMC With Invalid Setting Via GUI And Verify 113 114 # snmp_manager_ip snmp_manager_port Expected status 115 ${SNMP_MGR1_IP} ${out_of_range_port} ${invalid_port_error} 116 ${SNMP_MGR1_IP} ${alpha_port} ${invalid_port_error} 117 ${SNMP_MGR1_IP} ${negative_port} ${invalid_port_error} 118 ${SNMP_MGR1_IP} ${alphanumeric_port} ${invalid_port_error} 119 ${out_of_range_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error} 120 ${alpha_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error} 121 ${negative_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error} 122 ${empty_ip} ${NON_DEFAULT_PORT1} ${invalid_destination_error} 123 124 125Configure Multiple SNMP Managers On BMC Via GUI And Verify 126 [Documentation] Configure multiple SNMP managers on BMC via GUI and verify. 127 [Tags] Configure_Multiple_SNMP_Managers_On_BMC_Via_GUI_And_Verify 128 [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 156Configure 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 173 Wait Until Page Contains ${snmp_page_heading} timeout=1min 174 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 179Configure 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 198*** 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 208 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. 228 [Arguments] ${snmp_mgr_ip} ${snmp_mgr_port} 229 230 # 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} 235 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} 239 Wait Until Page Contains Successfully deleted SNMP alert destination timeout=45s 240 Wait Until Keyword Succeeds 30 sec 10 sec Refresh GUI And Verify Element Value 241 ... ${xpath_snmp_alerts_heading} ${snmp_page_heading} 242 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} 248 [Teardown] Run Keyword If '${expected_error}' == '${invalid_port_error}' 249 ... Click Element ${xpath_cancel_button} 250 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. 263 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} 268 [Teardown] Delete SNMP Manager Via GUI ${snmp_ip_value} ${snmp_port_value} 269 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} 276 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} 312