1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Simplify SNMPd interface

This commit is contained in:
Ycarus 2018-11-27 15:16:42 +01:00
parent b0894b2d46
commit 374ccdb80a
5 changed files with 618 additions and 42 deletions

View file

@ -16,7 +16,17 @@ network.rmempty = true
network.cast = "string"
network.nocreate = true
s = m:section(TypedSection, "com2sec", translate("com2sec"))
s = m:section(TypedSection, "system", translate("System"))
s.addremove = false
sysLocation = s:option(Value, "sysLocation", translate("Location"))
sysContact = s:option(Value, "sysContact", translate("Contact"))
sysName = s:option(Value, "sysName", translate("Name"))
--sysServices = s:option(Value, "sysServices", translate("Services"))
--sysDescr = s:option(Value, "sysDescr", translate("Description"))
--sysObjectID = s:option(Value, "sysObjectID", translate("ObjectID"))
s = m:section(TypedSection, "com2sec", translate("com2sec security"))
s.addremove = true
secname = s:option(ListValue, "secname", translate("Server"))
@ -33,24 +43,24 @@ community = s:option(Value, "community", translate("Community"))
community.optional = false
community.rmempty = false
s = m:section(TypedSection, "com2sec6", translate("com2sec6"))
s.addremove = true
--s = m:section(TypedSection, "com2sec6", translate("com2sec6"))
--s.addremove = true
secname = s:option(ListValue, "secname", translate("secname"))
secname.optional = false
secname:value("ro",translate("Read-only"))
secname:value("rw",translate("Read-write"))
--secname = s:option(ListValue, "secname", translate("secname"))
--secname.optional = false
--secname:value("ro",translate("Read-only"))
--secname:value("rw",translate("Read-write"))
source = s:option(Value, "source", translate("Source"))
source.datatype = "host"
source.optional = false
source.rmempty = false
--source = s:option(Value, "source", translate("Source"))
--source.datatype = "host"
--source.optional = false
--source.rmempty = false
community = s:option(Value, "community", translate("Community"))
community.optional = false
community.rmempty = false
--community = s:option(Value, "community", translate("Community"))
--community.optional = false
--community.rmempty = false
s = m:section(TypedSection, "group", translate("Group"))
s = m:section(TypedSection, "group", translate("Group"), translate("Groups help define access methods"))
s.addremove = true
s.anonymous = false
@ -59,10 +69,9 @@ secname.optional = false
secname:value("ro",translate("Read-only"))
secname:value("rw",translate("Read-write"))
group = s:option(ListValue, "group", translate("Group"))
group = s:option(Value, "group", translate("Group"))
group.optional = false
group:value("public","public")
group:value("private","private")
group.rmempty = false
version = s:option(ListValue, "version", translate("version"))
version.optional = false
@ -74,10 +83,9 @@ s = m:section(TypedSection, "access", translate("Access"))
s.addremove = true
s.anonymous = false
group = s:option(ListValue, "group", translate("Group"))
group = s:option(Value, "group", translate("Group"))
group.optional = false
group:value("public","public")
group:value("private","private")
group.rmempty = false
version = s:option(ListValue, "version", translate("version"))
version.optional = false
@ -110,28 +118,16 @@ notify.optional = false
notify:value("all","all")
notify:value("none","none")
s = m:section(TypedSection, "engineid", translate("engineid"))
s.addremove = false
s.anonymous = true
--s = m:section(TypedSection, "engineid", translate("engineid"))
--s.addremove = false
--s.anonymous = true
engineid = s:option(Value, "engineid", translate("engineid"))
engineidtype = s:option(ListValue, "engineidtype", translate("engineidtype"))
engineidtype:value("1",translate("IPv4"))
engineidtype:value("2",translate("IPv6"))
engineidtype:value("3",translate("MAC"))
engineidnic = s:option(Value, "engineidnic", translate("engineidnic"))
s = m:section(TypedSection, "system", translate("System"))
s.addremove = true
s.anonymous = true
sysLocation = s:option(Value, "sysLocation", translate("Location"))
sysContact = s:option(Value, "sysContact", translate("Contact"))
sysName = s:option(Value, "sysName", translate("Name"))
sysServices = s:option(Value, "sysServices", translate("Services"))
sysDescr = s:option(Value, "sysDescr", translate("Description"))
sysObjectID = s:option(Value, "sysObjectID", translate("ObjectID"))
--engineid = s:option(Value, "engineid", translate("engineid"))
--engineidtype = s:option(ListValue, "engineidtype", translate("engineidtype"))
--engineidtype:value("1",translate("IPv4"))
--engineidtype:value("2",translate("IPv6"))
--engineidtype:value("3",translate("MAC"))
--engineidnic = s:option(Value, "engineidnic", translate("engineidnic"))
s = m:section(TypedSection, "exec", translate("Exec"))
s.addremove = true

