Monday, June 11, 2012

ESXi 5 patch installation fails with error "Could not download from depot at zip:/var/log/vmware/*update name*.zip?index.xml..."

Issue : Trying to install the async driver for the ESXi 5 host with the help of the vmware kb/2005205 but it fails with a "MetadataDownloadError" reading:
Could not download from depot at zip:/var/log/vmware/*update name*.zip?index.xml, skipping (('zip:/var/log/vmware/*update name*.zip?index.xml', '', "Error extracting index.xml from :/var/log/vmware/*update name*.zip: [Errno 2] No such file or directory: '/var/log/vmware/*update name*.zip?index.xml'"))
url = zip:/var/log/vmware/*update name*.zip?index.xml
Please refer to the log file for more details.

command used to instal the driver
esxcli software vib install –d /vmfs/volumes/datastore/offline-bundle.zip
and/or
esxcli software vib install –d /vmfs/volumes/datastore/offline-bundle.vib

Cause: The datastore has a namespace in it

Solution: Sometimes you can bypass this error by just running the command with the full path to the offline-bundle just like the one i showed in the above example but not all the times. In such scenarios you have to use the datastore id instead of the name of the datastore in the above command.
example:
esxcli software vib install –d /vmfs/volumes/4f14e96d-673fa1b7-0b72-001e4f2f111a/offline-bundle.zip
or
esxcli software vib install –d /vmfs/volumes/4f14e96d-673fa1b7-0b72-001e4f2f111a/offline-bundle.vib

Alternatively you can just copy the driver to a datastore where the name of the datastore has no namespace in it and try the installation.

Note: no namespace should be present in the entire path of the patch; what i mean to say is no name space for the name of the datastore or the name of the folder inside the datastore where the patch(offline-bundle.zip) is located.
It is always advisable to avoid the namespace when you are in a unix/linux/vmware environment.