NAME

OCUMAPI - Contains the definitions and description of API Bindings for OnCommand Unified Manager server 6.0 or later


SYNOPSIS

         my $s = NaServer->new($server, 1, 0); # create NaServer (server context)
         $s->set_admin_user('admin', 'password'); # provide username and password
         $s->set_server_type('OCUM'); # set the server type to OCUM for OnCommand Unified Manager 6.0 or later
         eval{ 
                 my $output = $s->system_about(); # use binding for system-about API
                 print "OCUM server version is: $output->{version}\n"; # extract the required parameter from output
         };
         if($@) { # check for any exception
                 my ($error_reason, $error_code) = $@ =~ /(.+)\s\((\d+)\)/;  # parse out error reason and error code
                 print "Error Reason: $error_reason  Code: $error_code\n"
         }


DESCRIPTION

NetApp Manageability SDK 5.3.1 provides support for Perl API bindings for both Data ONTAP APIs and OnCommand Unified Manager APIs. The Perl API bindings libraries contain interfaces to establish a connection with either the Data ONTAP server or the OnCommand Unified Manager server. By using these libraries, you can create Perl applications to access and manage the Data ONTAP server or OnCommand Unified Manager server.

NetApp Manageability SDK 5.3.1 Perl API bindings provide a runtime library NaServer.pm, which is available at <installation_folder>/lib/perl/NetApp. This library file enables you to establish a server connection, send requests and receive responses, and interpret error messages. Each binding can be called as a subroutine of NaServer module which in turn invokes the corresponding Data ONTAP or OnCommand Unified Manager API.


API BINDINGS

aggregate_iter

Iterate over existing aggregates.

Inputs

Outputs

cluster_iter

Iterate over clusters.

Inputs

Outputs

cluster_node_iter

Iterate over cluster nodes.

Inputs

Outputs

dp_relationship_iter

Lists data protection relationships. For example, SnapVault or SnapMirror relationships. List relationships for a single storage service connection or for a particular source or destination name or id.

Inputs

Outputs

dp_restore_start

Starts a restore/retrieval operation on part of a storage object. This API copies storage objects (files, LUNS, directories, qtrees, and volumes) from a given Snapshot copy to a specified location.

Users can run one of the following APIs to obtain the source snapshot resource key.

  1. resource-lookup
  2. snapshot-get-location

This API returns the job-id of the job created for the restore operation. The job ID can be used to lookup detailed information on the progress of the restore operation.

Inputs

Outputs

disk_iter

Iterate over disks.

Inputs

Outputs

disk_physical_summary_get

Retrieve data, parity, spare, and total space usage (by number of disks and bytes) for the specified aggregate, cluster, or cluster node. For a V-Series storage system, data LUNs, spare LUNs and total LUNs are also reported, if array LUNs exist. For an aggregate, spares and spare space is not reported.
Error Conditions:

Inputs

Outputs

event_acknowledge

Acknowledge events. This terminates repeated notifications due to that event.

Inputs

Outputs

event_assign

Assign the events to the specified user.

Inputs

Outputs

event_iter

Iterate over events ordered by event-id.

Inputs

Outputs

event_purge

Purges the events that are older than the specified interval.

Inputs

Outputs

event_resolve

Resolve events. Terminates repeated notifications due to the event.

Inputs

Outputs

event_status_change_list_iter_end

event-status-change-list-iter-end is used to indicate that the temporary store used to support the event-status-change-list-iter-next API for the particular tag is no longer necessary.

Inputs

Outputs

event_status_change_list_iter_next

The event-status-change-list-iter-next API is used to iterate over the list of events stored in the temporary store created by the event-status-change-list-iter-start API.

A cursor is maintained pointing to the last record returned. Subsequent calls to this API will return the records after the cursor up to the specified "maximum" or number of actual records left.

Inputs

Outputs

event_status_change_list_iter_start

List events that had status changes (acknowledged or resolved) within the specified time range.

The event-status-change-list-iter-* set of APIs are used to retrieve the list of events that had status changes.

The event-status-change-list-iter-start API is used to load the list of events into a temporary store. The API returns a tag to temporary store so that subsequent APIs can be used to iterate over the list in the temporary store.

