I just tested with a non-responding NFS datastore and got an empty
URL. The fix is simple, the DatastoreSummary has an accessible
property; VI API documentation about it:
"The connectivity status of this datastore. If this is set to false,
meaning the datastore is not accessible, this datastore's capacity and
freespace properties cannot be validated. Furthermore, if this
property is set to false, the url properties in this summary and in
DatastoreInfo should not be used."
I'll post a patch for this.
Matthias
2009/9/16 Matthias Bolte <matthias.bolte(a)googlemail.com>:
Ah, the not responding NFS datastores may have an empty URL. I'll
make
the code more robust in this situation by changing the error to a
warning. Because I iterate over all datastore of the server to find a
matching one, and if a datastore with a problem comes first in the
list it'll hinder the driver to find a possible matching one. Had this
kind of problem before with virtual machines where a broken virtual
machine caused the problem.
I'll review the rest of the code for this kind of problem, because I
suspect there will be more functions with this problem.
Matthias
2009/9/16 Shahar Klein <shaharklein(a)yahoo.com>:
> It's my ESX4i testing server
> with 3 datastores
> one local and 2 over NFS mounts that are not responding
> Plus this ESX4i server is quite messed up with cloning tests
> I made before discovering the OVA-templates
> I'll clean and try again and will make a mental note
> to test NFS datastore diconnections
> Thanks
> Shahar
> ________________________________
> From: Matthias Bolte <matthias.bolte(a)googlemail.com>
> To: Shahar Klein <shaharklein(a)yahoo.com>
> Cc: Daniel P. Berrange <berrange(a)redhat.com>; veillard(a)redhat.com;
> libvir-list(a)redhat.com
> Sent: Tuesday, September 15, 2009 7:56:43 PM
> Subject: Re: [libvirt] Python binding to virConnectListInterfaces
>
> 2009/9/15 Shahar Klein <shaharklein(a)yahoo.com>:
>> understood
>> so, is that a bug?
>> virsh # list
>> Id Name State
>> ----------------------------------
>> 16 rh53 running
>> 256 smallLinux running
>> 336 diskless linux running
>> virsh # dominfo 16
>> Id: 16
>> Name: rh53
>> UUID: 564dea41-bf37-44d6-2c9e-c6009be71aa6
>> OS Type: hvm
>> State: running
>> CPU(s): 1
>> Max memory: 393216 kB
>> Used memory: 393216 kB
>> virsh #
>> virsh # dumpxml 16
>> error: internal error Datastore URL '' has unexpected prefix, expecting
>> '/vmfs/volumes/' prefix
>>
>
> This message indicates that your ESX server has a datastore with URL
> set to an empty string. This is unexpected.
>
> Goto https://<your-esx-server>/mob then goto content -> rootFolder ->
> childEntity -> datastore. For each datastore element check the
> info.url property, if one of them is an empty string or unset then
> this is the cause for this error message.
>
> If this is really the case for you, the question is: Is an empty URL
> valid, or is this a configuration issue with you ESX server?
>
> Matthias
>
>