[libvirt] [PATCH 2/2] check compression program at virsh save and dump
Daniel P. Berrange
berrange at redhat.com
Fri Oct 29 10:37:04 UTC 2010
On Thu, Oct 28, 2010 at 07:28:34PM +0900, KAMEZAWA Hiroyuki wrote:
> >From bc55de1e6a8506adcde52aa95e2be9d4bb5bfb2e Mon Sep 17 00:00:00 2001
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
> Date: Thu, 28 Oct 2010 17:51:18 +0900
> Subject: [PATCH 2/2] check compression program availabilityy of virsh save and dump.
>
> ---
> src/qemu/qemu_driver.c | 28 ++++++++++++++++++++++++++++
> 1 files changed, 28 insertions(+), 0 deletions(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 51ad50b..61dc6e8 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -5740,6 +5740,22 @@ cleanup:
> return ret;
> }
>
> +/* returns 1 if a compression program is available in PATH */
> +static int qemudCompressProgramAvailable(int compress)
> +{
> + const char *prog;
> + char *c;
> +
> + if (compress == QEMUD_SAVE_FORMAT_RAW)
> + return 1;
> + prog = qemudSaveCompressionTypeToString(compress);
> + c = virFindFileInPath(prog);
> + if (!c)
> + return 0;
> + VIR_FREE(c);
> + return 1;
> +}
> +
> static int qemudDomainSave(virDomainPtr dom, const char *path)
> {
> struct qemud_driver *driver = dom->conn->privateData;
> @@ -5759,6 +5775,12 @@ static int qemudDomainSave(virDomainPtr dom, const char *path)
> "in configuration file"));
> return -1;
> }
> + if (!qemudCompressProgramAvailable(compressed)) {
> + qemuReportError(VIR_ERR_OPERATION_FAILED,
> + "%s", _("Compression program for image format "
> + "in configuration file isn't available"));
> + return -1;
> + }
> }
>
> vm = virDomainFindByUUID(&driver->domains, dom->uuid);
> @@ -5922,6 +5944,12 @@ static int qemudDomainCoreDump(virDomainPtr dom,
> "configuration file"));
> return -1;
> }
> + if (!qemudCompressProgramAvailable(compress)) {
> + qemuReportError(VIR_ERR_OPERATION_FAILED,
> + "%s", _("Compression program for dump image format "
> + "in configuration file isn't available"));
> + return -1;
> + }
> }
>
> qemuDriverLock(driver);
ACK
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list