Today I was working on upgrading some hosts in a vSphere 5 environment that is using Cisco Nexus 1000V virtual switches. I imported the extension bundle in Update Manager, created a baseline, and scanned the hosts. After a couple of seconds , I got a message in vCenter telling me the scan failed:
Scan entity <hostname> Host cannot download files from VMware vSphere Update Manager patch store. Check the network connectivity and firewall setup, and check esxupdate logs for details.
Thought it might be a firewall issue, but saw no issues there, and as recommended by the error message, I did check the esxupdate.log on one of the failed hosts, and noticed:
2012-05-14T17:44:26Z esxupdate: esxupdate: ERROR: MetadataDownloadError: (‘http://X.X.X.X:9084/vum/repository/hostupdate/CSCO/CISCO-VEM500-188.8.131.52.5.1.0-3.0.1-metadata_1337004766.zip’, None, “(‘http://X.X.X.X:9084/vum/repository/hostupdate/CSCO/CISCO-VEM500-184.108.40.206.5.1.0-3.0.1-metadata_1337004766.zip’, ‘/tmp/tmpf793YR’, ‘[Errno 14] HTTP Error 404: Not Found’)”)
I loged on to my Update Manager Server, and browsed the repository to see if this file was indeed missing. But the file seemed to be there, with but in a directory named “csco” instead of “CSCO” and since http should be case insensitive, thought that should be no issue.
I logged on to the esx server and did a:
wget http://X.X.X.X:9084/vum/repository/hostupdate/CSCO/CISCO-VEM500 -220.127.116.11.5.1.0-3.0.1-metadata_1337004766.zip
With the following result:
Connecting to X.X.X.X:9084 (10.100.10.78:9084) wget: server returned error: HTTP/1.1 404 Not Found
Now I tried the same wget, but with the :”csco” instead of “CSCO” in the path, et voila:
wget http://X.X.X.X:9084/vum/repository/hostupdate/csco/CISCO-VEM500 -18.104.22.168.5.1.0-3.0.1-metadata_1337004766.zipConnecting to 10.100.10.78:9084 (10.100.10.78:9084) CISCO-VEM500-22.214.171.124 100% |*******************************| 3082 –:–:– ETA
So this did seem to be case sensitive afterall.
Went back to the Update Manager Server, and decided to change the name of the directory from “csco” to “CSCO”, but that did not fix my issue unfortunately.
So googled for “Update Manager” and “CSCO” and found a recent VMware KB article titeled “After adding a Cisco NEXUS1000V patch, Update Manager fails to scan hosts” which sounded like a perfect match.
The description of the cause of the problem is:
This issue occurs due to the difference in the way that Cisco and Update Manager create folder names for the repository. Update Manager creates folder in lowercase (csco), whereas the metadata from this patch looks for an uppercase folder.
To fix this issue, you need to make some changes to the index.xml file in the Cisco patch bundle, but you also need to deinstall and reinstall Update Manager to be able to add the modified extension. (you can not remove an imported patch or extension….)
First time I choose to keep the Update Manager database at the reinstall (the KB article was not clear on this) but still could not import the modified extension bundle.
Had to do a full reinstall of Update Manager and overwrite my existing database, which meant I also had to import all my patches and extensions , and recreate my baselines …
Took a while, but Update Manager is now scanning and updating hosts again.
See the KB article for the full details