Reservation API v1

这是由 Blazar 项目提供的 OpenStack Reservation API 的参考。

租赁

*_date 参数的日期和时间格式为 CCYY-MM-DD hh:mm。例如,2017-12-26 12:00

GET
v1/leases

列出租赁

列出租赁。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),内部服务器错误(500)

请求

没有正文内容、路径或查询选项。

响应

通用参数

名称

入参

类型

描述

leases

body

数组

一个 lease 对象列表。

id

body

字符串

租赁的 UUID。

name

body

字符串

租赁的名称。

start_date

body

字符串

租赁的开始日期和时间。

end_date

body

字符串

租赁的结束日期和时间。

status

body

字符串

租赁的状态。

degraded

body

布尔值

租赁的保留资源的标志。当预订的missing_resourcesresources_changed 设置为 True 时,此标志设置为 True。

user_id

body

字符串

租赁所有者的 UUID。

project_id

body

字符串

拥有租赁的项目 UUID。

trust_id

body

字符串

租赁所有者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

reservations

body

数组

一个 reservation 对象列表。

reservation.id

body

字符串

预订的 UUID。

reservation.lease_id

body

字符串

预订所属的租赁的 UUID。

reservation.status

body

字符串

预订的状态。

reservation.missing_resources

body

布尔值

保留资源容量的标志。如果保留的资源量少于请求量,则设置为 True。

reservation.resources_changed

body

布尔值

保留资源更改的标志。如果租赁开始后保留的资源发生更改,则设置为 True。

reservation.resource_id

body

字符串

预订的资源对象的 ID。

reservation.resource_type

body

字符串

要预订的资源类型。

注意

physical:hostvirtual:instance 类型受支持。

reservation.created_at

body

字符串

创建对象的时间和日期。

reservation.updated_at

body

字符串

更新对象的时间和日期。

events

body

数组

一个 event 对象列表。

event.id

body

字符串

事件的 UUID。

event.lease_id

body

字符串

事件所属的租赁的 UUID。

event.status

body

字符串

事件的状态。

event.event_type

body

字符串

事件的类型。

event.time

body

字符串

事件的日期和时间。

event.created_at

body

字符串

创建对象的时间和日期。

event_updated_at

body

字符串

更新对象的时间和日期。

主机预订参数

以下参数用于主机预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.min

body

整数

要预订的最小主机数。该值应大于 0。

reservation.max

body

整数

要预订的最大主机数。该值应大于或等于 min 值。

reservation.hypervisor_properties

body

字符串

要预订的 hypervisor 的属性。

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.before_end

body

字符串

预订的 before-end 操作。

注意

defaultsnapshot 操作受支持。

实例预订参数

以下参数用于实例预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.amount

body

整数

要预订的实例数量。该值应大于 0。

reservation.vcpus

body

整数

每个实例的 VCPU 数量。

reservation.memory_mb

body

整数

每个实例的内存 MB 数。

reservation.disk_gb

body

字符串

每个实例的本地磁盘 GB 数。

reservation.affinity

body

trilean

要预订的实例的亲和性。该值应为 TrueFalseNone

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.flavor_id

body

字符串

用于在保留资源上启动实例的 flavor ID。

reservation.server_group_id

body

字符串

在保留资源上启动实例时指定的 server group ID。

reservation.aggregate_id

body

整数

预订的 aggregate ID。

列出租赁响应示例

{
    "leases": [
        {
            "id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
            "name": "lease_foo",
            "start_date": "2017-12-26T12:00:00.000000",
            "end_date": "2017-12-27T12:00:00.000000",
            "status":"PENDING",
            "degraded": false,
            "user_id": "5434f637520d4c17bbf254af034b0320",
            "project_id": "aa45f56901ef45ee95e3d211097c0ea3",
            "trust_id": "b442a580b9504ababf305bf2b4c49512",
            "created_at": "2017-12-27 10:00:00",
            "updated_at": null,
            "reservations": [
                {
                    "id": "087bc740-6d2d-410b-9d47-c7b2b55a9d36",
                    "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                    "status": "pending",
                    "missing_resources": false,
                    "resources_changed": false,
                    "resource_id": "5e6c0e6e-f1e6-490b-baaf-50deacbbe371",
                    "resource_type": "physical:host",
                    "min": 4,
                    "max": 6,
                    "hypervisor_properties": "[\">=\", \"$vcpus\", \"4\"]",
                    "resource_properties": "",
                    "before_end": "default",
                    "created_at": "2017-12-27 10:00:00",
                    "updated_at": null
                },
                {
                    "id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                    "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                    "status": "pending",
                    "missing_resources": false,
                    "resources_changed": false,
                    "resource_id": "0b901727-cca2-43ed-bcc8-c21b0982dcb1",
                    "resource_type": "virtual:instance",
                    "amount": 4,
                    "vcpus": 2,
                    "memory_mb": 4096,
                    "disk_gb": 100,
                    "affinity": false,
                    "resource_properties": "",
                    "flavor_id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                    "server_group_id": "33cdfc42-5a04-4fcc-b190-1abebaa056bb",
                    "aggregate_id": 11,
                    "created_at": "2017-12-27 10:00:00",
                    "updated_at": null
                }
            ],
            "events": [
                {
                    "id": "188a8584-f832-4df9-9a4a-51e6364420ff",
                    "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                    "status": "UNDONE",
                    "event_type": "start_lease",
                    "time": "2017-12-26T12:00:00.000000",
                    "created_at": "2017-12-27 10:00:00",
                    "updated_at": null
                },
                {
                    "id": "277d6436-dfcb-4eae-ae5e-ac7fa9c2fd56",
                    "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                    "status": "UNDONE",
                    "event_type": "end_lease",
                    "time": "2017-12-27T12:00:00.000000",
                    "created_at": "2017-12-27 10:00:00",
                    "updated_at": null
                },
                {
                    "id": "f583af71-ca21-4b66-87de-52211d118029",
                    "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                    "status": "UNDONE",
                    "time": "2017-12-27T11:00:00.000000",
                    "event_type": "before_end_lease",
                    "created_at": "2017-12-27 10:00:00",
                    "updated_at": null
                }
            ]
        }
    ]
}
POST
v1/leases

