summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-01-02 22:13:34 +0000
committerGerrit Code Review <review@openstack.org>2013-01-02 22:13:34 +0000
commit8470da6c73f7b28a6ee6bd17c1dc802e9c105dcb (patch)
tree5842d7f3d0b1a5f01f0766f2e4a53c566def6b81 /nova
parent8f918e7570f0997e9ffa954e0cc70d6537d26c60 (diff)
parenta1c90a3b3dca567c0075b24901b85a2d41265305 (diff)
Merge "Check for image_meta in libvirt.driver.spawn"
Diffstat (limited to 'nova')
-rw-r--r--nova/tests/test_libvirt.py32
-rw-r--r--nova/virt/libvirt/driver.py4
2 files changed, 35 insertions, 1 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index c1016f1f4..3dfc0c2e9 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -2435,6 +2435,38 @@ class LibvirtConnTestCase(test.TestCase):
shutil.rmtree(os.path.join(CONF.instances_path,
CONF.base_dir_name))
+ def test_spawn_without_image_meta(self):
+ self.create_image_called = False
+
+ def fake_none(*args, **kwargs):
+ return
+
+ def fake_create_image(*args, **kwargs):
+ self.create_image_called = True
+
+ def fake_get_info(instance):
+ return {'state': power_state.RUNNING}
+
+ instance_ref = self.test_instance
+ instance_ref['image_ref'] = 1
+ instance = db.instance_create(self.context, instance_ref)
+
+ conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
+ self.stubs.Set(conn, 'to_xml', fake_none)
+ self.stubs.Set(conn, '_create_image', fake_create_image)
+ self.stubs.Set(conn, '_create_domain_and_network', fake_none)
+ self.stubs.Set(conn, 'get_info', fake_get_info)
+
+ conn.spawn(self.context, instance, None, [], None)
+ self.assertFalse(self.create_image_called)
+
+ conn.spawn(self.context,
+ instance,
+ {'id': instance['image_ref']},
+ [],
+ None)
+ self.assertTrue(self.create_image_called)
+
def test_get_console_output_file(self):
fake_libvirt_utils.files['console.log'] = '01234567890'
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index cfed962d0..35ce68fc9 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -1028,7 +1028,9 @@ class LibvirtDriver(driver.ComputeDriver):
admin_password, network_info=None, block_device_info=None):
xml = self.to_xml(instance, network_info, image_meta,
block_device_info=block_device_info)
- self._create_image(context, instance, xml, network_info=network_info,
+ if image_meta:
+ self._create_image(context, instance, xml,
+ network_info=network_info,
block_device_info=block_device_info,
files=injected_files,
admin_pass=admin_password)