Resize file backed images after writting cloud image with qemu-img

Fixes #535
This commit is contained in:
Mateusz Kwiatkowski
2023-11-29 11:51:06 +01:00
parent e45b81d72e
commit 350cd9ee47

View File

@@ -226,11 +226,11 @@ core::create(){
case "${_disk_dev}" in case "${_disk_dev}" in
zvol) zvol)
zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "0" "${_zfs_opts}" zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "0" "${_zfs_opts}"
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}" [ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}" "${_disk_dev}" "${_disk_size}"
;; ;;
sparse-zvol) sparse-zvol)
zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "1" "${_zfs_opts}" zfs::make_zvol "${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_disk_size}" "1" "${_zfs_opts}"
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}" [ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "/dev/zvol/${VM_DS_ZFS_DATASET}/${_name}/${_disk}" "${_img}" "${_disk_dev}" "${_disk_size}"
;; ;;
custom) custom)
;; ;;
@@ -242,7 +242,7 @@ core::create(){
# make sure only owner can read the disk image # make sure only owner can read the disk image
chmod 600 "${VM_DS_PATH}/${_name}/${_disk}" chmod 600 "${VM_DS_PATH}/${_name}/${_disk}"
[ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "${VM_DS_PATH}/${_name}/${_disk}" "${_img}" [ $_num -eq 0 ] && [ ! -z "$_img" ] && core::write_img "${VM_DS_PATH}/${_name}/${_disk}" "${_img}" "file" "${_disk_size}"
;; ;;
esac esac
@@ -336,6 +336,8 @@ core::write_img(){
shift $? shift $?
_disk_dev="${1}" _disk_dev="${1}"
_img="$2" _img="$2"
_disk_type="$3"
_disk_size="$4"
timeout=30 timeout=30
i=0 i=0
@@ -355,6 +357,14 @@ core::write_img(){
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
util::err "failed to write img file with qemu-img" util::err "failed to write img file with qemu-img"
fi fi
# if disk type is file then we need to resize it
if [ "${_disk_type}" = "file" ]; then
qemu-img resize "${_disk_dev}" "${_disk_size}"
if [ $? -ne 0 ]; then
util::err "failed to resize img file with qemu-img"
fi
fi
} }
# 'vm add' # 'vm add'