View file

@ -0,0 +1,132 @@
<%+header%>
<script type="text/javascript" src="<%=resource%>/cbi.js?v=git-18.274.67584-38176e6" data-strings="{&#34;path&#34;:{&#34;resource&#34;:&#34;\/luci-static\/resources&#34;,&#34;browser&#34;:&#34;\/cgi-bin\/luci\/admin\/filebrowser&#34;}}"></script>
<%
local uci = require("luci.model.uci").cursor()
local hosts = uci:get_list("dhcp", uci:get_first("dhcp","dnsmasq"), "ipset")
local ips = uci:get_list("omr-bypass", "ips", "ip")
local dpi = uci:get_list("omr-bypass", "dpi", "proto")
local tmpfile = os.tmpname()
local dpi_available_proto = luci.util.execi("cat /proc/net/xt_ndpi/proto | awk '{print $3}' | sort -u | head -n -1")
local sys = require "luci.sys"
local ifaces = sys.net:devices()
local bypassif = uci:get("omr-bypass","defaults","ifname") or ""
%>
<% if stderr and #stderr > 0 then %><pre class="error"><%=pcdata(stderr)%></pre><% end %>
<form class="inline" method="post" action="<%=url('admin/services/omr-bypass/add')%>">
<div class="cbi-map">
<h2 name="content"><%:SNMPd%></h2>
<fieldset class="cbi-section">
<legend><%:General%></legend>
<div class="cbi-section-descr"></div>
<div class="cbi-value">
<label class="cbi-value-title"><%:Enabled%></label>
<div class="cbi-value-field">
<input type="checkbox" name="enabled" class="cbi-input-checkbox" value="1" <% if luci.model.uci.cursor():get("snmpd","general","enabled") == "1" then %>checked<% end %>>
</div>
</div>
<div class="cbi-value">
network
</div>
<div class="cbi-value" data-index="1" data-depends="[]"><label class="cbi-value-title" for="cbid.snmpd.cfg10e48a.sysLocation">Location</label>
<div class="cbi-value-field">
<input data-update="change" id="cbid.snmpd.cfg10e48a.sysLocation" name="cbid.snmpd.cfg10e48a.sysLocation" type="text" class="cbi-input-text" value="office" />
</div>
</div>
<div class="cbi-value" id="cbi-snmpd-cfg10e48a-sysContact" data-index="2" data-depends="[]"><label class="cbi-value-title" for="cbid.snmpd.cfg10e48a.sysContact">Contact</label>
<div class="cbi-value-field">
<input data-update="change" id="cbid.snmpd.cfg10e48a.sysContact" name="cbid.snmpd.cfg10e48a.sysContact" type="text" class="cbi-input-text" value="bofh@example.com" />
</div>
</div>
<div class="cbi-value" id="cbi-snmpd-cfg10e48a-sysName" data-index="3" data-depends="[]"><label class="cbi-value-title" for="cbid.snmpd.cfg10e48a.sysName">Nom</label>
<div class="cbi-value-field">
<input data-update="change" id="cbid.snmpd.cfg10e48a.sysName" name="cbid.snmpd.cfg10e48a.sysName" type="text" class="cbi-input-text" value="OpenMPTCProuter" />
</div>
</div>
<h3><%:General%></h3>
<div class="cbi-section cbi-tblsection">
<div class="cbi-section-descr"></div>
<div class="table cbi-section-table">
<div class="tr cbi-section-table-titles-anonymous">
<div class="th cbi-section-table-cell" data-type="value"><%:Domain, IP or network%></div>
<div class="th cbi-section-table-cell" data-type="value"><%:Output interface%></div>
<div class="th cbi-section-table-cell cbi-section-actions"></div>
</div>
<div class="tr cbi-section-table-row" id="cbi-omr-bypass-cfg">
<div class="td cbi-value-field" data-name="name" data-type="value" data-title="Domain">
<div id="cbi-omr-bypass-cfg-domain" data-index="" data-depends="[]">
<input data-update="change" id="cbid.omr.bypass.cfg.domain"" name="cbid.omr.bypass.cfg.domain" type="text" class="cbi-input-text" value="" data-optional="true" />
</div>
</div>
<div class="td cbi-value-field" data-name="interface" data-type="value" data-title="<%:Interface%>">
<select class="cbi-input-select" data-update="change" id="cbid.omr.bypass.cfg.interface" name="cbid.omr.bypass.cfg.interface" size="1">
<option id="cbid.omr.bypass.cfg.interface-all" value="all" data-index="1" data-depends="[]"><%:All%></option>
<%
for _, iface in ipairs(ifaces) do
if not (iface == "lo" or iface:match("^ifb.*")) then
%>
<option value="<%=iface%>"><%=iface%></option>
<%
end
end
%>
</select>
</div>
</div>
</div>
<div class="cbi-section-create cbi-tblsection-create">
<input class="cbi-button cbi-button-add" type="submit" value="Add" name="cbi.cts.omr.bypass.domains" title="<%:Add%>" />
</div>
</div>
<div class="cbi-section cbi-tblsection" id="cbi-omr-bypass-proto">
<h3><%:Protocols%></h3>
<div class="cbi-section-descr"></div>
<div class="table cbi-section-table">
<div class="tr cbi-section-table-titles-anonymous">
<div class="th cbi-section-table-cell" data-type="value"><%:Protocols%></div>
<div class="th cbi-section-table-cell" data-type="value"><%:Output interface%></div>
<div class="th cbi-section-table-cell cbi-section-actions"></div>
</div>
<div class="tr cbi-section-table-row" id="cbi-omr-bypass-cfg">
<div class="td cbi-value-field" data-name="name" data-type="value" data-title="Domain">
<%
local allprt="&#34;&#34;"
local protos = {}
for l in io.lines("/proc/net/xt_ndpi/proto") do
local a,b,c,d = l:match('(%w+) (%w+)')
if b ~= "2" and not string.match(b,"custom") then
table.insert(protos,b)
end
end
table.sort(protos)
for _,b in ipairs(protos) do
allprt=allprt .. ",&#34;" .. b .. "&#34;"
end
%>
<div data-prefix="cbid.omr.bypass.cfg.proto" data-browser-path="" data-dynlist="[[<%=allprt%>],[<%=allprt%>],null,false]">
<div id="cbi-omr-bypass-cfg-proto" data-index="" data-depends="[]">
<input data-update="change" id="cbid.omr.bypass.cfg.proto" name="cbid.omr.bypass.cfg.proto" type="text" class="cbi-input-text" value="" data-optional="true" />
</div>
</div>
<div class="td cbi-value-field" data-name="interface" data-type="value" data-title="<%:Interface%>">
<select class="cbi-input-select" data-update="change" id="cbid.omr.bypass.cfg.interface" name="cbid.omr.bypass.cfg.interface" size="1">
<option id="cbid.omr.bypass.cfg.interface-all" value="all" data-index="1" data-depends="[]"><%:All%></option>
</select>
</div>
</div>
</div>
<div class="cbi-section-create cbi-tblsection-create">
<input class="cbi-button cbi-button-add" type="submit" value="Add" name="cbi.cts.omr.bypass.domains" title="<%:Add%>" />
</div>
</div>
</div>
<div class="cbi-page-actions">
<input type="hidden" name="token" value="<%=token%>" />
<button class="btn" type="submit">Submit</button>
</div>
</form>
<script type="text/javascript">cbi_init();</script>
<%+footer%>