~ubuntu-branches/ubuntu/raring/nova/raring-proposed

« back to all changes in this revision

Viewing changes to nova/tests/test_libvirt_vif.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Adam Gandelman, Chuck Short
  • Date: 2012-11-23 09:04:58 UTC
  • mfrom: (1.1.66)
  • Revision ID: package-import@ubuntu.com-20121123090458-91565o7aev1i1h71
Tags: 2013.1~g1-0ubuntu1
[ Adam Gandelman ]
* debian/control: Ensure novaclient is upgraded with nova,
  require python-keystoneclient >= 1:2.9.0. (LP: #1073289)
* debian/patches/{ubuntu/*, rbd-security.patch}: Dropped, applied
  upstream.
* debian/control: Add python-testtools to Build-Depends.

[ Chuck Short ]
* New upstream version.
* Refreshed debian/patches/avoid_setuptools_git_dependency.patch.
* debian/rules: FTBFS if missing binaries.
* debian/nova-scheudler.install: Add missing rabbit-queues and
  nova-rpc-zmq-receiver.
* Remove nova-volume since it doesnt exist anymore, transition to cinder-*.
* debian/rules: install apport hook in the right place.
* debian/patches/ubuntu-show-tests.patch: Display test failures.
* debian/control: Add depends on genisoimage
* debian/control: Suggest guestmount.
* debian/control: Suggest websockify. (LP: #1076442)
* debian/nova.conf: Disable nova-volume service.
* debian/control: Depend on xen-system-* rather than the hypervisor.
* debian/control, debian/mans/nova-conductor.8, debian/nova-conductor.init,
  debian/nova-conductor.install, debian/nova-conductor.logrotate
  debian/nova-conductor.manpages, debian/nova-conductor.postrm
  debian/nova-conductor.upstart.in: Add nova-conductor service.
* debian/control: Add python-fixtures as a build deps.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
from lxml import etree
18
18
 
19
 
from nova import flags
 
19
from nova.openstack.common import cfg
20
20
from nova import test
21
21
from nova import utils
22
 
from nova.virt.libvirt import config
 
22
from nova.virt.libvirt import config as vconfig
23
23
from nova.virt.libvirt import vif
24
24
 
25
 
FLAGS = flags.FLAGS
 
25
CONF = cfg.CONF
26
26
 
27
27
 
28
28
class LibvirtVifTestCase(test.TestCase):
38
38
             'vlan': 99,
39
39
             'gateway': '101.168.1.1',
40
40
             'broadcast': '101.168.1.255',
41
 
             'dns1': '8.8.8.8'
 
41
             'dns1': '8.8.8.8',
 
42
             'id': 'network-id-xxx-yyy-zzz'
42
43
    }
43
44
 
44
45
    mapping = {
66
67
        self.stubs.Set(utils, 'execute', fake_execute)
67
68
 
68
69
    def _get_instance_xml(self, driver):
69
 
        conf = config.LibvirtConfigGuest()
 
70
        conf = vconfig.LibvirtConfigGuest()
70
71
        conf.virt_type = "qemu"
71
72
        conf.name = "fake-name"
72
73
        conf.uuid = "fake-uuid"
77
78
        conf.add_device(nic)
78
79
        return conf.to_xml()
79
80
 
 
81
    def test_multiple_nics(self):
 
82
        conf = vconfig.LibvirtConfigGuest()
 
83
        conf.virt_type = "qemu"
 
84
        conf.name = "fake-name"
 
85
        conf.uuid = "fake-uuid"
 
86
        conf.memory = 100 * 1024
 
87
        conf.vcpus = 4
 
88
 
 
89
        # Tests multiple nic configuration and that target_dev is
 
90
        # set for each
 
91
        nics = [{'net_type': 'bridge',
 
92
                 'mac_addr': '00:00:00:00:00:0b',
 
93
                 'source_dev': 'b_source_dev',
 
94
                 'target_dev': 'b_target_dev'},
 
95
                {'net_type': 'ethernet',
 
96
                 'mac_addr': '00:00:00:00:00:0e',
 
97
                 'source_dev': 'e_source_dev',
 
98
                 'target_dev': 'e_target_dev'},
 
99
                {'net_type': 'direct',
 
100
                 'mac_addr': '00:00:00:00:00:0d',
 
101
                 'source_dev': 'd_source_dev',
 
102
                 'target_dev': 'd_target_dev'}]
 
103
 
 
104
        for nic in nics:
 
105
            nic_conf = vconfig.LibvirtConfigGuestInterface()
 
106
            nic_conf.net_type = nic['net_type']
 
107
            nic_conf.target_dev = nic['target_dev']
 
108
            nic_conf.mac_addr = nic['mac_addr']
 
109
            nic_conf.source_dev = nic['source_dev']
 
110
            conf.add_device(nic_conf)
 
111
 
 
112
        xml = conf.to_xml()
 
113
        doc = etree.fromstring(xml)
 
114
        for nic in nics:
 
115
            path = "./devices/interface/[@type='%s']" % nic['net_type']
 
116
            node = doc.find(path)
 
117
            self.assertEqual(nic['net_type'], node.get("type"))
 
118
            self.assertEqual(nic['mac_addr'],
 
119
                             node.find("mac").get("address"))
 
120
            self.assertEqual(nic['target_dev'],
 
121
                             node.find("target").get("dev"))
 
122
 
80
123
    def test_bridge_driver(self):
81
124
        d = vif.LibvirtBridgeDriver()
82
125
        xml = self._get_instance_xml(d)
122
165
        self.assertEqual(node.get("type"), "bridge")
123
166
 
124
167
        br_name = node.find("source").get("bridge")
125
 
        self.assertEqual(br_name, FLAGS.libvirt_ovs_bridge)
 
168
        self.assertEqual(br_name, CONF.libvirt_ovs_bridge)
126
169
        mac = node.find("mac").get("address")
127
170
        self.assertEqual(mac, self.mapping['mac'])
128
171
        vp = node.find("virtualport")
145
188
        ret = doc.findall('./devices/interface')
146
189
        self.assertEqual(len(ret), 1)
147
190
        node = ret[0]
148
 
        self.assertEqual(node.get("type"), "ethernet")
 
191
        self.assertEqual(node.get("type"), "bridge")
149
192
        dev_name = node.find("target").get("dev")
150
193
        self.assertTrue(dev_name.startswith("tap"))
151
194
        mac = node.find("mac").get("address")
152
195
        self.assertEqual(mac, self.mapping['mac'])
153
 
        script = node.find("script").get("path")
154
 
        self.assertEquals(script, "")
 
196
        br_name = node.find("source").get("bridge")
 
197
        self.assertTrue(br_name.startswith("brq"))
155
198
 
156
199
        d.unplug(None, (self.net, self.mapping))
157
200