add daemon control button
This commit is contained in:
parent
394498b14d
commit
c3af521bee
@ -4,8 +4,14 @@ Copyright 2019 lisaac <https://github.com/lisaac/luci-app-dockerman>
|
|||||||
]]--
|
]]--
|
||||||
|
|
||||||
local docker = require "luci.model.docker"
|
local docker = require "luci.model.docker"
|
||||||
|
local uci = (require "luci.model.uci").cursor()
|
||||||
|
|
||||||
local m, s, o
|
local m, s, o, lost_state
|
||||||
|
local dk = docker.new()
|
||||||
|
|
||||||
|
if dk:_ping().code ~= 200 then
|
||||||
|
lost_state = true
|
||||||
|
end
|
||||||
|
|
||||||
function byte_format(byte)
|
function byte_format(byte)
|
||||||
local suff = {"B", "KB", "MB", "GB", "TB"}
|
local suff = {"B", "KB", "MB", "GB", "TB"}
|
||||||
@ -31,6 +37,52 @@ docker_info_table['7DockerRootDir'] = {_key=translate("Docker Root Dir"),_value=
|
|||||||
docker_info_table['8IndexServerAddress'] = {_key=translate("Index Server Address"),_value='-'}
|
docker_info_table['8IndexServerAddress'] = {_key=translate("Index Server Address"),_value='-'}
|
||||||
docker_info_table['9RegistryMirrors'] = {_key=translate("Registry Mirrors"),_value='-'}
|
docker_info_table['9RegistryMirrors'] = {_key=translate("Registry Mirrors"),_value='-'}
|
||||||
|
|
||||||
|
if nixio.fs.access("/usr/bin/dockerd") and not uci:get_bool("dockerd", "dockerman", "remote_endpoint") then
|
||||||
|
s = m:section(SimpleSection)
|
||||||
|
s.template = "dockerman/apply_widget"
|
||||||
|
s.err=docker:read_status()
|
||||||
|
s.err=s.err and s.err:gsub("\n","<br>"):gsub(" "," ")
|
||||||
|
if s.err then
|
||||||
|
docker:clear_status()
|
||||||
|
end
|
||||||
|
s = m:section(Table,{{}})
|
||||||
|
s.notitle=true
|
||||||
|
s.rowcolors=false
|
||||||
|
s.template = "cbi/nullsection"
|
||||||
|
|
||||||
|
o = s:option(Button, "_start")
|
||||||
|
o.template = "dockerman/cbi/inlinebutton"
|
||||||
|
o.inputtitle = lost_state and translate("Start") or translate("Stop")
|
||||||
|
o.inputstyle = lost_state and "add" or "remove"
|
||||||
|
o.forcewrite = true
|
||||||
|
o.write = function(self, section)
|
||||||
|
docker:clear_status()
|
||||||
|
|
||||||
|
if lost_state then
|
||||||
|
docker:append_status("Docker daemon: starting")
|
||||||
|
luci.util.exec("/etc/init.d/dockerd start")
|
||||||
|
else
|
||||||
|
docker:append_status("Docker daemon: stopping")
|
||||||
|
luci.util.exec("/etc/init.d/dockerd stop")
|
||||||
|
end
|
||||||
|
docker:clear_status()
|
||||||
|
luci.http.redirect(luci.dispatcher.build_url("admin/docker/overview"))
|
||||||
|
end
|
||||||
|
|
||||||
|
o = s:option(Button, "_restart")
|
||||||
|
o.template = "dockerman/cbi/inlinebutton"
|
||||||
|
o.inputtitle = translate("Restart")
|
||||||
|
o.inputstyle = "reload"
|
||||||
|
o.forcewrite = true
|
||||||
|
o.write = function(self, section)
|
||||||
|
docker:clear_status()
|
||||||
|
docker:append_status("Docker daemon: restarting")
|
||||||
|
luci.util.exec("/etc/init.d/dockerd restart")
|
||||||
|
docker:clear_status()
|
||||||
|
luci.http.redirect(luci.dispatcher.build_url("admin/docker/overview"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
s = m:section(Table, docker_info_table)
|
s = m:section(Table, docker_info_table)
|
||||||
s:option(DummyValue, "_key", translate("Info"))
|
s:option(DummyValue, "_key", translate("Info"))
|
||||||
s:option(DummyValue, "_value")
|
s:option(DummyValue, "_value")
|
||||||
@ -45,8 +97,7 @@ s.images_total = '-'
|
|||||||
s.networks_total = '-'
|
s.networks_total = '-'
|
||||||
s.volumes_total = '-'
|
s.volumes_total = '-'
|
||||||
|
|
||||||
if docker.new():_ping().code == 200 then
|
if not lost_state then
|
||||||
local dk = docker.new()
|
|
||||||
local containers_list = dk.containers:list({query = {all=true}}).body
|
local containers_list = dk.containers:list({query = {all=true}}).body
|
||||||
local images_list = dk.images:list().body
|
local images_list = dk.images:list().body
|
||||||
local vol = dk.volumes:list()
|
local vol = dk.volumes:list()
|
||||||
@ -85,6 +136,8 @@ if docker.new():_ping().code == 200 then
|
|||||||
s.images_total = tostring(#images_list)
|
s.images_total = tostring(#images_list)
|
||||||
s.networks_total = tostring(#networks_list)
|
s.networks_total = tostring(#networks_list)
|
||||||
s.volumes_total = tostring(#volumes_list)
|
s.volumes_total = tostring(#volumes_list)
|
||||||
|
else
|
||||||
|
docker_info_table['3ServerVersion']._value = translate("Cannot connect to Docker daemon. Is the docker daemon running?")
|
||||||
end
|
end
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
@ -745,6 +745,7 @@ msgstr "资源"
|
|||||||
|
|
||||||
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:227
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:227
|
||||||
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/containers.lua:202
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/containers.lua:202
|
||||||
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua:74
|
||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "重启"
|
msgstr "重启"
|
||||||
|
|
||||||
@ -795,6 +796,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:218
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:218
|
||||||
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/containers.lua:193
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/containers.lua:193
|
||||||
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua:55
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "启动"
|
msgstr "启动"
|
||||||
|
|
||||||
@ -815,6 +817,7 @@ msgstr "状态"
|
|||||||
|
|
||||||
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:236
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/container.lua:236
|
||||||
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/containers.lua:211
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/containers.lua:211
|
||||||
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua:55
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "停止"
|
msgstr "停止"
|
||||||
|
|
||||||
@ -951,3 +954,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"按下导入按钮时,既可以将本地镜像文件加载到系统上,也可以从远程下载有效的Tar格"
|
"按下导入按钮时,既可以将本地镜像文件加载到系统上,也可以从远程下载有效的Tar格"
|
||||||
"式的镜像文件。"
|
"式的镜像文件。"
|
||||||
|
|
||||||
|
#: applications/luci-app-dockerman/luasrc/model/cbi/dockerman/overview.lua:140
|
||||||
|
msgid "Cannot connect to Docker daemon. Is the docker daemon running?"
|
||||||
|
msgstr "无法连接到 Docker 守护进程,Docker 是否已启动?"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user