Add support bridged network

Closes-bug: #1592805
Change-Id: If43d5e0f0fa5808eeae7aac9e5af78f0a5a95fbe
This commit is contained in:
Dmitry Tyzhnenko 2016-06-14 19:51:45 +03:00 committed by Dmitry Tyzhnenko
parent 173a345ff1
commit f932759d31
3 changed files with 33 additions and 24 deletions

View File

@ -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

View File

@ -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)

View File

@ -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')