diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2010-11-28 14:40:43 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2010-11-28 14:40:43 +0000 |
commit | 750b02349417205cfbdfc4a0c49a858f72ab0aa5 (patch) | |
tree | 6d307ec6d090f8c921f9acf16fef4416fbb33800 /modules/admin-full/luasrc/controller | |
parent | 45cedb0fbd1da30558246214f69f4dba969d47e4 (diff) |
modules/admin-full: implement load graph
Diffstat (limited to 'modules/admin-full/luasrc/controller')
-rw-r--r-- | modules/admin-full/luasrc/controller/admin/status.lua | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/modules/admin-full/luasrc/controller/admin/status.lua b/modules/admin-full/luasrc/controller/admin/status.lua index d283627ebf..44acab4721 100644 --- a/modules/admin-full/luasrc/controller/admin/status.lua +++ b/modules/admin-full/luasrc/controller/admin/status.lua @@ -25,7 +25,10 @@ function index() 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", "bandwidth"}, template("admin_status/bandwidth"), i18n("Realtime Traffic"), 7).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", "bandwidth"}, template("admin_status/bandwidth"), i18n("Realtime Traffic"), 8).leaf = true entry({"admin", "status", "bandwidth_status"}, call("action_bandwidth")).leaf = true end @@ -61,10 +64,35 @@ function action_bandwidth() local iface = path[#path] local fs = require "luci.fs" - if fs.access("/var/lib/luci-bwc/%s" % iface) then + if fs.access("/var/lib/luci-bwc/if/%s" % iface) then + 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 + + luci.http.write("]") + bwc:close() + end + + return + 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 -p %q 2>/dev/null" % iface) + local bwc = io.popen("luci-bwc -l 2>/dev/null") if bwc then luci.http.write("[") @@ -81,5 +109,5 @@ function action_bandwidth() return end - luci.http.status(404, "No such interface") + luci.http.status(404, "No data available") end |