applications: add frontend for the MultiWAN agent

This commit is contained in:
Jo-Philipp Wich 2010-04-16 14:06:42 +00:00
parent daca626e86
commit be09c6ca6e
7 changed files with 516 additions and 0 deletions

View file

@ -0,0 +1,4 @@
PO = multiwan
include ../../build/config.mk
include ../../build/module.mk

View file

@ -0,0 +1,13 @@
module("luci.controller.multiwan", package.seeall)
function index()
local fs = luci.fs or nixio.fs
if not fs.access("/etc/config/multiwan") then
return
end
local page = entry({"admin", "network", "multiwan"}, cbi("multiwan/multiwan"), "Multi-WAN")
page.i18n = "multiwan"
page.dependent = true
end

View file

@ -0,0 +1,145 @@
require("luci.tools.webadmin")
m = Map("multiwan")
s = m:section(NamedSection, "config", "multiwan", "")
e = s:option(Flag, "enabled", translate("enable"))
e.rmempty = false
function e.write(self, section, value)
local cmd = (value == "1") and "enable" or "disable"
if value ~= "1" then
os.execute("/etc/init.d/multiwan stop")
end
os.execute("/etc/init.d/multiwan " .. cmd)
end
function e.cfgvalue(self, section)
return (os.execute("/etc/init.d/multiwan enabled") == 0) and "1" or "0"
end
default_route = s:option(ListValue, "default_route", translate("default_route"))
luci.tools.webadmin.cbi_add_networks(default_route)
default_route:value("balancer", translate("balancer"))
default_route.default = "balancer"
default_route.optional = false
default_route.rmempty = false
resolv_conf = s:option(Value, "resolv_conf", translate("resolv_conf"), translate("resolv_conf_desc"))
resolv_conf.default = "/tmp/resolv.conf.auto"
resolv_conf.optional = false
resolv_conf.rmempty = false
s = m:section(TypedSection, "interface", translate("interfaces"), translate("interfaces_desc"))
s.addremove = true
weight = s:option(ListValue, "weight", translate("weight"))
weight:value("10", "10")
weight:value("9", "9")
weight:value("8", "8")
weight:value("7", "7")
weight:value("6", "6")
weight:value("5", "5")
weight:value("4", "4")
weight:value("3", "3")
weight:value("2", "2")
weight:value("1", "1")
weight:value("disable", translate("none"))
weight.default = "5"
weight.optional = false
weight.rmempty = false
interval = s:option(ListValue, "health_interval", translate("health_interval"))
interval:value("disable", translate("disable"))
interval:value("5", "5 sec.")
interval:value("10", "10 sec.")
interval:value("20", "20 sec.")
interval:value("30", "30 sec.")
interval:value("60", "60 sec.")
interval:value("120", "120 sec.")
interval.default = "10"
interval.optional = false
interval.rmempty = false
icmp_hosts = s:option(Value, "icmp_hosts", translate("icmp_hosts"))
icmp_hosts:value("disable", translate("disable"))
icmp_hosts:value("dns", "DNS Server(s)")
icmp_hosts:value("gateway", "WAN Gateway")
icmp_hosts.default = "dns"
icmp_hosts.optional = false
icmp_hosts.rmempty = false
timeout = s:option(ListValue, "timeout", translate("timeout"))
timeout:value("1", "1 sec.")
timeout:value("2", "2 sec.")
timeout:value("3", "3 sec.")
timeout:value("4", "4 sec.")
timeout:value("5", "5 sec.")
timeout:value("10", "10 sec.")
timeout.default = "3"
timeout.optional = false
timeout.rmempty = false
fail = s:option(ListValue, "health_fail_retries", translate("health_fail_retries"))
fail:value("1", "1")
fail:value("3", "3")
fail:value("5", "5")
fail:value("10", "10")
fail:value("15", "15")
fail:value("20", "20")
fail.default = "3"
fail.optional = false
fail.rmempty = false
recovery = s:option(ListValue, "health_recovery_retries", translate("health_recovery_retries"))
recovery:value("1", "1")
recovery:value("3", "3")
recovery:value("5", "5")
recovery:value("10", "10")
recovery:value("15", "15")
recovery:value("20", "20")
recovery.default = "5"
recovery.optional = false
recovery.rmempty = false
failover_to = s:option(ListValue, "failover_to", translate("failover_to"))
failover_to:value("disable", translate("none"))
luci.tools.webadmin.cbi_add_networks(failover_to)
failover_to:value("balancer", translate("balancer"))
failover_to.default = "balancer"
failover_to.optional = false
failover_to.rmempty = false
s = m:section(TypedSection, "mwanfw", translate("mwanfw"), translate("mwanfw_desc"))
s.template = "cbi/tblsection"
s.anonymous = true
s.addremove = true
src = s:option(Value, "src", translate("src"))
src.rmempty = true
src:value("", translate("all"))
luci.tools.webadmin.cbi_add_knownips(src)
dst = s:option(Value, "dst", translate("dst"))
dst.rmempty = true
dst:value("", translate("all"))
luci.tools.webadmin.cbi_add_knownips(dst)
proto = s:option(ListValue, "proto", translate("protocol"))
proto:value("", translate("all"))
proto:value("tcp", "TCP")
proto:value("udp", "UDP")
proto:value("icmp", "ICMP")
proto.rmempty = true
ports = s:option(Value, "ports", translate("ports"))
ports.rmempty = true
ports:value("", translate("all", translate("all")))
wanrule = s:option(ListValue, "wanrule", translate("wanrule"))
luci.tools.webadmin.cbi_add_networks(wanrule)
wanrule:value("balancer", translate("balancer"))
wanrule.default = "balancer"
wanrule.optional = false
wanrule.rmempty = false
return m

