Volume:Create Volume

Search (SHIFT+S)



Create Volume

POST /block/volumes

The fundamental abstraction in the Block Store is a volume. A volume is a unit of block storage capacity that has been allocated by a consumer to a project. This API allows the user to create one or more volumes. The volumes are created in the same storage pool. NOTE: This is an asynchronous operation.


Required Roles

This call has no restrictions.


Request Payload

All parameters are required unless otherwise stated.

Field Description Type Notes
<volume_create>
<consistency_group> This parameter will allow for the creation of a source consistency group. Once the source consistency group is established, the snapshot operations for any volume in the group would apply to all volumes in the group. URI Valid Values:
  •  example: Currently not supported for VMAX volumes.
<count> Number of volumes to be created. Integer
<name> Name with which the volume is to be created. String Valid Values:
  •  minimum of 2 characters
  •  maximum of 128 characters
  •  Length: 2..128
<project> The ViPR project to which the volume will belong. URI Valid Values:
  •  example: a valid URI of a ViPR project
<size> Size of the volume (in GB) to be created. String
<varray> The virtual array to which the volume will belong. URI Valid Values:
  •  example: a valid URI of a varray
<vpool> The virtual pool to which the volume will belong. URI Valid Values:
  •  example: a valid URI of a vpool
</volume_create>

Response Body

A reference to a BlockTaskList containing a list of TaskResourceRep references specifying the task data for the volume creation tasks.

This is an asychronous operation that returns a task object. For information on working with tasks, see Asynchronous Operations.

Field Description Type Notes
<tasks>
<task>     0-* Elements
<op_id> The task operation id String
<resource>    
<name> The name of the resource String
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</resource>      
<tenant>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</tenant>      
<associated_resources> A list of links for associated resources
<associated_resource>     0-* Elements
<name> The name of the resource String
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</associated_resource>      
</associated_resources>
<state> The state of the task String Valid Values:
  •  pending = task is pending
  •  ready = task succeed
  •  error = task fails
<message> The task detail message String
<description> The description of the task String
<service_error>    
<code> The numerical code associated with the error encountered when processing a service request Integer
<description> The description of the error String
<details> Detailed information concerning the error String
</service_error>      
<start_time> The date and time of when the task was started DateTime
<end_time> The date and time of when the task ended DateTime
<progress> Integer
<workflow>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</workflow>      
<name> The name assigned to this resource in ViPR. The resource name is set by a user and can be changed at any time. It is not a unique identifier. String
<id> An identifier that is generated by ViPR when the resource is created. The resource ID is guaranteed to be unique and immutable across all virtual data centers for all time. URI Valid Values:
  •  urn:storageos:resource-type:UUID:
<link> A hyperlink to the details for this resource
<creation_time> A timestamp that shows when this resource was created in ViPR DateTime Valid Values:
  •  YYYY-MM-DDTHH:mm:ssZ
<tags> Keywords and labels that can be added by a user to a resource to make it easy to find when doing a search.
<tag> String 0-* Elements
</tags>
<inactive> Whether or not the resource is inactive. When a user removes a resource, the resource is put in this state before it is removed from the ViPR database. Boolean Valid Values:
  •  true
  •  false
<global> Boolean
<remote> Boolean
<vdc>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</vdc>      
<internal> Whether or not the resource is an internal resource. Boolean Valid Values:
  •  true
  •  false
</task>      
</tasks>

Examples

Request
POST https://192.168.0.0:4443/block/volumes HTTP/1.1

Content-Type: application/xml
X-SDS-AUTH-TOKEN: <AUTH_TOKEN>

<volume_create>
     <name>volume1234</name>
     <size>1GB</size>
     <count>1</count>
     <project>urn:storageos:Project:7a6b150e-d224-492a-939b-57ca4d91d15a:</project>
     <varray>urn:storageos:VirtualArray:ae316135-5742-4f40-b4b0-8d38d9604917:</varray>
     <vpool>urn:storageos:VirtualPool:9cdc6936-4636-4909-a85f-3fd4c2e87e41:</vpool>
</volume_create>
Response
HTTP/1.1 200 OK 
Content-Type: application/xml 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <tasks>
       <task>
            <op_id>52c81901-3cc0-4428-a3ec-2e69dbdbf36f</op_id>
            <resource>
                 <id>urn:storageos:Volume:50c25b8b-589f-4896-ad14-b27b4de9b0e5:</id>
                 <link href="/block/volumes/urn:storageos:Volume:50c25b8b-589f-4896-ad14-b27b4de9b0e5:" rel="self"/>
                 <name>volume1234</name>
            </resource>
            <link href="/block/volumes/urn:storageos:Volume:50c25b8b-589f-4896-ad14-b27b4de9b0e5:/tasks/52c81901-3cc0-4428-a3ec-2e69dbdbf36f" rel="self"/>
            <start_time>1380041965765</start_time>
            <state>pending</state>
       </task>
  </tasks>





























<?xml version="1.0" encoding="UTF-8" standalone="yes"?><error><code>1021</code><description>Unable to find a suitable placement to handle the request</description><details>No matching storage pool found using virtual pool urn:storageos:VirtualPool:bf7104ec-3db2-4dcb-9e0d-7232a4460aea: and virtual array urn:storageos:VirtualArray:ae316135-5742-4f40-b4b0-8d38d9604917: as virtual pool contains 1) Pools are over subscribed. 2) Pools are over utilized. 3) No free space. 4) Reached Pool/System maximum resources limit.</details><retryable>false</retryable></error>
Notes: