[libvirt] [PATCH] qemu: hotplug: unify "not found" logs when detaching device
John Ferlan
jferlan at redhat.com
Sat Dec 16 01:26:32 UTC 2017
On 12/14/2017 06:16 AM, Chen Hanxiao wrote:
> From: Chen Hanxiao <chenhanxiao at gmail.com>
>
> Some services, such as Nova, check whether device was not found
> by errror messages "not found". [1]
error
>
> This patch unify logs of qemuDomainDetachDeviceLive, which will be helpful.
>
> [1] https://github.com/openstack/nova/blob/master/nova/virt/libvirt/guest.py#L406
>
> Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
> ---
> src/qemu/qemu_hotplug.c | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
Something about a tool that parses the error message(s) looking for a
specific message string in English and needing to alter libvirt sources
to match that tools' needs strikes me as incorrect and a "slippery
slope" to follow.
I'm not in favor of this because we'll be constantly chasing these types
of bugs to match some other tools' (what I think is) incorrect means to
handle errors.
John
> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index d97aa6051..925574b92 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -5093,7 +5093,7 @@ qemuDomainDetachShmemDevice(virQEMUDriverPtr driver,
>
> if ((idx = virDomainShmemDefFind(vm->def, dev)) < 0) {
> virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> - _("device not present in domain configuration"));
> + _("device not found in domain configuration"));
> return -1;
> }
>
> @@ -5150,7 +5150,7 @@ qemuDomainDetachWatchdog(virQEMUDriverPtr driver,
> watchdog->action == dev->action &&
> virDomainDeviceInfoAddressIsEqual(&dev->info, &watchdog->info))) {
> virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> - _("watchdog device not present in domain configuration"));
> + _("watchdog device not found in domain configuration"));
> return -1;
> }
>
> @@ -5233,8 +5233,11 @@ qemuDomainDetachNetDevice(virQEMUDriverPtr driver,
> virDomainNetDefPtr detach = NULL;
> qemuDomainObjPrivatePtr priv = vm->privateData;
>
> - if ((detachidx = virDomainNetFindIdx(vm->def, dev->data.net)) < 0)
> + if ((detachidx = virDomainNetFindIdx(vm->def, dev->data.net)) < 0) {
> + virReportError(VIR_ERR_OPERATION_FAILED,
> + _("netdev %s not found"), dev->data.net->mac.addr);
> goto cleanup;
> + }
>
> detach = vm->def->nets[detachidx];
>
> @@ -5420,8 +5423,9 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver,
> char *devstr = NULL;
>
> if (!(tmpChr = virDomainChrFind(vmdef, chr))) {
> - virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> - _("device not present in domain configuration"));
> + virReportError(VIR_ERR_OPERATION_INVALID,
> + _("device %s not found in domain configuration"),
> + chr->target.name);
> goto cleanup;
> }
>
> @@ -5468,7 +5472,7 @@ qemuDomainDetachRNGDevice(virQEMUDriverPtr driver,
>
> if ((idx = virDomainRNGFind(vm->def, rng)) < 0) {
> virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> - _("device not present in domain configuration"));
> + _("device not found in domain configuration"));
> return -1;
> }
>
> @@ -5511,7 +5515,7 @@ qemuDomainDetachMemoryDevice(virQEMUDriverPtr driver,
>
> if ((idx = virDomainMemoryFindByDef(vm->def, memdef)) < 0) {
> virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> - _("device not present in domain configuration"));
> + _("device not found in domain configuration"));
> return -1;
> }
>
>
More information about the libvir-list
mailing list