blob: 24aa71151cd405278b979673b1cc749dc98996a5 [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
Prashanth Katti391000c2021-06-11 04:09:21 -050017
18*** Test Cases ***
19
20Configure SNMP Manager On BMC And Verify
21 [Documentation] Configure SNMP manager on BMC via Redfish and verify.
22 [Tags] Configure_SNMP_Manager_On_BMC_And_Verify
Prashanth Kattidd99a912021-06-14 09:12:02 -050023 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
Prashanth Katti391000c2021-06-11 04:09:21 -050024
25 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} ${HTTP_CREATED}
26
27 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
28
29
Prashanth Kattic744f042021-06-16 07:46:04 -050030Configure SNMP Manager On BMC With Non-default Port And Verify
31 [Documentation] Configure SNMP Manager On BMC And Verify.
32 [Tags] Configure_SNMP_Manager_On_BMC_With_Non_Default_Port_And_Verify
33 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
34
35 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} ${HTTP_CREATED}
36
37 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
38
39
40Configure SNMP Manager On BMC With Out Of Range Port And Verify
41 [Documentation] Configure SNMP Manager On BMC with out-of range port and verify.
42 [Tags] Configure_SNMP_Manager_On_BMC_With_Out_Of_Range_Port_And_Verify
43 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${out_of_range_port}
44
45 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${out_of_range_port} ${HTTP_BAD_REQUEST}
46
47 ${status}= Run Keyword And Return Status
48 ... Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${out_of_range_port}
49
50 Should Be Equal As Strings ${status} False
51 ... msg=BMC is allowing to configure out of range port.
52
53
54Generate Error On BMC And Verify SNMP Trap
55 [Documentation] Generate error on BMC and verify trap and its fields.
56 [Tags] Generate_Error_On_BMC_And_Verify_SNMP_Trap
57 [Template] Create Error On BMC And Verify Trap
58
59 # event_log expected_error
60
61 # Generate internal failure error.
62 ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
63
64 # Generate timeout error.
65 ${CMD_FRU_CALLOUT} ${SNMP_TRAP_BMC_CALLOUT_ERROR}
66
67 # Generate informational error.
68 ${CMD_INFORMATIONAL_ERROR} ${SNMP_TRAP_BMC_INFORMATIONAL_ERROR}
69
70
Prashanth Kattib1a9c6b2021-06-18 01:36:14 -050071Configure SNMP Manager On BMC With Alpha Port And Verify
72 [Documentation] Configure SNMP Manager On BMC with alpha port and verify.
73 [Tags] Configure_SNMP_Manager_On_BMC_With_Alpha_Port_And_Verify
74 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${alpha_port}
75
76 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${alpha_port} ${HTTP_BAD_REQUEST}
77
78 ${status}= Run Keyword And Return Status
79 ... Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${alpha_port}
80
81 Should Be Equal As Strings ${status} False
82 ... msg=BMC is allowing to configure invalid port.
83
84
85Configure SNMP Manager On BMC With Empty Port And Verify
86 [Documentation] Configure SNMP Manager On BMC with empty port and verify
87 ... SNMP manager gets configured with default port.
88 [Tags] Configure_SNMP_Manager_On_BMC_With_Empty_Port_And_Verify
89 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
90
91 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${empty_port}
92
93 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
94
95
96Configure Multiple SNMP Managers And Verify
97 [Documentation] Configure multiple SNMP managers and verify.
98 [Tags] Configure_Multiple_SNMP_Managers_And_Verify
99 [Teardown] Run Keywords
100 ... Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
101 ... AND
102 ... Delete SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
103
104 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
105 Configure SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
106 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
107 Verify SNMP Manager Configured On BMC ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT}
108
109
110Generate Error On BMC And Verify SNMP Trap Is Sent To Non-Default Port
111 [Documentation] Generate error on BMC and verify trap and its fields.
112 [Tags] Generate_Error_On_BMC_And_Verify_SNMP_Trap_Is_Sent_To_Non-Default_Port
113 [Template] Create Error On BMC And Verify Trap On Non-Default Port
114
115 # event_log expected_error
116
117 # Generate internal failure error.
118 ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
119
120 # Generate timeout error.
121 ${CMD_FRU_CALLOUT} ${SNMP_TRAP_BMC_CALLOUT_ERROR}
122
123 # Generate informational error.
124 ${CMD_INFORMATIONAL_ERROR} ${SNMP_TRAP_BMC_INFORMATIONAL_ERROR}
125
126
Prashanth Katti7f319262021-06-21 09:10:04 -0500127Verify SNMP SysUpTime
128 [Documentation] Verify SNMP SysUpTime.
129 [Tags] Verify_SNMP_SysUpTime
130
131 Generate Error And Verify System Up Time
132
133
134Verify SNMP SysUpTime On BMC Reboot
135 [Documentation] Verify SNMP SysUpTime on BMC reboot.
136 [Tags] Verify_SNMP_SysUpTime_On_BMC_Reboot
137
138 # Reboot BMC to reset system uptime.
139 OBMC Reboot (off)
140
141 ${uptime}= Generate Error And Verify System Up Time
142
143 # Check if uptime is reset after reboot.
144 Should Be True ${uptime} <= 1 msg=SNMP SysUpTime is not reset on reboot
145
146
147Configure Multiple SNMP Managers With Non-default Port And Verify
148 [Documentation] Configure multiple SNMP Managers with non-default port And Verify.
149 [Tags] Configure_Multiple_SNMP_Managers_With_Non_Default_Port_And_Verify
150 [Teardown] Run Keywords
151 ... Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
152 ... AND
153 ... Delete SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
154
155 # Configure multiple SNMP managers with non-default port.
156 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
157 Configure SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
158
159 # Verify if SNMP managers are configured.
160 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1}
161 Verify SNMP Manager Configured On BMC ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
162
163
164Configure Multiple SNMP Managers With Different Ports And Verify
165 [Documentation] Configure multiple SNMP Managers with different ports And Verify.
166 [Tags] Configure_Multiple_SNMP_Managers_With_Different_Ports_And_Verify
167 [Teardown] Run Keywords
168 ... Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
169 ... AND
170 ... Delete SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
171 ... AND
172 ... Delete SNMP Manager Via Redfish ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
173
George Keishing269e52e2021-06-25 12:27:39 -0500174 # Configure multiple SNMP managers with different ports.
Prashanth Katti7f319262021-06-21 09:10:04 -0500175 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
176 Configure SNMP Manager Via Redfish ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
177 Configure SNMP Manager Via Redfish ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
178
179 # Verify if SNMP managers are configured.
180 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
181 Verify SNMP Manager Configured On BMC ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1}
182 Verify SNMP Manager Configured On BMC ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2}
183
184
Prashanth Katti6ea399b2021-07-20 06:59:34 -0500185Configure SNMP Manager With Out Of Range IP On BMC And Verify
186 [Documentation] Configure SNMP Manager On BMC with out-of range IP and expect an error.
187 [Tags] Configure_SNMP_Manager_With_Out_Of_Range_IP_On_BMC_And_Verify
188 [Teardown] Delete SNMP Manager Via Redfish ${out_of_range_ip} ${SNMP_DEFAULT_PORT}
189
190 Configure SNMP Manager Via Redfish ${out_of_range_ip} ${SNMP_DEFAULT_PORT} ${HTTP_BAD_REQUEST}
191
192 ${status}= Run Keyword And Return Status
193 ... Verify SNMP Manager Configured On BMC ${out_of_range_ip} ${SNMP_DEFAULT_PORT}
194
195 Should Be Equal As Strings ${status} False
196 ... msg=BMC is allowing to configure out of range IP.
197
198
199Verify Persistency Of SNMP Manager And Trap On BMC Reboot
200 [Documentation] Verify persistency of SNMP manager configuration on BMC
201 ... and BMC is able to send trap after reboot.
202 [Tags] Verify_Persistency_Of_SNMP_Manager_And_Trap_On_BMC_Reboot
203 [Teardown] Delete SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
204
205 Configure SNMP Manager Via Redfish ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} ${HTTP_CREATED}
206
207 # Reboot BMC and check persistency SNMP manager.
208 OBMC Reboot (off)
209
210 Verify SNMP Manager Configured On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT}
211
212 # Check if trap is generated and sent to SNMP manager after reboot.
213 Generate Error On BMC And Verify Trap
214 ... ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
215
216
Prashanth Katti391000c2021-06-11 04:09:21 -0500217*** Keywords ***
218
219Suite Setup Execution
220 [Documentation] Do suite setup execution.
221
222 Redfish.Login
223
224 # Check for SNMP configurations.
225 Valid Value SNMP_MGR1_IP
226 Valid Value SNMP_DEFAULT_PORT
Prashanth Katti7f319262021-06-21 09:10:04 -0500227
228
229Generate Error And Verify System Up Time
230 [Documentation] Generate error and verify system up time.
231
232 # Get system uptime on BMC.
233 # Example output of uptime:
234 # (8055.79 15032.86)
235
236 ${cmd_output} ${stderr} ${rc}= BMC Execute Command cat /proc/uptime
237 @{times}= Split String ${cmd_output}
238
239 ${bmc_uptime_in_minutes}= Evaluate int(${times}[0])/60
240
241 ${trap}= Create Error On BMC And Verify Trap
242
243 # Extract System up time from SNMP trap.
244 # Example - SNMP trap:
245 # DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (252367) 0:42:03.67
246 # SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1
247 # SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: 54
248 # SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque: UInt64: 4622921648578756984
249 # SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: 3
250 # SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING:
251
252 @{words}= Split String ${trap}[0] =
253
254 ${timeticks}= Fetch From Right ${words}[1] (
255 ${snmp_sysuptime}= Fetch From Left ${timeticks} )
256
257 # SNMP SysUptime will be in milli seconds.
258 # Convert into minutes.
259 ${sysuptime_in_minutes}= Evaluate int(${snmp_sysuptime})/6000
260
261 Should Be Equal As Integers ${bmc_uptime_in_minutes} ${sysuptime_in_minutes}
262
263 [Return] ${sysuptime_in_minutes}