APIs in Category: volume | API version 3.7.1

volume-list-info-iter-end volume-list-info-iter-next volume-list-info-iter-start volume-modify | DFM tracks all the volumes it discovers on storage systems it is monitoring. These APIs give the user access to the information DFM has collected. In addition, this API family will eventually give users the ability to create, modify and destroy volumes on storage systems.

NetApp Manage ONTAP

volume-list-info-iter-end | [top]

> Ends iteration to list volumes.

> Input Name | Range | Type | Description
> tag |  | string | Tag from a previous volume-list-info-iter-start.

> Errno | Description
> EINVALIDTAG |  |

volume-list-info-iter-next | [top]

> Get next few records in the iteration started by volume-list-info-iter-start.

> Input Name | Range | Type | Description
> maximum |  | integer validate | The maximum number of entries to retrieve.
> tag |  | string | Tag from a previous volume-list-info-iter-start.
> Output Name | Range | Type | Description
> records |  | integer | The number of records actually returned.
> volumes |  | volume-info[] | List of volumes.

> Errno | Description
> EINVALIDTAG |  |

volume-list-info-iter-start | [top]

> Starts iteration to list volumes.

> Input Name | Range | Type | Description
> include-is-available |  | boolean optional | If true, the is-available status is calculated for each volume which may make the call to this zapi take much longer. Default is false.
> is-dp-ignored |  | boolean optional | If TRUE, only list volumes that have been set to be ignored for purposes of data protection. If FALSE, only list volumes that have not been set to be ignored for purposes of data protection. If not specified, list all volumes without taking into account whether they have been ignored or not.
> is-in-dataset |  | boolean optional | If TRUE, only list volumes which only contain data which is protected by a dataset. If FALSE, only list volumes containing data which is not protected by a dataset. If not specified, list all volumes whether they are in a dataset or not.
> is-snapmirror-primary-capable |  | boolean optional validate | If present and true, only list volumes capable of being a primary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror. Meaningless if present and false.
> is-snapmirror-secondary-capable |  | boolean optional validate | If present and true, only list volumes capable of being a secondary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror and the volume is not already a SnapMirror or SnapVault secondary. Meaningless if present and false.
> is-snapvault-primary-capable |  | boolean optional validate | If present and true, only list volumes capable of being the source of a SnapVault transfer. This means the storage system is licensed to be a SnapVault primary. Meaningless if present and false.
> is-snapvault-secondary-capable |  | boolean optional validate | If present and true, only list volumes capable of being the destination of SnapVault transfers. This means the storage system is licensed as a SnapVault secondary and the volume is not a SnapMirror destination. Meaningless if present and false.
> object-name-or-id |  | string optional | Name or identifier of an object to list volumes for. The allowed object types for this argument are: Resource Group Data Set Storage Set Host Aggregate Volume Qtree If object-name-or-id identifies a volume, that single volume will be returned. If object-name-or-id resolves to more than one volume, all of them will be returned. If no object-name-or-id is provided, all volumes will be listed.
> rbac-operation |  | string optional | Names of an RBAC operation. If specified, only return volumes for which the current admin has permission to perform that operation. For example, caller can ask for only volumes that current admin has DFM.Backupmanager.Backup operation privilege to when want to display list of volume that can be backup by the current admin. When not specified, DFM.Database.Read is a default operation requirement.
> snapvault-secondary-schedule-name |  | string optional | Name of a SnapVault backup schedule. If specified, SnapVault secondary volumes that are using the specified backup schedule are listed.
> volume-type |  | string optional | Filter by type of volume. Possible values are: traditional flexible If no volume-type input is supplied, all types of volumes will be listed.
> Output Name | Range | Type | Description
> records |  | integer | Number which tells you how many items have been saved for future retrieval with volume-list-info-iter-next.
> tag |  | string | Tag to be used in subsequent calls to volume-list-info-iter-next.

> Errno | Description
> EAPIERROR |  |
> EDATABASEERROR |  |
> EACCESSDENIED |  |
> EINVALIDINPUT |  |
> EOBJECTNOTFOUND |  |
> EOBJECTAMBIGUOUS |  |

volume-modify | [top]

> Modify a volume's information. If modifying of one property fails, nothing will be changed. Error Conditions: EACCESSDENIED - When the user does not have DFM.Database.Write capability on the specified volume. EINVALIDINPUT - When invalid input specified. EOBJECTNOTFOUND - When the volume-name-or-id does not correspond to a volume. EDATABASEERROR - On database error.

