summaryrefslogtreecommitdiffstats
path: root/aconf/modules
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2015-02-22 00:08:53 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2015-02-22 01:51:30 +0200
commit1e4cb26264f67b5fe8e3e55e17d1ad785c137f24 (patch)
tree0f91b39518c6ba6ffd2f97d386ca8b0c5add3b41 /aconf/modules
parent30ea327005ed2f45e19b2314b8caaae3c7edd894 (diff)
downloadaconf-1e4cb26264f67b5fe8e3e55e17d1ad785c137f24.tar.bz2
aconf-1e4cb26264f67b5fe8e3e55e17d1ad785c137f24.tar.xz
model: scattered lists
Diffstat (limited to 'aconf/modules')
-rw-r--r--aconf/modules/network.lua30
1 files changed, 14 insertions, 16 deletions
diff --git a/aconf/modules/network.lua b/aconf/modules/network.lua
index 82a83ef..8c985ff 100644
--- a/aconf/modules/network.lua
+++ b/aconf/modules/network.lua
@@ -92,12 +92,6 @@ end
function Interface:is_removable() return self.class == 'logical' end
-function Interface:auto_set()
- for _, set in ipairs(self:fetch('../../enabled-ifaces')) do
- if M.node.contains(set, self) then return set end
- end
-end
-
function Interface:auto_vlan_tag()
local name = M.node.name(self)
local _, tag = name:match(vlan_pattern)
@@ -106,13 +100,14 @@ function Interface:auto_vlan_tag()
end
Interface.enabled = M.Boolean{
- compute=function(iface) return iface:auto_set() and true or false end,
+ compute=function(iface)
+ return M.node.contains(iface:fetch('../../enabled-ifaces'), iface)
+ end,
store=function(iface, value)
- local set = iface:auto_set()
- if value and not set then
- M.node.insert(iface:fetch('../../enabled-ifaces/1'), iface)
- elseif not value and set then set[iface] = nil end
- end
+ local set = iface:fetch('../../enabled-ifaces')
+ if value then M.node.insert(set, iface)
+ else set[iface] = nil end
+ end
}
Interface.class = M.String{
@@ -251,10 +246,13 @@ Net.resolver = M.Model{
model=Resolv, addr='/augeas/etc/resolv.conf', ui_name='DNS resolver'
}
-Net.enabled_ifaces = M.List{
- type=M.Set{type=M.Reference{scope='../../interfaces', on_delete='set-null'}},
- visible=false,
- addr=iface_aug_addr..'/auto/#'
+Net.enabled_ifaces = M.Set{
+ type=M.Reference{
+ scope='../interfaces',
+ addr=iface_aug_addr..'/auto/#/*/*',
+ on_delete='set-null'
+ },
+ visible=false
}
Net.interfaces = M.Collection{
type=Interface, addr=iface_aug_addr..'/iface/@', widget='inline'