X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fcontroller%2Fadmin%2Fstatus.lua;h=89ebda735304dfd2f28bf1c5bddcd5917f376890;hp=c816625bf2fb35e89b60d3fe2eecd374b7576c00;hb=7021120936575df16a3af6606399504d42e73531;hpb=831654f504c7a9ef8efc9286e1f09cf942ce05c8;ds=sidebyside diff --git a/modules/admin-full/luasrc/controller/admin/status.lua b/modules/admin-full/luasrc/controller/admin/status.lua index c816625bf..89ebda735 100644 --- a/modules/admin-full/luasrc/controller/admin/status.lua +++ b/modules/admin-full/luasrc/controller/admin/status.lua @@ -12,28 +12,33 @@ You may obtain a copy of the License at $Id$ ]]-- + module("luci.controller.admin.status", package.seeall) function index() - luci.i18n.loadc("base") - local i18n = luci.i18n.translate + entry({"admin", "status"}, alias("admin", "status", "overview"), _("Status"), 20).index = true + entry({"admin", "status", "overview"}, template("admin_status/index"), _("Overview"), 1) + entry({"admin", "status", "iptables"}, call("action_iptables"), _("Firewall"), 2).leaf = true + entry({"admin", "status", "routes"}, template("admin_status/routes"), _("Routes"), 3) + entry({"admin", "status", "syslog"}, call("action_syslog"), _("System Log"), 4) + entry({"admin", "status", "dmesg"}, call("action_dmesg"), _("Kernel Log"), 5) + entry({"admin", "status", "processes"}, cbi("admin_status/processes"), _("Processes"), 6) + + entry({"admin", "status", "realtime"}, alias("admin", "status", "realtime", "load"), _("Realtime Graphs"), 7) + + entry({"admin", "status", "realtime", "load"}, template("admin_status/load"), _("Load"), 1).leaf = true + entry({"admin", "status", "realtime", "load_status"}, call("action_load")).leaf = true - entry({"admin", "status"}, alias("admin", "status", "interfaces"), i18n("Status"), 20).index = true - entry({"admin", "status", "interfaces"}, template("admin_status/index"), i18n("Overview"), 1) - entry({"admin", "status", "iptables"}, call("action_iptables"), i18n("Firewall"), 2).leaf = true - entry({"admin", "status", "conntrack"}, template("admin_status/conntrack"), i18n("Active Connections"), 3) - entry({"admin", "status", "routes"}, template("admin_status/routes"), i18n("Routes"), 4) - entry({"admin", "status", "syslog"}, call("action_syslog"), i18n("System Log"), 5) - entry({"admin", "status", "dmesg"}, call("action_dmesg"), i18n("Kernel Log"), 6) + entry({"admin", "status", "realtime", "bandwidth"}, template("admin_status/bandwidth"), _("Traffic"), 2).leaf = true + entry({"admin", "status", "realtime", "bandwidth_status"}, call("action_bandwidth")).leaf = true - entry({"admin", "status", "load"}, template("admin_status/load"), i18n("Realtime Load"), 7).leaf = true - entry({"admin", "status", "load_status"}, call("action_load")).leaf = true + entry({"admin", "status", "realtime", "wireless"}, template("admin_status/wireless"), _("Wireless"), 3).leaf = true + entry({"admin", "status", "realtime", "wireless_status"}, call("action_wireless")).leaf = true - entry({"admin", "status", "bandwidth"}, template("admin_status/bandwidth"), i18n("Realtime Traffic"), 8).leaf = true - entry({"admin", "status", "bandwidth_status"}, call("action_bandwidth")).leaf = true + entry({"admin", "status", "realtime", "connections"}, template("admin_status/connections"), _("Connections"), 4).leaf = true + entry({"admin", "status", "realtime", "connections_status"}, call("action_connections")).leaf = true - entry({"admin", "status", "connections"}, template("admin_status/connections"), i18n("Realtime Connections"), 9).leaf = true - entry({"admin", "status", "connections_status"}, call("action_connections")).leaf = true + entry({"admin", "status", "nameinfo"}, call("action_nameinfo")).leaf = true end function action_syslog() @@ -57,7 +62,7 @@ function action_iptables() luci.dispatcher.build_url("admin", "status", "iptables") ) elseif luci.http.formvalue("restart") == "1" then - luci.util.exec("/etc/init.d/firewall restart") + luci.util.exec("/etc/init.d/firewall reload") luci.http.redirect( luci.dispatcher.build_url("admin", "status", "iptables") ) @@ -66,80 +71,94 @@ function action_iptables() end end -function action_bandwidth() - local path = luci.dispatcher.context.requestpath - local iface = path[#path] +function action_bandwidth(iface) + luci.http.prepare_content("application/json") + + local bwc = io.popen("luci-bwc -i %q 2>/dev/null" % iface) + if bwc then + luci.http.write("[") + + while true do + local ln = bwc:read("*l") + if not ln then break end + luci.http.write(ln) + end - local fs = require "luci.fs" - if fs.access("/var/lib/luci-bwc/if/%s" % iface) then - luci.http.prepare_content("application/json") + luci.http.write("]") + bwc:close() + end +end - local bwc = io.popen("luci-bwc -i %q 2>/dev/null" % iface) - if bwc then - luci.http.write("[") +function action_wireless(iface) + luci.http.prepare_content("application/json") - while true do - local ln = bwc:read("*l") - if not ln then break end - luci.http.write(ln) - end + local bwc = io.popen("luci-bwc -r %q 2>/dev/null" % iface) + if bwc then + luci.http.write("[") - luci.http.write("]") - bwc:close() + while true do + local ln = bwc:read("*l") + if not ln then break end + luci.http.write(ln) end - return + luci.http.write("]") + bwc:close() end - - luci.http.status(404, "No data available") end function action_load() - local fs = require "luci.fs" - if fs.access("/var/lib/luci-bwc/load") then - luci.http.prepare_content("application/json") - - local bwc = io.popen("luci-bwc -l 2>/dev/null") - if bwc then - luci.http.write("[") - - while true do - local ln = bwc:read("*l") - if not ln then break end - luci.http.write(ln) - end - - luci.http.write("]") - bwc:close() + luci.http.prepare_content("application/json") + + local bwc = io.popen("luci-bwc -l 2>/dev/null") + if bwc then + luci.http.write("[") + + while true do + local ln = bwc:read("*l") + if not ln then break end + luci.http.write(ln) end - return + luci.http.write("]") + bwc:close() end - - luci.http.status(404, "No data available") end function action_connections() - local fs = require "luci.fs" - if fs.access("/var/lib/luci-bwc/connections") then - luci.http.prepare_content("application/json") - - local bwc = io.popen("luci-bwc -c 2>/dev/null") - if bwc then - luci.http.write("[") - - while true do - local ln = bwc:read("*l") - if not ln then break end - luci.http.write(ln) - end - - luci.http.write("]") - bwc:close() + local sys = require "luci.sys" + + luci.http.prepare_content("application/json") + + luci.http.write("{ connections: ") + luci.http.write_json(sys.net.conntrack()) + + local bwc = io.popen("luci-bwc -c 2>/dev/null") + if bwc then + luci.http.write(", statistics: [") + + while true do + local ln = bwc:read("*l") + if not ln then break end + luci.http.write(ln) end - return + luci.http.write("]") + bwc:close() + end + + luci.http.write(" }") +end + +function action_nameinfo(...) + local i + local rv = { } + for i = 1, select('#', ...) do + local addr = select(i, ...) + local fqdn = nixio.getnameinfo(addr) + rv[addr] = fqdn or (addr:match(":") and "[%s]" % addr or addr) end - luci.http.status(404, "No data available") + luci.http.prepare_content("application/json") + luci.http.write_json(rv) end