Skip to main content

Update application properties

Contributors

PATCH /application/applications/{uuid}

Introduced In: 9.6

Updates the properties of an application.

Overview

Similar to creating an application, modification is done using the template properties of an application. The storage_service, size, and igroup_name of an application may be modified.

storage_service

Storage service modifications are processed in place, meaning that the storage can not be moved to a location with more performance headroom to accommodate the request. If the current backing storage of the application is in a location that can support increased performance, the QoS policies associated with the application will be modified to allow it. If not, an error will be returned. A storage service modification to a lower tier of performance is always allowed, but the reverse modification may not be supported if the cluster is over provisioned and the cluster is unlikely to be able to fulfil the original storage service.

size

Size modifications are processed in a variety of ways depending on the type of application. For NAS applications, volumes are grown or new volumes are added. For SAN applications, LUNs are grown, new LUNs are added to existing volumes, or new LUNs are added to new volumes. If new storage elements are created, they can be found using the GET /application/applications/{application.uuid}/components interface. The creation time of each storage object is included, and the newly created objects will use the same naming scheme as the previous objects. Resize follows the best practices associated with the type of application being expanded. Reducing the size of an application is not supported.

igroup_name

Modification of the igroup name allows an entire application to be mapped from one initiator group to another. Data access will be interrupted as the LUNs are unmapped from the original igroup and remapped to the new one.

Application state

During a modification, the state property of the application updates to indicate modifying. In modifying state, statistics are not available and Snapshot copy operations are not allowed. If the modification fails, it is possible for the application to be left in an inconsistent state, with the underlying ONTAP storage elements not matching across a component. When this occurs, the application is left in the modifying state until the command is either retried and succeeds or a call to restore the original state is successful.

Examples

  1. Change the storage service of the database of the Oracle application to extreme and resize the redo logs to 100GB.

      {
     "oracle_on_nfs": {
       "db": {
         "storage_service": {
           "name": "extreme"
         }
       },
       "redo_log": {
         "size": "100GB"
       }
     }
      }
  2. Change the storage service, size, and igroup of a generic application by component name.

      {
     "san": {
       "application_components": [
         {
           "name": "component1",
           "storage_service": {
             "name": "value"
           }
         },
         {
           "name": "component2",
           "size": "200GB"
         },
         {
           "name": "component3",
           "igroup_name": "igroup5"
         }
       ]
     }
      }

Parameters

Name Type In Required Description

uuid

string

path

True

Application UUID

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

Request Body

Name Type Description

_links

_links

creation_timestamp

string

The time when the application was created.

delete_data

boolean

Should application storage elements be deleted? An application is considered to use storage elements from a shared storage pool. Possible values are 'true' and 'false'. If the value is 'true', the application will be deleted in its entirety. If the value is 'false', the storage elements will be disassociated from the application and preserved. The application will then be deleted.

generation

integer

The generation number of the application. This indicates which features are supported on the application. For example, generation 1 applications do not support Snapshot copies. Support for Snapshot copies was added at generation 2. Any future generation numbers and their feature set will be documented.

mongo_db_on_san

mongo_db_on_san

MongoDB using SAN.

name

string

Application Name. This field is user supplied when the application is created.

nas

nas

A generic NAS application.

nvme

zapp_nvme

An NVME application.

oracle_on_nfs

oracle_on_nfs

Oracle using NFS.

oracle_on_san

oracle_on_san

Oracle using SAN.

oracle_rac_on_nfs

oracle_rac_on_nfs

Oracle RAC using NFS.

oracle_rac_on_san

oracle_rac_on_san

Oracle RAC using SAN.

protection_granularity

string

Protection granularity determines the scope of Snapshot copy operations for the application. Possible values are "application" and "component". If the value is "application", Snapshot copy operations are performed on the entire application. If the value is "component", Snapshot copy operations are performed separately on the application components.

rpo

rpo

s3_bucket

zapp_s3_bucket

A generic S3 bucket application.

san

san

A generic SAN application.

smart_container

boolean

Identifies if this is a smart container or not.

sql_on_san

sql_on_san

Microsoft SQL using SAN.

sql_on_smb

sql_on_smb

Microsoft SQL using SMB.

state

string

The state of the application. For full functionality, applications must be in the online state. Other states indicate that the application is in a transient state and not all operations are supported.

statistics

statistics

svm

svm

template

template

uuid

string

Application UUID. This field is generated when the application is created.

vdi_on_nas

vdi_on_nas

A VDI application using NAS.

vdi_on_san

vdi_on_san

A VDI application using SAN.

vsi_on_nas

vsi_on_nas

A VSI application using NAS.

vsi_on_san

vsi_on_san

A VSI application using SAN.

