云硬盘类型
创建云硬盘类型
功能介绍
- 创建一个云硬盘类型。api接口创建出来的云硬盘类型不带后端配置参数
volume_backend_name
,需要调用接口增加配置参数。 - 如果需要创建一个共享云硬盘类型,请参考
云硬盘类型增加配置参数
接口-请求示例2,为创建的云硬盘类型增加配置参数,使它成为一个共享云硬盘类型。
URI
示例:POST/v2/{project_id}/types
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
name | String | 是 | 卷的id。 |
os-volume-type-access:is_public | boolean | 否 | 可供所有用户使用的云硬盘类型。 |
description | String | 否 | 云硬盘类型的描述。 |
extra_specs | object | 否 | 包含云硬盘类型规范的一组键和值对。 |
请求示例
创建一个云硬盘类型
{
"volume_type": {
"name": "test-volume-type01",
"os-volume-type-access:is_public": true,
"description": "1234"
}
}
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
id | String | 云硬盘类型的id.。 |
extra_specs | String | 包含云硬盘类型规范的一组键和值对。 |
description | String | 云硬盘类型的描述或为空。 |
is_public | boolean | 可供所有用户访问的云硬盘类型。 |
name | String | 云硬盘类型的名称。 |
正常响应示例
{
"volume_type": {
"id": "90c35c4f-bdb2-43b5-ab3e-7be01586069d",
"name": "test-volume-type01",
"is_public": true,
"extra_specs": {},
"description": "1234",
"os-volume-type-access:is_public": true
}
}
查询云硬盘类型列表
功能介绍
列出租户可以访问的所有云硬盘类型。
URI
示例:GET /v2/{project_id}/types
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
limit | integer | 否 | 查询的最大个数限制 |
marker | String | 否 | 最后一项的ID。 |
sort_key | String | 否 | 按照云硬盘快照属性排序。 |
sort_dir | String | 否 | 排序方向。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
id | String | 云硬盘类型的id。 |
extra_specs | String | 包含云硬盘类型规范的一组键和值对。 |
description | String | 云硬盘类型的描述或为空。 |
is_public | boolean | 可供所有用户访问的云硬盘类型。 |
name | String | 云硬盘类型的名称。 |
qos_specs_id | String | qos规则的id。 |
os-volume-type-access:is_public | boolean | 可供所有用户访问的云硬盘类型。 |
响应示例
{
"volume_types": [
{
"id": "90c35c4f-bdb2-43b5-ab3e-7be01586069d",
"name": "test-volume-type01",
"is_public": true,
"description": "1234",
"extra_specs": {},
"qos_specs_id": null,
"os-volume-type-access:is_public": true
},
{
"id": "7cac2d14-5560-413d-bd23-9c4f421b3d6f",
"name": "hdd",
"is_public": true,
"description": null,
"extra_specs": {
"volume_backend_name": "hdd"
},
"qos_specs_id": null,
"os-volume-type-access:is_public": true
}
]
}
显示云硬盘类型的详细信息
功能介绍
显示一个云硬盘类型的详细信息。
URI
示例:GET /v2/{project_id}/types/{volume_type_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
volume_type_id | 是 | 云硬盘类型的id。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
id | String | 云硬盘类型的id.。 |
extra_specs | String | 包含云硬盘类型规范的一组键和值对。 |
description | String | 云硬盘类型的描述或为空。 |
is_public | boolean | 可供所有用户访问的云硬盘类型。 |
name | String | 云硬盘类型的名称。 |
qos_specs_id | String | qos规则的id。 |
os-volume-type-access:is_public | boolean | 可供所有用户访问的云硬盘类型。 |
响应示例
{
"volume_type": {
"id": "90c35c4f-bdb2-43b5-ab3e-7be01586069d",
"name": "test-volume-type01",
"is_public": true,
"description": "1234",
"extra_specs": {},
"qos_specs_id": null,
"os-volume-type-access:is_public": true
}
}
更新云硬盘类型
功能介绍
更新一个云硬盘类型。
URI
示例:PUT /v2/{project_id}/types/{volume_type_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
volume_type_id | 是 | 云硬盘类型的id。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
limit | integer | 否 | 查询的最大个数限制 |
marker | String | 否 | 最后一项的ID。 |
sort_key | String | 否 | 按照云硬盘快照属性排序。 |
sort_dir | String | 否 | 排序方向。 |
请求示例
更新一个云硬盘类型
{
"volume_type": {
"name": "hdd",
"description": "update_des1",
"is_public": false
}
}
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
id | String | 云硬盘类型的id.。 |
extra_specs | String | 包含云硬盘类型规范的一组键和值对。 |
description | String | 云硬盘类型的描述或为空。 |
is_public | boolean | 可供所有用户访问的云硬盘类型。 |
name | String | 云硬盘类型的名称。 |
响应示例
{
"volume_type": {
"id": "90c35c4f-bdb2-43b5-ab3e-7be01586069d",
"name": "update-volume-type01",
"is_public": true,
"extra_specs": {},
"description": "update info"
}
}
删除云硬盘类型
功能介绍
删除一个云硬盘类型。
前提条件
如果已经使用这个云硬盘类型创建过云硬盘,则不允许直接删除这个云硬盘类型。
URI
示例:DELETE /v2/{project_id}/types/{volume_type_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
volume_type_id | 是 | 云硬盘类型的id。 |
云硬盘类型增加配置参数
功能介绍
为云硬盘类型增加配置参数。
前提条件
- 请不要随便修改
volume_backend_name
后端配置项,配置项volume_backend_name
是必加配置参数,如果不加,用这个云硬盘类型创建的云硬盘将会随机调度到后端存储
URI
示例:POST /v2/{project_id}/types/{volume_type_id}/extra_specs
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
volume_type_id | 是 | 云硬盘类型的id。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
volume_backend_name | String | 是 | 创建云硬盘类型后增加volume_backend_name 配置参数,修改配置项时可不传 |
multiattach | String | 否 | 最后一项的ID。 |
请求示例1
为一个云硬盘类型添加后端配置参数。
{
"extra_specs": {
"volume_backend_name": "hdd"
}
}
响应示例
{
"extra_specs": {
"volume_backend_name": "hdd"
}
}
请求示例2
为一个云硬盘类型添加后端配置参数,增加multiattach
使其作为一个共享云硬盘类型
{
"extra_specs": {
"volume_backend_name": "hdd",
"multiattach": "<is> True"
}
}
响应示例
{
"extra_specs": {
"volume_backend_name": "hdd",
"multiattach": "<is> True"
}
}
云硬盘类型修改配置参数
功能介绍
为云硬盘类型修改配置参数。
前提条件
- 请不要随便修改
volume_backend_name
后端配置项 - 根据情况选择需要修改的配置参数
URI
示例:POST /v2/{project_id}/types/{volume_type_id}/extra_specs
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
volume_type_id | 是 | 云硬盘类型的id。 |
请求消息
参考增加配置项接口,传入需要修改的配置参数。
请求示例
修改云硬盘类型volume_backend_name
参数为ess
,增加配置参数test
{
"extra_specs": {
"volume_backend_name": "ess",
"test": "test"
}
}
响应示例
{
"extra_specs": {
"volume_backend_name": "ess",
"test": "test"
}
}
QoS规则
创建QoS规则
功能介绍
- 创建一个QoS规则。
URI
示例:POST /v2/{project_id}/qos-specs
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
name | String | 是 | QoS规则名称。 |
qos_specs | String | 是 | 一个qos_specs对象。 |
consumer | String | 是 | 生效对象。 |
请求示例
创建一个QoS规则
{
"qos_specs": {
"name": "test-qos1",
"consumer": "front-end"
}
}
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
qos_specs | String | qos_specs对象。 |
id | String | QoS规则的id |
name | String | QoS规则的名称。 |
consumer | boolean | 生效对象。 |
specs | String | 一个specs对象。 |
正常响应示例
{
"qos_specs": {
"id": "b69d8503-3984-48ef-a16e-a0ef37999789",
"name": "test-qos5",
"consumer": "front-end",
"specs": {}
},
"links": [
{
"rel": "self",
"href": "http://cinder-api.openstack.svc.cluster.local:8776/v3/056fd8e674cf4d63bc97d5f8c180fda2/qos-specs/b69d8503-3984-48ef-a16e-a0ef37999789"
},
{
"rel": "bookmark",
"href": "http://cinder-api.openstack.svc.cluster.local:8776/056fd8e674cf4d63bc97d5f8c180fda2/qos-specs/b69d8503-3984-48ef-a16e-a0ef37999789"
}
]
}
查询QoS规则列表
功能介绍
列出租户可以访问的所有QoS规则。
URI
示例:GET /v2/{project_id}/qos-specs
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
qos_specs | String | 一个qos_specs对象。 |
id | String | QoS规则的id |
name | String | QoS规则的名称。 |
consumer | boolean | 生效对象。 |
specs | String | 一个specs对象。 |
响应示例
{
"qos_specs": [
{
"id": "b69d8503-3984-48ef-a16e-a0ef37999789",
"name": "test-qos5",
"consumer": "front-end",
"specs": {
"total_bytes_sec": "100"
}
},
{
"id": "29ba7961-d443-48be-b6ed-bc095d2de0dc",
"name": "test-qos1",
"consumer": "front-end",
"specs": {
"total_bytes_sec": "100"
}
},
{
"id": "9ab8d8b2-864a-4cbc-a887-21f8c3a2304f",
"name": "test-qos",
"consumer": "back-end",
"specs": {
"read_bytes_sec": "111"
}
},
{
"id": "a19ce057-6303-4e79-a044-ca10ee56db2d",
"name": "test",
"consumer": "front-end",
"specs": {}
}
]
}
显示QoS规则的详细信息
功能介绍
显示QoS规则的详细信息。
URI
示例:GET /v2/{project_id}/qos-specs/{qos_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
qos_id | 是 | QoS规则的id。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
qos_specs | String | 一个qos_specs对象。 |
id | String | QoS规则的id |
name | String | QoS规则的名称。 |
consumer | boolean | 生效对象。 |
specs | String | 一个specs对象。 |
响应示例
{
"qos_specs": {
"id": "b69d8503-3984-48ef-a16e-a0ef37999789",
"name": "test-qos5",
"consumer": "front-end",
"specs": {
"total_bytes_sec": "100"
}
},
"links": [
{
"rel": "self",
"href": "http://cinder-api.openstack.svc.cluster.local:8776/v2/056fd8e674cf4d63bc97d5f8c180fda2/qos-specs/b69d8503-3984-48ef-a16e-a0ef37999789"
},
{
"rel": "bookmark",
"href": "http://cinder-api.openstack.svc.cluster.local:8776/056fd8e674cf4d63bc97d5f8c180fda2/qos-specs/b69d8503-3984-48ef-a16e-a0ef37999789"
}
]
}
删除QoS规则
功能介绍
删除一个QoS规则。
前提条件
请确定不再使用这个QoS规则,在进行删除。
URI
示例:DELETE /v2/{project_id}/qos-specs/{qos_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
qos_id | 是 | QoS规则的id。 |
为QoS规则增加配置参数
功能介绍
- 为QoS规则增加所需要的配置参数。
URI
示例:PUT /v2/{project_id}/qos-specs/{qos_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
qos_id | 是 | QoS规则的id。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
name | String | 是 | QoS规则名称。 |
qos_specs | String | 是 | 一个qos_specs对象。 |
请求示例
{
"qos_specs": {
"total_bytes_sec": "100"
}
}
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
qos_specs | String | qos_specs对象,包含配置参数。 |
正常响应示例
{
"qos_specs": {
"total_bytes_sec": "100"
}
}
删除QoS规则中的配置参数
功能介绍
- 删除QoS规则中的配置参数。
URI
示例:PUT /v2/{project_id}/qos-specs/{qos_id}/delete_keys
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
qos_id | 是 | QoS规则的id。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
keys | array | 是 | 键列表。 |
请求示例
{
"keys": [
"total_bytes_sec"
]
}
正常响应示例
QoS规则关联云硬盘类型
功能介绍
- QoS规则需要与云硬盘类型进行关联才能生效。
QoS规则关联或编辑不能对已挂载的云盘生效, 需要重新挂载才能使QoS规则生效。
URI
示例:GET /v2/{project_id}/qos-specs/{qos_id}/associate?vol_type_id={volume_type_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
qos_id | 是 | QoS规则的id。 |
vol_type_id | 是 | 云硬盘类型的id。 |
正常响应示例
移除QoS规则关联的云硬盘类型
功能介绍
- QoS规则需要与云硬盘类型进行关联才能生效。如果不需要可以移除QoS规则关联的云硬盘类型。
URI
示例:GET /v2/{project_id}/qos-specs/{qos_id}/disassociate?vol_type_id={volume_type_id}
说明:需使用“行内代码”样式。
参数 | 是否必选 | 描述 |
---|---|---|
project_id | 是 | 项目ID。 |
qos_id | 是 | QoS规则的id。 |
vol_type_id | 是 | 云硬盘类型的id。 |
正常响应示例
正常响应代码
200
错误码
400,401