Smart Update Manager CLI
smartupdate executable installed with the SUM service, supports scripting and automation of
firmware update operations while maintaining backward compatibility with key CLI
commands.smartupdate CLI must
run on the same host as the SUM service. Running
the CLI from a remote host is not supported.Command syntax
smartupdate [--silent] --target <iLO-IP> --user <username> --passwd <password>
--use_location <path-to-SPP-ISO>
[options]
Command options
| Flag | Description |
|---|---|
--target <ip> |
Repeat the option for each target server. OR Specify this option multiple times to update multiple servers. |
--user <user>, --username
<user> |
iLO username |
--passwd <pwd>, --password
<pwd> |
iLO password |
-
For localhost updates, set the
--targetvalue tolocalhost. -
If the security state of the local iLO is Production (Standard), iLO credentials are not required.
-
If the security state of the local iLO is High Security, FIPS, or CNSA mode, provide iLO credentials.
| Flag | Description |
|---|---|
|
Path to the SPP ISO or ZIP file on the SUM host. If the ISO or ZIP has already been uploaded, SUM reuses the existing bundle automatically |
| Flag | Description |
|---|---|
|
Downgrade components with versions that are higher than the baseline version. |
--install_sw_drivers |
Include software and driver components in addition to firmware during the update |
--power_off |
Powers off the server after the firmware update completes (Default:
False; server remains powered on). --reboot
option must be specified for power off |
--reboot, -r |
Automatically reboot the server if required to complete the
update (Default: False; reboot is left to the user) |
--dryrun |
Analyze firmware compliance without applying any changes. Prints the analysis result and exits |
--continue_on_error |
When updating multiple targets, continue if at least one target succeeds. Exit code reflects the successful targets |
--on_failed_dependency <val> |
Attempt the firmware updates even with dependency failures. Only force val is supported |
| Flag | Description |
|---|---|
--report |
Generate a deploy preview report (JSON/XML); exits without deploying updates |
--installed_report |
Generate a report (JSON/XML) of components installed this session |
--reportdir <path> |
Directory to save report/installed_report files |
| Flag | Description |
|---|---|
|
Enable verbose logging |
|
Silent mode (Mandatory parameter) |
| Flag | Description |
|---|---|
--inputfile <path> |
Path to a SUM-format input file containing flags and target definitions (see Input file format) |
--deleteinputfile |
Delete the input file after processing |
Exit codes
smartupdate
CLI.| Code | Linux exit status | Windows exit status | Description |
|---|---|---|---|
| 0 | 0 | 0 | Success - all firmware updates applied; no reboot required |
| 1 | 1 | 1 | Success - updates applied; a reboot is required to activate one or more components |
| 3 | 3 | 3 | Not required - all firmware components are already at the target version; no changes made |
| -1 | 255 | -1 | General failure - authentication error, server unreachable, or other fatal condition |
| -2 | 254 | -2 | Bad parameter - a required flag is missing or invalid |
| -3 | 253 | -3 | Component failed - one or more firmware component installations failed on the target |
| -4 | 252 | -4 | Command failed - job submission, polling timeout, or job canceled |
Command examples
smartupdate -s \
--target 192.168.1.100 \
--user Administrator --passwd Yourpassword \
--use_location /var/baselines/SPP2026.isosmartupdate -s \
--target localhost --use_location
/var/baselines/SPP2026.isosmartupdate -s \
--target 192.168.1.100 \
--user Administrator --passwd Yourpassword \
--use_location /var/baselines/SPP2026.iso \
--dryrunsmartupdate -s \
--target 192.168.1.100 --user Administrator --passwd Yourpassword \
--target 192.168.1.101 --user Administrator --passwd Yourpassword1 \
--use_location /var/baselines/SPP2026.isoAll targets are processed simultaneously. When --continue_on_error
is specified, a failure on one target does not stop the others.
smartupdate -s \
--target 192.168.1.100 \
--user Administrator --passwd Yourpassword \
--use_location /var/baselines/SPP2026.iso \
--downgradesmartupdate -s \
--target 192.168.1.100 \
--user admin --passwd Yourpassword \
--use_location /mnt/spp.iso \
--reboot --power_offsmartupdate -s \
--target 192.168.1.100 \
--user Administrator --passwd Yourpassword \
--use_location /var/baselines/SPP2026.iso \
--verbosesmartupdate --silent \
--target 192.168.1.100 \
--user admin --passwd Yourpassword \
--use_location /mnt/spp.iso \
--report --reportdir /etc/user/reportssmartupdate --silent \
--target 192.168.1.100 \
--user admin --passwd Yourpassword \
--use_location /mnt/spp.iso \
--installed_report \
--reportdir /etc/user/reportssmartupdate --silent \
--target 192.168.1.100 \
--user admin --passwd Yourpassword \
--use_location /mnt/spp.iso \
--on_failed_dependency forceInput file format
SILENT = YES
USE_LOCATION = /var/baselines/SPP2026.iso
CONTINUE_ON_ERROR=YES
[TARGETS]
HOST = 192.168.1.100
UID = Administrator
PWD = Admin123
[END]
[TARGETS]
HOST = 192.168.1.101
HOST = 192.168.1.102
UID = Administrator
PWD = Admin456
[END]- Global lines (
KEY = VALUE) set flags for the whole run. CLI flags take precedence over values in the file. - Each
[TARGETS]...[END]block defines one set of credentials. - Multiple
HOST =lines inside a block share the same username and password. - Supported global keys:
REBOOT,REPORT,INSTALLED_REPORT,REPORTDIR, andON_FAILED_DEPENDENCY.
smartupdate --inputfile /var/scripts/update.txtsmartupdate --inputfile /var/scripts/update.txt --deleteinputfileSUM CLI
| Functionality | SUM 12.x CLI command | SUM 20.x CLI command | SUM 20.x Rest API | |
|---|---|---|---|---|
| API Path | High-Level Flow | |||
| Firmware update of Single Server |
|
|
|
Authenticate to SUM and get access token Check whether the target server is already registered Discover target server if it is not already registered Register/onboard the target server using iLO credentials Check whether the firmware baseline already exists Import/upload firmware baseline from --use_location Run firmware analysis and dependency check Start firmware update job Monitor discovery, onboard, baseline import, analysis, and update jobs Read final firmware analysis/update result |
|
Firmware update of Single Server with ability to specify Reboot option |
|
|
Same API path as Firmware update of Single Server. The
|
|
|
Firmware update of Single Server with dry run |
|
|
|
Authenticate to SUM and get access token Check whether the target server is already registered Discover target server if it is not already registered Register/onboard the target server using iLO credentials Check whether the firmware baseline already exists Import/upload firmware baseline from --use_location Run dry-run firmware analysis. No firmware update is applied Monitor discovery, onboard, baseline import and dry-run analysis jobs Read dry-run analysis result |
|
Firmware update of multiple Server's against a single baseline |
|
|
|
Authenticate to SUM and get access token Check whether the single firmware baseline already exists Import/upload the single baseline from --use_location, if not already present Monitor baseline import job Check whether each target server is already registered Discover each target server if not already registered Register/onboard each target server using its credentials Monitor discovery and onboard jobs for each server Run firmware analysis/dependency check for each server against the same baseline Start firmware update job for each server using the same bundle_id Monitor each firmware update job Read final firmware update result for each server |
|
Generate a deploy preview report |
|
|
|
Authenticate to SUM and get access token Check whether the target server is already registered Discover target server if it is not already registered Register/onboard the target server using iLO credentials Check whether the firmware baseline already exists Import/upload firmware baseline from --use_location Generate deploy preview analysis. No firmware update is applied Monitor discovery, onboard, baseline import, and deploy-preview analysis jobs Read deploy preview data from lastAnalysisOperation |
|
Generate installed updates report |
|
|
|
Authenticate to CFM and get access token Check whether the target server is already registered Discover target server if it is not already registered Register/onboard the target server using iLO credentials Check whether the firmware baseline already exists Import/upload firmware baseline from --use_location Run firmware analysis and dependency check before update Start firmware update job Monitor discovery, onboard, baseline import, analysis, and firmware update jobs Read installed update result from lastFirmwareUpdate |
|
Firmware update of server with Power off the server after an update |
Not Applicable |
|
Same APIs as Firmware update of Single Server. The
only difference is in the firmware update job payload sent
to |
|
|
Firmware update of localhost server |
|
|
|
Authenticate to SUM and get access token Check whether localhost is already registered Register/onboard localhost if credentials are required Check whether the firmware baseline already exists Import/upload firmware baseline from --use_location Run firmware analysis and dependency check for localhost Start firmware update job for localhost Monitor onboarding, baseline import, analysis, and firmware update jobs Read final firmware update result for localhost |
Exit codes
| Exit Code SUM CLI 12.x | Exit code SUM CLI 20.x | Linux ($?) | Windows (%ERRORLEVEL) | Meaning | Exit Code (const) 20.x | Description 20.x |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | SUCCESS — all updates applied, no reboot needed | ExitSuccess | SUCCESS_NO_REBOOT |
| 1 | 1 | 1 | 1 | SUCCESS — updates applied, reboot required to activate | ExitReboot | SUCCESS_REBOOT |
| 3 | 3 | 3 | 3 | SUCCESS — firmware already current, no updates needed | ExitNotRequired | SUCCESS_NOT_REQUIRED |
| -1 | -1 | 255 | -1 | FAILURE — general error (auth, server unreachable, etc.) | ExitGeneral | FAILURE_GENERAL |
| -2 | -2 | 254 | -2 | FAILURE — bad or missing CLI parameter / input file option | ExitBadParam | FAILURE_BAD_PARM |
| -3 | -3 | 253 | -3 | FAILURE — one or more component installations failed | ExitComponentFailed | FAILURE_COMPONENT_FAILED |
| -4 | -4 | 252 | -4 | FAILURE — update command failed (job submission, polling timeout, etc.) | ExitCommandFailed | FAILURE_COMMAND_FAILED |