luci/applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua
Karl Palsson 8f96cd8e36 luci-app-snmpd: Allow turning off agentx
AgentX support doesn't actually require TCP, it also works over unix
domain sockets, and UDS is the only method that's compiled in by
default.  Remove that misleading text, and make the section
add/removable so that you can remove it to disable agentx support.
Behaviour with multiple sections is undefined. (don't do that!)

This matches the current behaviour of the snmpd init script, which will
enable agentx with the compile time default settings if the agentx
socket config is blank/missing.

Signed-off-by: Karl Palsson <karlp@etactica.com>
2018-10-08 11:27:53 +00:00

63 lines
2.3 KiB
Lua

--[[
LuCI model for net-snmp configuration management
Copyright Karl Palsson <karlp@etactica.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
]]--
local datatypes = require("luci.cbi.datatypes")
m = Map("snmpd", "net-snmp's SNMPD",
[[SNMPD is a master daemon/agent for SNMP, from the <a href='http://www.net-snmp.org'>
net-snmp project</a>.
Note, OpenWrt has mostly complete UCI support for snmpd, but this LuCI applet
only covers a few of those options. In particular, there is very little/no validation
or help.
See /etc/config/snmpd for manual configuration.
]])
s = m:section(TypedSection, "agent", "Agent settings")
s.anonymous = true
p = s:option(Value, "agentaddress", "The address the agent should listen on",
[[Eg: UDP:161, or UDP:10.5.4.3:161 to only listen on a given interface]])
s = m:section(TypedSection, "agentx", "AgentX settings", "Delete this section to disable agentx")
s.anonymous = true
p = s:option(Value, "agentxsocket", "The address the agent should allow agentX connections to",
[[This is only necessary if you have subagents using the agentX socket protocol.
Eg: /var/run/agentx.sock]])
s.addremove=true
s = m:section(TypedSection, "com2sec", "com2sec security")
p = s:option(Value, "secname", "secname")
p = s:option(Value, "source", "source")
p = s:option(Value, "community", "community")
s = m:section(TypedSection, "group", "group", "Groups help define access methods")
s.addremove=true
s:option(Value, "group", "group")
s:option(Value, "version", "version")
s:option(Value, "secname", "secname")
s = m:section(TypedSection, "access", "access")
s:option(Value, "group", "group")
s:option(Value, "context", "context")
s:option(Value, "version", "version")
s:option(Value, "level", "level")
s:option(Value, "prefix", "prefix")
s:option(Value, "read", "read")
s:option(Value, "write", "write")
s:option(Value, "notify", "notify")
s = m:section(TypedSection, "system", "System", "Values used in the MIB2 System tree")
s.anonymous = true
s:option(Value, "sysLocation", "sysLocation")
s:option(Value, "sysContact", "sysContact")
s:option(Value, "sysName", "sysName")
return m