summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-07-30 19:06:12 +0000
committerGerrit Code Review <review@openstack.org>2012-07-30 19:06:12 +0000
commit857328b3744eb5a12ea9c535ecc8a322a9ee11cf (patch)
tree3d729ff662d7628822cacbaea3aed73ff807a30a
parent9b61fdf34bee6ad9d8e28a32c4c30df243b02443 (diff)
parentaf0651946010e6bcc966005aa9fc2a1f38d3748a (diff)
downloadnova-857328b3744eb5a12ea9c535ecc8a322a9ee11cf.tar.gz
nova-857328b3744eb5a12ea9c535ecc8a322a9ee11cf.tar.xz
nova-857328b3744eb5a12ea9c535ecc8a322a9ee11cf.zip
Merge "Avoid error during snapshot of ISO booted instance"
-rw-r--r--nova/tests/test_libvirt.py15
-rw-r--r--nova/virt/libvirt/utils.py3
2 files changed, 15 insertions, 3 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index bb885e8c1..4e6e1ec48 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -3303,15 +3303,24 @@ disk size: 4.4M''', ''))
self.mox.ReplayAll()
libvirt_utils.chown('/some/path', 'soren')
- def test_extract_snapshot(self):
+ def _do_test_extract_snapshot(self, dest_format='raw', out_format='raw'):
self.mox.StubOutWithMock(utils, 'execute')
- utils.execute('qemu-img', 'convert', '-f', 'qcow2', '-O', 'raw',
+ utils.execute('qemu-img', 'convert', '-f', 'qcow2', '-O', out_format,
'-s', 'snap1', '/path/to/disk/image', '/extracted/snap')
# Start test
self.mox.ReplayAll()
libvirt_utils.extract_snapshot('/path/to/disk/image', 'qcow2',
- 'snap1', '/extracted/snap', 'raw')
+ 'snap1', '/extracted/snap', dest_format)
+
+ def test_extract_snapshot_raw(self):
+ self._do_test_extract_snapshot()
+
+ def test_extract_snapshot_iso(self):
+ self._do_test_extract_snapshot(dest_format='iso')
+
+ def test_extract_snapshot_qcow2(self):
+ self._do_test_extract_snapshot(dest_format='qcow2', out_format='qcow2')
def test_load_file(self):
dst_fd, dst_path = tempfile.mkstemp()
diff --git a/nova/virt/libvirt/utils.py b/nova/virt/libvirt/utils.py
index b71aec5dc..55bca7996 100644
--- a/nova/virt/libvirt/utils.py
+++ b/nova/virt/libvirt/utils.py
@@ -322,6 +322,9 @@ def extract_snapshot(disk_path, source_fmt, snapshot_name, out_path, dest_fmt):
:param snapshot_name: Name of snapshot in disk image
:param out_path: Desired path of extracted snapshot
"""
+ # NOTE(markmc): ISO is just raw to qemu-img
+ if dest_fmt == 'iso':
+ dest_fmt = 'raw'
qemu_img_cmd = ('qemu-img',
'convert',
'-f',