APIs in Category: qtree | API version 4.0

qtree-list-info-iter-end qtree-list-info-iter-next qtree-list-info-iter-start qtree-modify qtree-rename qtree-start-monitoring qtree-stop-monitoring | DFM tracks all the qtrees 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 gives users the ability to stop and start monitoring of qtrees from the DFM database. It also provides the ability to rename qtrees on storage systems.

NetApp Manage ONTAP

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

> The qtree-list-info-iter-* set of APIs are used to retrieve the list of qtrees. qtree-list-info-iter-end is used to tell the DFM station that the temporary store used by DFM to support the qtree-list-info-iter-next API for the particular tag is no longer necessary.

> Input Name | Range | Type | Description
> tag |  | string | An internal opaque handle used by the DFM station

> Errno | Description
> EINVALIDTAG |  |

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

> For more documentation please check qtree-list-info-iter-start. The qtree-list-info-iter-next API is used to iterate over the members of the Qtrees stored in the temporary store created by the qtree-list-info-iter-start API.

> Input Name | Range | Type | Description
> maximum |  | integer | The maximum number of entries to retrieve. Range: [1..2^31-1]
> tag |  | string | Tag from a previous qtree-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by qtree-list-info-iter-start.
> Output Name | Range | Type | Description
> qtrees |  | qtree-info[] | List of Qtrees.
> records |  | integer | The number of records actually returned. Range: [1..2^31-1]

> Errno | Description
> EINVALIDTAG |  |

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

> The qtree-list-info-iter-* set of APIs are used to retrieve the list of qtrees in DFM. qtree-list-info-iter-start returns the union of qtree objects specified, intersected with is-snapvault-secondary-qtrees, is-in-dataset and rbac-operation. It loads the list of qtrees into a temporary store. The API returns a tag that identifies that temporary store so that subsequent APIs can be used to iterate over the qtrees in the temporary store. If qtree-list-info-iter-start is invoked twice, then two distinct temporary stores are created.

> Input Name | Range | Type | Description
> include-is-available |  | boolean optional | If true, the is-available status is calculated for each qtree which may make the call to this zapi take much longer. Default is false.
> is-direct-member-only |  | boolean optional | If true, only return the qtrees that are direct members of the specified resource group. Default value is false. This field is meaningful only if a resource group name or id is given for the object-name-or-id field.
> is-direct-vfiler-child |  | boolean optional | If true, only list qtrees that are direct children of a Vfiler. If false, only list qtrees that are indirect children of a Vfiler. If not specified, list qtrees that are direct and indirect children of a Vfiler. This filter does not have any effect if object-name-or-id is not a Vfiler.
> is-dp-ignored |  | boolean optional | If true, only list qtrees that have been set to be ignored for purposes of data protection. If false, only list qtrees that have been not set to be ignored for purposes of data protection. If not specified, list all qtrees without taking into account whether they have been ignored or not.
> is-in-dataset |  | boolean optional | If true, only list qtrees which only contain data which is protected by a dataset. If false, only list qtrees containing data which is not protected by a dataset. If not specified, list all qtrees whether they are in a dataset or not.
> is-snapvault-secondary-qtrees |  | boolean optional | If true, only SnapVault secondary qtrees are listed. Otherwise, all qtrees are listed. Default is false.
> is-unprotected |  | boolean optional | If true, only list qtrees that are not protected, which means they are not in any SnapMirror or SnapVault relationship. If false or not set, list all qtrees.
> object-management-filter |  | object-management-interface optional | Filter the object based on the Data ONTAP interface that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. If no filter is supplied, all objects will be considered.
> object-name-or-id |  | string optional | Name or identifier of an object to list qtrees for. The allowed object types for this argument are: Resource Group Dataset Storage Set Host Aggregate Volume Qtree If object-name-or-id identifies a qtree, that single qtree will be returned. If object-name-or-id resolves to more than one qtree, all of them will be returned. If no object-name-or-id is provided, all qtrees will be listed. If object-name-or-id identifies a dataset or a storage set, only qtrees that are direct members of that dataset or storage set will be returned.
> rbac-operation |  | string optional | Name of an RBAC operation. If specified, only return qtrees for which authenticated admin has the required capability. A capability is an operation/resource pair. The resource is the volume where the qtree lives. The possible values that can be specified for operation can be obtained by calling rbac-operation-info-list. If operation is not specified, then it defaults to DFM.Database.Read. For more information about operations, capabilities and user roles, see the RBAC APIs.
> Output Name | Range | Type | Description
> records |  | integer | Number which tells you how many items have been saved for future retrieval with qtree-list-info-iter-next. Range: [1..2^31-1]
> tag |  | string | Tag to be used in subsequent calls to qtree-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.

> Errno | Description
> EINTERNALERROR |  |
> EAPIERROR |  |
> EACCESSDENIED |  |
> EOBJECTNOTFOUND |  |
> EOBJECTAMBIGUOUS |  |
> EDATABASEERROR |  |
> EINVALIDINPUTERROR |  |

qtree-modify | [top]

> Modify a qtree'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 qtree. EINVALIDINPUT - When invalid input specified. EOBJECTNOTFOUND - When the qtree-name-or-id does not correspond to a qtree. 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.
> qtree-name-or-id |  | string | Name or identifier of the qtree to modify.

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

qtree-rename | [top]

