On Thu, Oct 08, 2020 at 10:26:43AM +0200, Peter Krempa wrote:
On Thu, Oct 08, 2020 at 10:17:22 +0200, Pino Toscano wrote:
> On Thursday, 8 October 2020 09:55:32 CEST Peter Krempa wrote:
> > The vmx tests use fake paths for files which in some cases didn't start
> > with a /. Since libvirt's schema mandates full paths and the
> > representation used in the tests is only internal to the tests we'll add
> > a leading / to the paths to conform to the schema.
> >
> > Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
> > ---
[...]
> > diff --git a/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml
b/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml
> > index 7cb6413941..97fa300c18 100644
> > --- a/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml
> > +++ b/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml
> > @@ -16,7 +16,7 @@
> > <on_crash>destroy</on_crash>
> > <devices>
> > <disk type='file' device='disk'>
> > - <source file='[datastore] directory/FEDORA11.VMDK'/>
> > + <source file='/[datastore] directory/FEDORA11.VMDK'/>
>
> The real XMLs of VMware guests have disks paths like
> '[datastore] path/to/file.vmx'. The proposed change will make these
> XMLs unusable as real XMLs, and some of them were actually real XMLs.
>
> Even if these files are just tests, I don't think this is correct to
> make them different than real XMLs.
>
> If the schema does not support file='[datastore] path/to/file.vmx',
> IMHO that's the schema itself what needs to be fixed, not example/test
> XMLs...
Okay that's extremely weird then. I must say I looked into the real
parser since for some reason we have a separate implementation in the
tests (also weird) but didn't notice that this was done also for real
files.
The real question then is. Why didn't anybody complain yet?!? The schema
mandating a leading slash is there amost forever so vmware XMLs must
have been invalid for all that time.
My guess is because CreateXML is not used and for read access it cannot fail
because the XML is generated in libvirt and "sent" to the client/caller.
It could have probably been something like:
<source datastore="ds1" file="/directory/file.ext"/>
but it's too late (and worthless IMNSHO) to do that now.