Update volume¶
Overview¶
Updates a volume.
Classification¶
- Update
API Operation Object¶
- volumes
Synchronous / Asynchronous¶
- -
Request¶
HTTP Request Method¶
- PUT
HTTP Request Path¶
{api_endpoint}/v2/{tenant_id}/volumes/{volume_id}
HTTP Request Header¶
Format¶
Accept-Encoding: gzip, deflate, compress(optional)
Accept: application/json
X-Auth-Token: <token_id>
Content-Type: application/json
HTTP Request Body¶
Format¶
{
"volume": {
"name": "<display_name>",
"description": "<description>"
}
}
Request Parameter¶
name | style | format | description | required/optional |
---|---|---|---|---|
tenant_id | URI | String | The unique identifier of the tenant or account. | required |
volume_id | URI | UUID | The unique identifier of an existing volume. | required |
name | plain | String | The volume name. | required |
description | plain | String | The volume description. | required |
Response¶
HTTP Response Header¶
Format¶
HTTP/1.1 <response code> <message> (ex. 200 OK)
<response_code>: see "HTTP Responses" section
<message>: message based on the response code
- skip auto insert field such as "X-Compute-Request-Id" and "X-Openstack-Request-Id", "Content-Length", "Date"
Response Code¶
response code | condition |
---|---|
200 | normal end |
* | Follow a Common Error Code |
HTTP Response Body¶
Format¶
{
"volume": {
"status": "<status>",
"attachments": [],
"links": [
{
"href": "<volume_URL>",
"rel": "self"
},
{
"href": "<bookmark_URL>",
"rel": "bookmark"
}
],
"availability_zone": "<availability_zone>",
"source_volid": <source_volid>,
"snapshot_id": <snapshot_id>,
"id": "<volume_id>",
"description": "<description>",
"name": "<display_name>",
"created_at": "<created_at>",
"volume_type": "<volume_type_name>",
"size": <volume_size>,
"metadata": {
"contents": "not junk"
}
}
}
Response Parameter¶
item | format | description |
---|---|---|
status | String | The volume status. |
name | String | The volume name. |
attachments | dict | One or more instance attachments. |
availability_zone | String | The availability zone. |
created_at | time/date | Date and time when the volume was created. |
description | String | The volume description. |
volume_type | String | The associated volume type. |
snapshot_id | UUID | The ID of the source volume snapshot. |
source_volid | UUID | The ID of the source volume. |
metadata | String | One or more metadata key and value pairs to associate with the volume. |
id | UUID | The volume ID. |
size | int | The size of the volume, in gibibytes (GiB). |
Sample API Request and Response¶
Sample API Request¶
Request URI¶
https://example.com/v2/{tenant_id}/volumes/{volume_id}
Request Header¶
Accept-Encoding: gzip, deflate, compress(optional)
Accept: application/json
X-Auth-Token: ajk3adjiown02
Content-Type: application/json
Request Body¶
{
"volume": {
"name": "vol-003",
"description": "This is yet, another volume."
}
}
Sample API Response¶
Response Header¶
HTTP/1.1 200 OK
<response_code>: see "HTTP Responses" section
<message>: message based on the response code
- skip auto insert field such as "X-Compute-Request-Id" and "X-Openstack-Request-Id", "Content-Length", "Date"
Response Body¶
{
"volume": {
"status": "available",
"attachments": [],
"links": [
{
"href": "http://localhost:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "self"
},
{
"href": "http://localhost:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "bookmark"
}
],
"availability_zone": "nova",
"source_volid": null,
"snapshot_id": null,
"id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
"description": "This is yet, another volume.",
"name": "vol-003",
"created_at": "2013-02-25T02:40:21.000000",
"volume_type": "None",
"size": 1,
"metadata": {
"contents": "not junk"
}
}
}
Execution Example¶
HTTP Request¶
PUT /v2/cb8aa2a2c7244af5aab1fa7881ba7f4c/volumes/ec48eb1f-f32e-43ee-97ab-9a6c453bc3b2 HTTP/1.1
User-Agent: curl/7.35.0
Host: 192.168.56.250:8776
X-Auth-Token: e5b9c5a08fa3481f848792a79378251e
Content-type: application/json
Accept: application/json
Content-Length: 77
{"volume": {"name": "vol-003","description": "This is yet, another volume."}}
HTTP Response¶
HTTP/1.1 200 OK
X-Compute-Request-Id: req-c168583e-53b5-49da-ba79-b03c7dda5667
Content-Type: application/json
Content-Length: 774
X-Openstack-Request-Id: req-c168583e-53b5-49da-ba79-b03c7dda5667
Date: Thu, 15 Oct 2015 09:33:12 GMT
{"volume": {"status": "available", "user_id": "857ce5a8b28b4233b019d047fec80276", "attachments": [], "links": [{"href": "http://192.168.56.250:8776/v2/cb8aa2a2c7244af5aab1fa7881ba7f4c/volumes/ec48eb1f-f32e-43ee-97ab-9a6c453bc3b2", "rel": "self"}, {"href": "http://192.168.56.250:8776/cb8aa2a2c7244af5aab1fa7881ba7f4c/volumes/ec48eb1f-f32e-43ee-97ab-9a6c453bc3b2", "rel": "bookmark"}], "availability_zone": "nova", "bootable": "false", "encrypted": false, "created_at": "2015-10-15T09:29:28.000000", "description": "This is yet, another volume.", "volume_type": "lvmdriver-1", "name": "vol-003", "replication_status": "disabled", "consistencygroup_id": null, "source_volid": null, "snapshot_id": null, "metadata": {}, "id": "ec48eb1f-f32e-43ee-97ab-9a6c453bc3b2", "size": 1}}
Error Execution Example¶
HTTP Request¶
PUT /v2/cb8aa2a2c7244af5aab1fa7881ba7f4/volumes/ec48eb1f-f32e-43ee-97ab-9a6c453bc3b2 HTTP/1.1
User-Agent: curl/7.35.0
Host: 192.168.56.250:8776
X-Auth-Token: e5b9c5a08fa3481f848792a79378251e
Content-type: application/json
Accept: application/json
Content-Length: 77
{"volume": {"name": "vol-003","description": "This is yet, another volume."}}
HTTP Response¶
HTTP/1.1 400 Bad Request
Content-Length: 65
Content-Type: application/json; charset=UTF-8
X-Compute-Request-Id: req-49dc502c-d213-4e7f-b858-fab30015e81f
X-Openstack-Request-Id: req-49dc502c-d213-4e7f-b858-fab30015e81f
Date: Thu, 15 Oct 2015 09:33:27 GMT
{"badRequest": {"message": "Malformed request url", "code": 400}}