X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=applications%2Fluci-app-mwan3%2Fluasrc%2Fcontroller%2Fmwan3.lua;h=59d77966a523ca37af6138bb5de0591c2ce3ee8e;hp=3d5a23dd03aa15f71788646e9bbbededf0fac1ce;hb=7b1725566c5de238c1cf787ee369e453291e91e6;hpb=180f2d670a933b6d570099833e75a99423fea266 diff --git a/applications/luci-app-mwan3/luasrc/controller/mwan3.lua b/applications/luci-app-mwan3/luasrc/controller/mwan3.lua index 3d5a23dd0..59d77966a 100644 --- a/applications/luci-app-mwan3/luasrc/controller/mwan3.lua +++ b/applications/luci-app-mwan3/luasrc/controller/mwan3.lua @@ -3,32 +3,44 @@ module("luci.controller.mwan3", package.seeall) sys = require "luci.sys" ut = require "luci.util" -ip = "/usr/bin/ip -4 " +ip = "ip -4 " function index() if not nixio.fs.access("/etc/config/mwan3") then return end - entry({"admin", "network", "mwan"}, - alias("admin", "network", "mwan", "overview"), + entry({"admin", "status", "mwan"}, + alias("admin", "status", "mwan", "overview"), _("Load Balancing"), 600) - entry({"admin", "network", "mwan", "overview"}, - alias("admin", "network", "mwan", "overview", "overview_interface"), - _("Overview"), 10) - entry({"admin", "network", "mwan", "overview", "overview_interface"}, - template("mwan/overview_interface")) - entry({"admin", "network", "mwan", "overview", "interface_status"}, + entry({"admin", "status", "mwan", "overview"}, + template("mwan/status_interface")) + entry({"admin", "status", "mwan", "detail"}, + template("mwan/status_detail")) + entry({"admin", "status", "mwan", "diagnostics"}, + template("mwan/status_diagnostics")) + entry({"admin", "status", "mwan", "troubleshooting"}, + template("mwan/status_troubleshooting")) + entry({"admin", "status", "mwan", "interface_status"}, call("interfaceStatus")) - entry({"admin", "network", "mwan", "overview", "overview_detailed"}, - template("mwan/overview_detailed")) - entry({"admin", "network", "mwan", "overview", "detailed_status"}, + entry({"admin", "status", "mwan", "detailed_status"}, call("detailedStatus")) + entry({"admin", "status", "mwan", "diagnostics_display"}, + call("diagnosticsData"), nil).leaf = true + entry({"admin", "status", "mwan", "troubleshooting_display"}, + call("troubleshootingData")) + + + entry({"admin", "network", "mwan"}, + alias("admin", "network", "mwan", "configuration"), + _("Load Balancing"), 600) entry({"admin", "network", "mwan", "configuration"}, alias("admin", "network", "mwan", "configuration", "interface"), _("Configuration"), 20) + entry({"admin", "network", "mwan", "configuration", "globals"}, + cbi("mwan/globalsconfig"),_("Globals"), 5).leaf = true entry({"admin", "network", "mwan", "configuration", "interface"}, arcombine(cbi("mwan/interface"), cbi("mwan/interfaceconfig")), _("Interfaces"), 10).leaf = true @@ -41,32 +53,25 @@ function index() entry({"admin", "network", "mwan", "configuration", "rule"}, arcombine(cbi("mwan/rule"), cbi("mwan/ruleconfig")), _("Rules"), 40).leaf = true + entry({"admin", "network", "mwan", "configuration", "notify"}, + cbi("mwan/notify"), + _("Notification"), 50).leaf = true entry({"admin", "network", "mwan", "advanced"}, - alias("admin", "network", "mwan", "advanced", "hotplugscript"), + alias("admin", "network", "mwan", "advanced", "mwanconfig"), _("Advanced"), 100) - entry({"admin", "network", "mwan", "advanced", "hotplugscript"}, - form("mwan/advanced_hotplugscript")) entry({"admin", "network", "mwan", "advanced", "mwanconfig"}, form("mwan/advanced_mwanconfig")) entry({"admin", "network", "mwan", "advanced", "networkconfig"}, form("mwan/advanced_networkconfig")) entry({"admin", "network", "mwan", "advanced", "wirelessconfig"}, form("mwan/advanced_wirelessconfig")) - entry({"admin", "network", "mwan", "advanced", "diagnostics"}, - template("mwan/advanced_diagnostics")) - entry({"admin", "network", "mwan", "advanced", "diagnostics_display"}, - call("diagnosticsData"), nil).leaf = true - entry({"admin", "network", "mwan", "advanced", "troubleshooting"}, - template("mwan/advanced_troubleshooting")) - entry({"admin", "network", "mwan", "advanced", "troubleshooting_display"}, - call("troubleshootingData")) end function getInterfaceStatus(ruleNumber, interfaceName) - if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".enabled")) == "1" then + if ut.trim(sys.exec("uci -q -p /var/state get mwan3." .. interfaceName .. ".enabled")) == "1" then if ut.trim(sys.exec(ip .. "route list table " .. ruleNumber)) ~= "" then - if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".track_ip")) ~= "" then + if ut.trim(sys.exec("uci -q -p /var/state get mwan3." .. interfaceName .. ".track_ip")) ~= "" then return "online" else return "notMonitored" @@ -102,7 +107,7 @@ function interfaceStatus() wansid = {} for wanName, interfaceState in string.gfind(statusString, "([^%[]+)%[([^%]]+)%]") do - local wanInterfaceName = ut.trim(sys.exec("uci -p /var/state get network." .. wanName .. ".ifname")) + local wanInterfaceName = ut.trim(sys.exec("uci -q -p /var/state get network." .. wanName .. ".ifname")) if wanInterfaceName == "" then wanInterfaceName = "X" end @@ -115,7 +120,7 @@ function interfaceStatus() end -- overview status log - local mwanLog = ut.trim(sys.exec("logread | grep mwan3 | tail -n 50 | sed 'x;1!H;$!d;x'")) + local mwanLog = ut.trim(sys.exec("logread | grep mwan3 | tail -n 50 | sed 'x;1!H;$!d;x' 2>/dev/null")) if mwanLog ~= "" then mArray.mwanlog = { mwanLog } end @@ -163,7 +168,7 @@ function diagnosticsData(interface, tool, task) results = "MWAN3 started" end else - local interfaceDevice = ut.trim(sys.exec("uci -p /var/state get network." .. interface .. ".ifname")) + local interfaceDevice = ut.trim(sys.exec("uci -q -p /var/state get network." .. interface .. ".ifname")) if interfaceDevice ~= "" then if tool == "ping" then local gateway = ut.trim(sys.exec("route -n | awk '{if ($8 == \"" .. interfaceDevice .. "\" && $1 == \"0.0.0.0\" && $3 == \"0.0.0.0\") print $2}'")) @@ -172,7 +177,7 @@ function diagnosticsData(interface, tool, task) local pingCommand = "ping -c 3 -W 2 -I " .. interfaceDevice .. " " .. gateway results = pingCommand .. "\n\n" .. sys.exec(pingCommand) else - local tracked = ut.trim(sys.exec("uci -p /var/state get mwan3." .. interface .. ".track_ip")) + local tracked = ut.trim(sys.exec("uci -q -p /var/state get mwan3." .. interface .. ".track_ip")) if tracked ~= "" then for z in tracked:gmatch("[^ ]+") do local pingCommand = "ping -c 3 -W 2 -I " .. interfaceDevice .. " " .. z @@ -301,7 +306,7 @@ function troubleshootingData() mArray.iprule = { ipRuleShow } -- ip route list table 1-250 - local routeList, routeString = ut.trim(sys.exec(ip .. "rule | sed 's/://g' | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), "" + local routeList, routeString = ut.trim(sys.exec(ip .. "rule | sed 's/://g' 2>/dev/null | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), "" if routeList ~= "" then for line in routeList:gmatch("[^\r\n]+") do routeString = routeString .. line .. "\n" .. sys.exec(ip .. "route list table " .. line) @@ -313,7 +318,7 @@ function troubleshootingData() mArray.routelist = { routeString } -- default firewall output policy - local firewallOut = ut.trim(sys.exec("uci -p /var/state get firewall.@defaults[0].output")) + local firewallOut = ut.trim(sys.exec("uci -q -p /var/state get firewall.@defaults[0].output")) if firewallOut == "" then firewallOut = "No data found" end