> Input Name | Range | Type | Description
> is-dp-ignored |  | boolean optional | True if an administrator has chosen to ignore this object for purposes of data protection.
> volume-name-or-id |  | string | Name or identifier of the volume to modify.

> Errno | Description
> EACCESSDENIED |  |
> EINVALIDINPUT |  |
> EDATABASEERROR |  |
> EOBJECTNOTFOUND |  |

Element definition: volume-info | [top]

> Information about a volume.

> Name | Range | Type | Description
> dataset-id |  | integer optional | ID of dataset where this qtree is in the primary storage set. Range: [1..2^31-1] This field is deprecated in favor of datasets, which lists all data sets the volume belongs to. It is still populated with one of the data set ids.
> datasets |  | dataset-reference[] | List of data set IDs containing this volume. If is-in-dataset is false, this list will be empty.
> host-id |  | integer | Identifier of host on which the volume resides.
> host-name |  | string | Name of host on which the volume resides.
> is-available |  | boolean optional | True if this object and all of it's parents are up or online. Only output if the call to iter-start included the "include-is-available" flag.
> is-dp-ignored |  | boolean optional | True if this dataset is intentionally ignored.
> is-in-dataset |  | boolean | Indicate whether this volume is a member of any data set.
> is-snapmirror-primary-capable |  | boolean | True if the volume is capable of being a primary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror.
> is-snapmirror-primary-volume |  | boolean | True if the volume is a primary volume for a SnapMirror relationship.
> is-snapmirror-secondary-capable |  | boolean | True if the volume is capable of being a secondary for a SnapMirror relationship. This means the storage system is licensed for SnapMirror and the volume is not already a SnapMirror or SnapVault secondary.
> is-snapmirror-secondary-volume |  | boolean | True if the volume is a secondary volume for a SnapMirror relationship.
> is-snapvault-primary-capable |  | boolean | True if the volume is capable of being the source of a SnapVault transfer. This means the storage system is licensed to be a SnapVault primary.
> is-snapvault-primary-volume |  | boolean | True if the volume contains at least one qtree which is the source of a SnapVault backup.
> is-snapvault-secondary-capable |  | boolean | True if the volume is capable of being the destination of SnapVault transfers. This means the storage system is licensed as a SnapVault secondary and the volume is not a SnapMirror destination.
> is-snapvault-secondary-volume |  | boolean | True if the volume is a secondary volume for storing SnapVault backups.
> snapshot-volume-id |  | obj-id optional | Identifier of the Snapshot space for the volume i.e "volume.snapshot" This represents the Snapshot reserve in the volume.
> snapshot-volume-name |  | obj-full-name optional | Name of the Snapshot space for the volume i.e "volume.snapshot". This represents the Snapshot reserve in the volume.
> snapvault-lag-warning-threshold |  | integer optional | Threshold in seconds. DFM generates a warning event when age of the replica for a SnapVault backup relationship exceeds the specified threshold.
> snapvault-secondary-schedule-name |  | string optional | Name of backup schedule associated with secondary volume. Not present if there is no schedule.
> space-guarantee |  | string optional | The space reservation style associated with the flexible volume. Possible values: volume - Indicates that the entire size of the volume is preallocated. file - Indicates that the space will be preallocated for all the space-reserved files and LUNs within the volume. Storage is not preallocated for files and LUNs that are not space-reserved. Writes to these can fail if the underlying aggregate has no space available to store the written data. none - Indicates that no space will be preallocated. file(disabled) - If a volume with file guarantee has been brough online when the aggregate has insufficient free space to preallocate to the volume. volume(disabled) - If a volume with volume guarantee has been brough online when the aggregate has insufficient free space to preallocate to the volume. This field will not be present for traditional volumes. This field does not appear if volume-state of the flexible volume is restricted or offline.
> volume-id |  | integer | Identifier of the volume.
> volume-name |  | string | Name of the volume.
> volume-perf-status |  | obj-status optional | Current status of the volume based on performance events
> volume-qtree |  | volume-qtree optional | Volume qtree(s) information. If volume does not have any qtree, this structure is not returned.
> volume-size |  | volume-size | Volume size information.
> volume-state |  | string | State of volume. Possible values are: initializing failed offline online partial restricted unknown
> volume-status |  | obj-status optional | Current status of the volume based on all events
> volume-type |  | string | Type of volume. Possible values are: traditional flexible

Element definition: dataset-reference | [top]

