[libvirt] [PATCH v4 13/13] parallels: add support of removing disks
Daniel Veillard
veillard at redhat.com
Tue Dec 11 08:24:42 UTC 2012
On Tue, Dec 04, 2012 at 05:43:13PM +0400, Dmitry Guryanov wrote:
> If some hard disk is not found in new domain configuration, it
> should be removed.
>
> Signed-off-by: Dmitry Guryanov <dguryanov at parallels.com>
> ---
> src/parallels/parallels_driver.c | 28 ++++++++++++++++++++++++----
> 1 files changed, 24 insertions(+), 4 deletions(-)
>
> diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
> index 64bf409..bbbc9d5 100644
> --- a/src/parallels/parallels_driver.c
> +++ b/src/parallels/parallels_driver.c
> @@ -1576,6 +1576,22 @@ cleanup:
> return ret;
> }
>
> +static int parallelsRemoveHdd(parallelsDomObjPtr pdom,
> + virDomainDiskDefPtr disk)
> +{
> + char prlname[16];
> +
> + prlname[15] = '\0';
> + snprintf(prlname, 15, "hdd%d", virDiskNameToIndex(disk->dst));
> +
> + if (parallelsCmdRun(PRLCTL, "set", pdom->uuid,
> + "--device-del", prlname,
> + "--detach-only", NULL))
> + return -1;
> +
> + return 0;
> +}
> +
> static int
> parallelsApplyDisksParams(virConnectPtr conn, parallelsDomObjPtr pdom,
> virDomainDiskDefPtr *olddisks, int nold,
> @@ -1592,10 +1608,14 @@ parallelsApplyDisksParams(virConnectPtr conn, parallelsDomObjPtr pdom,
> }
>
> if (!newdisk) {
> - virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED,
> - _("There is no disk with source '%s' "
> - "in the specified config"), olddisks[i]->serial);
> - return -1;
> + if (parallelsRemoveHdd(pdom, olddisk)) {
> + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED,
> + _("Can't remove disk '%s' "
> + "in the specified config"), olddisks[i]->serial);
> + return -1;
> + }
> +
> + continue;
> }
>
> if (olddisk->bus != newdisk->bus ||
ACK,
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard at redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list