创建租赁

创建一个租赁。

响应代码

正常响应代码:201

错误响应代码:请求错误(400),未授权(401),禁止(403),冲突(409),内部服务器错误(500)

请求

通用参数

名称

入参

类型

描述

name

body

字符串

租赁的名称。

start_date

body

字符串

租赁的开始日期和时间。

注意

如果指定了 now,则租赁将立即开始。

end_date

body

字符串

租赁的结束日期和时间。

before_end_date (可选)

body

字符串

租赁的 before-end 操作的日期和时间。

reservations

body

数组

一个 reservation 对象列表。

reservation.resource_type

body

字符串

要预订的资源类型。

注意

physical:hostvirtual:instance 类型受支持。

events (可选)

body

数组

一个 event 对象列表。

主机预订参数

以下参数是主机预订必需的。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.min

body

整数

要预订的最小主机数。该值应大于 0。

reservation.max

body

整数

要预订的最大主机数。该值应大于或等于 min 值。

reservation.hypervisor_properties

body

字符串

要预订的 hypervisor 的属性。

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.before_end (可选)

body

字符串

预订的 before-end 操作。

注意

defaultsnapshot 操作受支持。

实例预订参数

以下参数是实例预订必需的。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.amount

body

整数

要预订的实例数量。该值应大于 0。

reservation.vcpus

body

整数

每个实例的 VCPU 数量。

reservation.memory_mb

body

整数

每个实例的内存 MB 数。

reservation.disk_gb

body

字符串

每个实例的本地磁盘 GB 数。

reservation.affinity

body

trilean

要预订的实例的亲和性。该值应为 TrueFalseNone

reservation.resource_properties

body

字符串

要预订的资源的属性。

创建租赁请求示例

{
    "name": "lease_foo",
    "start_date": "2017-12-26 12:00",
    "end_date": "2017-12-27 12:00",
    "before_end_date": "2017-12-27 11:00",
    "reservations": [
        {
            "resource_type": "physical:host",
            "min": 4,
            "max": 6,
            "hypervisor_properties": "[\">=\", \"$vcpus\", \"4\"]",
            "resource_properties": "",
            "before_end": "default"
        },
        {
            "resource_type": "virtual:instance",
            "amount": 4,
            "vcpus": 2,
            "memory_mb": 4096,
            "disk_gb": 100,
            "affinity": false,
            "resource_properties": ""
        }
    ],
    "events": []
}

响应

通用参数

名称

入参

类型

描述

lease

body

对象

一个 lease 对象。

id

body

字符串

租赁的 UUID。

name

body

字符串

租赁的名称。

start_date

body

字符串

租赁的开始日期和时间。

end_date

body

字符串

租赁的结束日期和时间。

status

body

字符串

租赁的状态。

degraded

body

布尔值

租赁的保留资源的标志。当预订的missing_resourcesresources_changed 设置为 True 时,此标志设置为 True。

user_id

body

字符串

租赁所有者的 UUID。

project_id

body

字符串

拥有租赁的项目 UUID。

trust_id

body

字符串

租赁所有者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

reservations

body

数组

一个 reservation 对象列表。

reservation.id

body

字符串

预订的 UUID。

reservation.lease_id

body

字符串

预订所属的租赁的 UUID。

reservation.status

body

字符串

预订的状态。

reservation.missing_resources

body

布尔值

保留资源容量的标志。如果保留的资源量少于请求量,则设置为 True。

reservation.resources_changed

body

布尔值

保留资源更改的标志。如果租赁开始后保留的资源发生更改,则设置为 True。

reservation.resource_id

body

字符串

预订的资源对象的 ID。

reservation.resource_type

body

字符串

要预订的资源类型。

注意

physical:hostvirtual:instance 类型受支持。

reservation.created_at

body

字符串

创建对象的时间和日期。

reservation.updated_at

body

字符串

更新对象的时间和日期。

events

body

数组

一个 event 对象列表。

event.id

body

字符串

事件的 UUID。

event.lease_id

body

字符串

事件所属的租赁的 UUID。

event.status

body

字符串

事件的状态。

event.event_type

body

字符串

事件的类型。

event.time

body

字符串

事件的日期和时间。

event.created_at

body

字符串

创建对象的时间和日期。

event_updated_at

body

字符串

更新对象的时间和日期。

主机预订参数

以下参数用于主机预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.min

body

整数

要预订的最小主机数。该值应大于 0。

reservation.max

body

整数

要预订的最大主机数。该值应大于或等于 min 值。

reservation.hypervisor_properties

body

字符串

要预订的 hypervisor 的属性。

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.before_end

body

字符串

预订的 before-end 操作。

注意

defaultsnapshot 操作受支持。

实例预订参数

以下参数用于实例预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.amount

body

整数

要预订的实例数量。该值应大于 0。

reservation.vcpus

body

整数

每个实例的 VCPU 数量。

reservation.memory_mb

body

整数

每个实例的内存 MB 数。

reservation.disk_gb

body

字符串

每个实例的本地磁盘 GB 数。

reservation.affinity

body

trilean

要预订的实例的亲和性。该值应为 TrueFalseNone

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.flavor_id

body

字符串

用于在保留资源上启动实例的 flavor ID。

reservation.server_group_id

body

字符串

在保留资源上启动实例时指定的 server group ID。

reservation.aggregate_id

body

整数

预订的 aggregate ID。

创建租赁响应示例

