From nobody Mon Apr 29 10:47:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1515148396704104.91708351676505; Fri, 5 Jan 2018 02:33:16 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 56A1761D1F; Fri, 5 Jan 2018 10:33:15 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 24CFD60C91; Fri, 5 Jan 2018 10:33:15 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E5D86410B7; Fri, 5 Jan 2018 10:33:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w05AUTrw015846 for ; Fri, 5 Jan 2018 05:30:29 -0500 Received: by smtp.corp.redhat.com (Postfix) id B38385C88D; Fri, 5 Jan 2018 10:30:29 +0000 (UTC) Received: from mx1.redhat.com (ext-mx05.extmail.prod.ext.phx2.redhat.com [10.5.110.29]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E823D4DA8A; Fri, 5 Jan 2018 10:30:26 +0000 (UTC) Received: from m15-113.126.com (m15-113.126.com [220.181.15.113]) by mx1.redhat.com (Postfix) with ESMTP id D37B982A; Fri, 5 Jan 2018 10:30:23 +0000 (UTC) Received: from localhost.localdomain (unknown [58.213.111.46]) by smtp3 (Coremail) with SMTP id DcmowACHKn2vU09ahrxXAQ--.43940S3; Fri, 05 Jan 2018 18:30:21 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=3+gGMr8wBPiJHAcqGW ArBpyrys3ya8TvVmE3i5sAMSY=; b=JcfDDq5yZA0MpAa+rWc4+LdpdUXlGX34wh PGPveJktsQaOmYZI5jHA5IoMZaNhGDD5BsbvrIoJf++4TpDagU2hDaEQMnnY0iOa SK5GlUFUiV1YHtCoqr/a0uukYnh2chydjjNP1VEG0YXsw50vtyiWT6hJkFUvLi4R 3JobtEd+w= From: Chen Hanxiao To: libvir-list@redhat.com Date: Fri, 5 Jan 2018 18:28:07 +0800 Message-Id: <20180105102808.31520-2-chen_han_xiao@126.com> In-Reply-To: <20180105102808.31520-1-chen_han_xiao@126.com> References: <20180105102808.31520-1-chen_han_xiao@126.com> X-CM-TRANSID: DcmowACHKn2vU09ahrxXAQ--.43940S3 X-Coremail-Antispam: 1Uf129KBjvJXoWxZw4rAr4UCrW7ZF4DXrW5Wrg_yoWrtF47pF 4UJa95tr4jqr4xJa9xWa4kZF1jvFykWryrXr4fur1qg3W3Grs8Crn3Zrnru3yUtrsrZaya 9Fy7ZFWj9F1vkFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jO3ktUUUUU= X-Originating-IP: [58.213.111.46] X-CM-SenderInfo: xfkh0spkdqs5xldrqiyswou0bp/1tbiaR7ErlpD35MzVgAAst X-Greylist: Sender passed SPF test, ACL 227 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 05 Jan 2018 10:30:25 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 05 Jan 2018 10:30:25 +0000 (UTC) for IP:'220.181.15.113' DOMAIN:'m15-113.126.com' HELO:'m15-113.126.com' FROM:'chen_han_xiao@126.com' RCPT:'' X-RedHat-Spam-Score: -0.11 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, SPF_PASS, T_RP_MATCHES_RCVD) 220.181.15.113 m15-113.126.com 220.181.15.113 m15-113.126.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.29 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Cc: Chen Hanxiao Subject: [libvirt] [PATCH v2 1/2] qemu_hotplug: more proper error messages when target detaching device is not found X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 05 Jan 2018 10:33:15 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Chen Hanxiao More proper/detail error messages updated. Signed-off-by: Chen Hanxiao --- src/libvirt_private.syms | 2 ++ src/qemu/qemu_hotplug.c | 42 +++++++++++++++++++++++++++++------------- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a705fa846..512314484 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -203,6 +203,7 @@ virDomainChrConsoleTargetTypeToString; virDomainChrDefForeach; virDomainChrDefFree; virDomainChrDefNew; +virDomainChrDeviceTypeToString; virDomainChrEquals; virDomainChrFind; virDomainChrGetDomainPtrs; @@ -427,6 +428,7 @@ virDomainMemoryDefFree; virDomainMemoryFindByDef; virDomainMemoryFindInactiveByDef; virDomainMemoryInsert; +virDomainMemoryModelTypeToString; virDomainMemoryRemove; virDomainMemorySourceTypeFromString; virDomainMemorySourceTypeToString; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 385be80f2..6472a13a8 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3513,8 +3513,9 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, int ret =3D -1; =20 if (!olddev) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("cannot find existing graphics device to modify")= ); + virReportError(VIR_ERR_INTERNAL_ERROR, + _("cannot find existing graphics device to modify o= f" + " type '%s'"), type); goto cleanup; } =20 @@ -5050,8 +5051,10 @@ qemuDomainDetachShmemDevice(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 if ((idx =3D virDomainShmemDefFind(vm->def, dev)) < 0) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("device not present in domain configuration")); + virReportError(VIR_ERR_OPERATION_INVALID, + _("shmem device of model '%s' not found " + "in domain configuration"), + virDomainShmemModelTypeToString(dev->model)); return -1; } =20 @@ -5107,8 +5110,10 @@ qemuDomainDetachWatchdog(virQEMUDriverPtr driver, watchdog->model =3D=3D dev->model && watchdog->action =3D=3D dev->action && virDomainDeviceInfoAddressIsEqual(&dev->info, &watchdog->info)))= { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("watchdog device not present in domain configurat= ion")); + virReportError(VIR_ERR_OPERATION_INVALID, + _("watchdog device of model '%s' is not " + "found in domain configuration"), + virDomainWatchdogModelTypeToString(watchdog->model)= ); return -1; } =20 @@ -5148,8 +5153,13 @@ qemuDomainDetachNetDevice(virQEMUDriverPtr driver, virDomainNetDefPtr detach =3D NULL; qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 - if ((detachidx =3D virDomainNetFindIdx(vm->def, dev->data.net)) < 0) + if ((detachidx =3D virDomainNetFindIdx(vm->def, dev->data.net)) < 0) { + char mac[VIR_MAC_STRING_BUFLEN]; + virReportError(VIR_ERR_INTERNAL_ERROR, + _("netdev '%s' not found in domain configuration"), + virMacAddrFormat(&dev->data.net->mac, mac)); goto cleanup; + } =20 detach =3D vm->def->nets[detachidx]; =20 @@ -5335,8 +5345,10 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr drive= r, char *devstr =3D NULL; =20 if (!(tmpChr =3D virDomainChrFind(vmdef, chr))) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("device not present in domain configuration")); + virReportError(VIR_ERR_OPERATION_INVALID, + _("chr device of type '%s' not found " + "in domain configuration"), + virDomainChrDeviceTypeToString(chr->deviceType)); goto cleanup; } =20 @@ -5382,8 +5394,10 @@ qemuDomainDetachRNGDevice(virQEMUDriverPtr driver, int ret =3D -1; =20 if ((idx =3D virDomainRNGFind(vm->def, rng)) < 0) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("device not present in domain configuration")); + virReportError(VIR_ERR_OPERATION_INVALID, + _("RNG device of model '%s' not found " + "in domain configuration"), + virDomainRNGBackendTypeToString(rng->model)); return -1; } =20 @@ -5425,8 +5439,10 @@ qemuDomainDetachMemoryDevice(virQEMUDriverPtr driver, qemuDomainMemoryDeviceAlignSize(vm->def, memdef); =20 if ((idx =3D virDomainMemoryFindByDef(vm->def, memdef)) < 0) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("device not present in domain configuration")); + virReportError(VIR_ERR_OPERATION_INVALID, + _("memory device of model '%s' not found " + "in domain configuration"), + virDomainMemoryModelTypeToString(memdef->model)); return -1; } =20 --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon Apr 29 10:47:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1515148393684794.0896288246159; Fri, 5 Jan 2018 02:33:13 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 62D5EC058EB0; Fri, 5 Jan 2018 10:33:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1AB40608F2; Fri, 5 Jan 2018 10:33:12 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D6513410AD; Fri, 5 Jan 2018 10:33:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w05AUTYn015847 for ; Fri, 5 Jan 2018 05:30:29 -0500 Received: by smtp.corp.redhat.com (Postfix) id B36735C88A; Fri, 5 Jan 2018 10:30:29 +0000 (UTC) Received: from mx1.redhat.com (ext-mx03.extmail.prod.ext.phx2.redhat.com [10.5.110.27]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EE38D5C881; Fri, 5 Jan 2018 10:30:28 +0000 (UTC) Received: from m15-113.126.com (m15-113.126.com [220.181.15.113]) by mx1.redhat.com (Postfix) with ESMTP id 75ABF83F42; Fri, 5 Jan 2018 10:30:26 +0000 (UTC) Received: from localhost.localdomain (unknown [58.213.111.46]) by smtp3 (Coremail) with SMTP id DcmowACHKn2vU09ahrxXAQ--.43940S4; Fri, 05 Jan 2018 18:30:21 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=Wz2S+6skPU2gb80gYF JNuUT1KbcOWGW133+eBGZsSRk=; b=LL4FM98fXgnaNPQesLZ27qyPI03NVkHjaK XQGCwcIKDmHxsX29T0lkK/6XMtgdR/Q5vEndk8Oolx6cG5Cr/q2J7FSIJ0xBJxRn ++KEwrpIT9vqUoV4sypAyJVqP/et4eC9Sx42k+k9VLYdk9olb4Os05nBiJm/uPMI 8sQRX3rBE= From: Chen Hanxiao To: libvir-list@redhat.com Date: Fri, 5 Jan 2018 18:28:08 +0800 Message-Id: <20180105102808.31520-3-chen_han_xiao@126.com> In-Reply-To: <20180105102808.31520-1-chen_han_xiao@126.com> References: <20180105102808.31520-1-chen_han_xiao@126.com> X-CM-TRANSID: DcmowACHKn2vU09ahrxXAQ--.43940S4 X-Coremail-Antispam: 1Uf129KBjvJXoWxuFWkXw13Wr4kCFWfGry8Xwb_yoWxAryDpa 48Ga1vyr4jqrW7CrZ7Ka4kZ3WUXa4kGry5GryrWFnFgF1fWw4kGrn3ZrW29FyUtrZrAa1S 9Fy7ZrW09r1ktaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jcEfrUUUUU= X-Originating-IP: [58.213.111.46] X-CM-SenderInfo: xfkh0spkdqs5xldrqiyswou0bp/1tbi4w-ErlpD4jdUDgAAsQ X-Greylist: Sender passed SPF test, ACL 227 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 05 Jan 2018 10:30:28 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 05 Jan 2018 10:30:28 +0000 (UTC) for IP:'220.181.15.113' DOMAIN:'m15-113.126.com' HELO:'m15-113.126.com' FROM:'chen_han_xiao@126.com' RCPT:'' X-RedHat-Spam-Score: -0.11 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, SPF_PASS, T_RP_MATCHES_RCVD) 220.181.15.113 m15-113.126.com 220.181.15.113 m15-113.126.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.27 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Cc: Chen Hanxiao Subject: [libvirt] [PATCH v2 2/2] qemu_hotplug: introduce VIR_ERR_DEVICE_MISSING for failing to find desired device X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 05 Jan 2018 10:33:12 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Chen Hanxiao We used VIR_ERR_OPERATION_FAILED when target detaching device is not found. That error code VIR_ERR_OPERATION_FAILED is widely used, so the tools powered by libvirt, such as nova, can't catch the exact errors from libvirt. This patch introduce VIR_ERR_DEVICE_MISSING for this kind of scenario. Signed-off-by: Chen Hanxiao --- include/libvirt/virterror.h | 1 + src/qemu/qemu_hotplug.c | 26 +++++++++++++------------- src/util/virerror.c | 6 ++++++ 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/include/libvirt/virterror.h b/include/libvirt/virterror.h index 91ba29784..3e7c7a02c 100644 --- a/include/libvirt/virterror.h +++ b/include/libvirt/virterror.h @@ -320,6 +320,7 @@ typedef enum { VIR_ERR_AGENT_UNSYNCED =3D 97, /* guest agent replies with wron= g id to guest-sync command (DEPRECAT= ED)*/ VIR_ERR_LIBSSH =3D 98, /* error in libssh transport dri= ver */ + VIR_ERR_DEVICE_MISSING =3D 99, /* fail to find the desired devi= ce */ } virErrorNumber; =20 /** diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 6472a13a8..9e4424e35 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3513,7 +3513,7 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, int ret =3D -1; =20 if (!olddev) { - virReportError(VIR_ERR_INTERNAL_ERROR, + virReportError(VIR_ERR_DEVICE_MISSING, _("cannot find existing graphics device to modify o= f" " type '%s'"), type); goto cleanup; @@ -4758,7 +4758,7 @@ int qemuDomainDetachControllerDevice(virQEMUDriverPtr= driver, if ((idx =3D virDomainControllerFind(vm->def, dev->data.controller->type, dev->data.controller->idx)) < 0) { - virReportError(VIR_ERR_OPERATION_FAILED, + virReportError(VIR_ERR_DEVICE_MISSING, _("controller %s:%d not found"), virDomainControllerTypeToString(dev->data.controlle= r->type), dev->data.controller->idx); @@ -4987,18 +4987,18 @@ int qemuDomainDetachHostDevice(virQEMUDriverPtr dri= ver, if (idx < 0) { switch (subsys->type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: - virReportError(VIR_ERR_OPERATION_FAILED, + virReportError(VIR_ERR_DEVICE_MISSING, _("host pci device %.4x:%.2x:%.2x.%.1x not foun= d"), pcisrc->addr.domain, pcisrc->addr.bus, pcisrc->addr.slot, pcisrc->addr.function); break; case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: if (usbsrc->bus && usbsrc->device) { - virReportError(VIR_ERR_OPERATION_FAILED, + virReportError(VIR_ERR_DEVICE_MISSING, _("host usb device %03d.%03d not found"), usbsrc->bus, usbsrc->device); } else { - virReportError(VIR_ERR_OPERATION_FAILED, + virReportError(VIR_ERR_DEVICE_MISSING, _("host usb device vendor=3D0x%.4x product= =3D0x%.4x not found"), usbsrc->vendor, usbsrc->product); } @@ -5007,13 +5007,13 @@ int qemuDomainDetachHostDevice(virQEMUDriverPtr dri= ver, if (scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) { virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc =3D &scsisrc->= u.iscsi; - virReportError(VIR_ERR_OPERATION_FAILED, + virReportError(VIR_ERR_DEVICE_MISSING, _("host scsi iSCSI path %s not found"), iscsisrc->src->path); } else { virDomainHostdevSubsysSCSIHostPtr scsihostsrc =3D &scsisrc->u.host; - virReportError(VIR_ERR_OPERATION_FAILED, + virReportError(VIR_ERR_DEVICE_MISSING, _("host scsi device %s:%u:%u.%llu not foun= d"), scsihostsrc->adapter, scsihostsrc->bus, scsihostsrc->target, scsihostsrc->unit); @@ -5051,7 +5051,7 @@ qemuDomainDetachShmemDevice(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv =3D vm->privateData; =20 if ((idx =3D virDomainShmemDefFind(vm->def, dev)) < 0) { - virReportError(VIR_ERR_OPERATION_INVALID, + virReportError(VIR_ERR_DEVICE_MISSING, _("shmem device of model '%s' not found " "in domain configuration"), virDomainShmemModelTypeToString(dev->model)); @@ -5110,7 +5110,7 @@ qemuDomainDetachWatchdog(virQEMUDriverPtr driver, watchdog->model =3D=3D dev->model && watchdog->action =3D=3D dev->action && virDomainDeviceInfoAddressIsEqual(&dev->info, &watchdog->info)))= { - virReportError(VIR_ERR_OPERATION_INVALID, + virReportError(VIR_ERR_DEVICE_MISSING, _("watchdog device of model '%s' is not " "found in domain configuration"), virDomainWatchdogModelTypeToString(watchdog->model)= ); @@ -5155,7 +5155,7 @@ qemuDomainDetachNetDevice(virQEMUDriverPtr driver, =20 if ((detachidx =3D virDomainNetFindIdx(vm->def, dev->data.net)) < 0) { char mac[VIR_MAC_STRING_BUFLEN]; - virReportError(VIR_ERR_INTERNAL_ERROR, + virReportError(VIR_ERR_DEVICE_MISSING, _("netdev '%s' not found in domain configuration"), virMacAddrFormat(&dev->data.net->mac, mac)); goto cleanup; @@ -5345,7 +5345,7 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, char *devstr =3D NULL; =20 if (!(tmpChr =3D virDomainChrFind(vmdef, chr))) { - virReportError(VIR_ERR_OPERATION_INVALID, + virReportError(VIR_ERR_DEVICE_MISSING, _("chr device of type '%s' not found " "in domain configuration"), virDomainChrDeviceTypeToString(chr->deviceType)); @@ -5394,7 +5394,7 @@ qemuDomainDetachRNGDevice(virQEMUDriverPtr driver, int ret =3D -1; =20 if ((idx =3D virDomainRNGFind(vm->def, rng)) < 0) { - virReportError(VIR_ERR_OPERATION_INVALID, + virReportError(VIR_ERR_DEVICE_MISSING, _("RNG device of model '%s' not found " "in domain configuration"), virDomainRNGBackendTypeToString(rng->model)); @@ -5439,7 +5439,7 @@ qemuDomainDetachMemoryDevice(virQEMUDriverPtr driver, qemuDomainMemoryDeviceAlignSize(vm->def, memdef); =20 if ((idx =3D virDomainMemoryFindByDef(vm->def, memdef)) < 0) { - virReportError(VIR_ERR_OPERATION_INVALID, + virReportError(VIR_ERR_DEVICE_MISSING, _("memory device of model '%s' not found " "in domain configuration"), virDomainMemoryModelTypeToString(memdef->model)); diff --git a/src/util/virerror.c b/src/util/virerror.c index 562c3bc61..c000b0043 100644 --- a/src/util/virerror.c +++ b/src/util/virerror.c @@ -1453,6 +1453,12 @@ virErrorMsg(virErrorNumber error, const char *info) else errmsg =3D _("libssh transport error: %s"); break; + case VIR_ERR_DEVICE_MISSING: + if (info =3D=3D NULL) + errmsg =3D _("device not found"); + else + errmsg =3D _("device not found: %s"); + break; } return errmsg; } --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list