Download catalog.xml from ftp:dell.com
The following python script will parse the XML file and output the available firmware updates and the actual path name in the labyrinth that is ftp.dell.com. You can automate the rest...
This script should also work if you use Dell Repository Manager to create a local (subset) clone of ftp.dell.com based on your inventory.
Usage:
python dell-catalog.py Catalog.xml R510
python dell-catalog.py Catalog.xml M915
etc
#! /usr/bin/python
import os,sys
import xml.etree.ElementTree as ET
tree = ET.parse( sys.argv[1] )
server = sys.argv[2]
root = tree.getroot()
repo = '/srv/pub/DRM/'
software = dict()
for child in root.iter('SoftwareComponent'):
path = child.attrib['path']
basename = os.path.basename(path)
software[basename] = path
# print basename, "=", path
for child in root.iter('SoftwareBundle'):
target = child.find('TargetSystems/Brand/Model/Display')
if (target.text != server):
continue
if (child.attrib['bundleID'].find('WIN') != -1 ):
continue
print "## ---software bundle---"
print "##", child.attrib['bundleID'], target.text
print "## ---"
contents = child.find('Contents')
print "## The following packages are available:"
for package in child.iter('Package'):
mypath = package.attrib['path']
print "Name: {} File: {}".format(mypath, software[mypath])
print "## ---end of software bundle"
## ---software bundle---
## PH36069_LIN.440 R510
## ---
## The following packages are available:
Name: Diagnostics_Application_F81WT_LN32_5157A0_5157.1.BIN File: FOLDER00736377M/2/Diagnostics_Application_F81WT_LN32_5157A0_5157.1.BIN
Name: Drivers-for-OS-Deployment_Application_K4N86_LN32_7.1.1.1_A00.BIN File: FOLDER00816867M/1/Drivers-for-OS-Deployment_Application_K4N86_LN32_7.1.1.1_A00.BIN
Name: ESM_Firmware_FMWT1_LN32_1.01_A01.BIN File: FOLDER00419861M/1/ESM_Firmware_FMWT1_LN32_1.01_A01.BIN
Name: ESM_Firmware_KG43R_LN32_1.92_A00.BIN File: FOLDER00808202M/1/ESM_Firmware_KG43R_LN32_1.92_A00.BIN
Name: ESM_Firmware_V8Y6N_LN32_1.10_A00.BIN File: FOLDER00523057M/1/ESM_Firmware_V8Y6N_LN32_1.10_A00.BIN
...etc...etc...etc