diff options
| author | Chuck Short <zulcss@ubuntu.com> | 2011-03-29 20:08:11 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-03-29 20:08:11 +0000 |
| commit | cdb006321436de92d790ca97c668c0b725da5d2b (patch) | |
| tree | 1e0418b910d5948b01ac9b96ba952358be4918e4 /nova/tests | |
| parent | ee212133d32b1ec249c9d47f00581820f0c627c6 (diff) | |
| parent | 05a654211ab902cbb5b1b345dd3285efb1c6bf71 (diff) | |
This branch adds support for linux containers (LXC) to nova. It uses the libvirt LXC driver to start and stop the instance.
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/test_virt.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index 3a03159ff..958c8e3e2 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -225,6 +225,49 @@ class LibvirtConnTestCase(test.TestCase): self._check_xml_and_uri(instance_data, expect_kernel=True, expect_ramdisk=True, rescue=True) + def test_lxc_container_and_uri(self): + instance_data = dict(self.test_instance) + self._check_xml_and_container(instance_data) + + def _check_xml_and_container(self, instance): + user_context = context.RequestContext(project=self.project, + user=self.user) + instance_ref = db.instance_create(user_context, instance) + host = self.network.get_network_host(user_context.elevated()) + network_ref = db.project_get_network(context.get_admin_context(), + self.project.id) + + fixed_ip = {'address': self.test_ip, + 'network_id': network_ref['id']} + + ctxt = context.get_admin_context() + fixed_ip_ref = db.fixed_ip_create(ctxt, fixed_ip) + db.fixed_ip_update(ctxt, self.test_ip, + {'allocated': True, + 'instance_id': instance_ref['id']}) + + self.flags(libvirt_type='lxc') + conn = libvirt_conn.LibvirtConnection(True) + + uri = conn.get_uri() + self.assertEquals(uri, 'lxc:///') + + xml = conn.to_xml(instance_ref) + tree = xml_to_tree(xml) + + check = [ + (lambda t: t.find('.').get('type'), 'lxc'), + (lambda t: t.find('./os/type').text, 'exe'), + (lambda t: t.find('./devices/filesystem/target').get('dir'), '/')] + + for i, (check, expected_result) in enumerate(check): + self.assertEqual(check(tree), + expected_result, + '%s failed common check %d' % (xml, i)) + + target = tree.find('./devices/filesystem/source').get('dir') + self.assertTrue(len(target) > 0) + def _check_xml_and_uri(self, instance, expect_ramdisk, expect_kernel, rescue=False): user_context = context.RequestContext(project=self.project, |
