Add NetApp storage to ViPR using the REST API




This article provides ViPR System Administrators the ViPR support requirements, and prerequisite information to prepare NetApp storage systems for ViPR integration, and the steps to add the storage to ViPR using the REST API.

This article also describes how the storage is discovered, and registered after it is added to ViPR, and the important REST API calls to manage and configure the storage after it has been added, and discovered in ViPR.

This article applies to EMC ViPR 2.0.

This article is part of a series

Storage systems can be added to ViPR at anytime. If, however, you are setting up the ViPR Controller virtual data center for the first time, before you continue to provision storage, complete the following steps.
  1. Authenticate with the ViPR REST API
  2. Add physical assets to ViPR:
  3. Create ViPR virtual assets:
    1. Create and configure a virtual array
    2. Create virtual pools:


NetApp Storage System Support


ViPR Configuration Requirements for NetApp Storage Systems

Before adding NetApp storage to ViPR, configure the storage as follows.


Add a NetApp storage system

When you add a NetApp to ViPR, the array is automatically added to the ViPR discovery queue. If the credentials are correct, the array is automatically discovered. Storage system discovery adds the storage pools, and storage ports to ViPR. Storage systems that are registered are available to be used and managed by ViPR.

Before you begin

To successfully complete this procedure, you need the following information:
  • System Type - netapp.
  • IP Address - Direct the discovery request to the NetApp OnTap IP.
  • Port Number - The default is 443.
  • user_name - Name of the root account on the NetApp array.
  • password - Password of the root account on the NetApp array.

Authenticate with the ViPR REST API as System Administrator.

The EMC ViPR REST API Reference provides a description and complete list of parameters for the REST API methods used in this article.


  1. Add the NetApp storage system by sending a POST /vdc/storage-systems request. The request returns a task whose URI can be queried to determine the status of the task.

    POST https://<ViPR_VIP>:4443/vdc/storage-systems Content-Type: application/xml X-SDS-AUTH-TOKEN: <AUTH_TOKEN> <storage_system_create> <name>NetApp2</name> <system_type>netapp</system_type> <ip_address></ip_address> <port_number>443</port_number> <user_name>root</user_name> <password>dangerous1</password> </storage_system_create>


    HTTP 202 Accepted Content-Type: application/xml <task> <op_id>937200f1-16ef-4bd3-8c13-b79e6651f967</op_id> <resource> <id>urn:storageos:StorageSystem:b4c6efa0-bf8b-416a-9c01-5fc0a19f27a8:vdc1</id> <link href="/vdc/storage-systems/urn:storageos:StorageSystem:b4c6efa0-bf8b-416a-9c01-5fc0a19f27a8:vdc1" rel="self" /> <name>ISI_RAH</name> </resource> <link href="/vdc/storage-systems/urn:storageos:StorageSystem:b4c6efa0-bf8b-416a-9c01-5fc0a19f27a8:vdc1/tasks/937200f1-16ef-4bd3-8c13-b79e6651f967" rel="self" /> <start_time>1386303328118</start_time> <state>pending</state> </task>

  2. Query the NetApp create task, using the task URL from the response body of the POST request. When the message attribute of the task is Operation completed successfully, the operation has completed.

    GET https://<ViPR_VIP>:4443/vdc/storage-systems/{StorageSystem_urn}/tasks/937200f1-16ef-4bd3-8c13-b79e6651f967 Content-Type: application/xml X-SDS-AUTH-TOKEN: <AUTH_TOKEN>


    HTTP 200 OK Content-Type: application/xml <task> <associated_resources/> <end_time>1387489906247</end_time> <message>Operation completed successfully</message> <op_id>937200f1-16ef-4bd3-8c13-b79e6651f967</op_id> <resource> <id>urn:storageos:StorageSystem:b4c6efa0-bf8b-416a-9c01-5fc0a19f27a8:vdc1</id> <link href="/vdc/storage-systems/urn:storageos:StorageSystem:b4c6efa0-bf8b-416a-9c01-5fc0a19f27a8:vdc1" rel="self"/> <name>NetApp2</name> </resource> <link href="/vdc/storage-systems/urn:storageos:StorageSystem:b4c6efa0-bf8b-416a-9c01-5fc0a19f27a8:vdc1/tasks/937200f1-16ef-4bd3-8c13-b79e6651f967" rel="self"/> <start_time>1387489905274</start_time> <state>ready</state> </task>


Important REST API calls to manage and configure storage systems

The table shows some important APIs that are used to manage and configure storage systems.