def create_image(self, prepare_template, base, size, *args, **kwargs): @utils.synchronized(base, external=True, lock_path=self.lock_path) def create_lvm_image(base, size): base_size = disk.get_disk_size(base) self.verify_base_size(base, size, base_size=base_size) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) images.convert_image(base, self.path, 'raw', run_as_root=True) if resize: disk.resize2fs(self.path, run_as_root=True) generated = 'ephemeral_size' in kwargs #Generate images with specified size right on volume if generated and size: libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) with self.remove_volume_on_error(self.path): prepare_template(target=self.path, *args, **kwargs) else: prepare_template(target=base, max_size=size, *args, **kwargs) with self.remove_volume_on_error(self.path): create_lvm_image(base, size)
def create_image(self, prepare_template, base, size, *args, **kwargs): @lockutils.synchronized(base, 'nova-', external=True, lock_path=self.lock_path) def create_lvm_image(base, size): base_size = disk.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) cmd = ('dd', 'if=%s' % base, 'of=%s' % self.path, 'bs=4M') utils.execute(*cmd, run_as_root=True) if resize: disk.resize2fs(self.path) generated = 'ephemeral_size' in kwargs #Generate images with specified size right on volume if generated and size: libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) with self.remove_volume_on_error(self.path): prepare_template(target=self.path, *args, **kwargs) else: prepare_template(target=base, *args, **kwargs) with self.remove_volume_on_error(self.path): create_lvm_image(base, size)
def create_image(self, prepare_template, base, size, *args, **kwargs): @utils.synchronized(base, external=True, lock_path=self.lock_path) def create_lvm_image(base, size): base_size = disk.get_disk_size(base) self.verify_base_size(base, size, base_size=base_size) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) images.convert_image(base, self.path, 'raw', run_as_root=True) if resize: disk.resize2fs(self.path, run_as_root=True) generated = 'ephemeral_size' in kwargs #Generate images with specified size right on volume if generated and size: libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) with self.remove_volume_on_error(self.path): prepare_template(target=self.path, *args, **kwargs) else: if not os.path.exists(base): prepare_template(target=base, max_size=size, *args, **kwargs) with self.remove_volume_on_error(self.path): create_lvm_image(base, size)
def create_image(self, prepare_template, base, size, *args, **kwargs): @lockutils.synchronized(base, 'nova-', external=True, lock_path=self.lock_path) def create_lvm_image(base, size): base_size = disk.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) cmd = ('dd', 'if=%s' % base, 'of=%s' % self.path, 'bs=4M') utils.execute(*cmd, run_as_root=True) if resize: disk.resize2fs(self.path, run_as_root=True) generated = 'ephemeral_size' in kwargs #Generate images with specified size right on volume if generated and size: libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) with self.remove_volume_on_error(self.path): prepare_template(target=self.path, *args, **kwargs) else: prepare_template(target=base, *args, **kwargs) with self.remove_volume_on_error(self.path): create_lvm_image(base, size)
def _stub_disk(self, nova_disk, size=None): disk_file = nova_disk.path source_type = nova_disk.source_type disk_dir = os.path.dirname(disk_file) if source_type == 'file': # We need to make sure that the file & directory exists as the # openstack user mkdir_as(disk_dir, self.openstack_uid) touch_as(disk_file, self.openstack_uid) os.chown(disk_file, self.openstack_uid, self.openstack_gid) elif source_type == 'block': # Note(dscannell) it is a requirement for nova that the volume group already # exists. However we need to create the LVM if size != None: libvirt_utils.create_lvm_image(nova_disk.vg, nova_disk.lv, size, sparse=nova_disk.sparse) else: LOG.warn( _("Unable to determine the size for the lvm %s") % (disk_file)) else: raise exception.NovaException("Unsupported disk type %s" % (source_type)) return disk_file
def create_lvm_image(base, size): base_size = disk.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) images.convert_image(base, self.path, "raw", run_as_root=True) if resize: disk.resize2fs(self.path, run_as_root=True)
def create_lvm_image(base, size): base_size = disk.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) images.convert_image(base, self.path, 'raw', run_as_root=True) if resize: disk.resize2fs(self.path, run_as_root=True)
def create_lvm_image(base, size): base_size = libvirt_utils.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) cmd = ("dd", "if=%s" % base, "of=%s" % self.path, "bs=4M") utils.execute(*cmd, run_as_root=True) if resize: disk.resize2fs(self.path)
def create_lvm_image(base, size): base_size = disk.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) cmd = ('dd', 'if=%s' % base, 'of=%s' % self.path, 'bs=4M') utils.execute(*cmd, run_as_root=True) if resize: disk.resize2fs(self.path)
def create_lvm_image(base, size): base_size = disk.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) cmd = ('dd', 'if=%s' % base, 'of=%s' % self.path, 'bs=4M') utils.execute(*cmd, run_as_root=True) if resize: disk.resize2fs(self.path, run_as_root=True)
def create_image(self, prepare_template, base, size, *args, **kwargs): @utils.synchronized(base) def create_lvm_image(base, size): base_size = libvirt_utils.get_disk_size(base) resize = size > base_size size = size if resize else base_size libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) cmd = ("dd", "if=%s" % base, "of=%s" % self.path, "bs=4M") utils.execute(*cmd, run_as_root=True) if resize: disk.resize2fs(self.path) generated = "ephemeral_size" in kwargs # Generate images with specified size right on volume if generated and size: libvirt_utils.create_lvm_image(self.vg, self.lv, size, sparse=self.sparse) with self.remove_volume_on_error(self.path): prepare_template(target=self.path, *args, **kwargs) else: prepare_template(target=base, *args, **kwargs) with self.remove_volume_on_error(self.path): create_lvm_image(base, size)
def _stub_disk(self, nova_disk, size=None): disk_file = nova_disk.path source_type = nova_disk.source_type disk_dir = os.path.dirname(disk_file) if source_type == 'file': # We need to make sure that the file & directory exists as the # openstack user mkdir_as(disk_dir, self.openstack_uid) touch_as(disk_file, self.openstack_uid) os.chown(disk_file, self.openstack_uid, self.openstack_gid) elif source_type == 'block': # Note(dscannell) it is a requirement for nova that the volume group already # exists. However we need to create the LVM if size != None: libvirt_utils.create_lvm_image(nova_disk.vg, nova_disk.lv, size, sparse=nova_disk.sparse) else: LOG.warn(_("Unable to determine the size for the lvm %s") %(disk_file)) else: raise exception.NovaException("Unsupported disk type %s" %(source_type)) return disk_file