blob: 3ede66a978de38482e291f9029a1758ac8089f26 [file] [log] [blame]
Prashanth Katti081b3d92018-06-15 05:13:11 -05001*** Settings ***
2Documentation Utilities for SNMP testing.
3
4Resource ../../lib/rest_client.robot
5Resource ../../lib/utils.robot
6
7*** Keywords ***
8
9Get SNMP URI List
10 [Documentation] Get all SNMP URIs and return them as list.
11
12 # Sample output:
13 # "data": [
14 # "/xyz/openbmc_project/network/snmp/manager/e9767624",
15 # "/xyz/openbmc_project/network/snmp/manager/31f4ce8b"
16 # ],
17
18 @{snmp_uri_list}= Read Properties ${SNMP_MANAGER_URI}
19
20 [Return] @{snmp_uri_list}
21
22Configure SNMP Manager On BMC
23 [Documentation] Configure SNMP manager on BMC.
24 [Arguments] ${snmp_ip} ${port} ${expected_result}
25
26 # Description of argument(s):
27 # snmp_ip SNMP manager IP.
28 # port Network port where SNMP manager is listening.
29 # expected_result Expected status of SNMP configuration.
30
31 @{snmp_parm_list}= Create List ${snmp_ip} ${port}
32 ... xyz.openbmc_project.Network.Client.IPProtocol.IPv4
33
34 ${data}= Create Dictionary data=@{snmp_parm_list}
35
36 ${resp}= OpenBMC Post Request
Steven Sombara8800da2018-12-18 16:19:05 -060037 ... ${SNMP_MANAGER_URI}action/Client data=${data}
Prashanth Katti081b3d92018-06-15 05:13:11 -050038
39 Run Keyword If '${expected_result}' == 'error'
40 ... Should Be Equal As Strings
41 ... ${resp.status_code} ${HTTP_BAD_REQUEST}
42 ... msg=Allowing the configuration of an invalid SNMP.
43 ... ELSE
44 ... Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
45 ... msg=Not allowing the configuration of a valid SNMP.
46
47Get List Of SNMP Manager And Port Configured On BMC
48 [Documentation] Get list of SNMP managers and return the list.
49
50 @{snmp_uri_list}= Get SNMP URI List
51 @{ip_and_port_list}= Create List
52
53 # Sample output of snmp_uri_list enumeration.
54 # {
55 # "data": {
56 # "/xyz/openbmc_project/network/snmp/manager/92ae7a66": {
57 # "Address": "10.6.6.6",
58 # "AddressFamily": "xyz.openbmc_project.Network.Client.IPProtocol.IPv4",
59 # "Port": 186
60 # },
61
62 : FOR ${snmp_uri} IN @{snmp_uri_list}
63 \ ${ip}= Read Attribute ${snmp_uri} Address
64 \ ${port}= Read Attribute ${snmp_uri} Port
65 \ Append To List ${ip_and_port_list} ${ip} ${port}
66
67 [Return] @{ip_and_port_list}
68
69Verify SNMP Manager
70 [Documentation] Verify SNMP manager configured on BMC.
71 [Arguments] ${snmp_ip} ${port}
72
73 # Description of argument(s):
74 # snmp_ip SNMP manager IP.
75 # port Network port where SNMP manager is listening.
76
77 @{ip_and_port}= Create List ${snmp_ip} ${port}
78
79 @{ip_and_port_list}= Get List Of SNMP Manager And Port Configured On BMC
80
81 List Should Contain Sub List ${ip_and_port_list} ${ip_and_port}
82 ... msg=Valid SNMP manager is not found on BMC.
83
84Delete SNMP Manager And Object
85 [Documentation] Delete SNMP manager.
86 [Arguments] ${snmp_ip} ${port}
87
88 # Description of argument(s):
89 # snmp_ip SNMP manager IP.
90 # port Network port where SNMP manager is listening.
91
92 @{snmp_uri_list}= Get SNMP URI List
93
94 # Find SNMP object having this IP and port.
95
96 : FOR ${snmp_uri} IN @{snmp_uri_list}
97 \ ${ip}= Read Attribute ${snmp_uri} Address
98 \ ${port1}= Read Attribute ${snmp_uri} Port
99 \ Run Keyword If "${snmp_ip}" == "${ip}" and "${port}" == "${port1}"
100 ... Exit For Loop
101
102 # If the given IP and port is not configured, return.
103 # Otherwise, delete the IP and object.
104
105 Run Keyword And Return If '${snmp_ip}' != '${ip}'
106 ... Pass Execution SNMP manager to be deleted is not configured.
107
108 OpenBMC Delete Request ${snmp_uri}
109
110 # Verify whether deleted SNMP is removed from BMC system.
111 @{ip_and_port}= Create List ${snmp_ip} ${port}
112 @{ip_and_port_list}= Get List Of SNMP Manager And Port Configured On BMC
113
114 ${status}= Run Keyword And Return Status List Should Contain Sub List
115 ... ${ip_and_port_list} ${ip_and_port}
116
117 Should Be Equal ${status} ${False} msg=SNMP manager is not deleted.