blob: 6c6fbce08cfa7bc929dae7ed554746c4c3da5ec9 [file] [log] [blame]
Prashanth Katti391000c2021-06-11 04:09:21 -05001*** Settings ***
2Documentation This testing requires special setup where SNMP trapd is
3... configured and installed. For download, installation and
4... configuration refer http://www.net-snmp.org/.
5
6
George Keishing269e52e2021-06-25 12:27:39 -05007Resource ../../lib/snmp/resource.robot
8Resource ../../lib/snmp/redfish_snmp_utils.robot
9Resource ../../lib/bmc_redfish_resource.robot
10Resource ../../lib/openbmc_ffdc.robot
11Resource ../../lib/logging_utils.robot
Prashanth Katti391000c2021-06-11 04:09:21 -050012
13
14Test Teardown FFDC On Test Case Fail
15Suite Setup Suite Setup Execution
16
17*** Variables ***
18
19${snmp_function} SNMPTrap
20${snmp_version} SNMPv2c
21${subscription_uri} /redfish/v1/EventService/Subscriptions
22
Prashanth Kattic744f042021-06-16 07:46:04 -050023${CMD_INTERNAL_FAILURE} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
24... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.InternalFailure
25... xyz.openbmc_project.Logging.Entry.Level.Error 0
26
27${CMD_FRU_CALLOUT} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
28... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.Timeout
29... xyz.openbmc_project.Logging.Entry.Level.Error 2 "TIMEOUT_IN_MSEC" "5"
30... "CALLOUT_INVENTORY_PATH" "/xyz/openbmc_project/inventory/system/chassis/motherboard"
31
32${CMD_INFORMATIONAL_ERROR} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
33... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.TestError2
34... xyz.openbmc_project.Logging.Entry.Level.Informational 0
35
36${SNMP_TRAP_BMC_INTERNAL_FAILURE} xyz.openbmc_project.Common.Error.InternalFailure
37${SNMP_TRAP_BMC_CALLOUT_ERROR} xyz.openbmc_project.Common.Error.Timeout
38${SNMP_TRAP_BMC_INFORMATIONAL_ERROR} xyz.openbmc_project.Common.Error.TestError2
39
Prashanth Katti391000c2021-06-11 04:09:21 -050040
41*** Test Cases ***
42
43Configure SNMP Manager On BMC And Verify
44 [Documentation] Configure SNMP manager on BMC via Redfish and verify.
45 [Tags] Configure_SNMP_Manager_On_BMC_And_Verify
Prashanth Kattidd99a912021-06-14 09:12:02 -050046 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
Prashanth Katti391000c2021-06-11 04:09:21 -050047
48 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} ${HTTP_CREATED}
49
50 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
51
52
Prashanth Kattic744f042021-06-16 07:46:04 -050053Configure SNMP Manager On BMC With Non-default Port And Verify
54 [Documentation] Configure SNMP Manager On BMC And Verify.
55 [Tags] Configure_SNMP_Manager_On_BMC_With_Non_Default_Port_And_Verify
56 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
57
58 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} ${HTTP_CREATED}
59
60 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
61
62
63Configure SNMP Manager On BMC With Out Of Range Port And Verify
64 [Documentation] Configure SNMP Manager On BMC with out-of range port and verify.
65 [Tags] Configure_SNMP_Manager_On_BMC_With_Out_Of_Range_Port_And_Verify
66 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${out_of_range_port}
67
68 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${out_of_range_port} ${HTTP_BAD_REQUEST}
69
70 ${status}= Run Keyword And Return Status
71 ... Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${out_of_range_port}
72
73 Should Be Equal As Strings ${status} False
74 ... msg=BMC is allowing to configure out of range port.
75
76
77Generate Error On BMC And Verify SNMP Trap
78 [Documentation] Generate error on BMC and verify trap and its fields.
79 [Tags] Generate_Error_On_BMC_And_Verify_SNMP_Trap
80 [Template] Create Error On BMC And Verify Trap
81
82 # event_log expected_error
83
84 # Generate internal failure error.
85 ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
86
87 # Generate timeout error.
88 ${CMD_FRU_CALLOUT} ${SNMP_TRAP_BMC_CALLOUT_ERROR}
89
90 # Generate informational error.
91 ${CMD_INFORMATIONAL_ERROR} ${SNMP_TRAP_BMC_INFORMATIONAL_ERROR}
92
93
Prashanth Kattib1a9c6b2021-06-18 01:36:14 -050094Configure SNMP Manager On BMC With Alpha Port And Verify
95 [Documentation] Configure SNMP Manager On BMC with alpha port and verify.
96 [Tags] Configure_SNMP_Manager_On_BMC_With_Alpha_Port_And_Verify
97 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${alpha_port}
98
99 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${alpha_port} ${HTTP_BAD_REQUEST}
100
101 ${status}= Run Keyword And Return Status
102 ... Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${alpha_port}
103
104 Should Be Equal As Strings ${status} False
105 ... msg=BMC is allowing to configure invalid port.
106
107
108Configure SNMP Manager On BMC With Empty Port And Verify
109 [Documentation] Configure SNMP Manager On BMC with empty port and verify
110 ... SNMP manager gets configured with default port.
111 [Tags] Configure_SNMP_Manager_On_BMC_With_Empty_Port_And_Verify
112 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
113
114 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${empty_port}
115
116 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
117
118
119Configure Multiple SNMP Managers And Verify
120 [Documentation] Configure multiple SNMP managers and verify.
121 [Tags] Configure_Multiple_SNMP_Managers_And_Verify
122 [Teardown] Run Keywords
123 ... Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
124 ... AND
125 ... Delete SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
126
127 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
128 Configure SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
129 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
130 Verify SNMP Manager Configured On BMC ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
131
132
133Generate Error On BMC And Verify SNMP Trap Is Sent To Non-Default Port
134 [Documentation] Generate error on BMC and verify trap and its fields.
135 [Tags] Generate_Error_On_BMC_And_Verify_SNMP_Trap_Is_Sent_To_Non-Default_Port
136 [Template] Create Error On BMC And Verify Trap On Non-Default Port
137
138 # event_log expected_error
139
140 # Generate internal failure error.
141 ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
142
143 # Generate timeout error.
144 ${CMD_FRU_CALLOUT} ${SNMP_TRAP_BMC_CALLOUT_ERROR}
145
146 # Generate informational error.
147 ${CMD_INFORMATIONAL_ERROR} ${SNMP_TRAP_BMC_INFORMATIONAL_ERROR}
148
149
Prashanth Katti7f319262021-06-21 09:10:04 -0500150Verify SNMP SysUpTime
151 [Documentation] Verify SNMP SysUpTime.
152 [Tags] Verify_SNMP_SysUpTime
153
154 Generate Error And Verify System Up Time
155
156
157Verify SNMP SysUpTime On BMC Reboot
158 [Documentation] Verify SNMP SysUpTime on BMC reboot.
159 [Tags] Verify_SNMP_SysUpTime_On_BMC_Reboot
160
161 # Reboot BMC to reset system uptime.
162 OBMC Reboot (off)
163
164 ${uptime}= Generate Error And Verify System Up Time
165
166 # Check if uptime is reset after reboot.
167 Should Be True ${uptime} <= 1 msg=SNMP SysUpTime is not reset on reboot
168
169
170Configure Multiple SNMP Managers With Non-default Port And Verify
171 [Documentation] Configure multiple SNMP Managers with non-default port And Verify.
172 [Tags] Configure_Multiple_SNMP_Managers_With_Non_Default_Port_And_Verify
173 [Teardown] Run Keywords
174 ... Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
175 ... AND
176 ... Delete SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
177
178 # Configure multiple SNMP managers with non-default port.
179 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
180 Configure SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
181
182 # Verify if SNMP managers are configured.
183 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
184 Verify SNMP Manager Configured On BMC ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
185
186
187Configure Multiple SNMP Managers With Different Ports And Verify
188 [Documentation] Configure multiple SNMP Managers with different ports And Verify.
189 [Tags] Configure_Multiple_SNMP_Managers_With_Different_Ports_And_Verify
190 [Teardown] Run Keywords
191 ... Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
192 ... AND
193 ... Delete SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
194 ... AND
195 ... Delete SNMP Manager Via Redfish ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
196
George Keishing269e52e2021-06-25 12:27:39 -0500197 # Configure multiple SNMP managers with different ports.
Prashanth Katti7f319262021-06-21 09:10:04 -0500198 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
199 Configure SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
200 Configure SNMP Manager Via Redfish ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
201
202 # Verify if SNMP managers are configured.
203 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
204 Verify SNMP Manager Configured On BMC ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
205 Verify SNMP Manager Configured On BMC ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
206
207
Prashanth Katti391000c2021-06-11 04:09:21 -0500208*** Keywords ***
209
210Suite Setup Execution
211 [Documentation] Do suite setup execution.
212
213 Redfish.Login
214
215 # Check for SNMP configurations.
216 Valid Value SNMP_MGR1_IP
217 Valid Value SNMP_DEFAULT_PORT
Prashanth Katti7f319262021-06-21 09:10:04 -0500218
219
220Generate Error And Verify System Up Time
221 [Documentation] Generate error and verify system up time.
222
223 # Get system uptime on BMC.
224 # Example output of uptime:
225 # (8055.79 15032.86)
226
227 ${cmd_output} ${stderr} ${rc}= BMC Execute Command cat /proc/uptime
228 @{times}= Split String ${cmd_output}
229
230 ${bmc_uptime_in_minutes}= Evaluate int(${times}[0])/60
231
232 ${trap}= Create Error On BMC And Verify Trap
233
234 # Extract System up time from SNMP trap.
235 # Example - SNMP trap:
236 # DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (252367) 0:42:03.67
237 # SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1
238 # SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: 54
239 # SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque: UInt64: 4622921648578756984
240 # SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: 3
241 # SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING:
242
243 @{words}= Split String ${trap}[0] =
244
245 ${timeticks}= Fetch From Right ${words}[1] (
246 ${snmp_sysuptime}= Fetch From Left ${timeticks} )
247
248 # SNMP SysUptime will be in milli seconds.
249 # Convert into minutes.
250 ${sysuptime_in_minutes}= Evaluate int(${snmp_sysuptime})/6000
251
252 Should Be Equal As Integers ${bmc_uptime_in_minutes} ${sysuptime_in_minutes}
253
254 [Return] ${sysuptime_in_minutes}