> Rename a qtree on a storage system and in the DataFabric Manager database. The new qtree will still be in the same volume as the original qtree. The first step renames the given qtree on the storage system. If that fails, then processing stops and the API emits an EINTERNALERROR to the caller along with the appropriate error message. The second step renames the given qtree on the DFM database. If that fails, then processing stops and the same EINTERNALERROR is emitted back to the caller along with an appropriate error message. There is no retrying or undoing of any of the steps should they fail. The API relies on the DFM monitor to undo the rename automatically. However, the undoing does not happen right away because it depends on the DFM monitor regular update schedule. The DFM monitor periodically ensures that storage system resources are matched in its database -- it updates the database to be consistent with the storage system. Prior to invoking this API, the storage system's login credentials where the qtree resides must be specified in DFM's database using normal DFM procedure.

> Input Name | Range | Type | Description
> qtree-name-new |  | string | New name for qtree on storage system. This is just the qtree name, not including the storage system or volume parts.
> qtree-name-or-id |  | string | Qtree to rename. If a name is specified, then it must in the form specified by DFM's normal container and containment rules such as hostname:/volume/qtree_name (for example, breeze:/vol0/myqtree). Range: [1..2^31-1]

> Errno | Description
> EQTREEDOESNOTEXIST |  |
> EQTREEALREADYEXISTS |  |
> EINVALIDQTREENAME |  |
> EINTERNALERROR |  |
> EACCESSDENIED |  |

qtree-start-monitoring | [top]

> Start monitoring a previously un-monitored primary qtree from the DataFabric Manager. Error EQTREEMONITORONFAIL means that an attempt to start monitoring the specified qtree failed.

> Input Name | Range | Type | Description
> qtree-name-or-id |  | string | A qtree name or identifier to start monitoring. Name must in the form specified by DFM's normal container and containment rules such as hostname:/volume/qtree_name (for example, breeze:/vol0/myqtree). Range: [1..2^31-1]

> Errno | Description
> EQTREEUNDELETEFAIL |  |
> EDATABASEERROR |  |
> EQTREEALREADYEXISTS |  |
> EQTREEDOESNOTEXIST |  |
> EQTREEDELETEDPARENT |  |
> EQTREEMONITORONFAIL |  |
> EINTERNALERROR |  |
> EACCESSDENIED |  |

qtree-stop-monitoring | [top]

> Stop monitoring a primary qtree from the DataFabric Manager. A qtree that is being managed by an application cannot be stopped being monitored (errno returned will be EQTREEMANAGEDBYAPP)

> Input Name | Range | Type | Description
> qtree-name-or-id |  | string | A qtree name or identifier to stop monitoring. Name must in the form specified by DFM's normal container and containment rules such as hostname:/volume/qtree_name (for example, breeze:/vol0/myqtree). Range: [1..2^31-1]

> Errno | Description
> EQTREEDOESNOTEXIST |  |
> EQTREEMANAGEDBYAPP |  |
> EDATABASEERROR |  |
> EQTREEMONITOROFFFAIL |  |
> EINTERNALERROR |  |
> EACCESSDENIED |  |

Element definition: object-management-interface | [top]

> Specify the management interface of ONTAP that provides complete management for the object i.e. ONTAP CLIs, SNMP, ONTAPI etc. Possible values are: "node" - For objects manageable by node management interface "cluster" - For objects manageable by cluster management interface

> [none]

Element definition: qtree-info | [top]

> Information about a Qtree.

> 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 datasets the qtree belongs to. It is still populated with one of the dataset ids.
> datasets |  | dataset-reference[] | List of dataset IDs where this qtree is in the primary storage set. If is-in-dataset is false, this list will be empty.
> filer-id |  | integer | Identifier of storage system on which the qtree resides. Always present in the output. Range: [1..2^31-1]
> filer-name |  | string | Name of storage system on which the qtree resides. Always present in the output.
> 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-direct-vfiler-child |  | boolean optional | Indicates whether the qtree is a direct or indirect child of a Vfiler. If not present, then qtree is not under a Vfiler.
> is-dp-ignored |  | boolean | Indicates whether an admin has decided to ignore this qtree for purposes of data protection.
> is-in-dataset |  | boolean | Indicates whether the qtree is a member of any dataset.
> is-snapvault-secondary-qtree |  | boolean optional | Indicates whether the qtree is a secondary volume for storing SnapVault backups.
> qtree-id |  | integer | Identifier of the qtree. Range: [1..2^31-1]
> qtree-name |  | string | Simple name of the qtree. Always present in the output. The qtree name is a simple name without the storage system or volume part. For example, myqtree2.
> qtree-size |  | qtree-size-info | Sizes of various parameters of the qtree.
> volume-id |  | integer | Identifier of volume in which the qtree resides. Always present in the output. Range: [1..2^31-1]
> volume-name |  | string | Name of volume in which the qtree resides. Always present in the output.

Element definition: dataset-reference | [top]

> The name and id of a dataset.

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

Element definition: qtree-size-info | [top]

> Sizes of various parameters of a qtree. File counts are simple counts.

> Name | Range | Type | Description
> files-limit |  | integer optional | Limit of number of files in qtree.
> files-used |  | integer optional | Number of files in qtree.
> hard-limit |  | integer optional | Hard size limit of qtree in bytes. Range: [0..2^63-1]
> qtree-perf-status |  | obj-status optional | Current status of the qtree based on performance events
> qtree-status |  | obj-status optional | Current status of the qtree based on all events
> soft-limit |  | integer optional | Soft size limit of qtree in bytes. Range: [0..2^63-1]
> space-used |  | integer | Number of bytes used by qtree. Range: [0..2^63-1]

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. dataset, 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-name | [top]

> Name of a DFM object. This typedef is an alias for the built in 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 datasets, DP schedules, and DP policies. This means that no two datasets may have the same name, but a dataset 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]

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 storage system 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]