[Libguestfs] virt-v2v: error: no href in ovf:File (id=)

Pino Toscano ptoscano at redhat.com
Fri Apr 24 15:29:30 UTC 2020


Hi,

On Friday, 24 April 2020 14:57:38 CEST Andrew Thurber (anthurbe) wrote:
> This multi-disk ovf generates “no href in ovf:File (id=)”
> Other single-disk ovfs on the same system work. I don’t have another multi-disk ova to try.
> I’ve compared the syntax with the test file on github and it appears to be essentially the same:
> virt-v2v/tests/test-v2v-i-ova-two-disks.ovf
> Any suggestions?

> [ with text changed for privacy ]
> 
> Head of the .ovf file:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <Envelope vmw:buildId="build-3620759" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <References>
>     <File ovf:href="aa-bb-cccc-1.2.3-45-release-200401.ova_v1.2_signed-disk1.vmdk" ovf:id="file1" ovf:size="1530541056"/>
>     <File ovf:href="aa-bb-cccc-1.2.3-45-release-200401.ova_v1.2_signed-disk2.vmdk" ovf:id="file2" ovf:size="6476920320"/>
>     <File ovf:href="aa-bb-cccc-1.2.3-45-release-200401.ova_v1.2_signed-disk3.vmdk" ovf:id="file3" ovf:size="1696059392"/>
>   </References>
>   <DeploymentOptionSection>
>     <Info>IP Network Stack in use by the product</Info>
>     <Configuration ovf:default="true" ovf:id="aa_ipv4">
>       <Label>IPv4 Network</Label>
>       <Description>Use IPv4 network stack for management and data traffic.</Description>
>     </Configuration>
>     <Configuration ovf:id="aa_ipv6">
>       <Label>IPv6 Network</Label>
>       <Description>Use IPv6 network stack for management and data traffic.</Description>
>     </Configuration>
>     <Configuration ovf:id="1int">
>       <Label>IPv4 Network on a Single Interface (demo mode)</Label>
>       <Description>Use a single interface for IPv4 management and data traffic.</Description>
>     </Configuration>
>   </DeploymentOptionSection>
>   <DiskSection>
>     <Info>Virtual disk information</Info>
>     <Disk ovf:capacity="50" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="3584360448"/>
>     <Disk ovf:capacity="156" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk2" ovf:fileRef="file2" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="16995385344"/>
>     <Disk ovf:capacity="76" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk6" ovf:fileRef="file3" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="1704001536"/>
>     <Disk ovf:capacity="${logfs}" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk3" ovf:fileRef="" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="0"/>
>     <Disk ovf:capacity="${corefs}" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk4" ovf:fileRef="" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="0"/>
>     <Disk ovf:capacity="${ddatafs}" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk5" ovf:fileRef="" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="0"/>
>   </DiskSection>
>> 
> And the virt-v2v error:
> 
> [root at localhost ~]# virt-v2v -v -x -i ova aa-bb-cccc-1.2.3-45-release-200401.ova -of qcow2
> virt-v2v: libguestfs 1.38.4rhel=8,release=14.module_el8.1.0+248+298dec18,libvirt (x86_64)
> libvirt version: 4.5.0
> [   0.0] Opening the source -i ova aa-bb-cccc-1.2.3-45-release-200401.ova
> libguestfs: trace: set_verbose true
> libguestfs: trace: set_verbose = 0
> libguestfs: trace: get_cachedir
> libguestfs: trace: get_cachedir = "/var/tmp"
> qemu-img info json:'{ "file": { "driver": "raw", "offset": 512, "size": 512, "file": { "filename": "/tmp/v2vqemuimgtst8f2fb6.img" } } }' >/dev/null
> qemu-img supports "offset" and "size" in json URLs: true
> libguestfs: trace: set_verbose true
> libguestfs: trace: set_verbose = 0
> libguestfs: trace: get_backend
> libguestfs: trace: get_backend = "libvirt"
> libvirt supports  "raw" driver in json URL: true
> tar -tf 'aa-bb-cccc-1.2.3-45-release-200401.ova'
> tar -xf 'aa-bb-cccc-1.2.3-45-release-200401.ova' -C '/var/tmp/ova.1MI0Ml' 'aa-bb-cccc-1.2.3-45-release-200401.ova_v6.5_signed.ovf' 'aa-bb-cccc-1.2.3-45-release-200401.ova_v1.2_signed.mf'
> 
> virt-v2v: error: no href in ovf:File (id=)

This is the same case of https://bugzilla.redhat.com/1709722

In short, disks with no references are meant to be allocated
dynamically, and this is something virt-v2v does not support yet.

> Side note: I tried building libguestfs from source but failed so
> haven’t tried with latest (separate issue, but I think I resolved
> dependencies, then hit a podwrapper.pl issue).

As mentioned, not even virt-v2v from git master supports this.
If you can provide more details on the issues you got when building from
sources I can provide hints.

-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20200424/4c3f2377/attachment.sig>


More information about the Libguestfs mailing list