Support SNMPv3 Backend APIs & Telegraf configuration for the device metrics
Review Request #1142 — Created Nov. 6, 2025 and submitted — Latest diff uploaded
| Information | |
|---|---|
| apoorva.sn | |
| AMP | |
| amp_3_7_2 | |
| AE-2203 | |
| Reviewers | |
| mmiriam, ngurunathan, pmurugaiyan, pradeep, shuinvy | |
Problem
Support SNMPv3 Backend APIs & Telegraf configuration for the device metrics
Solution
Have added API's to support the SNMPV3 config for devices
Configure SNMpv3
curl --location 'https://192.168.162.162:8888/snmpv3/config' \
--header 'Accept: application/json, text/plain, /' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
--header 'Origin: https://192.168.162.162:8888' \
--header 'Referer: https://192.168.162.162:8888/app/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36' \
--header 'X-CSRFToken: GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6' \
--header 'sec-ch-ua: "Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--header 'Cookie: csrf_token=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; csrftoken=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; current_user=array; django_language=en; hive_key=1; hive_sess=5f2fb8d2-39e7-482d-ba97-ac6c1c8e97aa' \
--data '{
"device_ip": "192.168.162.88",
"device_type": "ag",
"username": "snmpuser3",
"auth_pass": "authpass123",
"priv_pass": "privpass123",
"auth_protocol": "SHA",
"priv_protocol": "AES",
"sec_level": "authNoPriv"
}'Response:
{
"message": "SNMPv3 configuration successful"
}GET SNMPv3 Config for all devices
curl --location 'https://192.168.162.162:8888/snmpv3/config' \
--header 'Accept: application/json, text/plain, /' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
--header 'Origin: https://192.168.162.162:8888' \
--header 'Referer: https://192.168.162.162:8888/app/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36' \
--header 'X-CSRFToken: GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6' \
--header 'sec-ch-ua: "Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--header 'Cookie: csrf_token=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; csrftoken=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; current_user=array; django_language=en; hive_key=1; hive_sess=5f2fb8d2-39e7-482d-ba97-ac6c1c8e97aa'Response:
[
{
"username": "snmpuser2",
"priv_pass": "privpass123",
"auth_pass": "authpass123",
"device_ip": "192.168.162.160",
"enabled": true,
"sec_level": "authPriv",
"auth_protocol": "SHA",
"priv_protocol": "AES",
"device_type": "apv"
},
{
"username": "snmpuser3",
"priv_pass": "privpass123",
"device_ip": "192.168.162.88",
"auth_pass": "authpass123",
"enabled": true,
"sec_level": "authNoPriv",
"auth_protocol": "SHA",
"priv_protocol": "AES",
"device_type": "ag"
}DELETE SNMPv3 Config for a specific device
curl --location --request DELETE 'https://192.168.162.162:8888/snmpv3/config?device_ip=192.168.162.166' \
--header 'Accept: application/json, text/plain, /' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
--header 'Origin: https://192.168.162.162:8888' \
--header 'Referer: https://192.168.162.162:8888/app/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36' \
--header 'X-CSRFToken: GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6' \
--header 'sec-ch-ua: "Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--header 'Cookie: csrf_token=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; csrftoken=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; current_user=array; django_language=en; hive_key=1; hive_sess=5f2fb8d2-39e7-482d-ba97-ac6c1c8e97aa'{
"message": "SNMPv3 device removed and Telegraf updated."
}GET SNMPv3 Config for a specific device
curl --location 'https://192.168.162.162:8888/snmpv3/config?device_ip=192.168.162.166' \
--header 'Accept: application/json, text/plain, /' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
--header 'Origin: https://192.168.162.162:8888' \
--header 'Referer: https://192.168.162.162:8888/app/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36' \
--header 'X-CSRFToken: GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6' \
--header 'sec-ch-ua: "Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--header 'Cookie: csrf_token=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; csrftoken=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; current_user=array; django_language=en; hive_key=1; hive_sess=5f2fb8d2-39e7-482d-ba97-ac6c1c8e97aa'Response:
{
"error": "No SNMPv3 configuration found for device 192.168.162.166"
}GET SNMPv3 Config for a specific device
curl --location 'https://192.168.162.162:8888/snmpv3/config?device_ip=192.168.162.160' \
--header 'Accept: application/json, text/plain, /' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
--header 'Origin: https://192.168.162.162:8888' \
--header 'Referer: https://192.168.162.162:8888/app/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36' \
--header 'X-CSRFToken: GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6' \
--header 'sec-ch-ua: "Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--header 'Cookie: csrf_token=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; csrftoken=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; current_user=array; django_language=en; hive_key=1; hive_sess=5f2fb8d2-39e7-482d-ba97-ac6c1c8e97aa'Response:
{
"username": "snmpuser2",
"priv_pass": "privpass123",
"auth_pass": "authpass123",
"device_ip": "192.168.162.160",
"enabled": true,
"sec_level": "authPriv",
"auth_protocol": "SHA",
"priv_protocol": "AES",
"device_type": "apv"
}Enable/Disable the SNMP for a device
curl --location 'https://192.168.162.162:8888/snmpv3/toggle' \
--header 'Accept: application/json, text/plain, /' \
--header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' \
--header 'Connection: keep-alive' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
--header 'Origin: https://192.168.162.162:8888' \
--header 'Referer: https://192.168.162.162:8888/app/' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: same-origin' \
--header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36' \
--header 'X-CSRFToken: GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6' \
--header 'sec-ch-ua: "Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "macOS"' \
--header 'Cookie: csrf_token=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; csrftoken=GrfMXFMkuX1yZPrG2nJ5SwineYJvUdY6; current_user=array; django_language=en; hive_key=1; hive_sess=2c73626e-72c8-4e03-92e8-42b4b9d4cefd' \
--data '{
"device_ip": "192.168.162.160",
"enabled": true
}'Response:
{
"message": "Device polling status updated successfully"
}