The returned list of events will be sorted according to when they had their status changed (either eventAcked timestamp or eventresolved timestamp). An event that's both acked and resolved within the requested timeframe would appear twice in the returned list of events, because those would count as 2 status changes, and appear in the returned list based on acked timestamp and resolved timestamp respectively.

Note that, depending on the input parameters, this API may take up to "timeout" seconds to return. Subsequent calls to event-status-change-list-iter-next() will return immediately.

Inputs

Outputs

event_unassign

Unassign the owner of an event or a set of events.

Inputs

Outputs

igroup_iter

Iterate over initiator groups.

Inputs

Outputs

job_abort

Abort a running management job.

Inputs

Outputs

job_delete

Delete the results of a completed job.

Inputs

Outputs

job_iter

Retrieve information about management jobs.

Inputs

Outputs

job_task_iter

Starts iteration to list tasks and their status.

Inputs

Outputs

job_wait_for_state

Blocks until a specified timeout period elapses or until a job state is reached by at least one job.

Inputs

Outputs

lun_iter

Iterate over a list of lun objects.

Inputs

Outputs

net_interface_iter

Iterate over logical interfaces. This API lists ethernet interfaces only. It does not list FCP interfaces.

Inputs

Outputs

portset_iter

Iterate over portsets.

Inputs

Outputs

resource_lookup

Lookup a managed resource by its fully qualified name. Returns the resource key for the managed resource.

Inputs

Outputs

resource_pool_aggregate_add

Add an aggregate to a resource pool. An aggregate may only belong to a single resource pool.

Inputs

Outputs

resource_pool_aggregate_remove

Remove an aggregate from a resource pool.

Inputs

Outputs

resource_pool_create

Create a new resource pool.

Inputs

Outputs

resource_pool_destroy

Destroy an existing resource pool.

Inputs

Outputs

resource_pool_iter

Iterate over resource pools.

Inputs

Outputs

resource_pool_modify

Modify an existing resource pool.

Inputs

Outputs

snapshot_expire

Deletes an existing volume snapshot. If the snapshot is currently active (e.g. involved in SnapMirror transfer, baseline snapshot of SnapVault etc.), then the snapshot will be marked as expired. Such expired snapshots will be deleted subsequently when no longer needed.

Inputs

Outputs

snapshot_get_location

Gets location of the replicas of the requested Snapshot copies.

Inputs

Outputs

snapshot_get_metadata

Returns metadata associated with a snapshot.

Inputs

Outputs

snapshot_has_expired

Checks if the specified volume snapshot has expired.

Inputs

Outputs

snapshot_set_metadata

Sets metadata for an existing volume snapshot. The metadata is automatically deleted when associated snapshot is removed.

Inputs

Outputs

ssl_server_cert_generate

Generates the self-signed certificate to be used by the HTTPS port.

The newly generated certificate will become active after a reboot.

The certificate will be generated with the following parameters:

Inputs

Outputs

ssl_server_cert_get

Retrieves the certificate chain used by the HTTPS port. The certificate chain can be retrieved by anybody.

Inputs

Outputs

ssl_server_cert_request

Creates a PKCS#10 Certification Request from the HTTPS port's certificate that can be submitted to a Certificate Authority for signing. The signed certificate received from a CA can then be imported via ssl-server-cert-set.

Inputs

Outputs

ssl_server_cert_set

Sets the certificate to be used by the HTTPS port. The certificate must be a CA-signed certificate generated from the Certification Request created via ssl-server-cert-request.

The newly set certificate will become active after a reboot.

Inputs

Outputs

storage_service_cleanup

Users can invoke this API when they feel no more need to maintain the member artifacts for any kind of restore purposes. Specified members must not have any active subscriptions. For every specified member, all the relevant data protection relationships and relevant provisioned storage objects are removed from the storage service. Users may also opt to destroy these artifacts from the storage system.

Inputs

Outputs

storage_service_conform

Checks configuration on members of a storage service. This API runs an on-demand check on one or more members of the storage service to bring the storage system configuration into conformance with the strategy defined by the storage service. A configuration check determines the volumes' current conformance status and the set of "actions" needed to make them conformant. Then this API starts the actions to bring the storage system configuration into conformance. Successful completion of this API indicates that "corrective" conformance actions are started though not necessarily completed.

Inputs

Outputs

storage_service_create

Creates a new storage service by specifying protection and provisioning strategy.