Example request
{
  "_links": {
    "self": {
      "href": "/api/resourcelink"
    },
    "snapshots": {
      "href": "/api/resourcelink"
    }
  },
  "creation_timestamp": "string",
  "generation": 0,
  "name": "string",
  "nas": {
    "application_components": [
      {
      }
    ],
    "cifs_access": [
      {
        "access": "string",
        "user_or_group": "string"
      }
    ],
    "cifs_share_name": "string",
    "exclude_aggregates": [
      {
        "name": "string",
        "uuid": "string"
      }
    ],
    "nfs_access": [
      {
        "access": "string",
        "host": "string"
      }
    ],
    "protection_type": {
      "local_policy": "string",
      "local_rpo": "string",
      "remote_rpo": "string"
    }
  },
  "nvme": {
    "components": [
      {
        "name": "string",
        "os_type": "string",
        "performance": {
          "storage_service": {
            "name": "string"
          }
        },
        "qos": {
          "policy": {
            "name": "string",
            "uuid": "string"
          }
        },
        "subsystem": {
          "hosts": [
            {
              "dh_hmac_chap": {
                "controller_secret_key": "string",
                "group_size": "string",
                "hash_function": "string",
                "host_secret_key": "string"
              },
              "nqn": "string",
              "priority": "string"
            }
          ],
          "name": "string",
          "os_type": "string",
          "uuid": "string"
        },
        "tiering": {
          "control": "string",
          "object_stores": [
            {
              "name": "string"
            }
          ],
          "policy": "string"
        }
      }
    ],
    "os_type": "string",
    "rpo": {
      "local": {
        "name": "string",
        "policy": "string"
      },
      "remote": {
        "name": "string"
      }
    }
  },
  "protection_granularity": "string",
  "rpo": {
    "components": [
      {
        "name": "string",
        "rpo": {
          "local": {
            "description": "string",
            "name": "string"
          },
          "remote": {
            "description": "string",
            "name": "string"
          }
        },
        "uuid": "string"
      }
    ],
    "local": {
      "description": "string",
      "name": "string"
    },
    "remote": {
      "description": "string",
      "name": "string"
    }
  },
  "s3_bucket": {
    "application_components": [
      {
        "access_policies": [
          {
            "actions": [
              "string"
            ],
            "conditions": [
              {
                "delimiters": [
                  "string"
                ],
                "max_keys": [
                  "integer"
                ],
                "operator": "string",
                "prefixes": [
                  "string"
                ],
                "source_ips": [
                  "string"
                ],
                "usernames": [
                  "string"
                ]
              }
            ],
            "effect": "string",
            "principals": [
              "string"
            ],
            "resources": [
              "string"
            ],
            "sid": "string"
          }
        ],
        "bucket_endpoint_type": "string",
        "comment": "string",
        "default_retention_period": "string",
        "exclude_aggregates": [
          {
            "name": "string",
            "uuid": "string"
          }
        ],
        "name": "string",
        "nas_path": "string",
        "qos": {
          "policy": {
            "name": "string",
            "uuid": "string"
          }
        },
        "retention_mode": "string",
        "storage_service": {
          "name": "string"
        },
        "uuid": "string",
        "versioning_state": "string"
      }
    ],
    "protection_type": {
      "remote_rpo": "string"
    }
  },
  "san": {
    "application_components": [
      {
        "igroup_name": "string",
        "name": "string",
        "os_type": "string",
        "qos": {
          "policy": {
            "name": "string",
            "uuid": "string"
          }
        },
        "storage_service": {
          "name": "string"
        },
        "tiering": {
          "control": "string",
          "object_stores": [
            {
              "name": "string"
            }
          ],
          "policy": "string"
        }
      }
    ],
    "exclude_aggregates": [
      {
        "name": "string",
        "uuid": "string"
      }
    ],
    "new_igroups": [
      {
        "comment": "string",
        "igroups": [
          {
            "name": "string",
            "uuid": "string"
          }
        ],
        "initiator_objects": [
          {
            "comment": "string",
            "name": "string"
          }
        ],
        "initiators": [
          "string"
        ],
        "name": "string",
        "os_type": "string",
        "protocol": "string"
      }
    ],
    "os_type": "string",
    "protection_type": {
      "local_policy": "string",
      "local_rpo": "string",
      "remote_rpo": "string"
    }
  },
  "state": "string",
  "statistics": {
    "components": [
      {
        "iops": {
          "per_tb": 0,
          "total": 0
        },
        "latency": {
          "average": 0,
          "raw": 0
        },
        "name": "string",
        "snapshot": {
          "reserve": 0,
          "used": 0
        },
        "space": {
          "available": 0,
          "logical_used": 0,
          "provisioned": 0,
          "reserved_unused": 0,
          "savings": 0,
          "used": 0,
          "used_excluding_reserves": 0,
          "used_percent": 0
        },
        "storage_service": {
          "name": "string",
          "uuid": "string"
        },
        "uuid": "string"
      }
    ],
    "iops": {
      "per_tb": 0,
      "total": 0
    },
    "latency": {
      "average": 0,
      "raw": 0
    },
    "snapshot": {
      "reserve": 0,
      "used": 0
    },
    "space": {
      "available": 0,
      "logical_used": 0,
      "provisioned": 0,
      "reserved_unused": 0,
      "savings": 0,
      "used": 0,
      "used_excluding_reserves": 0,
      "used_percent": 0
    }
  },
  "svm": {
    "name": "string",
    "uuid": "string"
  },
  "template": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "name": "string",
    "protocol": "string",
    "version": 0
  },
  "uuid": "string"
}

Response

Status: 200, Ok
Name Type Description

job

job_link

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

Response

Status: 202, Accepted

Error

Status: Default, Error
Name Type Description

error

returned_error

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

Definitions

See Definitions

href

Name Type Description

href

string

Name Type Description

self

href

snapshots

href

storage_service

Name Type Description

name

string

The storage service of the database.

dataset

Name Type Description

element_count

integer

The number of storage elements (LUNs for SAN) of the database to maintain. Must be an even number between 2 and 16. Odd numbers will be rounded up to the next even number within range.

replication_factor

integer

The number of data bearing members of the replicaset, including 1 primary and at least 1 secondary.

size

integer

The size of the database. Usage: {<integer>[KB|MB|GB|TB|PB]}

storage_service

storage_service

igroups

Name Type Description

name

string

The name of an igroup to nest within a parent igroup. Mutually exclusive with initiators and initiator_objects.

uuid

string

The UUID of an igroup to nest within a parent igroup Usage: <UUID>

initiator_objects

Name Type Description

comment

string

A comment available for use by the administrator.

name

string

The WWPN, IQN, or Alias of the initiator. Mutually exclusive with nested igroups and the initiators array.

mongo_db_on_san_new_igroups

The list of initiator groups to create.

Name Type Description

comment