|
APIs in Category: vfiler |
API version 3.8 |
vfiler-create |
A set of APIs to manage vFilers and vFiler templates. vFiler template APIs are used to create, modify, destroy and list vFiler template objects. They contain information that is used to setup a vFiler. vFiler APIs can be used to create a vFiler on a particular filer or from a resource pool, to set up the vFiler with appropriate configuration from a vFiler template and also to destroy a vFiler. |
| vfiler-create | [top] |
Create a new vFiler on a storage system. A vFiler can be created by either: Error conditions:
- Specifying the filer on which to create it.
- Speciying a resource pool. In this case, a filer is selected from the resource pool based on required licenses and in-built resource selection algorithm to evenly balance space and load in the resource pool and a vFiler will be created on the selected filer.
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have required capabilities to create a vFiler.
- EOBJECTNOTFOUND - When the specified resource-name-or-id id not found.
- EFILERNOTFOUND - No storage system could be found on which a vFiler could be created.
- EINVALIDINPUT - Invalid input provided for certain fields.
- EMULTISTORENOTLICENSED - When resource-name-or-id corresponds to a filer that does not have multistore licensed.
Input Name Range Type Description allowed-protocols protocol[]
optional
List of protocols that needs to be allowed access to the vFiler. If not specfied, none of the protocols will be allowed on the vFiler. dry-run boolean
optional
Check if a vFiler can be created on the given resource-name-or-id. The hosting filer on which the vFiler is created will be returned. If there are any errors, because of which a vFiler cannot be created on the given resource-name-or-id, the API will throw an error. No changes are made to the resource-name-or-id when dry-run is true. Default value is false. ip-address ip-address
optional
IP address of the new vFiler. This element is not required only when the API is run in dry-run mode. ipspace string
optional
IP Space of the new vFiler. Only alphabets, number, hyphens and underscore characters are allowed. It can be a maximum of 64 characters. If not specified, vFiler is created in "default-ipspace". name obj-name
Name of the new vFiler to be created. Only alphabets, number, hyphens and underscore characters are allowed. It can be a maximum of 64 characters. resource-name-or-id obj-name-or-id
Name or identifier of the hosting filer or resource pool from which to provision a new vFiler. Output Name Range Type Description filer-id obj-id
Identifier of hosting filer on which the vFiler was or will be created in dry-run mode. filer-name obj-full-name
Name of the hosting filer on which the vFiler was or will be created in dry-run mode. root-volume-id obj-id
optional
Identifier of the root volume created for this vFiler unit. This is not returned when the API is run in dry-run mode. root-volume-name obj-full-name
optional
Full name of the root volume created for this vFiler unit. This is not returned when the API is run in dry-run mode. vfiler-id obj-id
optional
Identifier of new vFiler created in DFM database. This is not returned when the API is run in dry-run mode.
Errno Description EDATABASEERROR EACCESSDENIED EOBJECTNOTFOUND EFILERNOTFOUND EINVALIDINPUT EMULTISTORENOTLICENSED
| vfiler-destroy | [top] |
Destroy a vfiler. This API stops and then destroys the vFiler on the hosting filer and marks the vFiler as deleted in DFM. Storage resources owned by the vFiler are not destroyed. They will be owned by the hosting filer after the vFiler is destroyed. Error conditions:
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have required capabilities to destroy the vFiler.
- EOBJECTAMBIGUOUS - When the specified object name is ambiguous.
- EOBJECTNOTFOUND - When the specified vFiler is not found.
Input Name Range Type Description vfiler-name-or-id obj-name-or-id
Name of identifier of the vFiler to be destroyed.
Errno Description EDATABASEERROR EACCESSDENIED EOBJECTAMBIGUOUS EOBJECTNOTFOUND
| vfiler-setup | [top] |
Configure and setup a vFiler based on a specified vFiler template. Depending on the input a CIFS setup will also be done on the vFiler. Error conditions:
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have required capabilities to setup the vFiler.
- EOBJECTAMBIGUOUS - When the specified object name is ambiguous.
- EOBJECTNOTFOUND - When the specified vFiler is not found.
- EINVALIDINPUT - Invalid input provided.
Input Name Range Type Description allowed-protocols protocol[]
optional
List of protocols that needs to be allowed access to the vFiler. This list overrides the list of protocols currently allowed on the vFiler. If this is not present, no changes are done to the allowed protocols of the vFiler. cifs-domain-password string
encrypted
optional
Password for cifs-domain-user. Encrypted using 2-way encryption.
Applicable and mandatory if cifs-auth-type is set to "active_directory" in vfiler template specified in vfiler-template-name-or-id. Default value is empty.cifs-domain-user string
optional
Name of CIFS domain user that has the ability to add the CIFS server to the domain given in cifs-domain-name in vfiler template specified in vfiler-template-name-or-id. Examples: username (assumes domain-name is the user's domain), cifsdomain\username, cifs.domain.com\username. Applicable and mandatory if cifs-auth-type is set to "active_directory" in vfiler template specified in vfiler-template-name-or-id. Default value is empty. cifs-workgroup-name string
optional
CIFS workgroup name of the new vfiler. If vfiler-template-name-or-id is specified, this field is applicable only if cifs-auth-type is "workgroup" in the specified vfiler-template. This field is also applicable when vfiler-template-name-or-id is not given, but cifs setup needs to be done on the vFiler. Default value is "WORKGROUP" and this will be used during CIFS setup of the vFiler if run-cifs-setup is true. ip-bindings ip-binding-info[]
optional
IP Address to interface binding information. root-password string
encrypted
optional
Root password of the new vFiler. This will be the password for a new root account that will be created on the vFiler. If a root account already exists on this vFiler, then the password for the root account will not be changed. Encrypted using 2-way encryption.
Length: [0..64] Default value is empty. Ignored if ip-bindings element is not present.run-cifs-setup boolean
optional
Indicates whether CIFS setup should be performed on the vFiler unit. Note that if this is true and CIFS is already running on the vFiler unit, CIFS service will be stopped, and then a setup will be performed. Default value is FALSE. script-path string
optional
Path to a script that will be run in pre setup and post setup mode when setting up the vFiler unit. vfiler-name-or-id obj-name-or-id
Full name or identifier of the vFiler to be setup. vfiler-template-name-or-id obj-name-or-id
optional
Name or identifier of vFiler template. The vFiler is setup based on the settings specified in the template. If this is not specified, then DNS, NIS servers cannot be configured for the vFiler. Also, a CIFS setup cannot be done using active_directory. Ignored if ip-bindings element is not present and run-cifs-setup is false.
Errno Description EDATABASEERROR EACCESSDENIED EOBJECTNOTFOUND EOBJECTAMBIGUOUS EINVALIDINPUT
| vfiler-template-copy | [top] |
Creates a new vFiler template by copying all settings from an existing vFiler template. Error conditions:
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have privileges to create the vfiler template.
- EVFILERTEMPLATEEXISTS - A vFiler template already exists with this name.
- EOBJECTNOTFOUND - When the specified vFiler template does not exist.
Input Name Range Type Description vfiler-template-name obj-name
Name of the new vFiler template to be created. vfiler-template-name-or-id obj-name-or-id
The name or identifier of an existing vFiler template that is copied to create a new vFiler template. Output Name Range Type Description vfiler-template-id obj-id
Identifier of the newly created vFiler template.
Errno Description EDATABASEERROR EACCESSDENIED EVFILERTEMPLATEEXISTS EOBJECTNOTFOUND
| vfiler-template-create | [top] |
Creates a vFiler template. A vFiler template contains configuration information that is used during vFiler setup. Error conditions:
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have privileges to create the vFiler template.
- EVFILERTEMPLATEEXISTS - A vFiler template already exists with this name.
- EINVALIDINPUT - Input validation failed.
Input Name Range Type Description vfiler-template vfiler-template-info
vFiler template information. Output Name Range Type Description vfiler-template-id obj-id
Identifier of the newly created vFiler template.
Errno Description EDATABASEERROR EACCESSDENIED EVFILERTEMPLATEEXISTS EINVALIDINPUT
| vfiler-template-delete | [top] |
Deletes the vFiler template. Error conditions:
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have capabilities to delete the vFiler template.
- EOBJECTNOTFOUND - When the specified vFiler template does not exist.
Input Name Range Type Description vfiler-template-name-or-id obj-name-or-id
Name or identifier of the vFiler template. Output Name Range Type Description vfiler-template-id obj-id
Identifier of the deleted vFiler template.
Errno Description EDATABASEERROR EACCESSDENIED EOBJECTNOTFOUND
| vfiler-template-list-info-iter-end | [top] |
Ends iteration of vFiler templates.
Input Name Range Type Description tag string
An internal opaque handle used by the DFM station.
Errno Description EINVALIDTAG
| vfiler-template-list-info-iter-next | [top] |
Get next records in the iteration started by vfiler-template-list-info-iter-start.
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 vfiler-template-list-info-iter-start. It's an opaque handle used by the DFM station to identify the temporary store created by vfiler-template-list-info-iter-start. Output Name Range Type Description records integer
The number of records actually returned. vfiler-templates vfiler-template-info[]
List of vFiler templates.
Errno Description EINVALIDTAG
| vfiler-template-list-info-iter-start | [top] |
Lists vFiler templates. Error conditions:
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have required capabilities to list vFiler templates.
- EOBJECTAMBIGUOUS - When the specified object name is ambiguous.
- EOBJECTNOTFOUND - When the specified vFiler template does not exist.
Input Name Range Type Description vfiler-template-name-or-id obj-name-or-id
optional
Name or identifier of the vFiler template. If not specified, it lists all vFiler templates. Output Name Range Type Description records integer
Number which tells you how many vfiler templates are present for future retrieval with vfiler-template-list-info-iter-next. Range: [1..2^31-1] tag string
Tag to be used in subsequent calls to vfiler-template-list-info-iter-next. It is an opaque handle used by the DFM station to identify a temporary store.
Errno Description EDATABASEERROR EACCESSDENIED EOBJECTAMBIGUOUS EOBJECTNOTFOUND
| vfiler-template-modify | [top] |
Modifies the settings in a vFiler template. Error conditions:
- EDATABASEERROR - A database error occurred while processing the request.
- EACCESSDENIED - User does not have capabilties to create the vFiler template.
- EVFILERTEMPLATEEXISTS - A vFiler template already exists with this name.
- EINVALIDINPUT - Input validation failed.
Input Name Range Type Description vfiler-template vfiler-template-info
Information of the vFiler template to be modified.
Errno Description EDATABASEERROR EACCESSDENIED EVFILERTEMPLATEEXISTS EINVALIDINPUT
| Element definition: ip-address | [top] |
IP address in string format. The length of this string cannot be more than 40 characters.
[none]
| Element definition: ip-binding-info | [top] |
vFiler IP Address to interface binding information.
Name Range Type Description interface obj-name-or-id
Name or identifier of the interface to bind the vFiler IP Address to. This can be either a physical interface, VIF or a VLAN. Example: "e0a", "myvif", "service_vlan" ip-address ip-address
IP address of the vFiler which is bound to the interface. If this IP Address is not already added to the vFiler, then the IP Address is first added to the vFiler before binding the IP Address with the given interface. netmask string
optional
Netmask for the IP address in dotted decimal notation. For IPv4 address, either netmask or prefix-length can be supplied. For IPv6 address, netmask is ignored. partner-interface obj-name-or-id
optional
Name or identifier of the interface on the partner node. This element is valid when the storage system on which this vFiler unit is present is in a Active/Active configuration. If a new VLAN is getting created on the local node, then a new corresponding VLAN will also be created on the partner node on this interface. prefix-length integer
optional
Prefix length for the IP address. This is required if IPv6 address is supplied. For IPv4 address, either netmask or prefix-length can be supplied. Range: [1..127] vlan-identifier integer
optional
Identifier for creating a new VLAN interface. If this element is present, the interface element should refer to a physical VLAN tagged interface. Range: [1..4094]
| 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 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. 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: 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:
- 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.
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 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.
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-name-or-id | [top] |
Name or internal ID of a DFM object. This typedef is an alias for the builtin ZAPI type string. An obj-name-or-id must contain between 1 and 64 characters, and must conform to one of the following formats: Elements of type obj-name-or-id are used only as inputs to ZAPIs. The value must match either the name or internal ID of an existing DFM object. 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.
- It must have the format of an obj-name, or
- It must be the decimal numeric string form of a positive integer whose value is in the range [1..2^31 - 1].
If the format of an obj-name-or-id input element does not conform, or the value does not match the name or ID of an existing object, then generally the ZAPI documents that it fails with error code EOBJECTNOTFOUND. A ZAPI may return more specific error codes. In such cases, the ZAPI specification must document its behavior.
If a ZAPI can accept a null value (e.g. reference to no object at all) for such an element, then the element is declared optional, and the absence of the input element represents a null value.
[none]
| Element definition: protocol | [top] |
Name of the protocol. Possible values: "nfs", "cifs", "iscsi".
[none]
| Element definition: vfiler-template-info | [top] |
Information about a vFiler Template.
Name Range Type Description administrative-host-ip-address ip-address
optional
IP Address of the vFiler's administrative host. By default, this field is empty. cifs-auth-type string
optional
CIFS authentication mode to be used for the CIFS setup of a vFiler. This determines the method by which clients will be authenticated when connecting to the CIFS service on the vFiler. Possible values: "active_directory", "workgroup". Default value: "workgroup" cifs-domain string
optional
Active Directory domain to which the vFiler will join to. This can be the NetBIOS or fully qualified domain name. Examples: cifsdomain, cifs.domain.com This field is applicable only when cifs-auth-type is set to "active-directory" and is ignored otherwise. cifs-security-style string
optional
The security style determines whether or not the CIFS service on vFiler will support multiprotocol access. Possible values: "ntfs", "multiprotocol". Default value is: "multiprotocol" description string
optional
Description of vFiler template. By default, this field is empty. dns-domain string
optional
Name of the DNS domain for a vFiler that is setup using this vFiler template. By default, this field is empty. dns-servers ip-address[]
optional
List of DNS servers for a vFiler that is setup using this vFiler template. nis-domain string
optional
Name of the NIS domain for a vFiler that is setup using this vFiler template. By default, this field is empty. nis-servers ip-address[]
optional
List of NIS servers for a vFiler that is setup using this vFiler template. vfiler-template-id obj-id
optional
Identifier of the vFiler template. This is ignored in vfiler-template-create. vfiler-template-name obj-name
optional
Name of the vFiler template. This must be specified in vfiler-template-create.
| Element definition: ip-address | [top] |
IP address in string format. The length of this string cannot be more than 40 characters.
[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. 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: 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:
- 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.
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 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.
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]