Inputs

Outputs

storage_service_destroy

Destroys a storage service. This API also destroys all protection artifacts, such as volumes and relationships, that are managed by this storage service. Managed protection artifacts include those that are either created by or imported into the storage service.

Inputs

Outputs

storage_service_import

Imports non-managed storage objects into an existing storage service. When you use the storage-service-import API, you must adhere to the following rules. If a rule is violated, the error code EINVALIDINPUT is returned, unless otherwise specified.

Inputs

Outputs

storage_service_iter

Starts iteration to list storage services.

Inputs

Outputs

storage_service_member_iter

Starts iteration to list members of the storage service.

Inputs

Outputs

storage_service_modify

Modify the attributes of an existing storage service. Clients will need to call storage-service-conform to provision destination volumes and create relationships to align the topology of the storage service and the modifications made in this API.

Inputs

Outputs

storage_service_protection_update_start

Updates data protection relationships for one or more members of the storage service. Storage service has a built-in topology relationship defined between the nodes. When the storage-service-conform API is called, protection relationships are created but not initialized. The first call to the storage-service-protection-update-start API triggers initialization (baseline data transfer). Subsequent calls trigger protection relationship updates.

Inputs

Outputs

storage_service_subscribe

Subscribes objects to a storage service. Currently, volumes are subscribable objects. Clients will need to call storage-service-conform to provision destination volumes and create relationships for the objects subscribed in here.

Inputs

Outputs

storage_service_subscription_context_get_metadata

Returns metadata of a subscription context set by storage-service-subscription-context-set-metadata API.

Inputs

Outputs

storage_service_subscription_context_set_metadata

Sets metadata for an existing subscription context for a given storage service. The metadata is automatically deleted if the subscription context is removed for the storage service.

Inputs

Outputs

storage_service_subscription_iter

Iterate over subscriptions of a storage service. The user must specify as input: the storage-service-resource-key element alone, the subscription-resource-key element alone, or a combination of (storage-service-resource-key, subscription-context) elements. The user cannot leave all three inputs unspecified.

Inputs

Outputs

storage_service_unsubscribe

Unsubscribes members from an existing storage service. If member is unsubscribed, it remains in the storage service but is marked disabled. When a member is marked disabled, all of its protection artifacts, such as relationships and storage objects, are preserved; however, it does not actively participate in future replication updates or conformance checks.

NOTE: To relinquish a member, or relinquish or destroy its related protection artifact members you can use the storage-service-cleanup API.

Inputs

Outputs

storage_service_workflow_list_info

Lists all the available workflows that storage service supports. The workflows returned in output are uniquely identifiable across workflow listings in OnCommand product suite.

Inputs

Outputs

system_about

Retrieve system information.

Inputs

Outputs

volume_by_aggregate_iter

Iterate over volumes contained entirely within a single aggregate. Currently returns flexible volumes and infinite volume constituents.

Inputs

Outputs

volume_iter

Iterate over volumes.

Inputs

Outputs

volume_move_history_list_info_iter_end

Ends the iteration to list the history of volume moves.

Inputs

Outputs

volume_move_history_list_info_iter_next

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

Inputs

Outputs

volume_move_history_list_info_iter_start

Starts the iteration to list the history of volume moves.

Inputs

Outputs

vserver_iter

Iterates through list of Vservers

Inputs

Outputs


TYPEDEFS

aggr-volume-move-info

Provides information about volumes moving into or out of aggregates.

Fields

aggregate-info

Information about a aggregate.

Fields

aggregate-size

Sizes of various parameters of an aggregate.

Fields

cluster-info

Cluster's information.

Fields

cluster-node-aggr-size

Information about the size of the aggregates in a node.

Fields

cluster-node-disk-info

Collected information about disks on a node. Optional items will not be returned if the value is not known.

Fields

cluster-node-info

Information for a given node.

Fields

cluster-node-interconnect-info

Collected information about a failover interconnect between two nodes.

Fields

flash-card-info

Collected information about a flash card on a node. Optional items will not be returned if the value is not known.

Fields

license

License information of the Data ONTAP service.

Fields

sfo-info

Information about the storage failover configuration of this node.

Fields

dp-relationship-info

Information about relationship.

Fields

dp-restore-request-info

Restore request information pertaining to a single restore request.

Fields

relationship-state

State of the relationship. Possible values are:

Fields

relationship-status

Status of the relationship. Possible values are:

Fields

relationship-type

Type of a relationship. Possible values are:

Fields

snapshot-identifier

Information used to identify a Snapshot copy within the storage system. In some cases the snapshot-identifier element might match multiple Snapshot copies. A unique match in the result is guaranteed, if 'snapshot-resource-key' is provided in the input of snapshot-identifier.

Fields

container-type

Type of overlying disk container. Possible values:

Fields

disk-info

Information about a disk.

Fields

disk-path-info

Contains per path statistics, errors and other related data.

Fields

disk-physical-summary-disk-info

Summary Disk Information.

Fields

disk-physical-summary-lun-info

Summary LUN Information.

Fields

event-action-info

Result of action taken on event. Timestamp returned on success, and error code on failure.

Fields

event-id-type

Event identifier.

Fields

event-info

Event information structure

Fields

event-note

Event note.

Fields

event-state

State of the event.

Possible values are: 'new', 'acknowledged', 'resolved', 'obsolete'.

Fields

event-timestamp-range

range of event timestamps

Fields

event-type-filter

Array of event filters.

Fields

event-category

Severity of the event.

Possible values are:

Fields

event-impact-area

Impact area of the event.

Possible values are: 'configuration', 'capacity', 'availability', 'protection'

Fields

event-impact-level

Impact level of the event.

Possible values are:

Fields

event-severity

Severity of the event.

Possible values are: 'normal', 'information', 'warning', 'error', 'critical'

Fields

igroup-info

Information about one igroup.

Fields

initiator-name

Name of the initiator.

Fields

job-detail

Detail information specific to the task base on task type.

Fields

job-id

Opaque identifier for a job.

Fields

job-info

Information about a job. A job may be triggered by an explicit user action or through scheduled operations. Each info includes current state of execution and status of the operation.

Fields

job-state

The state of the job. The possible values are:

Fields

job-status

The status of the job. Rolled up status of the whole job based on all tasks. The possible values are:

Fields

job-task-id

Opaque identifier for a job task.

Fields

job-task-info

Information about the action for executing one task.

Fields

job-type

Job types. The possible values are:

storage-service-job-info

Detail information specific to the task base on task type.

Fields

task-detail

Detailed information specific to the task based on task type.

Fields

task-interaction-object

An object that a task interacted with.

Fields

task-message-info

Task message information.

Fields

task-message-type

Task message types. The possible values are:

Fields

task-state

The state of the task. The possible values are:

Fields

task-status

The status of the task. Valid values are:

Fields

task-type

Task types. Valid values are:

Fields

transfer-progress-task-info

Data transfer progress update details.

Fields

igroup-reference

Name and Id of an igroup.

Fields

lun-info

Information about a lun.

Fields

data-protocol

Data protocol configured on an interface. Possible values:

Fields

net-interface-info

Information of about one interface.

Fields

portset-igroup

List of initiator group bound to the portset.

Fields

portset-info

Information about a portset.

Fields

portset-member

Name of the portset member (tpgroups or FCP data LIF).

Fields

resource-key

A self-describing string identifier for a managed resource.

Fields

resource-type

A canonical type name for a managed resource. Includes both Data ONTAP and OnCommand resource types. Valid Data ONTAP resource types: Valid OnCommand resource types:

Fields

resource-pool-info

Information about a resource pool.

Fields

snapshot-location-info

Information about where a replica of the specified snapshot copy is located.

Fields

snapshot-location-result-info

Results for the replica locations of the specified snapshot copy.

Fields

certificate

An X.509 certificate in Privacy Enhanced Mail (PEM) format.

Fields

certificate-chain

A chain of X.509 certificates in Privacy Enhanced Mail (PEM) format.

Fields

keyvalue

Name-value field pair in the metadata.

Fields

storage-service-import-info

Information about members to be imported into the storage service. Members are implied through the relationship source and destination objects.

Fields

storage-service-info

null

Fields

storage-service-member-info

Information about one member of a storage service.

Fields

storage-service-subscription-info

Information about one storage service subscription.

Fields

storage-service-subscription-member-info

Information about one member of a storage service subscription.

Fields

storage-service-topology-connection-info