> The name and id of a data set.

> Name | Range | Type | Description
> dataset-id |  | obj-id | Identifier for the data set. Range: [1..2^31-1]
> dataset-name |  | obj-name | Name of the data set.

Element definition: obj-full-name | [top]

> Full name of a DFM object. This typedef is an alias for the builtin ZAPI type string. An object full name conforms to all the rules of an obj-name, except that the full name may be up to 255 characters long. DFM creates full names by concatenating an object name with any parent object names, so as to create a unique name for an object. The format of full names is as follows: Host full names are the either the fully-qualified domain name or the IP address in dotted-decimal format of the host. Aggregate full names are the host name and the aggregate name, separated by a colon, e.g. hostname:aggr0. Volume full names are the host name and the volume name, separated by ":/", e.g. hostname:/volume. Note this does not include "/vol". Volume and aggregate full names are distinguished by the presence of a forward slash after the colon. Qtree full names are the containing volume full name and the qtree name, separated by a slash, e.g. hostname:/volume/qtree. The data not contained by any qtree may be represented by "-", e.g. hostname:/volume/-. Lun Path full names are either a volume or qtree full name and the LUN path, separated by a slash, e.g. hostname:/volume/LUN or hostname:/volume/qtree/LUN. Network full names are a network address block in CIDR format, e.g. 1.2.3.0/8. OSSV Directory full names are the OSSV host name and the OSSV path, separated by a colon, e.g. host-lnx:/usr/local or host-w2k:c:/temp Include any others here... Initiator Group full names are host name and the initiator group name, separated by a colon, e.g. hostname:igroup. For any DFM object not listed above, the obj-name and obj-full-name are identical.

> [none]

Element definition: obj-id | [top]

> Identification number (ID) for a DFM object. This typedef is an alias for the builtin ZAPI type integer. Object IDs are unsigned integers in the range [1..2^31 - 1]. In some contexts, an object ID is also allowed to be 0, which is interpreted as a null value, e.g., a reference to no object at all. The ID for a DFM object is always assigned by the system; the user is never allowed to assign an ID to an object. Therefore, an input element of type obj-id is always used to refer to an existing object by its ID. The ZAPI must specify the object's DFM object type (e.g. data set, host, DP policy, etc.). Some ZAPIs allow the object to be one of several different types. If the value of an obj-id input element does not match the ID of any existing DFM object of the specified type or types, then typically the ZAPI fails with error code EOBJECTNOTFOUND. A ZAPI may deviate from this general rule, for example, it may return a more specific error code. In either case, the ZAPI specification must document its behavior.

> [none]

Element definition: obj-status | [top]

> A status value which can be associated with a DFM object. This typedef is an alias for the builtin ZAPI type string. The severity associated with an event has this type. Possible values are: 'unknown', 'normal', 'information', 'unmanaged' 'warning', 'error', 'critical', 'emergency'. unknown: An object has an unknown status when it transitions from one state to another. Ideally, an object will have this status briefly. For example, when an object has been added, but not yet discovered. normal: An object has normal status when it is working within the thresholds specified in DFM. information: The information events are normal occurrences on an object for which you can define alarms. unmanaged: An object is considered to be unmanaged when the login and password are not set for the appliance or agent. warning: An object has the warning status when an event related to the object occurred that an administrator should know about. The event will not cause service disruption. error: An object has error status when it does not cause any service disruption, but it may affect performance. critical: An object has critical status when it is still performing, but service disruption may occur if corrective action is not taken immediately. emergency: An object is in emergency status when it stops performing unexpectedly and could lose data. In some contexts, it is important that severities are ordered (as above). For example, an alarm might be triggered if an event with a given severity "or worse" occurs. In this example, worse means "after" in the list above.

> [none]

Element definition: volume-qtree | [top]

> Information on qtrees in the volume

> Name | Range | Type | Description
> protected-data-size |  | integer | Summation of total size of protected qtrees.
> protected-qtree-count |  | integer | Total number of qtrees that are protected in the volume.
> total-qtree-count |  | integer | Total number of qtrees in the volume.
> unprotected-data-size |  | integer | Summation of total size of unprotected qtrees.
> unprotected-qtree-count |  | integer | Total number of qtrees that are unprotected in the volume.

Element definition: volume-size | [top]

> Collected size information about a volume. Optional items will not be returned if DFM does not know the value.

