blob: b1b90b29b293545011b6ea647c96c7565914d873 [file] [log] [blame]
Prashanth Katti391000c2021-06-11 04:09:21 -05001Documentation Utility for SNMP configurations via Redfish.
2
3*** Settings ***
4
5Resource ../../lib/utils.robot
6Resource ../../lib/connection_client.robot
7Library ../../lib/gen_misc.py
8Library ../../lib/utils.py
9
10
11*** Keywords ***
12
13Get SNMP Manager List
14 [Documentation] Get the list of SNMP managers and return IP addresses and ports.
15
16 # Get the list of SNMP manager URIs.
17 @{snmp_mgr_uris}= Get SNMP Child URIs
18
19 ${snmp_mgr_list}= Create List
20
21 FOR ${snmp_mgr_uri} IN @{snmp_mgr_uris}
22 # Sample output:
23 # {
24 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp1",
25 # "@odata.type": "#EventDestination.v1_7_0.EventDestination",
26 # "Context": "",
27 # "Destination": "snmp://xx.xx.xx.xx:162",
28 # "EventFormatType": "Event",
29 # "Id": "snmp1",
30 # "Name": "Event Destination snmp1",
31 # "Protocol": "SNMPv2c",
32 # "SubscriptionType": "SNMPTrap"
33
34 ${resp}= Redfish.Get ${snmp_mgr_uri}
35 ${snmp_mgr}= Get From Dictionary ${resp.dict} Destination
36 Append To List ${snmp_mgr_list} ${snmp_mgr}
37 END
38
39 [Return] ${snmp_mgr_list}
40
41
42Configure SNMP Manager Via Redfish
43 [Documentation] Configure SNMP manager on BMC via Redfish.
44 [Arguments] ${snmp_mgr_ip} ${snmp_port} ${valid_status_codes}=${HTTP_CREATED}
45
46 # Description of argument(s):
47 # snmp_mgr_ip SNMP manager IP address
48 # snmp_port SNMP manager port
49 # valid_status_code expected code
50
51 ${snmp_mgr_data}= Create Dictionary Destination=snmp://${snmp_mgr_ip}:${snmp_port}
52 ... SubscriptionType=${snmp_function} Protocol=${snmp_version}
53
54 Redfish.Post ${subscription_uri} body=&{snmp_mgr_data}
55 ... valid_status_codes=[${valid_status_codes}]
56
57
58Verify SNMP Manager Configured On BMC
59 [Documentation] Verify SNMP manager configured on BMC.
60 [Arguments] ${snmp_mgr_ip} ${snmp_port}
61
62 # Description of argument(s):
63 # snmp_mgr_ip SNMP manager IP address
64 # snmp_port SNMP manager port
65
66 # Get the list of SNMP managers that are configured on BMC.
67 @{snmp_mgr_list}= Get SNMP Manager List
68
69 ${snmp_ip_port}= Catenate ${snmp_mgr_ip}:${snmp_port}
70
71 List Should Contain Value ${snmp_mgr_list} snmp://${snmp_ip_port}
72 ... msg=SNMP manager is not configured.
73
74
75Get SNMP Child URIs
76 [Documentation] Get the list of all SNMP manager URIs.
77
78 # Sample output of SNMP URI:
79 # {
80 # "@odata.id": "/redfish/v1/EventService/Subscriptions",
81 # "@odata.type": "#EventDestinationCollection.EventDestinationCollection",
82 # "Members": [
83 # {
84 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp6"
85 # },
86 # {
87 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp2"
88 # },
89 # {
90 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp9"
91 # },
92 # {
93 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp1"
94 # },
95 # {
96 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp8"
97 # },
98 # {
99 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp4"
100 # },
101 # {
102 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp7"
103 # },
104 # {
105 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp5"
106 # },
107 # {
108 # "@odata.id": "/redfish/v1/EventService/Subscriptions/snmp3"
109 # }
110 # ],
111 # "Members@odata.count": 9,
112 # "Name": "Event Destination Collections"
113
114 # Get the list of child URIs.
115 @{snmp_mgr_uris}= Redfish.Get Members List ${subscription_uri} filter=snmp
116
117 [Return] ${snmp_mgr_uris}