{
    "lease": {
        "id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
        "name": "lease_foo",
        "start_date": "2017-12-26T12:00:00.000000",
        "end_date": "2017-12-27T12:00:00.000000",
        "status":"PENDING",
        "degraded": false,
        "user_id": "5434f637520d4c17bbf254af034b0320",
        "project_id": "aa45f56901ef45ee95e3d211097c0ea3",
        "trust_id": "b442a580b9504ababf305bf2b4c49512",
        "created_at": "2017-12-27 10:00:00",
        "updated_at": null,
        "reservations": [
            {
                "id": "087bc740-6d2d-410b-9d47-c7b2b55a9d36",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "pending",
                "missing_resources": false,
                "resources_changed": false,
                "resource_id": "5e6c0e6e-f1e6-490b-baaf-50deacbbe371",
                "resource_type": "physical:host",
                "min": 4,
                "max": 6,
                "hypervisor_properties": "[\">=\", \"$vcpus\", \"4\"]",
                "resource_properties": "",
                "before_end": "default",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "pending",
                "missing_resources": false,
                "resources_changed": false,
                "resource_id": "0b901727-cca2-43ed-bcc8-c21b0982dcb1",
                "resource_type": "virtual:instance",
                "amount": 4,
                "vcpus": 2,
                "memory_mb": 4096,
                "disk_gb": 100,
                "affinity": false,
                "resource_properties": "",
                "flavor_id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                "server_group_id": "33cdfc42-5a04-4fcc-b190-1abebaa056bb",
                "aggregate_id": 11,
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            }
        ],
        "events": [
            {
                "id": "188a8584-f832-4df9-9a4a-51e6364420ff",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "event_type": "start_lease",
                "time": "2017-12-26T12:00:00.000000",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "277d6436-dfcb-4eae-ae5e-ac7fa9c2fd56",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "event_type": "end_lease",
                "time": "2017-12-27T12:00:00.000000",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "f583af71-ca21-4b66-87de-52211d118029",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "time": "2017-12-27T11:00:00.000000",
                "event_type": "before_end_lease",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            }
        ]
    }
}
GET
v1/leases/{lease_id}

显示租赁详情

显示租赁的详情。

先决条件

租赁必须存在。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),内部服务器错误(500)

请求

名称

入参

类型

描述

lease_id

路径

字符串

租赁的 UUID。

响应

通用参数

名称

入参

类型

描述

lease

body

对象

一个 lease 对象。

id

body

字符串

租赁的 UUID。

name

body

字符串

租赁的名称。

start_date

body

字符串

租赁的开始日期和时间。

end_date

body

字符串

租赁的结束日期和时间。

status

body

字符串

租赁的状态。

degraded

body

布尔值

租赁的保留资源的标志。当预订的missing_resourcesresources_changed 设置为 True 时,此标志设置为 True。

user_id

body

字符串

租赁所有者的 UUID。

project_id

body

字符串

拥有租赁的项目 UUID。

trust_id

body

字符串

租赁所有者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

reservations

body

数组

一个 reservation 对象列表。

reservation.id

body

字符串

预订的 UUID。

reservation.lease_id

body

字符串

预订所属的租赁的 UUID。

reservation.status

body

字符串

预订的状态。

reservation.missing_resources

body

布尔值

保留资源容量的标志。如果保留的资源量少于请求量,则设置为 True。

reservation.resources_changed

body

布尔值

保留资源更改的标志。如果租赁开始后保留的资源发生更改,则设置为 True。

reservation.resource_id

body

字符串

预订的资源对象的 ID。

reservation.resource_type

body

字符串

要预订的资源类型。

注意

physical:hostvirtual:instance 类型受支持。

reservation.created_at

body

字符串

创建对象的时间和日期。

reservation.updated_at

body

字符串

更新对象的时间和日期。

events

body

数组

一个 event 对象列表。

event.id

body

字符串

事件的 UUID。

event.lease_id

body

字符串

事件所属的租赁的 UUID。

event.status

body

字符串

事件的状态。

event.event_type

body

字符串

事件的类型。

event.time

body

字符串

事件的日期和时间。

event.created_at

body

字符串

创建对象的时间和日期。

event_updated_at

body

字符串

更新对象的时间和日期。

主机预订参数

以下参数用于主机预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.min

body

整数

要预订的最小主机数。该值应大于 0。

reservation.max

body

整数

要预订的最大主机数。该值应大于或等于 min 值。

reservation.hypervisor_properties

body

字符串

要预订的 hypervisor 的属性。

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.before_end

body

字符串

预订的 before-end 操作。

注意

defaultsnapshot 操作受支持。

实例预订参数

以下参数用于实例预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.amount

body

整数

要预订的实例数量。该值应大于 0。

reservation.vcpus

body

整数

每个实例的 VCPU 数量。

reservation.memory_mb

body

整数

每个实例的内存 MB 数。

reservation.disk_gb

body

字符串

每个实例的本地磁盘 GB 数。

reservation.affinity

body

trilean

要预订的实例的亲和性。该值应为 TrueFalseNone

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.flavor_id

body

字符串

用于在保留资源上启动实例的 flavor ID。

reservation.server_group_id

body

字符串

在保留资源上启动实例时指定的 server group ID。

reservation.aggregate_id

body

整数

预订的 aggregate ID。

显示租赁详情响应示例

{
    "lease": {
        "id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
        "name": "lease_foo",
        "start_date": "2017-12-26T12:00:00.000000",
        "end_date": "2017-12-27T12:00:00.000000",
        "status":"PENDING",
        "degraded": false,
        "user_id": "5434f637520d4c17bbf254af034b0320",
        "project_id": "aa45f56901ef45ee95e3d211097c0ea3",
        "trust_id": "b442a580b9504ababf305bf2b4c49512",
        "created_at": "2017-12-27 10:00:00",
        "updated_at": null,
        "reservations": [
            {
                "id": "087bc740-6d2d-410b-9d47-c7b2b55a9d36",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "pending",
                "missing_resources": false,
                "resources_changed": false,
                "resource_id": "5e6c0e6e-f1e6-490b-baaf-50deacbbe371",
                "resource_type": "physical:host",
                "min": 4,
                "max": 6,
                "hypervisor_properties": "[\">=\", \"$vcpus\", \"4\"]",
                "resource_properties": "",
                "before_end": "default",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "pending",
                "missing_resources": false,
                "resources_changed": false,
                "resource_id": "0b901727-cca2-43ed-bcc8-c21b0982dcb1",
                "resource_type": "virtual:instance",
                "amount": 4,
                "vcpus": 2,
                "memory_mb": 4096,
                "disk_gb": 100,
                "affinity": false,
                "resource_properties": "",
                "flavor_id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                "server_group_id": "33cdfc42-5a04-4fcc-b190-1abebaa056bb",
                "aggregate_id": 11,
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            }
        ],
        "events": [
            {
                "id": "188a8584-f832-4df9-9a4a-51e6364420ff",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "event_type": "start_lease",
                "time": "2017-12-26T12:00:00.000000",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "277d6436-dfcb-4eae-ae5e-ac7fa9c2fd56",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "event_type": "end_lease",
                "time": "2017-12-27T12:00:00.000000",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "f583af71-ca21-4b66-87de-52211d118029",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "time": "2017-12-27T11:00:00.000000",
                "event_type": "before_end_lease",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            }
        ]
    }
}
PUT
v1/leases/{lease_id}

