[et-mgmt-tools] [PATCH] check if the specified disk usingvirt-clone is already used in another guests.
S.Sakamoto
fj0588di at aa.jp.fujitsu.com
Fri Aug 3 08:05:13 UTC 2007
Hi
Would you give me a comment on this patch?
If not, please apply it.
Thanks,
Shigeki Sakamoto.
> Hi
>
> Current virt-clone does not confirm if the specified disk is already
> used in another guests or not. So, I create the patch to check if the
> specified disk using virt-clone is already used in another guests.
>
>
> Signed-off-by: Shigeki Sakamoto <fj0588di at aa.jp.fujitsu.com>
>
> Thanks,
> Shigeki Sakamoto.
>
> ----------------------------------------------------------------------
> diff -r 645217bda13b virtinst/CloneManager.py
> --- a/virtinst/CloneManager.py Sat Jul 21 13:03:07 2007 -0400
> +++ b/virtinst/CloneManager.py Fri Jul 27 17:38:47 2007 +0900
> @@ -29,6 +29,7 @@ import commands
> import commands
> import libvirt
> import Guest
> +import cli
> from virtinst import _virtinst as _
>
> #
> @@ -106,6 +107,13 @@ class CloneDesign(object):
> def set_clone_devices(self, devices):
> if len(devices) == 0:
> raise ValueError, _("New file to use for disk image is required")
> + cdev = []
> + cdev_size = []
> + cdev_type = []
> + cdev.append(devices)
> + cdev_size,\
> + cdev_type = self._get_clone_devices_info(cdev)
> + devices = self._check_file(self._hyper_conn, devices, cdev_size)
> self._clone_devices.append(devices)
> def get_clone_devices(self):
> return self._clone_devices
> @@ -320,6 +328,45 @@ class CloneDesign(object):
> except libvirt.libvirtError, e:
> pass
> return check
> +
> + #
> + # check used file func
> + # ret : Use File Path
> + #
> + def _check_file(self, conn, disk, size):
> + retryFlg = False
> + while 1:
> + if disk == None:
> + msg = _("What would you like to use as the disk (path)?")
> + disk = cli.prompt_for_input(msg, disk)
> +
> + try:
> + d = Guest.VirtualDisk(disk, size)
> + if d.is_conflict_disk(conn) is True:
> + while 1:
> + retryFlg = False
> + warnmsg = _("Disk %s is already in use by another guest!\n") % disk
> + res = cli.prompt_for_input(warnmsg + _("Do you really want to use the disk (yes or no)? "))
> + try:
> + if cli.yes_or_no(res) is True:
> + break
> + else:
> + retryFlg = True
> + break
> + except ValueError, e:
> + print _("ERROR: "), e
> + continue
> + if retryFlg is True:
> + disk = None
> + continue
> + except ValueError, e:
> + print _("ERROR: "), e
> + disk = None
> + continue
> +
> + break
> +
> + return disk
>
> #
> # check used mac func
>
> _______________________________________________
> et-mgmt-tools mailing list
> et-mgmt-tools at redhat.com
> https://www.redhat.com/mailman/listinfo/et-mgmt-tools
>
More information about the et-mgmt-tools
mailing list