summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/nova/rootwrap.d/compute.filters4
-rwxr-xr-x[-rw-r--r--]nova/virt/disk/api.py2
-rwxr-xr-xnova/virt/libvirt/driver.py5
-rwxr-xr-xnova/virt/libvirt/imagebackend.py3
4 files changed, 11 insertions, 3 deletions
diff --git a/etc/nova/rootwrap.d/compute.filters b/etc/nova/rootwrap.d/compute.filters
index f0d9c6fee..bf08a6638 100644
--- a/etc/nova/rootwrap.d/compute.filters
+++ b/etc/nova/rootwrap.d/compute.filters
@@ -163,6 +163,10 @@ readlink: CommandFilter, readlink, root
# nova/virt/disk/api.py: 'touch', target
touch: CommandFilter, /usr/bin/touch, root
+# nova/virt/disk/api.py:
+mkfs.ext3: CommandFilter, /sbin/mkfs.ext3, root
+mkfs.ntfs: CommandFilter, /sbin/mkfs.ntfs, root
+
# nova/virt/libvirt/connection.py:
read_initiator: ReadFileFilter, /etc/iscsi/initiatorname.iscsi
diff --git a/nova/virt/disk/api.py b/nova/virt/disk/api.py
index 0880af1cb..e8ecbbd8a 100644..100755
--- a/nova/virt/disk/api.py
+++ b/nova/virt/disk/api.py
@@ -94,7 +94,7 @@ def mkfs(os_type, fs_label, target):
mkfs_command = (_MKFS_COMMAND.get(os_type, _DEFAULT_MKFS_COMMAND) or
'') % locals()
if mkfs_command:
- utils.execute(*mkfs_command.split())
+ utils.execute(*mkfs_command.split(), run_as_root=True)
def resize2fs(image, check_exit_code=False, run_as_root=False):
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 5ba97a8a4..682ee9ca2 100755
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -1690,8 +1690,9 @@ class LibvirtDriver(driver.ComputeDriver):
if not fs_format:
fs_format = CONF.default_ephemeral_format
- libvirt_utils.create_image('raw', target,
- '%d%c' % (local_size, unit))
+ if not CONF.libvirt_images_type == "lvm":
+ libvirt_utils.create_image('raw', target,
+ '%d%c' % (local_size, unit))
if fs_format:
utils.mkfs(fs_format, target, label)
diff --git a/nova/virt/libvirt/imagebackend.py b/nova/virt/libvirt/imagebackend.py
index 082dd403e..25c6be1f3 100755
--- a/nova/virt/libvirt/imagebackend.py
+++ b/nova/virt/libvirt/imagebackend.py
@@ -141,6 +141,9 @@ class Image(object):
def call_if_not_exists(target, *args, **kwargs):
if not os.path.exists(target):
fetch_func(target=target, *args, **kwargs)
+ elif CONF.libvirt_images_type == "lvm" and \
+ 'ephemeral_size' in kwargs:
+ fetch_func(target=target, *args, **kwargs)
base_dir = os.path.join(CONF.instances_path, CONF.base_dir_name)
if not os.path.exists(base_dir):