Re: [libvirt] [PATCH] Better error reporting in qemu AttachDevice

2009-03-02 Thread Cole Robinson
Cole Robinson wrote:
> The attached patch fixes qemu AttachDevice to show the invalid disk bus
> or type in it's error messages. This also adds an error message where
> previously we could fall through, leading virsh to print 'Unknown Error'
> if attempting to hotplug an IDE disk.
> 


Committed now.

Thanks,
Cole

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] Better error reporting in qemu AttachDevice

2009-03-02 Thread Jim Meyering
Cole Robinson wrote:
> The attached patch fixes qemu AttachDevice to show the invalid disk bus
> or type in it's error messages. This also adds an error message where
> previously we could fall through, leading virsh to print 'Unknown Error'
> if attempting to hotplug an IDE disk.

definite improvement.
ACK

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] Better error reporting in qemu AttachDevice

2009-03-02 Thread Daniel P. Berrange
On Fri, Feb 27, 2009 at 11:17:58AM -0500, Cole Robinson wrote:
> The attached patch fixes qemu AttachDevice to show the invalid disk bus
> or type in it's error messages. This also adds an error message where
> previously we could fall through, leading virsh to print 'Unknown Error'
> if attempting to hotplug an IDE disk.

ACK

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH] Better error reporting in qemu AttachDevice

2009-02-27 Thread Cole Robinson
The attached patch fixes qemu AttachDevice to show the invalid disk bus
or type in it's error messages. This also adds an error message where
previously we could fall through, leading virsh to print 'Unknown Error'
if attempting to hotplug an IDE disk.

Thanks,
Cole
commit abc32756bebac926acc0fde94ea42d2df2ca9946
Author: Cole Robinson 
Date:   Fri Feb 27 10:48:22 2009 -0500

Better error reporting from qemu AttachDevice

diff --git a/src/domain_conf.c b/src/domain_conf.c
index 603b87b..95ad32f 100644
--- a/src/domain_conf.c
+++ b/src/domain_conf.c
@@ -73,6 +73,14 @@ VIR_ENUM_IMPL(virDomainLifecycle, VIR_DOMAIN_LIFECYCLE_LAST,
   "rename-restart",
   "preserve")
 
+VIR_ENUM_IMPL(virDomainDevice, VIR_DOMAIN_DEVICE_LAST,
+  "disk",
+  "filesystem",
+  "interface",
+  "input",
+  "sound",
+  "hostdev")
+
 VIR_ENUM_IMPL(virDomainDisk, VIR_DOMAIN_DISK_TYPE_LAST,
   "block",
   "file")
diff --git a/src/domain_conf.h b/src/domain_conf.h
index 491df06..015ea8b 100644
--- a/src/domain_conf.h
+++ b/src/domain_conf.h
@@ -342,6 +342,8 @@ enum virDomainDeviceType {
 VIR_DOMAIN_DEVICE_INPUT,
 VIR_DOMAIN_DEVICE_SOUND,
 VIR_DOMAIN_DEVICE_HOSTDEV,
+
+VIR_DOMAIN_DEVICE_LAST,
 };
 
 typedef struct _virDomainDeviceDef virDomainDeviceDef;
@@ -621,6 +623,7 @@ VIR_ENUM_DECL(virDomainVirt)
 VIR_ENUM_DECL(virDomainBoot)
 VIR_ENUM_DECL(virDomainFeature)
 VIR_ENUM_DECL(virDomainLifecycle)
+VIR_ENUM_DECL(virDomainDevice)
 VIR_ENUM_DECL(virDomainDisk)
 VIR_ENUM_DECL(virDomainDiskDevice)
 VIR_ENUM_DECL(virDomainDiskBus)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index b8cca00..b8691a3 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -68,6 +68,7 @@ virDomainDefParseString;
 virDomainDeleteConfig;
 virDomainDeviceDefFree;
 virDomainDeviceDefParse;
+virDomainDeviceTypeToString;
 virDomainDiskBusTypeToString;
 virDomainDiskDefFree;
 virDomainDiskDeviceTypeToString;
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index 34854dd..3b9b08a 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -3470,17 +3470,25 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
 case VIR_DOMAIN_DISK_DEVICE_FLOPPY:
 ret = qemudDomainChangeEjectableMedia(dom->conn, vm, dev);
 break;
+
 case VIR_DOMAIN_DISK_DEVICE_DISK:
 if (dev->data.disk->bus == VIR_DOMAIN_DISK_BUS_USB) {
 ret = qemudDomainAttachUsbMassstorageDevice(dom->conn, vm, dev);
 } else if (dev->data.disk->bus == VIR_DOMAIN_DISK_BUS_SCSI ||
dev->data.disk->bus == VIR_DOMAIN_DISK_BUS_VIRTIO) {
 ret = qemudDomainAttachPciDiskDevice(dom->conn, vm, dev);
+} else {
+qemudReportError(dom->conn, dom, NULL, VIR_ERR_NO_SUPPORT,
+ _("disk bus '%s' cannot be hotplugged."),
+ virDomainDiskBusTypeToString(dev->data.disk->bus));
+goto cleanup;
 }
 break;
+
 default:
 qemudReportError(dom->conn, dom, NULL, VIR_ERR_NO_SUPPORT,
- "%s", _("this disk device type cannot be attached"));
+ _("disk device type '%s' cannot be hotplugged"),
+ virDomainDiskDeviceTypeToString(dev->data.disk->device));
 goto cleanup;
 }
 } else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV &&
@@ -3489,7 +3497,8 @@ static int qemudDomainAttachDevice(virDomainPtr dom,
 ret = qemudDomainAttachHostDevice(dom->conn, vm, dev);
 } else {
 qemudReportError(dom->conn, dom, NULL, VIR_ERR_NO_SUPPORT,
- "%s", _("this device type cannot be attached"));
+ _("device type '%s' cannot be attached"),
+ virDomainDeviceTypeToString(dev->type));
 goto cleanup;
 }
 
--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list