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

Andrew Thurber (anthurbe) anthurbe at cisco.com
Fri Apr 24 17:12:10 UTC 2020


Thank you Pino,
Please explain a bit more, I'm not sure I have the same situation as https://bugzilla.redhat.com/1709722
In my case it complains there is no href, but there is.
And the vmdks are present in the ova.

I think it is failing while parsing the References section:
virt-v2v/v2v/parse_ovf_from_ova.ml
143-      let expr = sprintf "/ovf:Envelope/ovf:References/ovf:File[@ovf:id='%s']/@ovf:href" file_ref in
144-      let href =
145-        match xpath_string expr with
146:        | None -> error (f_"no href in ovf:File (id=%s)") file_ref
147-        | Some s -> s in

As for the build failure, thanks for the offer, here you go:
  POD      stamp-guestfs.pod
Can't locate object method "no_errata_section" via package "Podwrapper::Man" at /home/anthurbe-scnclvs2/libguestfs/podwrapper.pl line 550.
make[3]: *** [stamp-guestfs.pod] Error 2

Andrew

On 4/24/20, 11:30 AM, "Pino Toscano" <ptoscano at redhat.com> wrote:

    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





More information about the Libguestfs mailing list