14
14
# License for the specific language governing permissions and limitations
15
15
# under the License.
17
from xml.etree import ElementTree
17
from lxml import etree
19
19
from nova import flags
20
20
from nova import test
21
21
from nova import utils
22
22
from nova.virt import firewall
23
from nova.virt.libvirt import config
24
from nova.virt.libvirt import connection
23
25
from nova.virt.libvirt import vif
24
from nova.virt.libvirt import connection
26
27
FLAGS = flags.FLAGS
66
68
self.stubs.Set(utils, 'execute', fake_execute)
67
t = __import__('Cheetah.Template', globals(), locals(),
69
self.Template = t.Template
70
xml_file = open(FLAGS.libvirt_xml_template)
71
self.xml_template = xml_file.read()
73
def _create_xml_info(self, vif_type, nics):
78
'memory_kb': 100 * 1024,
82
'disk_prefix': '/dev/sda',
84
'root_device_type': 'disk',
88
'ephemeral_device': False,
90
'use_virtio_for_bridges': False,
93
def _get_instance_xml(self, driver, vif_type):
94
nic_dict = driver.plug(self.instance, self.net, self.mapping)
95
xml_info = self._create_xml_info(vif_type, [nic_dict])
96
xml = str(self.Template(self.xml_template, searchList=[xml_info]))
70
def _get_instance_xml(self, driver):
71
conf = config.LibvirtConfigGuest()
72
conf.virt_type = "qemu"
73
conf.name = "fake-name"
74
conf.uuid = "fake-uuid"
75
conf.memory = 100 * 1024
78
nic = driver.plug(self.instance, self.net, self.mapping)
99
82
def test_bridge_driver(self):
100
83
d = vif.LibvirtBridgeDriver()
101
xml = self._get_instance_xml(d, 'bridge')
84
xml = self._get_instance_xml(d)
103
doc = ElementTree.fromstring(xml)
86
doc = etree.fromstring(xml)
104
87
ret = doc.findall('./devices/interface')
105
88
self.assertEqual(len(ret), 1)
115
98
def test_ovs_ethernet_driver(self):
116
99
d = vif.LibvirtOpenVswitchDriver()
117
xml = self._get_instance_xml(d, 'ethernet')
100
xml = self._get_instance_xml(d)
119
doc = ElementTree.fromstring(xml)
102
doc = etree.fromstring(xml)
120
103
ret = doc.findall('./devices/interface')
121
104
self.assertEqual(len(ret), 1)
133
116
def test_ovs_virtualport_driver(self):
134
117
d = vif.LibvirtOpenVswitchVirtualPortDriver()
135
xml = self._get_instance_xml(d, 'ovs_virtualport')
118
xml = self._get_instance_xml(d)
137
doc = ElementTree.fromstring(xml)
120
doc = etree.fromstring(xml)
138
121
ret = doc.findall('./devices/interface')
139
122
self.assertEqual(len(ret), 1)
159
142
def test_quantum_bridge_ethernet_driver(self):
160
143
d = vif.QuantumLinuxBridgeVIFDriver()
161
xml = self._get_instance_xml(d, 'ethernet')
144
xml = self._get_instance_xml(d)
163
doc = ElementTree.fromstring(xml)
146
doc = etree.fromstring(xml)
164
147
ret = doc.findall('./devices/interface')
165
148
self.assertEqual(len(ret), 1)