
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@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@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@googlemail.com> To: Shahar Klein <shaharklein@yahoo.com> Cc: Daniel P. Berrange <berrange@redhat.com>; veillard@redhat.com; libvir-list@redhat.com Sent: Tuesday, September 15, 2009 7:56:43 PM Subject: Re: [libvirt] Python binding to virConnectListInterfaces
2009/9/15 Shahar Klein <shaharklein@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