Skip to main content
ONTAP REST API reference

Update the cluster software version

Contributors

PATCH /cluster/software

Introduced In: 9.6

Updates the cluster software version. Important note:

  • Setting 'version' triggers the package installation.

  • To validate the package for installation but not perform the installation, use the validate_only field on the request.

Required properties

  • version - Software version to be installed on the cluster.

  • validate_only - Required to validate a software package before an upgrade.

  • skip_warnings - Used to skip validation warnings when starting a software upgrade.

  • action - Used to pause, resume, or cancel an ongoing software upgrade.

  • stabilize_minutes - Specifies a custom value between 1 to 60 minutes that allows each node a specified amount of time to stabilize after a reboot; the default is 8 minutes.

  • estimate_only - Estimates the time duration; does not perform any update.

  • nodes_to_update - Specifies a subset of the cluster's nodes for update.

  • show_validation_details - If the value is set to true, then all validation details will be shown in the output.

  • skip_nodes_at_target_version - If the value is set to true, then nodes already at the target version will not be upgraded. Defaults to true in non-MetroCluster configurations. Setting this option to false will force all the selected nodes of the cluster to undergo upgrade.

  • cluster image validate

  • cluster image update

  • cluster image pause-update

  • cluster image resume-update

  • cluster image cancel-update

Parameters

Name Type In Required Description

skip_warnings

boolean

query

False

Ignore warnings and proceed with the install.

action

string

query

False

Requests an upgrade to pause, resume, or cancel. Note that not all upgrades support these actions. An upgrade can only be resumed if it is in the paused state. When a request to cancel an upgrade is successful, the upgrade state changes to either success or failure.

  • enum: ["pause", "resume", "cancel"]

stabilize_minutes

integer

query

False

Sets a custom value between 1 to 60 minutes for the upgrade, allowing each node a specified amount of time to stabilize after a reboot.

  • Introduced in: 9.8

estimate_only

boolean

query

False

Generates an estimate of the time required for the overall update operation for the specified package. No update is performed when this option is used. The default is false.

  • Introduced in: 9.9

force_rolling

boolean

query

False

Forces a rolling upgrade on the cluster. This option is not applicable for a single-node cluster and for a two-node MetroCluster. The default is false.

  • Introduced in: 9.9

nodes_to_update

string

query

False

A comma separated list of node names to be updated. The nodes must be a part of a HA Pair. The default is all nodes. If the nodes_to_update parameter is empty then upgrade will error out and will not proceed.

  • Introduced in: 9.9

show_validation_details

boolean

query

False

If the value is set to true, then all validation details will be shown in the output.

  • Introduced in: 9.11

skip_nodes_at_target_version

boolean

query

False

Defaults to true in non-MetroCluster configurations. When set to true, nodes already at the target version will not be upgraded. Setting this field to false will force nodes at the target version to undergo upgrade including migrating LIFs, performing takeover/giveback, and rebooting. It's invalid to set this option to true when the action field is set. It's an invalid option until effective cluster version is 9_16_0.

  • Introduced in: 9.16

pause_after

string

query

False

The pause after specified tasks option. When ANDU is paused user interaction is required to resume the update. The default is none.

  • Introduced in: 9.9

  • enum: ["none", "takeover_giveback", "all"]

return_timeout

integer

query

False

The number of seconds to allow the call to execute before returning. When doing a POST, PATCH, or DELETE operation on a single record, the default is 0 seconds. This means that if an asynchronous operation is started, the server immediately returns HTTP code 202 (Accepted) along with a link to the job. If a non-zero value is specified for POST, PATCH, or DELETE operations, ONTAP waits that length of time to see if the job completes so it can return something other than 202.

  • Default value: 1

  • Max value: 120

  • Min value: 0

validate_only

boolean

query

False

Validate the operation and its parameters, without actually performing the operation.

Request Body

Name Type Description

_links

_links

action

string

User triggered action to apply to the install operation

elapsed_duration

integer

Elapsed time during the upgrade or validation operation

estimated_duration

integer

Overall estimated time for completion of the upgrade or validation operation.

metrocluster

metrocluster

nodes

array[software_node_reference]

List of nodes, active versions, and firmware update progressions.

pending_version

string

Version being installed on the system.

  • example: ONTAP_X_1

  • readOnly: 1

  • Introduced in: 9.6

  • x-nullable: true

post_update_checks