> Name | Range | Type | Description
> afs-avail |  | integer optional | Number of bytes available in active file system. This will be (afs-total - afs-used) or the available space in the aggregate, whichever is lower. Range: [0..2^44-1]
> afs-data |  | integer optional | Number of bytes used to hold user data in active file system. This should match what you'd get if you added up the file sizes. This includes data and hole reserves, if any. Range: [0..2^44-1]
> afs-total |  | integer optional | Total number of bytes in active file system (total volume less snapshot reserve). Range: [0..2^44-1]
> afs-used |  | integer optional | Number of bytes used to hold active file system data. This is what "df" reports as used for the volume. It includes data, hole reserves, overwrite reserves and snapshot overflow. Range: [0..2^44-1]
> is-autosize-enabled |  | boolean | Indicates whether this volume has autosize feature enabled or not.
> maximum-size |  | integer optional | Maximum size in bytes that this volume will be grown up to automatically by ONTAP. This is returned only if is-autosize-enabled is true. Range: [0..2^44-1]
> overwrite-reserve-avail |  | integer optional | Number of bytes available reserved space for data overwrites. Range: [0..2^44-1]
> overwrite-reserve-total |  | integer optional | Total number of bytes reserved for data overwrites. This is the space reserved for overwriting LUNs and other space-reserved files when the volume has snapshots and afs-avail is zero. Range: [0..2^44-1]
> overwrite-reserve-used |  | integer optional | Number of bytes used in overwrite reserve space. Range: [0..2^44-1]
> snapshot-reserve-avail |  | integer optional | Number of available bytes in snapshot reserve for this volume. If snapshot-reserve-used is greater than snapshot-reserve-total, this value will be zero. Range: [0..2^44-1]
> snapshot-reserve-total |  | integer optional | Total number of bytes of snapshot reserve. Range: [0..2^44-1]
> snapshot-reserve-used |  | integer optional | Total number of bytes used to hold snapshot data. This can be greater than the snapshot reserve size but will not include any space used out of the overwrite reserve. Range: [0..2^44-1]
> total |  | integer optional | Total number of bytes in volume. This includes the snapshot reserve. Range: [0..2^44-1]

Element definition: obj-name | [top]

> Name of a DFM object. This typedef is an alias for the builtin ZAPI type string. An object name must conform to the following format: It must contain between 1 and 64 characters. It may start with any character and may contain any combination of characters, except that it may not consist solely of decimal digits ('0' through '9'). In some contexts, a name may be the empty string (""), which is interpreted as a null value, e.g., a reference to no object at all. The behavior of a ZAPI when it encounters an error involving an obj-name input element depends on how the ZAPI uses the input element. Here are the general rules: If the input name element is used to create a new object with the given name, or rename an existing object to that name, and the name does not conform to the above format, then the ZAPI fails with error code EINVALIDINPUTERROR. Note that because EINVALIDINPUTERROR is such a common error code, ZAPI specifications are not required to document cases when they may return it. If the input name element is used to refer to an existing object with that name, and there is no object with that name, then the ZAPI fails with error code EOBJECTNOTFOUND. Generally the ZAPI specification documents cases when it may return this error code. A ZAPI may deviate from these general rules, for example, it may return more specific error codes. In such cases, the ZAPI specification must document its behavior. If an input name element is used to refer to an existing object, then the ZAPI specification must specify which DFM object type (e.g. data set, host, DP policy, etc.) is allowed. Some ZAPIs allow the object to be one of several different types. See the description of obj-full-name for examples of valid input formats. Note that there is no requirement that all object names must be unique. However, the names for some specific types of objects are constrained such that no two objects of that type may have the same name. For example, this constraint applies to data sets, DP schedules, and DP policies. This means that no two data sets may have the same name, but a data set may have the same name as a DP schedule or DP policy. In general, object names are compared in a case-insensitive manner. This means that, for example, "MyObject" and "MYOBJECT" are considered to be the same name for purposes of: creating new objects, renaming existing objects, or looking up an object by name. On the other hand, ZAPIs that return an obj-name generally do not change the capitalization at all. For example, if an object's name has been set to "MyObject", then list iteration ZAPIs that return the object's name return it as "MyObject" rather than "MYOBJECT" or "myobject". ZAPIs that operate on obj-name values and do not follow these general rules about case sensitivity must document the rules that they do follow. One important exception to these general rules is that volumes, qtrees, OSSV directories, SRM paths, interfaces, FCP targets and FC switch ports all have case-sensitive names. When looking up objects of these types by name, the case must match the object name.

> [none]