Re: [libvirt] [PATCH v2] conf: Report sensible error for invalid disk name

2012-11-22 Thread Peter Krempa

On 11/20/12 16:20, Martin Kletzander wrote:

The error ... but the cause is unknown appeared for XMLs similar to
this:

  disk type='file' device='cdrom'
driver name='qemu' type='raw'/
source file='/dev/zero'/
target dev='sr0'/
  /disk

Notice unsupported disk type (for the driver), but also no address
specified. The first part is not a problem and we should not abort
immediately because of that, but the combination with the address
unknown was causing an unspecified error.

While fixing this, I added an error to one place where this return
value was not managed properly.
---
v2:
  - Error moved from virDiskNameToIndex@util/util.c to
virDomainDiskDefAssignAddress@conf/domain_conf.c
  - One more error added into qemuParseCommandLine@qemu/qemu_command.c

  src/conf/domain_conf.c  | 6 +-
  src/qemu/qemu_command.c | 6 +-
  2 files changed, 10 insertions(+), 2 deletions(-)



ACK.

Peter

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


Re: [libvirt] [PATCH v2] conf: Report sensible error for invalid disk name

2012-11-22 Thread Martin Kletzander
On 11/22/2012 02:16 PM, Peter Krempa wrote:
 On 11/20/12 16:20, Martin Kletzander wrote:
 The error ... but the cause is unknown appeared for XMLs similar to
 this:

   disk type='file' device='cdrom'
 driver name='qemu' type='raw'/
 source file='/dev/zero'/
 target dev='sr0'/
   /disk

 Notice unsupported disk type (for the driver), but also no address
 specified. The first part is not a problem and we should not abort
 immediately because of that, but the combination with the address
 unknown was causing an unspecified error.

 While fixing this, I added an error to one place where this return
 value was not managed properly.
 ---
 v2:
   - Error moved from virDiskNameToIndex@util/util.c to
 virDomainDiskDefAssignAddress@conf/domain_conf.c
   - One more error added into qemuParseCommandLine@qemu/qemu_command.c

   src/conf/domain_conf.c  | 6 +-
   src/qemu/qemu_command.c | 6 +-
   2 files changed, 10 insertions(+), 2 deletions(-)

 
 ACK.
 
 Peter
 

Thanks, pushed.

Martin

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


[libvirt] [PATCH v2] conf: Report sensible error for invalid disk name

2012-11-20 Thread Martin Kletzander
The error ... but the cause is unknown appeared for XMLs similar to
this:

 disk type='file' device='cdrom'
   driver name='qemu' type='raw'/
   source file='/dev/zero'/
   target dev='sr0'/
 /disk

Notice unsupported disk type (for the driver), but also no address
specified. The first part is not a problem and we should not abort
immediately because of that, but the combination with the address
unknown was causing an unspecified error.

While fixing this, I added an error to one place where this return
value was not managed properly.
---
v2:
 - Error moved from virDiskNameToIndex@util/util.c to
   virDomainDiskDefAssignAddress@conf/domain_conf.c
 - One more error added into qemuParseCommandLine@qemu/qemu_command.c

 src/conf/domain_conf.c  | 6 +-
 src/qemu/qemu_command.c | 6 +-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ed21f0f..3a1be02 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3063,8 +3063,12 @@ int
 virDomainDiskDefAssignAddress(virCapsPtr caps, virDomainDiskDefPtr def)
 {
 int idx = virDiskNameToIndex(def-dst);
-if (idx  0)
+if (idx  0) {
+virReportError(VIR_ERR_XML_ERROR,
+   _(Unknown disk name '%s' and no address specified),
+   def-dst);
 return -1;
+}

 switch (def-bus) {
 case VIR_DOMAIN_DISK_BUS_SCSI:
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 22bb209..097de9b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8342,8 +8342,12 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps,
 !disk-dst)
 goto no_memory;

-if (virDomainDiskDefAssignAddress(caps, disk)  0)
+if (virDomainDiskDefAssignAddress(caps, disk)  0) {
+virReportError(VIR_ERR_INTERNAL_ERROR,
+   _(Cannot assign address for device name '%s'),
+   disk-dst);
 goto error;
+}

 if (VIR_REALLOC_N(def-disks, def-ndisks+1)  0)
 goto no_memory;
--
1.8.0

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