array[software_validation_reference]

List of failed post-update checks' warnings, errors, and advice.

state

string

Operational state of the upgrade

status_details

array[software_status_details_reference]

Display status details.

update_details

array[software_update_details_reference]

Display update progress details.

validation_results

array[software_validation_reference]

List of validation warnings, errors, and advice.

version

string

Version of ONTAP installed and currently active on the system. During PATCH, using the 'validate_only' parameter on the request executes pre-checks, but does not perform the full installation.

  • example: ONTAP_X

  • Introduced in: 9.6

  • x-nullable: true

Example request
{
  "_links": {
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "action": "pause",
  "elapsed_duration": 2140,
  "estimated_duration": 5220,
  "metrocluster": {
    "clusters": [
      {
        "elapsed_duration": 2140,
        "estimated_duration": 3480,
        "name": "cluster_A",
        "state": "in_progress"
      }
    ],
    "progress_details": {
      "message": "Switchover in progress"
    },
    "progress_summary": {
      "message": "MetroCluster updated successfully."
    }
  },
  "nodes": [
    {
      "firmware": {
        "cluster_fw_progress": [
          {
            "job": {
              "_links": {
                "self": {
                  "href": "/api/resourcelink"
                }
              },
              "uuid": "string"
            },
            "update_state": [
              {
                "attempts": 3,
                "code": 2228325,
                "message": "Cannot open local staging ZIP file disk_firmware.zip",
                "status": "string",
                "worker_node": {
                  "_links": {
                    "self": {
                      "href": "/api/resourcelink"
                    }
                  },
                  "name": "node1",
                  "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
                }
              }
            ],
            "update_type": "string",
            "zip_file_name": "disk_firmware.zip"
          }
        ],
        "disk": {
          "average_duration_per_disk": 120,
          "num_waiting_download": 0,
          "total_completion_estimate": 0,
          "update_status": "running"
        },
        "dqp": {
          "file_name": "qual_devices_v3",
          "record_count": {
            "alias": 200,
            "device": 29,
            "drive": 680,
            "system": 3
          },
          "revision": "20200117",
          "version": "3.18"
        },
        "shelf": {
          "in_progress_count": 2,
          "update_status": "running"
        },
        "sp_bmc": {
          "autoupdate": "",
          "end_time": "2020-05-17 16:00:00 -0400",
          "fw_type": "SP",
          "image": "primary",
          "is_current": 1,
          "last_update_state": "passed",
          "percent_done": 100,
          "running_version": "1.2.3.4",
          "start_time": "2020-05-17 16:00:00 -0400",
          "state": "installed"
        }
      },
      "name": "node1",
      "software_images": [
        {
          "package": "image.tgz"
        }
      ],
      "version": "ONTAP_X"
    }
  ],
  "pending_version": "ONTAP_X_1",
  "post_update_checks": [
    {
      "action": {
        "message": "Use NFS hard mounts, if possible."
      },
      "issue": {
        "message": "Cluster HA is not configured in the cluster."
      },
      "status": "warning",
      "update_check": "nfs_mounts"
    }
  ],
  "state": "completed",
  "status_details": [
    {
      "action": {
        "message": "string"
      },
      "end_time": "2019-02-02 14:00:00 -0500",
      "issue": {
        "code": 10551399,
        "message": "Image update complete"
      },
      "name": "initialize",
      "node": {
        "name": "node1"
      },
      "start_time": "2019-02-02 14:00:00 -0500",
      "state": "failed"
    }
  ],
  "update_details": [
    {
      "elapsed_duration": 2100,
      "estimated_duration": 4620,
      "node": {
        "name": "node1"
      },
      "phase": "Post-update checks",
      "state": "failed"
    }
  ],
  "validation_results": [
    {
      "action": {
        "message": "Use NFS hard mounts, if possible."
      },
      "issue": {
        "message": "Cluster HA is not configured in the cluster."
      },
      "status": "warning",
      "update_check": "nfs_mounts"
    }
  ],
  "version": "ONTAP_X"
}
JSON

Response

Status: 200, Ok
Name Type Description

job

job_link

Example response
{
  "job": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "uuid": "string"
  }
}
JSON

Response

Status: 202, Accepted

Error

Status: Default

ONTAP Error Response Codes

Error Code Description

2424933

An internal error occurred while checking MetroCluster information.

2424998

An internal error occurred while checking MetroCluster configuration.

