diff options
author | Florian Eckert <fe@dev.tdt.de> | 2020-07-28 15:58:49 +0200 |
---|---|---|
committer | Florian Eckert <fe@dev.tdt.de> | 2020-07-28 16:03:11 +0200 |
commit | dff11ad2404d77be1da786883fa7155b83a67be0 (patch) | |
tree | 91d9e199c4fc06a180b51ac148c048c824dc40bd | |
parent | 18c2fef8b38df9d932200da0af7b61120984850a (diff) |
luci-app-dockerman: refactoring remote endpoint options
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
4 files changed, 52 insertions, 31 deletions
diff --git a/applications/luci-app-dockerman/luasrc/controller/dockerman.lua b/applications/luci-app-dockerman/luasrc/controller/dockerman.lua index a592f4b3a..608fbf4b0 100644 --- a/applications/luci-app-dockerman/luasrc/controller/dockerman.lua +++ b/applications/luci-app-dockerman/luasrc/controller/dockerman.lua @@ -14,18 +14,18 @@ function index() entry({"admin", "docker", "overview"},cbi("dockerman/overview"),_("Overview"),0).leaf=true - local remote = luci.model.uci.cursor():get("dockerd", "globals", "remote_endpoint") - if remote == nil then - local socket = luci.model.uci.cursor():get("dockerd", "globals", "socket_path") - if socket and not nixio.fs.access(socket) then - return - end - elseif remote == "true" then + local remote = luci.model.uci.cursor():get_bool("dockerd", "globals", "remote_endpoint") + if remote then local host = luci.model.uci.cursor():get("dockerd", "globals", "remote_host") local port = luci.model.uci.cursor():get("dockerd", "globals", "remote_port") if not host or not port then return end + else + local socket = luci.model.uci.cursor():get("dockerd", "globals", "socket_path") + if socket and not nixio.fs.access(socket) then + return + end end if (require "luci.model.docker").new():_ping().code ~= 200 then diff --git a/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua b/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua index 4f7a05e7f..dfcb42ddb 100644 --- a/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua +++ b/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua @@ -705,10 +705,18 @@ elseif action == "console" then luci.util.exec(kill_ttyd) local hosts local uci = (require "luci.model.uci").cursor() - local remote = uci:get("dockerd", "globals", "remote_endpoint") - local socket_path = (remote == "false" or not remote) and uci:get("dockerd", "globals", "socket_path") or nil - local host = (remote == "true") and uci:get("dockerd", "globals", "remote_host") or nil - local port = (remote == "true") and uci:get("dockerd", "globals", "remote_port") or nil + local remote = uci:get_bool("dockerd", "globals", "remote_endpoint") + local host = nil + local port = nil + local socket = nil + + if remote then + host = uci:get("dockerd", "globals", "remote_host") or nil + port = uci:get("dockerd", "globals", "remote_port") or nil + else + socket = uci:get("dockerd", "globals", "socket_path") or nil + end + if remote and host and port then hosts = host .. ':'.. port elseif socket_path then diff --git a/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua b/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua index 04a1f0e99..c2ed6b139 100644 --- a/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua +++ b/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua @@ -91,41 +91,42 @@ if docker.new():_ping().code == 200 then end s = m:section(NamedSection, "globals", "section", translate("Setting")) -s:tab("daemon", translate("Docker Daemon")) -s:tab("dockerman", translate("DockerMan")) -o = s:taboption("dockerman", Value, "socket_path", +o = s:option(Flag, "remote_endpoint", + translate("Remote Endpoint"), + translate("Connect to remote endpoint")) +o.rmempty = false + +o = s:option(Value, "socket_path", translate("Docker Socket Path")) o.default = "/var/run/docker.sock" o.placeholder = "/var/run/docker.sock" o.rmempty = false +o:depends("remote_endpoint", 1) -o = s:taboption("dockerman", Flag, "remote_endpoint", - translate("Remote Endpoint"), - translate("Dockerman connect to remote endpoint")) -o.rmempty = false -o.enabled = "true" -o.disabled = "false" - -o = s:taboption("dockerman", Value, "remote_host", +o = s:option(Value, "remote_host", translate("Remote Host")) o.placeholder = "10.1.1.2" +o:depends("remote_endpoint", 1) -o = s:taboption("dockerman", Value, "remote_port", +o = s:option(Value, "remote_port", translate("Remote Port")) o.placeholder = "2375" o.default = "2375" +o:depends("remote_endpoint", 1) if nixio.fs.access("/usr/bin/dockerd") then - o = s:taboption("daemon", Value, "data_root", + o = s:option(Value, "data_root", translate("Docker Root Dir")) o.placeholder = "/opt/docker/" + o:depends("remote_endpoint", 0) - o = s:taboption("daemon", DynamicList, "registry_mirrors", + o = s:option(DynamicList, "registry_mirrors", translate("Registry Mirrors")) o:value("https://hub-mirror.c.163.com", "https://hub-mirror.c.163.com") + o:depends("remote_endpoint", 0) - o = s:taboption("daemon", ListValue, "log_level", + o = s:option(ListValue, "log_level", translate("Log Level"), translate('Set the logging level')) o:value("debug", "debug") @@ -133,13 +134,15 @@ if nixio.fs.access("/usr/bin/dockerd") then o:value("warn", "warn") o:value("error", "error") o:value("fatal", "fatal") + o:depends("remote_endpoint", 0) - o = s:taboption("daemon", DynamicList, "hosts", + o = s:option(DynamicList, "hosts", translate("Client connection"), translate('Specifies where the Docker daemon will listen for client connections')) o:value("unix://var/run/docker.sock", "unix://var/run/docker.sock") o:value("tcp://0.0.0.0:2375", "tcp://0.0.0.0:2375") o.rmempty = true + o:depends("remote_endpoint", 0) end return m diff --git a/applications/luci-app-dockerman/luasrc/model/docker.lua b/applications/luci-app-dockerman/luasrc/model/docker.lua index 51b728742..88b5cc460 100644 --- a/applications/luci-app-dockerman/luasrc/model/docker.lua +++ b/applications/luci-app-dockerman/luasrc/model/docker.lua @@ -270,13 +270,23 @@ local duplicate_config = function (self, request) end _docker.new = function() + local host = nil + local port = nil + local socket = nil - local remote = uci:get("dockerd", "globals", "remote_endpoint") + local remote = uci:get_bool("dockerd", "globals", "remote_endpoint") + + if remote then + host = uci:get("dockerd", "globals", "remote_host") or nil + port = uci:get("dockerd", "globals", "remote_port") or nil + else + socket = uci:get("dockerd", "globals", "socket_path") or "/var/run/docker.sock" + end _docker.options = { - host = (remote == "true") and (uci:get("dockerd", "globals", "remote_host")) or nil, - port = (remote == "true") and (uci:get("dockerd", "globals", "remote_port")) or nil, - socket_path = (remote ~= "true") and (uci:get("dockerd", "globals", "socket_path") or "/var/run/docker.sock") or nil, + host = host, + port = port, + socket_path = socket, debug = uci:get("dockerd", "globals", "debug") == 'true' and true or false, debug_path = uci:get("dockerd", "globals", "debug_path") or "/tmp/.docker_debug", status_path = uci:get("dockerd", "globals", "status_path") or "/tmp/.docker_status" |