Added SNMP new test cases
Changes:
- Configure SNMP manager with out of range IP address.
- Test case to Check persistency of SNMP manager configuration on BMC reboot
- Test to verify trap is sent to configured SNMP manager after BMC reboot
Signed-off-by: Prashanth Katti <prkatti1@in.ibm.com>
Change-Id: Ia2190fa5de68e9604615ab273136a85897f5fdf2
diff --git a/lib/snmp/redfish_snmp_utils.robot b/lib/snmp/redfish_snmp_utils.robot
index d5d9c7c..22cafca 100644
--- a/lib/snmp/redfish_snmp_utils.robot
+++ b/lib/snmp/redfish_snmp_utils.robot
@@ -313,3 +313,42 @@
# The execution of the SNMP_TRAPD_CMD is necessary to cause SNMP to begin
# listening to SNMP messages.
SSHLibrary.write ${SNMP_TRAPD_CMD} ${ip_and_port} &
+
+
+Generate Error On BMC And Verify Trap
+ [Documentation] Generate error on BMC and verify if trap is sent.
+ [Arguments] ${event_log}=${CMD_INTERNAL_FAILURE} ${expected_error}=${SNMP_TRAP_BMC_INTERNAL_FAILURE}
+
+ # Description of argument(s):
+ # event_log Event logs to be created.
+ # expected_error Expected error on SNMP.
+
+ Start SNMP Manager
+
+ # Generate error log.
+ BMC Execute Command ${event_log}
+
+ SSHLibrary.Switch Connection snmp_server
+ ${SNMP_LISTEN_OUT}= Read delay=1s
+
+ Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
+
+ # Stop SNMP manager process.
+ SSHLibrary.Execute Command sudo killall snmptrapd
+
+ # Sample SNMP trap:
+ # 2021-06-16 07:05:29 xx.xx.xx.xx [UDP: [xx.xx.xx.xx]:58154->[xx.xx.xx.xx]:xxx]:
+ # DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2100473) 5:50:04.73
+ # SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1
+ # SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: 369 SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque:
+ # UInt64: 1397718405502468474 SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: 3
+ # SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING: "xxx.xx.xx Failure"
+
+ ${lines}= Split To Lines ${SNMP_LISTEN_OUT}
+ ${trap_info}= Get From List ${lines} -1
+ ${snmp_trap}= Split String ${trap_info} \t
+
+ Verify SNMP Trap ${snmp_trap} ${expected_error}
+
+ [Return] ${snmp_trap}
+
diff --git a/redfish/events/test_bmc_snmp_trap.robot b/redfish/events/test_bmc_snmp_trap.robot
index c17a296..24aa711 100644
--- a/redfish/events/test_bmc_snmp_trap.robot
+++ b/redfish/events/test_bmc_snmp_trap.robot
@@ -182,6 +182,38 @@
Verify SNMP Manager Configured On BMC ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
+Configure SNMP Manager With Out Of Range IP On BMC And Verify
+ [Documentation] Configure SNMP Manager On BMC with out-of range IP and expect an error.
+ [Tags] Configure_SNMP_Manager_With_Out_Of_Range_IP_On_BMC_And_Verify
+ [Teardown] Delete SNMP Manager Via Redfish ${out_of_range_ip} ${SNMP_DEFAULT_PORT}
+
+ Configure SNMP Manager Via Redfish ${out_of_range_ip} ${SNMP_DEFAULT_PORT} ${HTTP_BAD_REQUEST}
+
+ ${status}= Run Keyword And Return Status
+ ... Verify SNMP Manager Configured On BMC ${out_of_range_ip} ${SNMP_DEFAULT_PORT}
+
+ Should Be Equal As Strings ${status} False
+ ... msg=BMC is allowing to configure out of range IP.
+
+
+Verify Persistency Of SNMP Manager And Trap On BMC Reboot
+ [Documentation] Verify persistency of SNMP manager configuration on BMC
+ ... and BMC is able to send trap after reboot.
+ [Tags] Verify_Persistency_Of_SNMP_Manager_And_Trap_On_BMC_Reboot
+ [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
+
+ Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} ${HTTP_CREATED}
+
+ # Reboot BMC and check persistency SNMP manager.
+ OBMC Reboot (off)
+
+ Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
+
+ # Check if trap is generated and sent to SNMP manager after reboot.
+ Generate Error On BMC And Verify Trap
+ ... ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
+
+
*** Keywords ***
Suite Setup Execution