Update application properties
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
-
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" } } }
-
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" } ] } }
Learn more
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.
|
Request Body
Name | Type | Description |
---|---|---|
_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 |
MongoDB using SAN. |
|
name |
string |
Application Name. This field is user supplied when the application is created. |
nas |
A generic NAS application. |
|
nvme |
An NVME application. |
|
oracle_on_nfs |
Oracle using NFS. |
|
oracle_on_san |
Oracle using SAN. |
|
oracle_rac_on_nfs |
Oracle RAC using NFS. |
|
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 |
||
s3_bucket |
A generic S3 bucket application. |
|
san |
A generic SAN application. |
|
smart_container |
boolean |
Identifies if this is a smart container or not. |
sql_on_san |
Microsoft SQL using SAN. |
|
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 |
||
svm |
||
template |
||
uuid |
string |
Application UUID. This field is generated when the application is created. |
vdi_on_nas |
A VDI application using NAS. |
|
vdi_on_san |
A VDI application using SAN. |
|
vsi_on_nas |
A VSI application using NAS. |
|
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 |
Example response
{
"job": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"uuid": "string"
}
}
Response
Status: 202, Accepted
Error
Status: Default, Error
Name | Type | Description |
---|---|---|
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 |
_links
Name | Type | Description |
---|---|---|
self |
||
snapshots |
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 |
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 |