更新租赁

更新一个租赁。

先决条件

租赁必须存在。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),冲突(409),内部服务器错误(500)

请求

通用参数

名称

入参

类型

描述

lease_id

路径

字符串

租赁的 UUID。

name (可选)

body

字符串

租赁的名称。

start_date (可选)

body

字符串

租赁的开始日期和时间。

注意

如果指定了 now,则租赁将立即开始。

end_date (可选)

body

字符串

租赁的结束日期和时间。

before_end_date (可选)

body

字符串

租赁的 before-end 操作的日期和时间。

reservations (可选)

body

数组

一个 reservation 对象列表。

reservation.id

body

字符串

预订的 UUID。

主机预订参数

以下参数是主机预订必需的。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.min (可选)

body

整数

要预订的最小主机数。该值应大于 0。

reservation.max (可选)

body

整数

要预订的最大主机数。该值应大于或等于 min

reservation.hypervisor_properties

body

字符串

要预订的 hypervisor 的属性。

reservation.resource_properties (可选)

body

字符串

要预订的资源的属性。

reservation.before_end (可选)

body

字符串

预订的 before-end 操作。

注意

defaultsnapshot 操作受支持。

实例预订参数

以下参数是实例预订必需的。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.amount (可选)

body

整数

要预订的实例数量。该值应大于 0。

reservation.vcpus (可选)

body

整数

每个实例的 VCPU 数量。

reservation.memory_mb (可选)

body

整数

每个实例的内存 MB 数。

reservation.disk_gb (可选)

body

字符串

每个实例的本地磁盘 GB 数。

reservation.affinity (可选)

body

trilean

要预订的实例的亲和性。该值应为 TrueFalseNone

reservation.resource_properties (可选)

body

字符串

要预订的资源的属性。

更新租赁请求示例

{
    "end_date": "2017-12-28 12:00",
    "reservations": [
        {
            "id": "087bc740-6d2d-410b-9d47-c7b2b55a9d36",
            "min": 6,
            "max": 8
        },
        {
            "id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
            "amount": 6
        }
    ],
    "events": []
}

Response

通用参数

名称

入参

类型

描述

lease

body

对象

一个 lease 对象。

id

body

字符串

租赁的 UUID。

name

body

字符串

租赁的名称。

start_date

body

字符串

租赁的开始日期和时间。

end_date

body

字符串

租赁的结束日期和时间。

status

body

字符串

租赁的状态。

degraded

body

布尔值

租赁的保留资源的标志。当预订的missing_resourcesresources_changed 设置为 True 时,此标志设置为 True。

user_id

body

字符串

租赁所有者的 UUID。

project_id

body

字符串

拥有租赁的项目 UUID。

trust_id

body

字符串

租赁所有者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

reservations

body

数组

一个 reservation 对象列表。

reservation.id

body

字符串

预订的 UUID。

reservation.lease_id

body

字符串

预订所属的租赁的 UUID。

reservation.status

body

字符串

预订的状态。

reservation.missing_resources

body

布尔值

保留资源容量的标志。如果保留的资源量少于请求量,则设置为 True。

reservation.resources_changed

body

布尔值

保留资源更改的标志。如果租赁开始后保留的资源发生更改,则设置为 True。

reservation.resource_id

body

字符串

预订的资源对象的 ID。

reservation.resource_type

body

字符串

要预订的资源类型。

注意

physical:hostvirtual:instance 类型受支持。

reservation.created_at

body

字符串

创建对象的时间和日期。

reservation.updated_at

body

字符串

更新对象的时间和日期。

events

body

数组

一个 event 对象列表。

event.id

body

字符串

事件的 UUID。

event.lease_id

body

字符串

事件所属的租赁的 UUID。

event.status

body

字符串

事件的状态。

event.event_type

body

字符串

事件的类型。

event.time

body

字符串

事件的日期和时间。

event.created_at

body

字符串

创建对象的时间和日期。

event_updated_at

body

字符串

更新对象的时间和日期。

主机预订参数

以下参数用于主机预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.min

body

整数

要预订的最小主机数。该值应大于 0。

reservation.max

body

整数

要预订的最大主机数。该值应大于或等于 min 值。

reservation.hypervisor_properties

body

字符串

要预订的 hypervisor 的属性。

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.before_end

body

字符串

预订的 before-end 操作。

注意

defaultsnapshot 操作受支持。

实例预订参数

以下参数用于实例预订返回。所有参数都在 reservation 对象中。

名称

入参

类型

描述

reservation.amount

body

整数

要预订的实例数量。该值应大于 0。

reservation.vcpus

body

整数

每个实例的 VCPU 数量。

reservation.memory_mb

body

整数

每个实例的内存 MB 数。

reservation.disk_gb

body

字符串

每个实例的本地磁盘 GB 数。

reservation.affinity

body

trilean

要预订的实例的亲和性。该值应为 TrueFalseNone

reservation.resource_properties

body

字符串

要预订的资源的属性。

reservation.flavor_id

body

字符串

用于在保留资源上启动实例的 flavor ID。

reservation.server_group_id

body

字符串

在保留资源上启动实例时指定的 server group ID。

reservation.aggregate_id

body

整数

预订的 aggregate ID。

更新租赁响应示例