Contains the configurable properties of the relationship between two nodes.

Fields

storage-service-topology-info

Information about the topology of a storage service which composite entity representing the nodes and connections of a protection and provisioning strategy.

Fields

storage-service-topology-node-info

storage-service-topology-node-info contains the information about a node.

Fields

storage-service-workflow-info

null

Fields

email-address

A single email address. It cannot contain spaces, semi-colons or unprintable characters.

Fields

file-system-block-type

Block Type of the file system. The volumes on both the source and destination sides of a SnapMirror relationship must be of the same block type. Volumes contained in a larger parent agregate may have a block-type of 64_bit. For upgraded systems it is possible that this value may be unknown until the system can determine the block-type. Possible values are:

Fields

key-value-pair

The key/value for a generic object attribute.

Fields

obj-full-name

Full name of an 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.

Full names are created 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:

For any object not listed above, the obj-name and obj-full-name are identical.

Fields

obj-id

Identification number (ID) for an 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 an 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 object type (e.g. cluster, volume, aggregate, 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 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.

Fields

obj-name

Name of an 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: 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 object type (e.g. cluster, vserver, volume 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.

Fields

obj-status

A status value which can be associated with an object. This typedef is an alias for the builtin ZAPI type string. The severity associated with an event has this type.

Possible values are: 'normal', 'warning', 'error', 'critical'.

In some contexts, it is important that severities are ordered (as above). For example, an alert might be triggered if an event with a given severity "or worse" occurs. In this example, worse means "after" in the list above.

Fields

obj-type

Type of a managed object. Possible values:

Fields

timestamp

Seconds since 1/1/1970 in UTC.

Fields

uuid

The 128-bit universally-unique identifier (UUID). UUIDs are formatted as 36-character strings. These strings are composed of 32 hexadecimal characters broken up into 5 groupings separated by '-'s. The first grouping consists of 8 hex characters, the second through fourth groupings consist of 4 hex characters each, and the fifth and final grouping consists of 12 hex characters. Note that a leading '0x' is not used. An example of an actual UUID is: 73a010ec-3d28-11df-84e8-123478563412.

Fields

constituent-volume-by-aggregate-info

Attributes applicable only for constituent volumes.

Fields

flexible-volume-info

Attributes applicable only for flexible volumes.

Fields

infinite-volume-info

Attributes applicable only for infinite volumes.

Fields

object-space-status

Space status of the object. This indicates the fullness of the object in terms of whether the percentage of used space with respect to total size of the object has reached the fullness thresholds. Possible values:

Fields

volume-by-aggregate-info

Information about an aggregate-based volume.

Fields

volume-clone-info

Volume FlexClone information. Based on the volume type the following fields are displayed:

For a FlexClone volume, the fields displayed are "clone-space-savings", "clone-space-savings-percentage", "is-clone-present", "is-clone", "parent-volume-resource-key" and "parent-volume-name".

For a parent volume containing FlexClone volumes, the fields displayed are "is-clone-present", "is-clone", and "clone-child-count".

For a volume that is both a FlexClone and parent volume, the fields displayed are "clone-space-savings", "clone-space-savings-percentage", "is-clone-present", "is-clone", "parent-volume-resource-key", "parent-volume-name", and "clone-child-count".

If the volume is neither a FlexClone volume nor a parent volume, then the "is-clone-present" and "is-clone" fields are displayed.

Fields

volume-efficiency-info

Volume efficiency information. Optional fields will not be returned if deduplication or compression have never run on the volume.

Fields

volume-info

Information about a volume.

Fields

volume-move-history-info

Information about a volume move.

Fields

volume-security-info

Unix oriented security settings associated with this volume.

Fields

volume-size

Collected size information about a volume.

Fields

cifs-domain-info

Details of the cifs domain.

Fields

dns-domain-name

DNS domain name for the Vserver.

Fields

name-server-switch

Name server switch configuration details for the Vserver

Fields

vserver-info

Vserver's information.

Fields

vserver-service-status

Status indicating whether a service is up or down.

Fields


COPYRIGHT

Copyright (c) 1994-2013 NetApp, Inc. All rights reserved.

The product described in this manual may be protected by one or more U.S.A. patents, foreign patents, or pending applications.

RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.277-7103 (October 1988) and FAR 52-227-19 (June 1987).