Add support bridged network
Closes-bug: #1592805 Change-Id: If43d5e0f0fa5808eeae7aac9e5af78f0a5a95fbe
This commit is contained in:
parent
173a345ff1
commit
f932759d31
|
@ -452,7 +452,10 @@ class LibvirtL2NetworkDevice(L2NetworkDevice):
|
|||
name=self.network_name)
|
||||
self.driver.conn.nwfilterDefineXML(filter_xml)
|
||||
|
||||
bridge_name = self.driver.get_available_device_name(prefix='virbr')
|
||||
if self.forward.mode == 'bridge':
|
||||
bridge_name = self.parent_iface.phys_dev
|
||||
else:
|
||||
bridge_name = self.driver.get_available_device_name(prefix='virbr')
|
||||
|
||||
# TODO(ddmitriev): check if 'vlan' package installed
|
||||
# Define tagged interfaces on the bridge
|
||||
|
|
|
@ -52,10 +52,15 @@ class LibvirtXMLBuilder(object):
|
|||
network_xml = XMLGenerator('network')
|
||||
network_xml.name(cls._crop_name(network_name))
|
||||
|
||||
network_xml.bridge(
|
||||
name=bridge_name,
|
||||
stp='on' if stp else 'off',
|
||||
delay='0')
|
||||
if forward == 'bridge':
|
||||
network_xml.bridge(
|
||||
name=bridge_name,
|
||||
delay='0')
|
||||
else:
|
||||
network_xml.bridge(
|
||||
name=bridge_name,
|
||||
stp='on' if stp else 'off',
|
||||
delay='0')
|
||||
|
||||
if forward:
|
||||
network_xml.forward(mode=forward)
|
||||
|
@ -63,24 +68,25 @@ class LibvirtXMLBuilder(object):
|
|||
if ip_network_address is None:
|
||||
return str(network_xml)
|
||||
|
||||
with network_xml.ip(
|
||||
address=ip_network_address,
|
||||
prefix=ip_network_prefixlen):
|
||||
if has_pxe_server and tftp_root_dir:
|
||||
network_xml.tftp(root=tftp_root_dir)
|
||||
if dhcp:
|
||||
with network_xml.dhcp:
|
||||
network_xml.range(
|
||||
start=dhcp_range_start,
|
||||
end=dhcp_range_end)
|
||||
for address in addresses:
|
||||
network_xml.host(
|
||||
mac=address['mac'],
|
||||
ip=address['ip'],
|
||||
name=address['name'],
|
||||
)
|
||||
if has_pxe_server:
|
||||
network_xml.bootp(file='pxelinux.0')
|
||||
if forward != 'bridge':
|
||||
with network_xml.ip(
|
||||
address=ip_network_address,
|
||||
prefix=ip_network_prefixlen):
|
||||
if has_pxe_server and tftp_root_dir:
|
||||
network_xml.tftp(root=tftp_root_dir)
|
||||
if dhcp:
|
||||
with network_xml.dhcp:
|
||||
network_xml.range(
|
||||
start=dhcp_range_start,
|
||||
end=dhcp_range_end)
|
||||
for address in addresses:
|
||||
network_xml.host(
|
||||
mac=address['mac'],
|
||||
ip=address['ip'],
|
||||
name=address['name'],
|
||||
)
|
||||
if has_pxe_server:
|
||||
network_xml.bootp(file='pxelinux.0')
|
||||
|
||||
return str(network_xml)
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ class TestNetworkXml(BaseTestXMLBuilder):
|
|||
assert xml == ('<?xml version="1.0" encoding="utf-8"?>\n'
|
||||
'<network>\n'
|
||||
' <name>test_name</name>\n'
|
||||
' <bridge delay="0" name="virbr13" stp="on"/>\n'
|
||||
' <bridge delay="0" name="virbr13"/>\n'
|
||||
' <forward mode="bridge"/>\n'
|
||||
'</network>\n')
|
||||
|
||||
|
|
Loading…
Reference in New Issue