{
    "lease": {
        "id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
        "name": "lease_foo",
        "start_date": "2017-12-26T12:00:00.000000",
        "end_date": "2017-12-28T12:00:00.000000",
        "status":"PENDING",
        "degraded": false,
        "user_id": "5434f637520d4c17bbf254af034b0320",
        "project_id": "aa45f56901ef45ee95e3d211097c0ea3",
        "trust_id": "b442a580b9504ababf305bf2b4c49512",
        "created_at": "2017-12-27 10:00:00",
        "updated_at": null,
        "reservations": [
            {
                "id": "087bc740-6d2d-410b-9d47-c7b2b55a9d36",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "pending",
                "missing_resources": false,
                "resources_changed": false,
                "resource_id": "5e6c0e6e-f1e6-490b-baaf-50deacbbe371",
                "resource_type": "physical:host",
                "min": 6,
                "max": 8,
                "hypervisor_properties": "[\">=\", \"$vcpus\", \"4\"]",
                "resource_properties": "",
                "before_end": "default",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "pending",
                "missing_resources": false,
                "resources_changed": false,
                "resource_id": "0b901727-cca2-43ed-bcc8-c21b0982dcb1",
                "resource_type": "virtual:instance",
                "amount": 6,
                "vcpus": 2,
                "memory_mb": 4096,
                "disk_gb": 100,
                "affinity": false,
                "resource_properties": "",
                "flavor_id": "ddc45423-f863-4e4e-8e7a-51d27cfec962",
                "server_group_id": "33cdfc42-5a04-4fcc-b190-1abebaa056bb",
                "aggregate_id": 11,
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            }
        ],
        "events": [
            {
                "id": "188a8584-f832-4df9-9a4a-51e6364420ff",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "event_type": "start_lease",
                "time": "2017-12-26T12:00:00.000000",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "277d6436-dfcb-4eae-ae5e-ac7fa9c2fd56",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "event_type": "end_lease",
                "time": "2017-12-27T12:00:00.000000",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            },
            {
                "id": "f583af71-ca21-4b66-87de-52211d118029",
                "lease_id": "6ee55c78-ac52-41a6-99af-2d2d73bcc466",
                "status": "UNDONE",
                "time": "2017-12-27T11:00:00.000000",
                "event_type": "before_end_lease",
                "created_at": "2017-12-27 10:00:00",
                "updated_at": null
            }
        ]
    }
}
DELETE
v1/leases/{lease_id}

删除租赁

删除一个租赁。

先决条件

租赁必须存在。

响应代码

正常响应代码:204

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),冲突(409),内部服务器错误(500)

请求

名称

入参

类型

描述

lease_id

路径

字符串

租赁的 UUID。

响应

成功删除后不返回正文内容。

主机

GET
v1/os-hosts

列出宿主机

列出主机。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),内部服务器错误(500)

请求

没有正文内容、路径或查询选项。

响应

名称

入参

类型

描述

hosts

body

数组

一个 host 对象列表。

id

body

字符串

主机的 ID。

hypervisor_hostname

body

字符串

主机的 hypervisor 名称。

hypervisor_type

body

字符串

主机的 hypervisor 类型。

hypervisor_version

body

整数

主机的 hypervisor 版本。

vcpus

body

整数

主机的 VCPU 数量。

cpu_info

body

字符串

CPU 的信息。

memory_mb

body

整数

主机的内存 MB 数。

local_gb

body

整数

主机的磁盘 GB 数。

service_name

body

字符串

主机的计算服务名称。

reservable

body

布尔值

一个标志,表示主机是否可预订。

status

body

字符串

主机的状态。

注意

当前为 null。

trust_id

body

字符串

主机操作者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

extra_capability (可选)

body

any

主机的额外功能。

注意

任何键值对都可以存储为主机的一个额外功能。

列出主机响应示例

{
    "hosts": [
        {
            "id": "1",
            "hypervisor_hostname": "compute-1",
            "hypervisor_type": "QEMU",
            "hypervisor_version": 2010001,
            "vcpus": 4,
            "cpu_info": "{'arch': 'x86_64', 'model': 'cpu64-rhel6',
                          'vendor': 'Intel', 'features': [
                              'pge', 'clflush', 'sep', 'syscall', 'msr',
                              'vmx', 'cmov', 'nx', 'pat', 'lm', 'tsc',
                              'fpu', 'fxsr', 'pae', 'mmx', 'cx8', 'mce',
                              'de', 'mca', 'pse', 'pni', 'apic', 'sse',
                              'lahf_lm', 'sse2', 'hypervisor', 'cx16',
                              'pse36', 'mttr', 'x2apic'],
                          'topology': {
                              'cores': 1, 'cells': 1, 'threads': 1, 'sockets': 4
                          }}",
            "memory_mb": 8192,
            "local_gb": 100,
            "service_name": "compute-1",
            "reservable": true,
            "status": null,
            "trust_id": "5f67f11215cf4c52906453a181bfcfea",
            "created_at": "2017-12-27 10:00:00",
            "updated_at": null,
            "extra_capability_sample": "foo"
        }
    ]
}
POST
v1/os-hosts

创建宿主机

创建一个主机。

响应代码

正常响应代码:201

错误响应代码:请求错误(400),未授权(401),禁止(403),冲突(409),内部服务器错误(500)

请求

名称

入参

类型

描述

name

body

字符串

主机的名称。

extra_capability (可选)

body

any

主机的额外功能。

注意

任何键值对都可以存储为主机的一个额外功能。

创建主机请求示例

{
    "name": "compute-1",
    "extra_capability_sample": "foo"
}

响应

名称

入参

类型

描述

host

body

对象

一个 host 对象。

id

body

字符串

主机的 ID。

hypervisor_hostname

body

字符串

主机的 hypervisor 名称。

hypervisor_type

body

字符串

主机的 hypervisor 类型。

hypervisor_version

body

整数

主机的 hypervisor 版本。

vcpus

body

整数

主机的 VCPU 数量。

cpu_info

body

字符串

CPU 的信息。

memory_mb

body

整数

主机的内存 MB 数。

local_gb

body

整数

主机的磁盘 GB 数。

service_name

body

字符串

主机的计算服务名称。

reservable

body

布尔值

一个标志,表示主机是否可预订。

status

body

字符串

主机的状态。

注意

当前为 null。

trust_id

body

字符串

主机操作者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

extra_capability (可选)

