[libvirt] [PATCH] storage: Don't pass 'iso' format to qemu-img

Cole Robinson posted 1 patch 124 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/147e79bed9f55fff77bc029bf6ad60b7d03961a6.1488837532.git.crobinso@redhat.com
Test syntax-check passed
src/storage/storage_util.c | 5 +++++
1 file changed, 5 insertions(+)

[libvirt] [PATCH] storage: Don't pass 'iso' format to qemu-img

Posted by Cole Robinson 124 weeks ago
$ virsh vol-clone /tmp/test.iso new.iso
error: Failed to clone vol from test.iso
error: internal error: Child process (/bin/qemu-img convert -f iso -O iso /tmp/test.iso /tmp/new.iso) unexpected exit status 1: qemu-img: Could not open '/tmp/test.iso': Unknown driver 'iso'

Map iso->raw before sending the format value to qemu-img

https://bugzilla.redhat.com/show_bug.cgi?id=972784
https://bugzilla.redhat.com/show_bug.cgi?id=1419395
---
 src/storage/storage_util.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index 41253b9..bf6f0b3 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -1009,6 +1009,8 @@ storageBackendCreateQemuImgSetInput(virStorageVolDefPtr inputvol,
     info->inputFormat = inputvol->target.format;
     if (inputvol->type == VIR_STORAGE_VOL_BLOCK)
         info->inputFormat = VIR_STORAGE_FILE_RAW;
+    if (info->inputFormat == VIR_STORAGE_FILE_ISO)
+        info->inputFormat = VIR_STORAGE_FILE_RAW;
     if (!(info->inputFormatStr =
           virStorageFileFormatTypeToString(info->inputFormat))) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -1175,6 +1177,9 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn,
     if (vol->type == VIR_STORAGE_VOL_BLOCK)
         info.format = VIR_STORAGE_FILE_RAW;
 
+    if (info.format == VIR_STORAGE_FILE_ISO)
+        info.format = VIR_STORAGE_FILE_RAW;
+
     if (!(type = virStorageFileFormatTypeToString(info.format))) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("unknown storage vol type %d"),
-- 
2.9.3

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

Re: [libvirt] [PATCH] storage: Don't pass 'iso' format to qemu-img

Posted by Pavel Hrdina 124 weeks ago
On Mon, Mar 06, 2017 at 04:58:52PM -0500, Cole Robinson wrote:
> $ virsh vol-clone /tmp/test.iso new.iso
> error: Failed to clone vol from test.iso
> error: internal error: Child process (/bin/qemu-img convert -f iso -O iso /tmp/test.iso /tmp/new.iso) unexpected exit status 1: qemu-img: Could not open '/tmp/test.iso': Unknown driver 'iso'
> 
> Map iso->raw before sending the format value to qemu-img
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=972784
> https://bugzilla.redhat.com/show_bug.cgi?id=1419395
> ---
>  src/storage/storage_util.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
> index 41253b9..bf6f0b3 100644
> --- a/src/storage/storage_util.c
> +++ b/src/storage/storage_util.c
> @@ -1009,6 +1009,8 @@ storageBackendCreateQemuImgSetInput(virStorageVolDefPtr inputvol,
>      info->inputFormat = inputvol->target.format;
>      if (inputvol->type == VIR_STORAGE_VOL_BLOCK)
>          info->inputFormat = VIR_STORAGE_FILE_RAW;
> +    if (info->inputFormat == VIR_STORAGE_FILE_ISO)
> +        info->inputFormat = VIR_STORAGE_FILE_RAW;
>      if (!(info->inputFormatStr =
>            virStorageFileFormatTypeToString(info->inputFormat))) {
>          virReportError(VIR_ERR_INTERNAL_ERROR,
> @@ -1175,6 +1177,9 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn,
>      if (vol->type == VIR_STORAGE_VOL_BLOCK)
>          info.format = VIR_STORAGE_FILE_RAW;
>  
> +    if (info.format == VIR_STORAGE_FILE_ISO)
> +        info.format = VIR_STORAGE_FILE_RAW;
> +
>      if (!(type = virStorageFileFormatTypeToString(info.format))) {
>          virReportError(VIR_ERR_INTERNAL_ERROR,
>                         _("unknown storage vol type %d"),

This could use a test case in storagevolxml2argvtest.

ACK to the changes.

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

Re: [libvirt] [PATCH] storage: Don't pass 'iso' format to qemu-img

Posted by Cole Robinson 124 weeks ago
On 03/07/2017 04:22 AM, Pavel Hrdina wrote:
> On Mon, Mar 06, 2017 at 04:58:52PM -0500, Cole Robinson wrote:
>> $ virsh vol-clone /tmp/test.iso new.iso
>> error: Failed to clone vol from test.iso
>> error: internal error: Child process (/bin/qemu-img convert -f iso -O iso /tmp/test.iso /tmp/new.iso) unexpected exit status 1: qemu-img: Could not open '/tmp/test.iso': Unknown driver 'iso'
>>
>> Map iso->raw before sending the format value to qemu-img
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=972784
>> https://bugzilla.redhat.com/show_bug.cgi?id=1419395
>> ---
>>  src/storage/storage_util.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
>> index 41253b9..bf6f0b3 100644
>> --- a/src/storage/storage_util.c
>> +++ b/src/storage/storage_util.c
>> @@ -1009,6 +1009,8 @@ storageBackendCreateQemuImgSetInput(virStorageVolDefPtr inputvol,
>>      info->inputFormat = inputvol->target.format;
>>      if (inputvol->type == VIR_STORAGE_VOL_BLOCK)
>>          info->inputFormat = VIR_STORAGE_FILE_RAW;
>> +    if (info->inputFormat == VIR_STORAGE_FILE_ISO)
>> +        info->inputFormat = VIR_STORAGE_FILE_RAW;
>>      if (!(info->inputFormatStr =
>>            virStorageFileFormatTypeToString(info->inputFormat))) {
>>          virReportError(VIR_ERR_INTERNAL_ERROR,
>> @@ -1175,6 +1177,9 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn,
>>      if (vol->type == VIR_STORAGE_VOL_BLOCK)
>>          info.format = VIR_STORAGE_FILE_RAW;
>>  
>> +    if (info.format == VIR_STORAGE_FILE_ISO)
>> +        info.format = VIR_STORAGE_FILE_RAW;
>> +
>>      if (!(type = virStorageFileFormatTypeToString(info.format))) {
>>          virReportError(VIR_ERR_INTERNAL_ERROR,
>>                         _("unknown storage vol type %d"),
> 
> This could use a test case in storagevolxml2argvtest.
> 
> ACK to the changes.
> 

Thanks, I didn't know about those tests. I've sent a follow up patch

- Cole

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

Re: [libvirt] [PATCH] storage: Don't pass 'iso' format to qemu-img

Posted by Michal Privoznik 124 weeks ago
On 03/06/2017 10:58 PM, Cole Robinson wrote:
> $ virsh vol-clone /tmp/test.iso new.iso
> error: Failed to clone vol from test.iso
> error: internal error: Child process (/bin/qemu-img convert -f iso -O iso /tmp/test.iso /tmp/new.iso) unexpected exit status 1: qemu-img: Could not open '/tmp/test.iso': Unknown driver 'iso'
> 
> Map iso->raw before sending the format value to qemu-img
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=972784
> https://bugzilla.redhat.com/show_bug.cgi?id=1419395
> ---
>  src/storage/storage_util.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
> index 41253b9..bf6f0b3 100644
> --- a/src/storage/storage_util.c
> +++ b/src/storage/storage_util.c
> @@ -1009,6 +1009,8 @@ storageBackendCreateQemuImgSetInput(virStorageVolDefPtr inputvol,
>      info->inputFormat = inputvol->target.format;
>      if (inputvol->type == VIR_STORAGE_VOL_BLOCK)
>          info->inputFormat = VIR_STORAGE_FILE_RAW;
> +    if (info->inputFormat == VIR_STORAGE_FILE_ISO)
> +        info->inputFormat = VIR_STORAGE_FILE_RAW;
>      if (!(info->inputFormatStr =
>            virStorageFileFormatTypeToString(info->inputFormat))) {
>          virReportError(VIR_ERR_INTERNAL_ERROR,
> @@ -1175,6 +1177,9 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn,
>      if (vol->type == VIR_STORAGE_VOL_BLOCK)
>          info.format = VIR_STORAGE_FILE_RAW;
>  
> +    if (info.format == VIR_STORAGE_FILE_ISO)
> +        info.format = VIR_STORAGE_FILE_RAW;
> +
>      if (!(type = virStorageFileFormatTypeToString(info.format))) {
>          virReportError(VIR_ERR_INTERNAL_ERROR,
>                         _("unknown storage vol type %d"),
> 

ACK

Michal

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