From dae7c63ba7161d8b6c68f7558dd5420e35c70a17 Mon Sep 17 00:00:00 2001 From: Ycarus Date: Mon, 14 Jan 2019 18:13:04 +0100 Subject: [PATCH] Use radio to select VPS maste --- .../luasrc/controller/openmptcprouter.lua | 15 ++++++++------- .../luasrc/view/openmptcprouter/wizard.htm | 8 ++++++-- .../root/etc/uci-defaults/openmptcprouter | 7 +++++++ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index ef001e798..d4385a587 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -256,26 +256,27 @@ function wizard_add() end -- Retrieve all server settings - local getconf = 0 local serversnb = 0 local servers = luci.http.formvaluetable("server") for server, _ in pairs(servers) do local server_ip = luci.http.formvalue("%s.server_ip" % server) or "" - local backup = luci.http.formvalue("%s.backup" % server) or "0" + local master = luci.http.formvalue("master") or "" -- OpenMPTCProuter VPS local openmptcprouter_vps_key = luci.http.formvalue("%s.openmptcprouter_vps_key" % server) or "" ucic:set("openmptcprouter",server,"server") ucic:set("openmptcprouter",server,"username","openmptcprouter") ucic:set("openmptcprouter",server,"password",openmptcprouter_vps_key) - if backup == "0" and getconf == 0 then + if master == server then ucic:set("openmptcprouter",server,"get_config","1") - getconf = getconf + 1 + ucic:set("openmptcprouter",server,"master","1") + ucic:set("openmptcprouter",server,"backup","0") else ucic:set("openmptcprouter",server,"get_config","0") + ucic:set("openmptcprouter",server,"master","0") + ucic:set("openmptcprouter",server,"backup","1") end ucic:set("openmptcprouter",server,"ip",server_ip) - ucic:set("openmptcprouter",server,"backup",backup) ucic:set("openmptcprouter",server,"port","65500") ucic:save("openmptcprouter") if server_ip ~= "" then @@ -290,13 +291,13 @@ function wizard_add() local ss_ip for server, _ in pairs(servers) do - local backup = luci.http.formvalue("%s.backup" % server) or "0" + local master = luci.http.formvalue("master") or "" local server_ip = luci.http.formvalue("%s.server_ip" % server) or "" -- We have an IP, so set it everywhere if server_ip ~= "" then -- Check if we have more than one IP, in this case use Nginx HA if serversnb > 1 then - if backup == "0" then + if master == server then ss_ip=server_ip table.insert(ss_servers_nginx,server_ip .. ":65101 max_fails=2 fail_timeout=20s") table.insert(ss_servers_ha,server_ip .. ":65101 check") diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index f798f62e8..9331a7abd 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -88,9 +88,13 @@ end %>
- +
- checked<% end %>/> + checked<% end %>/> +
+
+ <%:Only one server can be master, else all servers are set as backup.%> +
<% diff --git a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter index f6eb04ef6..39e50d511 100755 --- a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter @@ -33,6 +33,13 @@ if [ "$(uci -q get openmptcprouter.vps)" != "server" ]; then commit openmptcprouter EOF fi +if [ "$(uci -q get openmptcprouter.vps.master)" = "" ]; then + uci -q batch <<-EOF + set openmptcprouter.vps.master=1 + set openmptcprouter.vps.backup=0 + commit openmptcprouter + EOF +fi if [ "$(uci -q get openmptcprouter.omr)" != "router" ]; then uci -q batch <<-EOF set openmptcprouter.omr=router