2425737

An internal error occurred while checking MetroCluster information.

10551297

Failed to find an update in progress.

10551298

Internal error while attempting to pause the upgrade operation.

10551300

There is no update in progress to be paused.

10551303

The operation is invalid while the update is not in the paused state.

10551304

An internal error occurred while canceling the current update operation.

10551306

A cancel operation is not possible at this time.

10551315

Failed to find the package in the package repository.

10551319

An internal error occurred while preparing for the update.

10551320

Failed to create task on master update manager node.

10551325

The required package version is not present in RDB.

10551353

Internal error occurred while running the ANDU pre-validation checks.

10551354

Invalid operation while the package is being deleted.

10551357

The operation is invalid while a previous update is still in progress.

10551368

The list of nodes should contain HA pairs only.

10551391

An internal error occurred while performing the upgrade operation.

10551395

ANDU validation check resulted in warnings.

10551396

ANDU validation checks failed.

10551434

The options are invalid for a resume operation.

10551524

The upgrade operation is in the running state, pause the operation before attempting to cancel.

10551558

Cluster configuration is not supported.

10551564

Batch mode upgrade is not supported for MetroCluster configurations.

10551565

Failed to contact the MetroCluster partner cluster, check the MetroCluster configuration then try again.

10551566

Validation is not complete on the partner MetroCluster cluster.

10551567

The required package is not available on the partner MetroCluster cluster.

10551572

Internal error while checking the update status from RDB. Ensure that cluster is healthy and retry the operation.

10551573

The running update is not in paused state on the MetroCluster partner cluster, so it cannot be resumed.

10551574

The running update is not in the paused state on the MetroCluster partner cluster, so it cannot be canceled.

10551592

The nodes selection option is not supported for MetroCluster configurations.

10551599

Double-hop package is missing.

10551602

A double-hop upgrade is not supported.

10551606

An option selected requires a higher effective cluster version.

10551643

Operation invalid while controller replacement is in progress.

10551656

Invalid operation while ANDU validation checks are in progress.

10551718

Invalid operation before running validation checks.

10551719

ANDU validation results are too old.

10551720

ANDU validation checks have failed with errors on both clusters in a MetroCluster config.

10551724

ANDU validation checks were run on a different version from the requested operation.

10551837

An internal error occurred while generating the AutoSupport prior to starting ANDU.

10551840

An internal error occurred while generating the AutoSupport prior to starting ANDU.

10551841

An internal error occurred while generating the AutoSupport prior to starting ANDU.

10551854

All specified nodes are already running the specified package version.

10551859

Failed to access the package repository and its backup copy.

10551897

All nodes are already running the requested version.

10551898

Failed to get nodes-to-update list.

10551899

skip_nodes_at_target_version cannot be specified in a validate_only, pause, resume, or cancel operations.

10551900

skip_nodes_at_target_version cannot be set to true in MetroCluster configurations.

10551901

skip_nodes_at_target_version conflicts with another specified field.

10551902

Failed to determine if the cluster is configured for MetroCluster.

10551908

skip_nodes_at_target_version is not a valid option until effective cluster version is 9_16_0.

10551910

The operation is invalid while in the current upgrade state.

13303864

SnapMirror operation is in progress, retry later.

Also see the table of common errors in the Response body overview section of this documentation.

Name Type Description

error

returned_error

Example error
{
  "error": {
    "arguments": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "code": "4",
    "message": "entry doesn't exist",
    "target": "uuid"
  }
}
JSON

Definitions

See Definitions

href

Name Type Description

href

string

Name Type Description

self

href

software_mcc_reference

Name Type Description

elapsed_duration

integer

Elapsed duration of update time (in seconds) of MetroCluster.

estimated_duration

integer

Estimated duration of update time (in seconds) of MetroCluster.

name

string

Name of the site in MetroCluster.

state

Upgrade state of MetroCluster.

progress_details

Name Type Description

message

string

MetroCluster update progress details.

progress_summary

Name Type Description

message

string

MetroCluster update progress summary.

metrocluster

Name Type Description

clusters

array[software_mcc_reference]

List of MetroCluster sites, statuses, and active ONTAP versions.

  • readOnly: 1

  • Introduced in: 9.6

progress_details

progress_details

progress_summary

progress_summary

Name Type Description

_links

_links

uuid

string

The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation.

worker_node

