summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-10 17:25:50 +0000
committerGerrit Code Review <review@openstack.org>2012-10-10 17:25:50 +0000
commit9125dfe007aaaad9a3f276ebcde8c451c0193c25 (patch)
tree259ecc451aae21b5635c3dae51c6164cf5be13e9 /nova/virt
parentc1e5e3352a71cc61ba9e7dba0d9048d8b766e2c0 (diff)
parent800c08dfe36de52429364f96d708fb3bba0c4e3b (diff)
Merge "Add util for disk type retrieval"
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/libvirt/driver.py16
-rw-r--r--nova/virt/libvirt/utils.py8
2 files changed, 12 insertions, 12 deletions
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 78b02633f..50227ae6d 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -808,16 +808,11 @@ class LibvirtDriver(driver.ComputeDriver):
arch = base['properties']['architecture']
metadata['properties']['architecture'] = arch
- source_format = base.get('disk_format') or 'raw'
- if source_format == 'ami':
- # NOTE(vish): assume amis are raw
- source_format = 'raw'
+ disk_path = libvirt_utils.find_disk(virt_dom)
+ source_format = libvirt_utils.get_disk_type(disk_path)
+
image_format = FLAGS.snapshot_image_format or source_format
- use_qcow2 = ((FLAGS.libvirt_images_type == 'default' and
- FLAGS.use_cow_images) or
- FLAGS.libvirt_images_type == 'qcow2')
- if use_qcow2:
- source_format = 'qcow2'
+
# NOTE(vish): glance forces ami disk format to be ami
if base.get('disk_format') == 'ami':
metadata['disk_format'] = 'ami'
@@ -826,9 +821,6 @@ class LibvirtDriver(driver.ComputeDriver):
metadata['container_format'] = base.get('container_format', 'bare')
- # Find the disk
- disk_path = libvirt_utils.find_disk(virt_dom)
-
snapshot_name = uuid.uuid4().hex
(state, _max_mem, _mem, _cpus, _t) = virt_dom.info()
diff --git a/nova/virt/libvirt/utils.py b/nova/virt/libvirt/utils.py
index 73e0201df..2d1b5558c 100644
--- a/nova/virt/libvirt/utils.py
+++ b/nova/virt/libvirt/utils.py
@@ -411,6 +411,14 @@ def find_disk(virt_dom):
return disk_path
+def get_disk_type(path):
+ """Retrieve disk type (raw, qcow2, lvm) for given file"""
+ if path.startswith('/dev'):
+ return 'lvm'
+
+ return images.qemu_img_info(path)['file format']
+
+
def get_fs_info(path):
"""Get free/used/total space info for a filesystem