topologies: handle enable_v4
attribute for links
This commit is contained in:
parent
a6ba43c838
commit
458dc08d9c
4 changed files with 16 additions and 5 deletions
10
README.md
10
README.md
|
@ -64,6 +64,7 @@ looking like this:
|
||||||
---
|
---
|
||||||
links:
|
links:
|
||||||
- domains: ['a', 'b']
|
- domains: ['a', 'b']
|
||||||
|
enable_v4: false
|
||||||
- domains: ['b', 'c']
|
- domains: ['b', 'c']
|
||||||
domains:
|
domains:
|
||||||
b:
|
b:
|
||||||
|
@ -75,8 +76,13 @@ attribute, the list of domains (containers) connected to it. A domain is
|
||||||
described by an arbitrary name. Domains will be spawned (and indexed) in
|
described by an arbitrary name. Domains will be spawned (and indexed) in
|
||||||
alphabetical order.
|
alphabetical order.
|
||||||
|
|
||||||
|
The valid options for links are:
|
||||||
|
* `enable_v4`: boolean, specifies whether the NICs connected to this link have
|
||||||
|
an IPv4 address.
|
||||||
|
|
||||||
A `domains` root element is optional, and may be used to specify
|
A `domains` root element is optional, and may be used to specify
|
||||||
domain-specific options.
|
domain-specific options.
|
||||||
|
|
||||||
The valid options are:
|
The valid options for domains are:
|
||||||
* `enable_v4`: boolean, specifies whether the domain has an IPv4 address.
|
* `enable_v4`: boolean, specifies whether the domain has IPv4 addresses on its
|
||||||
|
NICs.
|
||||||
|
|
|
@ -174,7 +174,9 @@ class Container(util.LibvirtObject):
|
||||||
for net in self.networks:
|
for net in self.networks:
|
||||||
net_config = net_config_templ.inst(
|
net_config = net_config_templ.inst(
|
||||||
mac=util.MACAddress(net.id, self.id),
|
mac=util.MACAddress(net.id, self.id),
|
||||||
ipv4=util.Addrv4(net.id, self.id) if self.enable_v4 else None,
|
ipv4=util.Addrv4(net.id, self.id)
|
||||||
|
if self.enable_v4 and net.enable_v4
|
||||||
|
else None,
|
||||||
ipv6=util.Addrv6(net.id, self.id),
|
ipv6=util.Addrv6(net.id, self.id),
|
||||||
)
|
)
|
||||||
net_config_path = net_conf_dir / "11-{link:02d}-{name}.network".format(
|
net_config_path = net_conf_dir / "11-{link:02d}-{name}.network".format(
|
||||||
|
|
|
@ -12,13 +12,14 @@ class Network(util.LibvirtObject):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "This network is already instanciated"
|
return "This network is already instanciated"
|
||||||
|
|
||||||
def __init__(self, conn, name=None):
|
def __init__(self, conn, name=None, enable_v4=True):
|
||||||
super().__init__(conn)
|
super().__init__(conn)
|
||||||
|
|
||||||
if not name:
|
if not name:
|
||||||
name = str(self.id)
|
name = str(self.id)
|
||||||
|
|
||||||
self.name = settings.PREFIX + "_link_" + name
|
self.name = settings.PREFIX + "_link_" + name
|
||||||
|
self.enable_v4 = enable_v4
|
||||||
self.bridge_id = settings.NETWORK_ID * 0xFF + self.id
|
self.bridge_id = settings.NETWORK_ID * 0xFF + self.id
|
||||||
self.bridge_mac = util.MACAddress(self.id, None)
|
self.bridge_mac = util.MACAddress(self.id, None)
|
||||||
self.ipv4 = util.Addrv4(self.id, None, host_address=True)
|
self.ipv4 = util.Addrv4(self.id, None, host_address=True)
|
||||||
|
|
|
@ -214,7 +214,9 @@ class YamlTopology(Topology):
|
||||||
"a 'domains' attribute is mandatory for each link"
|
"a 'domains' attribute is mandatory for each link"
|
||||||
)
|
)
|
||||||
|
|
||||||
cur_link = network.Network(self.conn)
|
cur_link = network.Network(
|
||||||
|
self.conn, enable_v4=link_conf.get("enable_v4", True),
|
||||||
|
)
|
||||||
self.links.append(cur_link)
|
self.links.append(cur_link)
|
||||||
|
|
||||||
for dom in link_conf["domains"]:
|
for dom in link_conf["domains"]:
|
||||||
|
|
Loading…
Reference in a new issue