body

any

主机的额外功能。

注意

任何键值对都可以存储为主机的一个额外功能。

创建主机响应示例

{
    "host": {
        "id": "1",
        "hypervisor_hostname": "compute-1",
        "hypervisor_type": "QEMU",
        "hypervisor_version": 2010001,
        "vcpus": 4,
        "cpu_info": "{'arch': 'x86_64', 'model': 'cpu64-rhel6',
                      'vendor': 'Intel', 'features': [
                          'pge', 'clflush', 'sep', 'syscall', 'msr',
                          'vmx', 'cmov', 'nx', 'pat', 'lm', 'tsc',
                          'fpu', 'fxsr', 'pae', 'mmx', 'cx8', 'mce',
                          'de', 'mca', 'pse', 'pni', 'apic', 'sse',
                          'lahf_lm', 'sse2', 'hypervisor', 'cx16',
                          'pse36', 'mttr', 'x2apic'],
                      'topology': {
                          'cores': 1, 'cells': 1, 'threads': 1, 'sockets': 4
                      }}",
        "memory_mb": 8192,
        "local_gb": 100,
        "service_name": "compute-1",
        "reservable": true,
        "status": null,
        "trust_id": "5f67f11215cf4c52906453a181bfcfea",
        "created_at": "2017-12-27 10:00:00",
        "updated_at": null,
        "extra_capability_sample": "foo"
    }
}
GET
v1/os-hosts/{host_id}

显示宿主机详情

显示主机详情。

先决条件

主机必须存在。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),内部服务器错误(500)

请求

名称

入参

类型

描述

host_id

路径

字符串

主机的 ID。

private

body

布尔值

属性是否私有。

响应

名称

入参

类型

描述

host

body

对象

一个 host 对象。

id

body

字符串

主机的 ID。

hypervisor_hostname

body

字符串

主机的 hypervisor 名称。

hypervisor_type

body

字符串

主机的 hypervisor 类型。

hypervisor_version

body

整数

主机的 hypervisor 版本。

vcpus

body

整数

主机的 VCPU 数量。

cpu_info

body

字符串

CPU 的信息。

memory_mb

body

整数

主机的内存 MB 数。

local_gb

body

整数

主机的磁盘 GB 数。

service_name

body

字符串

主机的计算服务名称。

reservable

body

布尔值

一个标志,表示主机是否可预订。

status

body

字符串

主机的状态。

注意

当前为 null。

trust_id

body

字符串

主机操作者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

extra_capability (可选)

body

any

主机的额外功能。

注意

任何键值对都可以存储为主机的一个额外功能。

显示主机详情响应示例

{
    "host": {
        "id": "1",
        "hypervisor_hostname": "compute-1",
        "hypervisor_type": "QEMU",
        "hypervisor_version": 2010001,
        "vcpus": 4,
        "cpu_info": "{'arch': 'x86_64', 'model': 'cpu64-rhel6',
                      'vendor': 'Intel', 'features': [
                          'pge', 'clflush', 'sep', 'syscall', 'msr',
                          'vmx', 'cmov', 'nx', 'pat', 'lm', 'tsc',
                          'fpu', 'fxsr', 'pae', 'mmx', 'cx8', 'mce',
                          'de', 'mca', 'pse', 'pni', 'apic', 'sse',
                          'lahf_lm', 'sse2', 'hypervisor', 'cx16',
                          'pse36', 'mttr', 'x2apic'],
                      'topology': {
                          'cores': 1, 'cells': 1, 'threads': 1, 'sockets': 4
                      }}",
        "memory_mb": 8192,
        "local_gb": 100,
        "service_name": "compute-1",
        "reservable": true,
        "status": null,
        "trust_id": "5f67f11215cf4c52906453a181bfcfea",
        "created_at": "2017-12-27 10:00:00",
        "updated_at": null,
        "extra_capability_sample": "foo"
    }
}
PUT
v1/os-hosts/{host_id}

更新宿主机

更新一个主机。

先决条件

主机必须存在。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),冲突(409),内部服务器错误(500)

请求

名称

入参

类型

描述

host_id

路径

字符串

主机的 ID。

extra_capability (可选)

body

any

主机的额外功能。

注意

任何键值对都可以存储为主机的一个额外功能。

更新主机请求示例

{
    "extra_capability_sample": "bar"
}

响应

名称

入参

类型

描述

host

body

对象

一个 host 对象。

id

body

字符串

主机的 ID。

hypervisor_hostname

body

字符串

主机的 hypervisor 名称。

hypervisor_type

body

字符串

主机的 hypervisor 类型。

hypervisor_version

body

整数

主机的 hypervisor 版本。

vcpus

body

整数

主机的 VCPU 数量。

cpu_info

body

字符串

CPU 的信息。

memory_mb

body

整数

主机的内存 MB 数。

local_gb

body

整数

主机的磁盘 GB 数。

service_name

body

字符串

主机的计算服务名称。

reservable

body

布尔值

一个标志,表示主机是否可预订。

status

body

字符串

主机的状态。

注意

当前为 null。

trust_id

body

字符串

主机操作者的信任 UUID。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

extra_capability (可选)

body

any

主机的额外功能。

注意

任何键值对都可以存储为主机的一个额外功能。

主机更新响应示例

{
    "host": {
        "id": "1",
        "hypervisor_hostname": "compute-1",
        "hypervisor_type": "QEMU",
        "hypervisor_version": 2010001,
        "vcpus": 4,
        "cpu_info": "{'arch': 'x86_64', 'model': 'cpu64-rhel6',
                      'vendor': 'Intel', 'features': [
                          'pge', 'clflush', 'sep', 'syscall', 'msr',
                          'vmx', 'cmov', 'nx', 'pat', 'lm', 'tsc',
                          'fpu', 'fxsr', 'pae', 'mmx', 'cx8', 'mce',
                          'de', 'mca', 'pse', 'pni', 'apic', 'sse',
                          'lahf_lm', 'sse2', 'hypervisor', 'cx16',
                          'pse36', 'mttr', 'x2apic'],
                      'topology': {
                          'cores': 1, 'cells': 1, 'threads': 1, 'sockets': 4
                      }}",
        "memory_mb": 8192,
        "local_gb": 100,
        "service_name": "compute-1",
        "reservable": true,
        "status": null,
        "trust_id": "5f67f11215cf4c52906453a181bfcfea",
        "created_at": "2017-12-27 10:00:00",
        "updated_at": null,
        "extra_capability_sample": "bar"
    }
}
DELETE
v1/os-hosts/{host_id}