View file

@ -0,0 +1,107 @@
package multiwan
config package
option title `Multi-WAN Agent'
config section
option name 'multiwan'
option title 'Settings'
option named true
option required true
config variable
option name 'default_route'
option title 'Default Route'
option section 'multiwan.multiwan'
option required true
config variable
option name 'resolv_conf'
option title 'DNS configuration file'
option section 'multiwan.multiwan'
option required true
config section
option name 'interface'
option title 'WAN Uplinks Configuration'
option named true
option required true
config variable
option name 'weight'
option title 'Load Balancer Weight'
option section 'multiwan.interface'
option datatype 'integer'
option required true
config variable
option name 'health_interval'
option title 'Health Monitor - Interval'
option section 'multiwan.multiwan'
option datatype 'integer'
option required true
config variable
option name 'icmp_hosts'
option title 'Health Monitor - ICMP Host(s)'
option section 'multiwan.interface'
option required true
config variable
option name 'timeout'
option title 'Health Monitor - ICMP Timeout'
option section 'multiwan.interface'
option datatype 'integer'
option required true
config variable
option name 'health_fail_retries'
option title 'Attempts Before WAN Failover'
option section 'multiwan.interface'
option datatype 'integer'
option required true
config variable
option name 'health_recovery_retries'
option title 'Attempts Before WAN Recovery'
option section 'multiwan.interface'
option datatype 'integer'
option required true
config variable
option name 'failover_to'
option title 'Failover Traffic Destination'
option section 'multiwan.interface'
option required true
config section
option name 'mwanfw'
option title 'Multi-WAN Traffic Rules'
option package 'multiwan.mwanfw'
config section
option name 'src'
option title 'Match by Source Address'
option section 'dualwan.dualwanfw'
config section
option name 'dst'
option title 'Match by Destination Address'
option section 'dualwan.dualwanfw'
config section
option name 'proto'
option title 'Match by Protocol'
option section 'dualwan.dualwanfw'
config section
option name 'ports'
option title 'Match by Destination Ports'
option section 'dualwan.dualwanfw'
config section
option name 'wanrule'
option title 'WAN Traffic Decision'
option section 'multiwan.mwanfw'
option required true

View file

@ -767,6 +767,17 @@ define Package/luci-app-p2pblock/install
$(call Package/luci/install/template,$(1),applications/luci-p2pblock) $(call Package/luci/install/template,$(1),applications/luci-p2pblock)
endef endef
define Package/luci-app-multiwan
$(call Package/luci/webtemplate)
TITLE:=LuCI Support for the OpenWrt MultiWAN agent
DEPENDS+=+luci-admin-core +luci-app-firewall \
+PACKAGE_luci-app-multiwan:multiwan
endef
define Package/luci-app-multiwan/install
$(call Package/luci/install/template,$(1),applications/luci-multiwan)
endef
### Server Gateway Interfaces ### ### Server Gateway Interfaces ###
@ -1188,6 +1199,9 @@ endif
ifneq ($(CONFIG_PACKAGE_luci-app-p2pblock),) ifneq ($(CONFIG_PACKAGE_luci-app-p2pblock),)
PKG_SELECTED_MODULES+=applications/luci-p2pblock PKG_SELECTED_MODULES+=applications/luci-p2pblock
endif endif
ifneq ($(CONFIG_PACKAGE_luci-app-multiwan),)
PKG_SELECTED_MODULES+=applications/luci-multiwan
endif
ifneq ($(CONFIG_PACKAGE_luci-sgi-cgi),) ifneq ($(CONFIG_PACKAGE_luci-sgi-cgi),)
@ -1322,6 +1336,7 @@ $(eval $(call BuildPackage,luci-app-asterisk))
$(eval $(call BuildPackage,luci-app-polipo)) $(eval $(call BuildPackage,luci-app-polipo))
$(eval $(call BuildPackage,luci-app-openvpn)) $(eval $(call BuildPackage,luci-app-openvpn))
$(eval $(call BuildPackage,luci-app-p2pblock)) $(eval $(call BuildPackage,luci-app-p2pblock))
$(eval $(call BuildPackage,luci-app-multiwan))
$(eval $(call BuildPackage,luci-sgi-cgi)) $(eval $(call BuildPackage,luci-sgi-cgi))
$(eval $(call BuildPackage,luci-sgi-uhttpd)) $(eval $(call BuildPackage,luci-sgi-uhttpd))

116
po/en/multiwan.po Normal file
View file

@ -0,0 +1,116 @@
# multiwan.po
# generated from /tmp/i18n/luasrc/i18n/multiwan.en.lua
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:1
#. Multi-WAN
msgid "multiwan"
msgstr "Multi-WAN"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:2
#. Multi-WAN allows for the use of multiple uplinks for load balancing and failover.
msgid "multiwan_desc"
msgstr "Multi-WAN allows for the use of multiple uplinks for load balancing and failover."
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:3
#. Default Route
msgid "default_route"
msgstr "Default Route"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:4
#. DNS configuration file
msgid "resolv_conf"
msgstr "DNS configuration file"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:5
#. (dnsmasq uses /tmp/resolv.conf.auto)
msgid "resolv_conf_desc"
msgstr "(dnsmasq uses /tmp/resolv.conf.auto)"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:6
#. WAN Uplinks Configuration
msgid "interfaces"
msgstr "WAN Uplinks Configuration"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:7
#. Health Monitor detects and corrects network changes and failed connections.
msgid "interfaces_desc"
msgstr "Health Monitor detects and corrects network changes and failed connections."
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:8
#. Load Balancer Distribution
msgid "weight"
msgstr "Load Balancer Distribution"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:9
#. None
msgid "none"
msgstr "None"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:10
#. Health Monitor Frequency
msgid "health_interval"
msgstr "Health Monitor Frequency"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:11
#. Health Monitor ICMP Host(s)
msgid "icmp_hosts"
msgstr "Health Monitor ICMP Host(s)"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:12
#. Health Monitor ICMP Timeout
msgid "timeout"
msgstr "Health Monitor ICMP Timeout"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:13
#. Attempts Before WAN Failover
msgid "health_fail_retries"
msgstr "Attempts Before WAN Failover"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:14
#. Attempts Before WAN Recovery
msgid "health_recovery_retries"
msgstr "Attempts Before WAN Recovery"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:15
#. Failover Traffic Destination
msgid "failover_to"
msgstr "Failover Traffic Destination"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:16
#. Multi-WAN Traffic Rules
msgid "mwanfw"
msgstr "Multi-WAN Traffic Rules"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:17
#. Configure rules for directing outbound traffic through specified WAN Uplinks.
msgid "mwanfw_desc"
msgstr "Configure rules for directing outbound traffic through specified WAN Uplinks."
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:18
#. Source Address
msgid "src"
msgstr "Source Address"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:19
#. Destination Address
msgid "dst"
msgstr "Destination Address"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:20
#. WAN Uplink
msgid "wanrule"
msgstr "WAN Uplink"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:21
#. Load Balancer
msgid "balancer"
msgstr "Load Balancer"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:22
#. Disable
msgid "disable"
msgstr "Disable"

116
po/templates/multiwan.pot Normal file
View file

@ -0,0 +1,116 @@
# multiwan.pot
# generated from /tmp/i18n/luasrc/i18n/multiwan.en.lua
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:1
#. Multi-WAN
msgid "multiwan"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:2
#. Multi-WAN allows for the use of multiple uplinks for load balancing and failover.
msgid "multiwan_desc"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:3
#. Default Route
msgid "default_route"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:4
#. DNS configuration file
msgid "resolv_conf"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:5
#. (dnsmasq uses /tmp/resolv.conf.auto)
msgid "resolv_conf_desc"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:6
#. WAN Uplinks Configuration
msgid "interfaces"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:7
#. Health Monitor detects and corrects network changes and failed connections.
msgid "interfaces_desc"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:8
#. Load Balancer Distribution
msgid "weight"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:9
#. None
msgid "none"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:10
#. Health Monitor Frequency
msgid "health_interval"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:11
#. Health Monitor ICMP Host(s)
msgid "icmp_hosts"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:12
#. Health Monitor ICMP Timeout
msgid "timeout"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:13
#. Attempts Before WAN Failover
msgid "health_fail_retries"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:14
#. Attempts Before WAN Recovery
msgid "health_recovery_retries"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:15
#. Failover Traffic Destination
msgid "failover_to"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:16
#. Multi-WAN Traffic Rules
msgid "mwanfw"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:17
#. Configure rules for directing outbound traffic through specified WAN Uplinks.
msgid "mwanfw_desc"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:18
#. Source Address
msgid "src"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:19
#. Destination Address
msgid "dst"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:20
#. WAN Uplink
msgid "wanrule"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:21
#. Load Balancer
msgid "balancer"
msgstr ""
#: /tmp/i18n/luasrc/i18n/multiwan.en.lua:22
#. Disable
msgid "disable"
msgstr ""