diff options
Diffstat (limited to 'applications/luci-app-lxc')
-rw-r--r-- | applications/luci-app-lxc/luasrc/controller/lxc.lua | 51 | ||||
-rw-r--r-- | applications/luci-app-lxc/luasrc/model/cbi/lxc.lua | 2 | ||||
-rw-r--r-- | applications/luci-app-lxc/luasrc/view/lxc.htm | 20 |
3 files changed, 33 insertions, 40 deletions
diff --git a/applications/luci-app-lxc/luasrc/controller/lxc.lua b/applications/luci-app-lxc/luasrc/controller/lxc.lua index 8557f2b821..4a7f96e5ff 100644 --- a/applications/luci-app-lxc/luasrc/controller/lxc.lua +++ b/applications/luci-app-lxc/luasrc/controller/lxc.lua @@ -19,6 +19,7 @@ module("luci.controller.lxc", package.seeall) local uci = require "luci.model.uci".cursor() local util = require "luci.util" local nx = require "nixio" +local url = util.shellquote(uci:get("lxc", "lxc", "url")) function index() if not nixio.fs.access("/etc/config/lxc") then @@ -38,12 +39,12 @@ function index() end function lxc_get_downloadable() - local target = lxc_get_arch_target() - local templates = {} + local target = lxc_get_arch_target(url) local ssl_status = lxc_get_ssl_status() + local templates = {} local f = io.popen('sh /usr/share/lxc/templates/lxc-download --list %s --server %s 2>/dev/null' - %{ ssl_status, util.shellquote(uci:get("lxc", "lxc", "url")) }, 'r') + %{ ssl_status, url }, 'r') local line for line in f:lines() do local dist, version, dist_target = line:match("^(%S+)%s+(%S+)%s+(%S+)%s+default%s+%S+$") @@ -59,31 +60,21 @@ end function lxc_create(lxc_name, lxc_template) luci.http.prepare_content("text/plain") - local path = lxc_get_config_path() if not path then return end local ssl_status = lxc_get_ssl_status() - - local src_err local lxc_dist, lxc_release = lxc_template:match("^(.+):(.+)$") - luci.http.write(util.ubus("lxc", "create", { - name = lxc_name, - template = "download", - args = { - "--server", uci:get("lxc", "lxc", "url"), - "--dist", lxc_dist, - "--release", lxc_release, - "--arch", lxc_get_arch_target(), - ssl_status - } - }), src_err) + luci.sys.call('/usr/bin/lxc-create --quiet --name %s --bdev best --template download -- --dist %s --release %s --arch %s --server %s %s' + %{ lxc_name, lxc_dist, lxc_release, lxc_get_arch_target(url), url, ssl_status }) while (nx.fs.access(path .. lxc_name .. "/partial")) do nx.nanosleep(1) end + + luci.http.write("0") end function lxc_action(lxc_action, lxc_name) @@ -153,19 +144,21 @@ function lxc_configuration_set(lxc_name) luci.http.write("0") end -function lxc_get_arch_target() +function lxc_get_arch_target(url) local target = nx.uname().machine - local target_map = { - armv5 = "armel", - armv6 = "armel", - armv7 = "armhf", - armv8 = "arm64", - x86_64 = "amd64" - } - local k, v - for k, v in pairs(target_map) do - if target:find("^" ..k.. "$") then - return v + if url and url:match("images.linuxcontainers.org") then + local target_map = { + armv5 = "armel", + armv6 = "armel", + armv7 = "armhf", + armv8 = "arm64", + x86_64 = "amd64" + } + local k, v + for k, v in pairs(target_map) do + if target:find(k) then + return v + end end end return target diff --git a/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua b/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua index 8a8fc2be0d..db7d19eb26 100644 --- a/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua +++ b/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua @@ -16,7 +16,7 @@ Author: Petar Koretic <petar.koretic@sartura.hr> m = Map("lxc", translate("LXC Containers"), translate("<b>Please note:</b> For LXC Containers you need a custom OpenWrt image.<br />") - .. translate("The image should include at least support for 'kernel cgroups', 'kernel namespaces' and 'miscellaneous LXC related options'.")) + .. translate("The image should include at least support for 'kernel cgroups', 'kernel namespaces' and 'miscellaneous LXC related options' plus 'kmod-veth' for optional network support.")) m:section(SimpleSection).template = "lxc" s = m:section(TypedSection, "lxc", translate("Options")) diff --git a/applications/luci-app-lxc/luasrc/view/lxc.htm b/applications/luci-app-lxc/luasrc/view/lxc.htm index b45e27f51f..47cc1a5f3f 100644 --- a/applications/luci-app-lxc/luasrc/view/lxc.htm +++ b/applications/luci-app-lxc/luasrc/view/lxc.htm @@ -19,8 +19,8 @@ local nx = require "nixio" local target = nx.uname().machine -%> -<fieldset class="cbi-section"> - <legend><%:Available Containers%></legend> +<div class="cbi-section"> + <h3><%:Available Containers%></h3> <div class="cbi-section-node"> <div class="table cbi-section-table" id="t_lxc_list"> <div class="tr cbi-section-table-titles"> @@ -30,15 +30,15 @@ local target = nx.uname().machine </div> </div> </div> -</fieldset> +</div> -<fieldset class="cbi-section"> +<div class="cbi-section"> <span id="lxc-list-output"></span> -</fieldset> +</div> <hr /> -<fieldset class="cbi-section"> - <legend><%:Create New Container%></legend> +<div class="cbi-section"> + <h3><%:Create New Container%></h3> <div class="cbi-section-node"> <div class="table cbi-section-table" id="t_lxc_create"> <div class="tr cbi-section-table-titles"> @@ -56,11 +56,11 @@ local target = nx.uname().machine </div> </div> </div> -</fieldset> +</div> -<fieldset class="cbi-section"> +<div class="cbi-section"> <span id="lxc-add-output"></span> -</fieldset> +</div> <hr /> |