删除宿主机

删除一个主机。

先决条件

主机必须存在。

响应代码

正常响应代码:204

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),冲突(409),内部服务器错误(500)

请求

名称

入参

类型

描述

host_id

路径

字符串

主机的 ID。

响应

成功删除后不返回正文内容。

资源分配

GET
v1/os-hosts/allocations

列出分配

列出所有主机的分配。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),内部服务器错误(500)

请求

名称

入参

类型

描述

lease_id (可选)

查询

字符串

按租赁 ID 过滤分配结果

reservation_id (可选)

查询

字符串

按预订 ID 过滤分配结果

响应

名称

入参

类型

描述

allocations

body

数组

一个 allocation 对象列表。

resource_id

body

字符串

主机的 ID。

reservations

body

数组

一个 reservation allocation 对象列表。该对象由预订 ID 和其 lease_id 组成。

reservation.id

body

字符串

预订的 UUID。

reservation.lease_id

body

字符串

租赁的 UUID。

reservation.start_date

body

字符串

租赁的开始日期。

reservation.end_date

body

字符串

租赁的结束日期。

列出分配响应示例

{
    "allocations": [
        {
            "resource_id": "1",
            "reservations": [
                {
                    "id": "3504fbac-fdb2-458e-a43f-34d27fbd0b86",
                    "lease_id": "0ec2bed6-75f9-4959-8198-9d9717dde4cb",
                    "start_date": "2021-12-16T17:11:00.000000",
                    "end_date": "2021-12-16T17:13:00.000000"
                },
                {
                    "id": "4f4743a2-d8c7-44c2-ba39-300eb7659bb9",
                    "lease_id": "6050288d-5535-4e3c-93d5-083184b86c61",
                    "start_date": "2021-12-16T17:11:00.000000",
                    "end_date": "2021-12-16T17:13:00.000000"
                }
            ]
        },
        {
            "resource_id": "2",
            "reservations": [
                {
                    "id": "b2475424-6872-43ec-857d-f4b50b403e97",
                    "lease_id": "e92b9d47-9078-47ec-a35c-27e67f7b8429",
                    "start_date": "2021-12-16T17:11:00.000000",
                    "end_date": "2021-12-16T17:13:00.000000"
                }
            ]
        }
    ]
}
GET
v1/os-hosts/{host_id}/allocation

获取分配

获取主机的分配。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),内部服务器错误(500)

请求

名称

入参

类型

描述

host_id

路径

字符串

主机的 ID。

lease_id (可选)

查询

字符串

按租赁 ID 过滤分配结果

reservation_id (可选)

查询

字符串

按预订 ID 过滤分配结果

响应

名称

入参

类型

描述

allocation

body

数组

一个 allocation 对象。该对象描述了 resource_id 和预订之间的映射。

resource_id

body

字符串

主机的 ID。

reservations

body

数组

一个 reservation allocation 对象列表。该对象由预订 ID 和其 lease_id 组成。

reservation.id

body

字符串

预订的 UUID。

reservation.lease_id

body

字符串

租赁的 UUID。

reservation.start_date

body

字符串

租赁的开始日期。

reservation.end_date

body

字符串

租赁的结束日期。

获取分配响应示例

{
    "allocation": {
        "resource_id": "1",
        "reservations": [
            {
                "id": "3504fbac-fdb2-458e-a43f-34d27fbd0b86",
                "lease_id": "0ec2bed6-75f9-4959-8198-9d9717dde4cb",
                "start_date": "2021-12-16T17:11:00.000000",
                "end_date": "2021-12-16T17:13:00.000000"
            },
            {
                "id": "4f4743a2-d8c7-44c2-ba39-300eb7659bb9",
                "lease_id": "6050288d-5535-4e3c-93d5-083184b86c61",
                "start_date": "2021-12-16T17:11:00.000000",
                "end_date": "2021-12-16T17:13:00.000000"
            }
        ]
    }
}
GET
v1/os-hosts/properties

列出资源属性

从主机获取所有资源属性

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),内部服务器错误(500)

请求

名称

入参

类型

描述

detail (可选)

查询

字符串

是否包含每个属性的值以及属性是否私有。

all (可选)

查询

字符串

是否包含所有资源属性,公共和私有。

响应

名称

入参

类型

描述

resource_properties

body

数组

一个 resource_property 对象列表。

property

body

any

属性的名称。

private (可选)

body

布尔值

属性是否私有。

values (可选)

body

数组

属性的值列表。

列出资源属性响应示例

{
    "resource_properties": [
        {
            "property": "gpu"
        }
    ]
}

列出带有详细信息的资源属性示例

{
    "resource_properties": [
        {
            "property": "gpu",
            "private": false,
            "values": [
                "True",
                "False"
            ]
        }
    ]
}
PATCH
v1/os-hosts/properties/{property_name}

更新资源属性

更新主机资源属性

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),内部服务器错误(500)

请求

名称

入参

类型

描述

property_name

路径

字符串

属性的名称。

private

body

布尔值

属性是否私有。

更新资源属性示例

{
    "private": true
}

响应

名称

入参

类型

描述

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

id

body

字符串

更新后的 resource_property UUID。

resource_type

body

字符串

更新后的 resource_property 资源类型。

property_name

body

any

属性的名称。

private

body

布尔值

更新后的 resource_property 是否私有。

列出资源属性响应示例

{
    "resource_property": {
        "created_at": "2021-12-15T19:38:16.000000",
        "updated_at": "2021-12-21T21:37:19.000000",
        "id": "19e48cd0-042d-4044-a69a-d44d672849b5",
        "resource_type": "physical:host",
        "property_name": "gpu",
        "private": true
    }
}

浮动IP

GET
v1/floatingips

列出浮动IP

