diff --git a/package/ctcgfw/luci-app-dockerman/Makefile b/package/ctcgfw/luci-app-dockerman/Makefile index 5cfbdbae26..1d0075649f 100644 --- a/package/ctcgfw/luci-app-dockerman/Makefile +++ b/package/ctcgfw/luci-app-dockerman/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-dockerman -PKG_VERSION:=v0.5.12 +PKG_VERSION:=v0.5.13 PKG_RELEASE:=beta PKG_MAINTAINER:=lisaac PKG_LICENSE:=AGPL-3.0 diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/dockerman/newnetwork.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/dockerman/newnetwork.lua index 081a772905..4dc8a0c36f 100644 --- a/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/dockerman/newnetwork.lua +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/cbi/dockerman/newnetwork.lua @@ -202,10 +202,14 @@ m.handle = function(self, state, data) docker:write_status("Network: " .. "create" .. " " .. create_body.Name .. "...") local res = dk.networks:create({body = create_body}) if res and res.code == 201 then - docker:clear_status() - if driver == "macvlan" and data.op_macvlan ~= 0 then - docker.create_macvlan_interface(data.name, data.parent, data.gateway, data.ip_range) + docker:write_status("Network: " .. "create macvlan interface...") + res = dk.networks:inspect({ name = create_body.Name }) + if driver == "macvlan" and data.op_macvlan ~= 0 and res.code == 200 + and res.body and res.body.IPAM and res.body.IPAM.Config and res.body.IPAM.Config[1] + and res.body.IPAM.Config[1].Gateway and res.body.IPAM.Config[1].Subnet then + docker.create_macvlan_interface(data.name, data.parent, res.body.IPAM.Config[1].Gateway, res.body.IPAM.Config[1].Subnet) end + docker:clear_status() luci.http.redirect(luci.dispatcher.build_url("admin/docker/networks")) else docker:append_status("code:" .. res.code.." ".. (res.body.message and res.body.message or res.message).. "\n") diff --git a/package/ctcgfw/luci-app-dockerman/luasrc/model/docker.lua b/package/ctcgfw/luci-app-dockerman/luasrc/model/docker.lua index 3d7cc77ccc..65628c3f8c 100644 --- a/package/ctcgfw/luci-app-dockerman/luasrc/model/docker.lua +++ b/package/ctcgfw/luci-app-dockerman/luasrc/model/docker.lua @@ -328,13 +328,13 @@ end -- ) -- end -_docker.create_macvlan_interface = function(name, device, gateway, ip_range) +_docker.create_macvlan_interface = function(name, device, gateway, subnet) if not nixio.fs.access("/etc/config/network") or not nixio.fs.access("/etc/config/firewall") then return end if uci:get("dockerman", "local", "remote_endpoint") == "true" then return end local ip = require "luci.ip" local if_name = "docker_"..name local dev_name = "macvlan_"..name - local net_mask = tostring(ip.new(ip_range):mask()) + local net_mask = tostring(ip.new(subnet):mask()) local lan_interfaces -- add macvlan device uci:delete("network", dev_name)