APIs in Category: qtree
API version 3.7.1

 
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-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.
object-name-or-id string
optional
Name or identifier of an object to list aggregates 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 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.
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
 EOBJECTNOTFOUNDERROR
 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: 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 data sets the qtree belongs to. It is still populated with one of the data set ids.
datasets dataset-reference[]
List of data set 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 data set.
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 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: 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^64-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^64-1]
space-used integer
Number of bytes used by qtree. Range: [0..2^64-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. 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-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]

 
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]