列出浮动IP。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),内部服务器错误(500)

请求

没有正文内容、路径或查询选项。

响应

名称

入参

类型

描述

浮动 IP

body

数组

一个 floatingip 对象列表。

id

body

字符串

浮动IP资源的ID。

floating_network_id

body

字符串

浮动IP所属的外部网络ID。

subnet_id

body

布尔值

浮动IP所属的外部子网ID。

floating_ip_address

body

字符串

浮动 IP 地址。

reservable

body

布尔值

一个标志,表示浮动IP是否可预订。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

列出主机响应示例

{
    "floatingips": [
        {
           "id": "84c4d37e-1f8b-45ce-897b-16ad7f49b0e9",
           "floating_network_id": "1e17587e-a7ed-4b82-a17b-4beb32523e28",
           "subnet_id": "a2fa9b7e-8451-4868-85f4-92ee7c77eed6",
           "floating_ip_address": "172.24.4.101",
           "reservable": true,
           "created_at": "2019-01-28 08:01:46",
           "updated_at": null

         },
        {
            "id": "f180cf4c-f886-4dd1-8c36-854d17fbefb5",
            "floating_network_id": "1e17587e-a7ed-4b82-a17b-4beb32523e28",
            "subnet_id": "a2fa9b7e-8451-4868-85f4-92ee7c77eed6",
            "floating_ip_address": "172.24.4.102",
            "reservable": true,
            "created_at": "2019-01-28 08:08:22",
            "updated_at": null
        }
    ]
}
POST
v1/floatingips

创建浮动IP

创建一个浮动IP。

响应代码

正常响应代码:201

错误响应代码:请求错误(400),未授权(401),禁止(403),冲突(409),内部服务器错误(500)

请求

名称

入参

类型

描述

floating_network_id

body

字符串

浮动IP所属的外部网络ID。

floating_ip_address

body

字符串

浮动IP地址。IP必须在分配池之外,并且在其子网的CIDR网络内。

创建主机请求示例

{
  "floating_network_id": "1e17587e-a7ed-4b82-a17b-4beb32523e28",
  "floating_ip_address": "172.24.4.101"
}

响应

名称

入参

类型

描述

floatingip

body

对象

一个 floatingip 对象。

id

body

字符串

浮动IP资源的ID。

floating_ip_address

body

字符串

浮动 IP 地址。

network_id

body

字符串

浮动IP所属的外部网络ID。

subnet_id

body

布尔值

浮动IP所属的外部子网ID。

reservable

body

布尔值

一个标志,表示浮动IP是否可预订。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

创建主机响应示例

{
    "floatingip": {
        "id": "84c4d37e-1f8b-45ce-897b-16ad7f49b0e9",
        "floating_network_id": "1e17587e-a7ed-4b82-a17b-4beb32523e28",
        "floating_ip_address": "172.24.4.101",
        "subnet_id": "a2fa9b7e-8451-4868-85f4-92ee7c77eed6",
        "reservable": true,
        "created_at": "2019-01-28T08:01:46.000000",
        "updated_at": null
    }
}
GET
v1/floatingips/{floatingip_id}

显示浮动IP详情

显示浮动IP的详情。

先决条件

浮动IP必须存在。

响应代码

正常响应代码:200

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),内部服务器错误(500)

请求

名称

入参

类型

描述

floatingip_id

路径

字符串

浮动IP的ID。

响应

名称

入参

类型

描述

floatingip

body

对象

一个 floatingip 对象。

id

body

字符串

浮动IP资源的ID。

floating_network_id

body

字符串

浮动IP所属的外部网络ID。

floating_ip_address

body

字符串

浮动 IP 地址。

reservable

body

布尔值

一个标志,表示浮动IP是否可预订。

created_at

body

字符串

创建对象的时间和日期。

updated_at

body

字符串

更新对象的时间和日期。

显示浮动IP详情响应示例

{
    "floatingip": {
        "id": "84c4d37e-1f8b-45ce-897b-16ad7f49b0e9",
        "floating_network_id": "1e17587e-a7ed-4b82-a17b-4beb32523e28",
        "floating_ip_address": "172.24.4.101",
        "subnet_id": "a2fa9b7e-8451-4868-85f4-92ee7c77eed6",
        "reservable": true,
        "created_at": "2019-01-28T08:01:46.000000",
        "updated_at": null
    }
}
DELETE
v1/floatingips/{floatingip_id}

删除浮动IP

删除一个浮动IP。

先决条件

浮动IP必须存在。

响应代码

正常响应代码:204

错误响应代码:请求错误(400),未授权(401),禁止(403),未找到(404),冲突(409),内部服务器错误(500)

请求

名称

入参

类型

描述

floatingip_id

路径

字符串

浮动IP的ID。

响应

成功删除后不返回正文内容。

请求ID

对于每个REST API请求,一个本地请求ID作为响应头返回。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

字符串

本地请求ID,它是自动生成的唯一ID,用于跟踪发送到Blazar的每个请求。它与请求相关联,并出现在该请求的日志行中。

响应头

对于每个REST API请求,响应包含一个 X-Openstack-Request-Id 头。

X-Openstack-Request-Id 头的值是分配给请求的本地请求ID。

响应头示例

X-Openstack-Request-Id: req-d7bc29d0-7b99-4aeb-a356-89975043ab5e

全局请求ID

用户可以在请求头中指定一个全局请求ID。

请求

名称

入参

类型

描述

X-Openstack-Request-Id (可选)

标头

字符串

全局请求ID,它是OpenStack服务中跟踪每个请求的唯一通用ID。全局请求ID的格式必须为 req- + UUID (UUID4)。如果格式不正确,则会被忽略。它与请求相关联,并出现在该请求的日志行中。全局请求ID出现在Blazar日志以及它交互的所有跨服务中。

请求头

在每个REST API请求中,您可以在 X-Openstack-Request-Id 头中指定一个全局请求ID。格式必须为 req- + UUID (UUID4)。如果格式不正确,Blazar将忽略全局请求ID。

请求头示例

X-Openstack-Request-Id: req-e19f8f4f-40e7-441e-b776-7b43ed15c7dd