Name Type Description

_links

_links

name

string

uuid

string

firmware_update_progress_state

Name Type Description

attempts

integer

code

integer

Code corresponding to the status message.

message

string

Error message returned when a cluster firmware update job fails.

status

string

worker_node

worker_node

firmware_update_progress

Name Type Description

job

job_link

update_state

array[firmware_update_progress_state]

update_type

string

Specifies the type of update.

zip_file_name

string

firmware_disk

Name Type Description

average_duration_per_disk

integer

Average firmware update duration per disk (in seconds).

num_waiting_download

integer

The number of disks waiting to download the firmware update.

total_completion_estimate

integer

Estimated firmware update duration to completion (in minutes).

update_status

Status of the background disk firmware update.

firmware_dqp_record_count

Name Type Description

alias

integer

Alias record count

device

integer

Device record count

drive

integer

Drive record count

system

integer

System record count

firmware_dqp

Name Type Description

file_name

string

Firmware file name

record_count

firmware_dqp_record_count

revision

string

Firmware revision

version

string

Firmware version

firmware_shelf

Name Type Description

in_progress_count

integer

update_status

Status of the shelf firmware update.

firmware_sp_bmc

Name Type Description

autoupdate

boolean

end_time

string

fw_type

string

image

string

in_progress

boolean

is_current

boolean

last_update_state

string

percent_done

integer

running_version

string

start_time

string

state

string

firmware

Name Type Description

cluster_fw_progress

array[firmware_update_progress]

disk

firmware_disk

dqp

firmware_dqp

shelf

firmware_shelf

sp_bmc

firmware_sp_bmc

software_images

Name Type Description

package

string

Package file name.

software_node_reference

Name Type Description

firmware

firmware

name

string

Name of the node.

software_images

array[software_images]

List of software image information.

version

string

ONTAP version of the node.

  • example: ONTAP_X

  • readOnly: 1

  • Introduced in: 9.6

  • x-nullable: true

action

Name Type Description

message

string

Specifies the corrective action to take to resolve an error.

issue

Name Type Description

message

string

Details of the error or warning encountered by the update checks.

software_validation_reference

Name Type Description

action

action

issue

issue

status

string

Status of the update check.

update_check

string

Name of the update check.

action

Name Type Description

code

integer

Error code corresponding the status error

message

string

Corrective action to be taken to resolve the status error.

issue

Name Type Description

code

integer

Error code corresponding to update status

message

string

Update status details

node

Name Type Description

name

string

Name of the node to be retrieved for status details.

software_status_details_reference

Name Type Description

action

action

end_time

string

End time for each status phase.

issue

issue

name

string

Name of the phase to be retrieved for status details.

node

node

start_time

string

Start time for each status phase.

state

string

Status of the phase

node

Name Type Description

name

string

Name of the node to be retrieved for update details.

software_update_details_reference

Name Type Description

elapsed_duration

integer

Elapsed duration for each update phase

estimated_duration

integer

Estimated duration for each update phase

node

node

phase

string

Phase details

state

string

State of the update phase

software_reference

Name Type Description

_links

_links

action

string

User triggered action to apply to the install operation

elapsed_duration

integer

Elapsed time during the upgrade or validation operation

estimated_duration

integer

Overall estimated time for completion of the upgrade or validation operation.

metrocluster

metrocluster

nodes

array[software_node_reference]

List of nodes, active versions, and firmware update progressions.

pending_version

string

Version being installed on the system.

  • example: ONTAP_X_1

  • readOnly: 1

  • Introduced in: 9.6

  • x-nullable: true

post_update_checks

array[software_validation_reference]

List of failed post-update checks' warnings, errors, and advice.

state

string

Operational state of the upgrade

status_details

array[software_status_details_reference]

Display status details.

update_details

array[software_update_details_reference]

Display update progress details.

validation_results

array[software_validation_reference]

List of validation warnings, errors, and advice.

version

string

Version of ONTAP installed and currently active on the system. During PATCH, using the 'validate_only' parameter on the request executes pre-checks, but does not perform the full installation.

  • example: ONTAP_X

  • Introduced in: 9.6

  • x-nullable: true

error_arguments

Name Type Description

code

string

Argument code

message

string

Message argument

returned_error

Name Type Description

arguments

array[error_arguments]

Message arguments

code

string

Error code

message

string

Error message

target

string

The target parameter that caused the error.