Volume:Create Volume

Search (SHIFT+S)

API Reference


Modified since last release

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. Valid value: currently not supported for VMAX volumes URI
<count> Number of volumes to be created. Integer
<name> Name with which the volume is to be created. Valid value: minimum 2 characters and maximum 128 characters String Valid Values:
  •  Length: 2..128
<project> The ViPR project to which the volume will belong. URI
<size> Size of the volume (in GB) to be created. String
<varray> The virtual array to which the volume will belong. URI
<vpool> The virtual pool to which the volume will belong. URI
<computeResource> The host to which the volume is exported URI
</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 Valid values: queued = task is queued pending = task is pending ready = task succeed error = task fails String
<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>      
<queuedStartTime> DateTime
<queueName> String
<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
<link> A hyperlink to the details for this resource
<creation_time> A timestamp that shows when this resource was created in ViPR DateTime
<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
<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
</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: