Pino Toscano
2020-Apr-24 15:29 UTC
Re: [Libguestfs] virt-v2v: error: no href in ovf:File (id=)
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@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
Possibly Parallel Threads
- Re: virt-v2v: error: no href in ovf:File (id=)
- [PATCH v2 5/5] v2v: update tests to match changes in OVA import
- [PATCH v8 4/4] v2v: ova: don't extract files from OVA if it's not needed
- [PATCH v4 6/6] v2v: ova: don't extract files from OVA if it's not needed
- [PATCH v6 3/3] v2v: ova: don't extract files from OVA if it's not needed