Masakari API

这是由 Masakari 项目提供的 OpenStack Masakari API 的参考文档。

API 版本

为了随着时间的推移为用户带来新功能,Masakari API 支持版本控制。

  • ‘’主要版本’’, 它们拥有专用的 URL

版本 API 的工作方式与其他 API 不同,因为它们不需要身份验证。

GET
/

列出所有主要版本

这将获取部署中所有已知主要 API 版本的全部信息。将为每个 API 版本提供指向更具体信息的链接。

响应代码

成功

代码

原因

200 - 正常

请求成功。

响应

名称

入参

类型

描述

versions

body

数组

一个描述可用 API 版本的版本对象列表。

id

body

字符串

版本的一个常用名称。仅供参考,不具有实际语义意义。

status

body

字符串

此 API 版本的状态。它可以是以下之一:

  • CURRENT:这是要使用的 API 的首选版本

  • SUPPORTED:这是 API 的较旧版本,但仍然受支持

  • DEPRECATED:这是 API 的已弃用版本,计划将其删除

links

body

数组

指向相关资源的链接。

版本

body

字符串

API 支持的最高版本。

min_version

body

字符串

API 支持的最低版本。

注意

响应中的 updated 参数是遗留的,不提供任何有用的信息。

响应示例

这演示了来自一个支持到当前版本的最新服务器的预期响应。

{
    "versions": [
        {
            "id": "v1.0",
            "links": [
                {
                    "href": "http://openstack.example.com/v1/",
                    "rel": "self"
                }
            ],
            "status": "CURRENT",
            "version": "1.0",
            "min_version": "1.0",
            "updated": "2016-07-01T11:33:21Z"
        }
    ]
}
GET
/{api_version}/

显示特定 API 版本的详细信息

这获取 API 在其根目录下的详细信息。几乎所有这些信息都存在于 API 根目录中,因此这在很大程度上是一个冗余操作。

响应代码

成功

代码

原因

200 - 正常

请求成功。

请求

名称

入参

类型

描述

api_version

路径

字符串

GET / 调用返回的 API 版本。

响应

名称

入参

类型

描述

版本

body

字符串

版本。

id

body

字符串

版本的一个常用名称。仅供参考,不具有实际语义意义。

status

body

字符串

此 API 版本的状态。它可以是以下之一:

  • CURRENT:这是要使用的 API 的首选版本

  • SUPPORTED:这是 API 的较旧版本,但仍然受支持

  • DEPRECATED:这是 API 的已弃用版本,计划将其删除

links

body

数组

指向相关资源的链接。

版本

body

字符串

API 支持的最高版本。

min_version

body

字符串

API 支持的最低版本。

注意

响应中的 updatedmedia-types 参数是遗留的,不提供任何有用的信息。它们可能会在未来被弃用并删除。

响应示例

这是一个相对较新服务器上 GET /v1/ 的示例。

{
    "version": {
        "id": "v1",
        "links": [
            {
                "href": "http://openstack.example.com/v1/",
                "rel": "self"
            },
            {
                "href": "https://docs.openstack.org/",
                "rel": "describedby",
                "type": "text/html"
            }
        ],
        "media-types": [
            {
                "base": "application/json",
                "type": "application/vnd.openstack.masakari+json;version=1"
            }
        ],
        "status": "CURRENT",
        "version": "1.0",
        "min_version": "1.0",
        "updated": "2016-07-01T11:33:21Z"
    }
}

故障转移段 (segments)

系统可以从上到下分层,划分为区域、可用区和主机聚合(或单元)。在这些区域内,可能存在一个或多个 pacemaker/pacemaker-remote 集群。除了这些边界之外,共享存储边界对于确定最佳故障转移主机也很重要。Openstack 分区边界(例如区域、AZ、主机聚合等)可以由 nova 调度器管理。但是,共享存储边界难以管理。此外,操作员可能希望使用其他类型的边界,例如机架布局和供电。因此,操作员可能希望定义超visor 主机的段,并为每个主机分配故障转移主机/主机。这些段可以基于共享存储边界或任何其他可能对选择故障转移主机至关重要的限制来定义。

列出、创建、显示详细信息、更新和删除段。

GET
/segments

列出故障转移段

列出所有段的 ID、名称、描述、恢复方法、服务类型和启用状态。

段包含 service_typerecovery_methodenabled 属性。service_type 属性指示此段属于哪个服务(例如,compute、cinder 等)。recovery_method 属性指示当段中的任何主机发生故障时应遵循的恢复操作。enabled 属性指示属于此段的通知是否将被处理。可能的 recovery_method 值是

  • auto。自动恢复操作。

  • reserved_host。保留主机恢复操作。

  • auto_priority。首先执行自动操作,如果自动操作失败,则使用保留主机恢复操作重试。

  • rh_priority。首先执行保留主机操作,如果它失败,则使用自动恢复操作重试。

您可以在完成列出段的请求时,根据 service_typerecovery_methodenabled 进行筛选。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

recovery_method (可选)

查询

字符串

按 recovery_method 筛选段列表结果。

service_type (可选)

查询

字符串

按 service_type 筛选段列表结果。

enabled(可选)

body

布尔值

布尔值,指示此段是否启用。

sort_dir (可选)

查询

字符串

排序方向。有效值为 asc(升序)或 desc(降序)。默认值为 desc。您可以指定多个排序键和排序方向查询参数。如果您省略配对中的排序方向,API 将使用段 sort_key 属性的自然排序方向。

sort_key (可选)

查询

字符串

按段属性排序。默认属性是 created_at。您可以指定多个排序键和排序方向查询参数。如果您省略配对中的排序方向,API 将使用段 sort_key 属性的自然排序方向。排序键限制为

  • created_at

  • description

  • name

  • updated_at

  • uuid

  • recovery_method

  • service_type

Response

名称

入参

类型

描述

body

数组

一个 segment 对象列表。

name

body

字符串

段名称。

uuid

body

字符串

段的 UUID。

示例:列出段

{
    "segments": [
        {
            "uuid": "9e800031-6946-4b43-bf09-8b3d1cab792b",
            "deleted": false,
            "created_at": "2017-04-20T10:17:17.000000",
            "description": "Segment1",
            "recovery_method": "auto",
            "updated_at": null,
            "service_type": "Compute",
            "deleted_at": null,
            "id": 1,
            "name": "segment2",
            "enabled": true
        }
    ]
}
POST
/segments

创建段

创建分段。

使用名称、描述、service_type、enabled 和 recovery_method 创建一个 FailoverSegment。对于 service_type,用户可以提及为此段创建的服务名称。目前,用户可以提及 COMPUTE 作为 service_type。对于 recovery_method,用户可以提及 autoreserved_hostauto_priorityrh_priority。段名称应唯一。对于 enabled,用户可以提及 truefalse 以启用/禁用此段。

响应代码

成功

代码

原因

202 - Accepted

请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

409 - Conflict

此操作与此资源的另一个操作冲突。

如果已存在具有相同名称的段,则返回冲突 (409)。

请求

名称

入参

类型

描述

segment

body

对象

一个 segment 对象。

description (可选)

body

字符串

段的自由格式描述。长度限制为 255 个字符。

name

body

字符串

段名称。

recovery_method

body

字符串

如果段中的任何主机发生故障,则进行恢复的类型。用户可以提及“auto”、“reserved_host”、“auto_priority”或“rh_priority”。

service_type

body

字符串

将在该段中部署的服务名称。目前,用户可以提及“COMPUTE”作为 service_type。

enabled(可选)

body

布尔值

布尔值,指示此段是否启用。

示例:创建段

{
    "segment": {
        "service_type": "COMPUTE",
        "recovery_method": "auto",
        "name": "new_segment",
        "enabled": true
    }
}

响应

名称

入参

类型

描述

segment

body

对象

一个 segment 对象。

创建时间

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

description (可选)

body

字符串

段的自由格式描述。长度限制为 255 个字符。

id

body

字符串

段的 ID。

name

body

字符串

段名称。

recovery_method

body

字符串

如果段中的任何主机发生故障,则进行恢复的类型。用户可以提及“auto”、“reserved_host”、“auto_priority”或“rh_priority”。

service_type

body

字符串

将在该段中部署的服务名称。目前,用户可以提及“COMPUTE”作为 service_type。

enabled(可选)

body

布尔值

布尔值,指示此段是否启用。

updated

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

uuid

body

字符串

段的 UUID。

示例:创建段

{
    "segment": {
        "uuid": "5fd9f925-0379-40db-a7f8-786a0b655b2a",
        "deleted": false,
        "created_at": "2017-04-21T08:59:53.991030",
        "description": null,
        "recovery_method": "auto",
        "updated_at": null,
        "service_type": "COMPUTE",
        "deleted_at": null,
        "id": 4,
        "name": "new_segment",
        "enabled": true
    }
}
GET
/segments/{segment_id}

显示段详细信息

显示分段的详细信息。

先决条件

段必须存在。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

响应

名称

入参

类型

描述

segment

body

对象

一个 segment 对象。

创建时间

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

description (可选)

body

字符串

段的自由格式描述。长度限制为 255 个字符。

id

body

字符串

段的 ID。

name

body

字符串

段名称。

recovery_method

body

字符串

如果段中的任何主机发生故障,则进行恢复的类型。用户可以提及“auto”、“reserved_host”、“auto_priority”或“rh_priority”。

service_type

body

字符串

将在该段中部署的服务名称。目前,用户可以提及“COMPUTE”作为 service_type。

enabled(可选)

body

布尔值

布尔值,指示此段是否启用。

updated

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

uuid

body

字符串

段的 UUID。

示例:显示段详细信息

{
    "segment": {
        "uuid": "5fd9f925-0379-40db-a7f8-786a0b655b2a",
        "deleted": false,
        "created_at": "2017-04-21T08:59:53.991030",
        "description": null,
        "recovery_method": "auto",
        "updated_at": null,
        "service_type": "COMPUTE",
        "deleted_at": null,
        "id": 4,
        "name": "new_segment",
        "enabled": true
    }
}
PUT
/segments/{segment_id}

更新段

更新现有段的可编辑属性。

先决条件

  • 段必须存在。

  • 如果段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则用户无法更新段。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此操作与此资源的另一个操作冲突。

如果用户尝试更新已分配给段的段名称,或者段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则返回冲突 (409)。

请求

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

description (可选)

body

字符串

段的自由格式描述。长度限制为 255 个字符。

name

body

字符串

段名称。

recovery_method

body

字符串

如果段中的任何主机发生故障,则进行恢复的类型。用户可以提及“auto”、“reserved_host”、“auto_priority”或“rh_priority”。

service_type

body

字符串

将在该段中部署的服务名称。目前,用户可以提及“COMPUTE”作为 service_type。

enabled(可选)

body

布尔值

布尔值,指示此段是否启用。

示例:更新段名称

{
    "segment": {
        "name": "new_segment",
        "enabled": false
    }
}

Response

名称

入参

类型

描述

segment

body

对象

一个 segment 对象。

创建时间

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

description (可选)

body

字符串

段的自由格式描述。长度限制为 255 个字符。

id

body

字符串

段的 ID。

name

body

字符串

段名称。

recovery_method

body

字符串

如果段中的任何主机发生故障,则进行恢复的类型。用户可以提及“auto”、“reserved_host”、“auto_priority”或“rh_priority”。

service_type

body

字符串

将在该段中部署的服务名称。目前,用户可以提及“COMPUTE”作为 service_type。

enabled(可选)

body

布尔值

布尔值,指示此段是否启用。

updated

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

uuid

body

字符串

段的 UUID。

示例:更新段名称

{
    "segment": {
        "uuid": "5fd9f925-0379-40db-a7f8-786a0b655b2a",
        "deleted": false,
        "created_at": "2017-04-21T08:59:54.000000",
        "description": null,
        "recovery_method": "auto",
        "updated_at": "2017-04-21T09:47:03.748028",
        "service_type": "COMPUTE",
        "deleted_at": null,
        "id": 4,
        "name": "new_segment",
        "enabled": false
    }
}
DELETE
/segments/{segment_id}

删除段

删除一个段。

先决条件

  • 段必须存在。

  • 如果段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则用户无法删除段。

响应代码

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此操作与此资源的另一个操作冲突。

如果用户尝试删除段,或者段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则返回冲突 (409)。

请求

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

响应

成功的 DELETE 查询的响应中没有正文内容。

主机 (hosts)

宿主机

主机属于段。主机可以是任何类型的虚拟机,其上可以运行 compute 服务。

列出、创建、显示详细信息、更新和删除主机。

GET
/segments/{segment_id}/hosts

列出宿主机

列出所有主机的 ID、名称、类型、reserved 和 on_maintenance。

您可以在完成列出主机请求时,根据类型、on_maintenance 和 reserved 进行筛选。

先决条件

段必须存在。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

Request

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

on_maintenance (可选)

查询

布尔值

按 on_maintenance 筛选主机列表结果。

reserved (可选)

查询

布尔值

按 reserved 标志筛选主机列表结果。

sort_dir (可选)

查询

字符串

排序方向。有效值为 asc(升序)或 desc(降序)。默认值为 desc。您可以指定多个排序键和排序方向查询参数。如果您省略配对中的排序方向,API 将使用段 sort_key 属性的自然排序方向。

sort_key (可选)

查询

字符串

按主机属性排序。默认属性是 created_at。您可以指定多个排序键和排序方向查询参数。如果您省略配对中的排序方向,API 将使用段 sort_key 属性的自然排序方向。排序键限制为

  • created_at

  • type

  • name

  • updated_at

  • uuid

  • reserved

  • on_maintenance

type (可选)

查询

布尔值

按主机类型筛选主机列表结果。

响应

名称

入参

类型

描述

hosts

body

数组

一个 host 对象列表。

name

body

字符串

主机名称。

uuid

body

字符串

主机的 UUID。

failover_segment_id

body

字符串

段的 UUID。

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

on_maintenance (可选)

body

布尔值

一个布尔值,指示此主机是否处于维护状态,如果未处于维护模式,则会出现 false

reserved (可选)

body

布尔值

一个布尔值,指示此主机是否已保留,如果未保留,则会出现 false

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

control_attributes

body

字符串

用于控制主机的属性。

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

failover_segment

body

对象

一个 segment 对象。

type

body

字符串

主机类型。

id

body

字符串

主机 ID。

示例:列出主机

{
    "hosts": [
        {
            "reserved": false,
            "uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
            "deleted": false,
            "on_maintenance": false,
            "created_at": "2017-04-21T10:09:20.000000",
            "control_attributes": "SSH",
            "updated_at": null,
            "name": "openstack-VirtualBox",
            "failover_segment": {
                "uuid": "9e800031-6946-4b43-bf09-8b3d1cab792b",
                "deleted": false,
                "created_at": "2017-04-20T10:17:17.000000",
                "description": null,
                "recovery_method": "auto",
                "updated_at": null,
                "service_type": "COMPUTE",
                "deleted_at": null,
                "id": 2,
                "name": "segment2"
            },
            "deleted_at": null,
            "type": "COMPUTE_HOST",
            "id": 1,
            "failover_segment_id": "9e800031-6946-4b43-bf09-8b3d1cab792b"
        }
    ]
}
POST
/segments/{segment_id}/hosts

创建宿主机

在给定段下创建主机。

使用名称、类型、control_attributes 在给定段下创建主机。用户可以通过将 reserved 属性设置为 True 来设置特定的主机为保留状态。默认情况下,在创建主机时,on_maintenance 模式(指示主机是否处于维护状态)为 False。主机名称应等于 nova 服务列表中的 nova-compute 主机名称和 corosync 集群中的主机名称。

先决条件

段必须存在。

响应代码

成功

代码

原因

201 - 已创建

资源已创建并准备好使用。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此操作与此资源的另一个操作冲突。

如果给定段下已存在具有相同名称的主机,则返回冲突 (409)。

如果主机不存在于 nova 中,则返回 BadRequest (400)。

请求

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

host

body

对象

一个 host 对象。

type

body

字符串

主机类型。

name

body

字符串

主机名称。

control_attributes

body

字符串

用于控制主机的属性。

reserved (可选)

body

布尔值

一个布尔值,指示此主机是否已保留,如果未保留,则会出现 false

on_maintenance (可选)

body

布尔值

一个布尔值,指示此主机是否处于维护状态,如果未处于维护模式,则会出现 false

示例:创建主机

{
    "host": {
        "control_attributes": "SSH",
        "type": "COMPUTE",
        "name": "openstack-VirtualBox"
    }
}

响应

名称

入参

类型

描述

host

body

对象

一个 host 对象。

name

body

字符串

主机名称。

uuid

body

字符串

主机的 UUID。

failover_segment_id

body

字符串

段的 UUID。

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

on_maintenance (可选)

body

布尔值

一个布尔值,指示此主机是否处于维护状态,如果未处于维护模式,则会出现 false

reserved (可选)

body

布尔值

一个布尔值,指示此主机是否已保留,如果未保留,则会出现 false

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

control_attributes

body

字符串

用于控制主机的属性。

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

failover_segment

body

对象

一个 segment 对象。

type

body

字符串

主机类型。

id

body

字符串

主机 ID。

示例:创建主机

{
    "host": {
        "reserved": false,
        "uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
        "deleted": false,
        "on_maintenance": false,
        "created_at": "2017-04-21T10:09:20.000000",
        "control_attributes": "SSH",
        "updated_at": null,
        "name": "openstack-VirtualBox",
        "failover_segment": {
            "uuid": "9e800031-6946-4b43-bf09-8b3d1cab792b",
            "deleted": false,
            "created_at": "2017-04-20T10:17:17.000000",
            "description": null,
            "recovery_method": "auto",
            "updated_at": null,
            "service_type": "COMPUTE",
            "deleted_at": null,
            "id": 2,
            "name": "segment2"
        },
        "deleted_at": null,
        "type": "COMPUTE_HOST",
        "id": 1,
        "failover_segment_id": "9e800031-6946-4b43-bf09-8b3d1cab792b"
    }
}
GET
/segments/{segment_id}/hosts/{host_id}

显示宿主机详情

显示主机的详细信息。

先决条件

段必须存在。主机必须存在。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

host_id

路径

字符串

主机的 UUID。

响应

名称

入参

类型

描述

host

body

对象

一个 host 对象。

name

body

字符串

主机名称。

uuid

body

字符串

主机的 UUID。

failover_segment_id

body

字符串

段的 UUID。

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

on_maintenance (可选)

body

布尔值

一个布尔值,指示此主机是否处于维护状态,如果未处于维护模式,则会出现 false

reserved (可选)

body

布尔值

一个布尔值,指示此主机是否已保留,如果未保留,则会出现 false

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

control_attributes

body

字符串

用于控制主机的属性。

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

failover_segment

body

对象

一个 segment 对象。

type

body

字符串

主机类型。

id

body

字符串

主机 ID。

示例:显示主机详细信息

{
    "host": {
        "reserved": false,
        "uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
        "deleted": false,
        "on_maintenance": false,
        "created_at": "2017-04-21T10:09:20.000000",
        "control_attributes": "SSH",
        "updated_at": null,
        "name": "openstack-VirtualBox",
        "failover_segment": {
            "uuid": "9e800031-6946-4b43-bf09-8b3d1cab792b",
            "deleted": false,
            "created_at": "2017-04-20T10:17:17.000000",
            "description": null,
            "recovery_method": "auto",
            "updated_at": null,
            "service_type": "COMPUTE",
            "deleted_at": null,
            "id": 2,
            "name": "segment2"
        },
        "deleted_at": null,
        "type": "COMPUTE_HOST",
        "id": 1,
        "failover_segment_id": "9e800031-6946-4b43-bf09-8b3d1cab792b"
    }
}
PUT
/segments/{segment_id}/hosts/{host_id}

更新宿主机

更新现有主机的可编辑属性。

先决条件

  • 段必须存在。

  • 主机必须存在。

  • 如果该主机或故障转移段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则用户无法更新主机。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此操作与此资源的另一个操作冲突。

如果用户尝试更新已分配给该主机的主机名称,或者该主机或故障转移段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则返回冲突 (409)。

如果主机不存在于 nova 中,则返回 BadRequest (400)。

请求

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

host_id

路径

字符串

主机的 UUID。

type

body

字符串

主机类型。

name

body

字符串

段名称。

on_maintenance (可选)

body

布尔值

一个布尔值,指示此主机是否处于维护状态,如果未处于维护模式,则会出现 false

reserved (可选)

body

布尔值

一个布尔值,指示此主机是否已保留,如果未保留,则会出现 false

示例:更新主机 reserved 标志

{
    "host": {
        "reserved": "True"
    }
}

响应

名称

入参

类型

描述

host

body

对象

一个 host 对象。

name

body

字符串

主机名称。

uuid

body

字符串

主机的 UUID。

failover_segment_id

body

字符串

段的 UUID。

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

on_maintenance (可选)

body

布尔值

一个布尔值,指示此主机是否处于维护状态,如果未处于维护模式,则会出现 false

reserved (可选)

body

布尔值

一个布尔值,指示此主机是否已保留,如果未保留,则会出现 false

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

control_attributes

body

字符串

用于控制主机的属性。

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

failover_segment

body

对象

一个 segment 对象。

type

body

字符串

主机类型。

id

body

字符串

主机 ID。

示例:更新主机 reserved 标志

{
    "host": {
        "reserved": true,
        "uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
        "deleted": false,
        "on_maintenance": false,
        "created_at": "2017-04-21T10:09:20.000000",
        "control_attributes": "SSH",
        "updated_at": "2017-04-21T11:12:43.351320",
        "name": "openstack-VirtualBox",
        "failover_segment": {
            "uuid": "9e800031-6946-4b43-bf09-8b3d1cab792b",
            "deleted": false,
            "created_at": "2017-04-20T10:17:17.000000",
            "description": null,
            "recovery_method": "auto",
            "updated_at": null,
            "service_type": "Compute",
            "deleted_at": null,
            "id": 2,
            "name": "new_segment"
        },
        "deleted_at": null,
        "type": "COMPUTE",
        "id": 1,
        "failover_segment_id": "9e800031-6946-4b43-bf09-8b3d1cab792b"
    }
}
DELETE
/segments/{segment_id}/hosts/{host_id}

删除宿主机

从给定段删除主机。

先决条件

  • 段必须存在。

  • 主机必须存在。

  • 如果该主机或故障转移段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则用户无法删除主机。

响应代码

成功

代码

原因

204 - No Content

服务器已通过删除资源来满足请求。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

409 - Conflict

此操作与此资源的另一个操作冲突。

如果用户尝试删除主机,或者故障转移段中的任何主机在通知表中具有任何用途(即,故障转移段中的任何主机具有新/错误/运行状态的通知),则返回冲突 (409)。

请求

名称

入参

类型

描述

segment_id

路径

字符串

段的 UUID。

host_id

路径

字符串

主机的 UUID。

响应

成功的 DELETE 查询的响应中没有正文内容。

通知 (notifications)

通知

通知是由监控服务(masakari-monitors)提供的某种类型的警报,用于主机、进程或实例的故障。

列出、创建和显示通知的详细信息。

GET
/notifications

列出通知

列出所有通知的 ID、通知类型、主机名称、生成时间、有效负载和状态。

通知包含一个 status 属性,指示当前的通知状态。您可以在完成列出通知的请求时,根据通知 status 进行筛选。通知 status 在响应主体中返回。可能的通知 status 值是

  • new。通知处于新建状态,尚未处理。

  • running。通知正在进行中。

  • finished。通知已成功完成。

  • error。通知以错误告终。

  • failed。通知在失败一次后未成功处理。

  • ignored。通知被 masakari 引擎忽略。

您还可以根据 source_host_uuidgenerated_sincetype 筛选完成列出通知的请求。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

generated_since (可选)

查询

字符串

按通知生成时间筛选通知列表结果。

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

sort_dir (可选)

查询

字符串

排序方向。有效值为 asc(升序)或 desc(降序)。默认值为 desc。您可以指定多个排序键和排序方向查询参数。如果您省略配对中的排序方向,API 将使用段 sort_key 属性的自然排序方向。

sort_key (可选)

查询

字符串

按通知属性排序。默认属性是 created_at。您可以指定多个排序键和排序方向查询参数。如果您省略配对中的排序方向,API 将使用段 sort_key 属性的自然排序方向。排序键限制为

  • created_at

  • type

  • generated_time

  • updated_at

  • uuid

  • payload

  • status

  • source_host_uuid

source_host_uuid (可选)

查询

字符串

按 source_host_uuid 筛选通知列表结果。

type (可选)

查询

字符串

按通知类型筛选通知列表结果。

响应

名称

入参

类型

描述

notifications

body

数组

一个 notification 对象列表。

notification_uuid

body

字符串

通知的 UUID。

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

status

body

字符串

通知状态。

uuid

body

字符串

通知的 UUID。

source_host_uuid

body

字符串

生成通知的主机的 UUID。

generated_time

body

字符串

创建通知的日期和时间。日期和时间戳格式是 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

type

body

字符串

通知类型,可以是 PROCESSCOMPUTE_HOSTVM

payload

body

字符串

通知的有效负载。

注意

这是一个 JSON 字符串。

id

body

字符串

通知 ID。

示例:列出通知

{
    "notifications": [
        {
            "notification_uuid": "32bc95ac-858d-460a-b562-7e365391be64",
            "status": "new",
            "source_host_uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
            "deleted": false,
            "created_at": "2017-04-21T12:09:44.000000",
            "updated_at": null,
            "id": 1,
            "generated_time": "2017-04-21T17:29:55.000000",
            "deleted_at": null,
            "type": "PROCESS",
            "payload": {
                "process_name": "nova-compute",
                "event": "stopped"
            }
        }
    ]
}
POST
/notifications

创建通知

创建一个通知。

响应代码

成功

代码

原因

202 - Accepted

请求已被接受处理,但处理尚未完成。响应中包含一个“location”头部,其中包含一个链接以检查请求的进度。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

409 - Conflict

此操作与此资源的另一个操作冲突。

如果存在具有相同负载的通知,或者生成通知的主机处于维护状态,则返回冲突(409)。

如果通知负载不正确,则返回BadRequest (400)。

请求

名称

入参

类型

描述

notification

body

对象

一个 notification 对象。

type

body

字符串

通知类型,可以是 PROCESSCOMPUTE_HOSTVM

generated_time

body

字符串

创建通知的日期和时间。日期和时间戳格式是 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

payload

body

字符串

通知的有效负载。

注意

这是一个 JSON 字符串。

host_name

body

对象

创建通知的主机名称。

示例:创建流程失败通知

{
    "notification": {
        "type": "PROCESS",
        "generated_time": "2017-04-21 17:29:55",
        "payload": {
            "process_name": "nova-compute",
            "event": "stopped"
        },
        "hostname": "openstack-VirtualBox"
    }
}

示例:创建 VM 失败通知

{
    "notification": {
        "type": "VM",
        "generated_time": "2017-04-23T07:18:51.523726",
        "payload": {
            "instance_uuid": "96ab1c42-668c-4f2d-8689-afa3301d4ee9",
            "vir_domain_event": "STOPPED_DESTROYED",
            "event": "LIFECYCLE"
        },
        "hostname": "openstack-VirtualBox"
    }
}

示例:创建 COMPUTE_HOST 失败通知

{
    "notification": {
        "type": "COMPUTE_HOST",
        "generated_time": "2017-04-24 08:34:46",
        "payload": {
            "event": "STOPPED",
            "host_status": "UNKNOWN",
            "cluster_status": "OFFLINE"
        },
        "hostname": "openstack-VirtualBox"
    }
}

响应

名称

入参

类型

描述

notification

body

对象

一个 notification 对象。

type

body

字符串

通知类型,可以是 PROCESSCOMPUTE_HOSTVM

generated_time

body

字符串

创建通知的日期和时间。日期和时间戳格式是 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

payload

body

字符串

通知的有效负载。

注意

这是一个 JSON 字符串。

source_host_uuid

body

字符串

生成通知的主机的 UUID。

uuid

body

字符串

通知的 UUID。

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

status

body

字符串

通知状态。

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

id

body

字符串

通知 ID。

示例:创建流程失败通知

{
    "notification": {
        "notification_uuid": "2b412acf-c55a-442d-8fd2-e823ec0d827f",
        "status": "new",
        "source_host_uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
        "deleted": false,
        "created_at": "2017-04-24T06:05:29.387678",
        "updated_at": null,
        "id": 2,
        "generated_time": "2017-04-21T17:29:55.000000",
        "deleted_at": null,
        "type": "PROCESS",
        "payload": {
            "process_name": "nova-compute",
            "event": "stopped"
        }
    }
}

示例:创建 VM 失败通知

{
    "notification": {
        "notification_uuid": "f4836386-7648-4395-89b6-75a2c5ca7ff2",
        "status": "new",
        "source_host_uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
        "deleted": false,
        "created_at": "2017-04-24T06:22:47.569979",
        "updated_at": null,
        "id": 3,
        "generated_time": "2017-04-23T07:18:51.523726",
        "deleted_at": null,
        "type": "VM",
        "payload": {
            "instance_uuid": "96ab1c42-668c-4f2d-8689-afa3301d4ee9",
            "vir_domain_event": "STOPPED_DESTROYED",
            "event": "LIFECYCLE"
        }
    }
}

示例:创建 COMPUTE_HOST 失败通知

{
    "notification": {
        "notification_uuid": "9e66b95d-45da-4695-bfb6-ace68b35d955",
        "status": "new",
        "source_host_uuid": "083a8474-22c0-407f-b89b-c569134c3bfd",
        "deleted": false,
        "created_at": "2017-04-24T06:37:37.396994",
        "updated_at": null,
        "id": 4,
        "generated_time": "2017-04-24T08:34:46.000000",
        "deleted_at": null,
        "type": "COMPUTE_HOST",
        "payload": {
            "host_status": "UNKNOWN",
            "event": "STOPPED",
            "cluster_status": "OFFLINE"
        }
    }
}
GET
/notifications/{notification_id}

显示通知详情

显示通知的详情。

先决条件

通知必须存在。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

notification_id

路径

字符串

通知的 UUID。

Response

名称

入参

类型

描述

notification

body

对象

一个 notification 对象。

type

body

字符串

通知类型,可以是 PROCESSCOMPUTE_HOSTVM

generated_time

body

字符串

创建通知的日期和时间。日期和时间戳格式是 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

payload

body

字符串

通知的有效负载。

注意

这是一个 JSON 字符串。

source_host_uuid

body

字符串

生成通知的主机的 UUID。

uuid

body

字符串

通知的 UUID。

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

status

body

字符串

通知状态。

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

recovery_workflow_details

body

数组

通知的恢复工作流详情。这是一个字典列表。

新增 版本 1.1

id

body

字符串

通知 ID。

示例:显示通知详情

{
    "notification": {
        "notification_uuid": "07a331b8-df15-4582-b121-73ed3541a408",
        "status": "finished",
        "source_host_uuid": "b5bc49be-ea6f-472d-9240-968f75d7a16a",
        "deleted": false,
        "created_at": "2019-02-28T07:19:49.000000",
        "updated_at": "2019-02-28T07:19:59.000000",
        "payload": {
            "instance_uuid": "b9837317-a5b8-44f4-93b4-45500c562bb8",
            "vir_domain_event": "STOPPED_FAILED",
            "event": "LIFECYCLE"
        },
        "recovery_workflow_details": [
            {
                "progress": 1.0,
                "state": "SUCCESS",
                "name": "StopInstanceTask",
                "progress_details": [
                    {"timestamp": "2019-03-07 13:54:28.842031", "message": "Stopping instance: df528f02-2415-4a40-bad8-453ad6a519f7", "progress": "0.0"},
                    {"timestamp": "2019-03-07 13:54:34.442617", "message": "Stopped instance: 'df528f02-2415-4a40-bad8-453ad6a519f7'", "progress": "1.0"}
                ]
            },
            {
                "progress": 1.0,
                "state": "SUCCESS",
                "name": "StartInstanceTask",
                "progress_details": [
                    {"timestamp": "2019-03-07 13:54:34.531755", "message": "Starting instance: 'df528f02-2415-4a40-bad8-453ad6a519f7'", "progress": "0.0"},
                    {"timestamp": "2019-03-07 13:54:35.930430", "message": "Instance started: 'df528f02-2415-4a40-bad8-453ad6a519f7'", "progress": "1.0"}
                ]
            },
            {
                "progress": 1.0,
                "state": "SUCCESS",
                "name": "ConfirmInstanceActiveTask",
                "progress_details": [
                    {"timestamp": "2019-03-07 13:54:36.019208", "message": "Confirming instance 'df528f02-2415-4a40-bad8-453ad6a519f7' vm_state is ACTIVE", "progress": "0.0"},
                    {"timestamp": "2019-03-07 13:54:38.569373", "message": "Confirmed instance 'df528f02-2415-4a40-bad8-453ad6a519f7' vm_state is ACTIVE", "progress": "1.0"}
                ]
            }
        ],
        "generated_time": "2017-06-13T15:34:55.000000",
        "deleted_at": null,
        "type": "VM",
        "id": 13
    }
}

VMoves (vmoves)

VMoves

一个 vmove 属于一个主机故障通知。

列出、显示 vmoves 的详情。

GET
/notification/{notification_id}/vmoves

列出 VMoves

列出所有 VM moves 的 IDs、notification_id、instance_id、source_host、dest_host、start_time、end_time、status 和 type。

Vmoves 包含一个 type 属性,指示当前的 vmove 类型。可能的 vmove type 值是

  • evacuation。该 vmove 是一个撤离操作。

  • migration。该 vmove 是一个迁移操作。

  • live_migration。该 vmove 是一个实时迁移操作。

Vmoves 包含一个 status 属性,指示当前的 vmove 状态。可能的 vmove status 值是

  • pending。该 vmove 处于待处理状态,尚未处理。

  • ongoing。该 vmove 正在进行中。

  • succeeded。该 vmove 处理成功。

  • failed。该 vmove 处理失败。

  • ignored。该 vmove 因某种原因被忽略。

您可以在完成 list vmoves 请求时,根据 typestatus 进行过滤。

先决条件

通知必须存在。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

BadRequest (400) 如果通知类型不是 COMPUTE_NODE,则返回。

请求

名称

入参

类型

描述

notification_id

路径

字符串

通知的 UUID。

limit (可选)

查询

整数

请求项目页面大小。返回最多限制值数量的项目。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

marker (可选)

查询

字符串

最后一个已查看项目的 ID。使用 limit 参数进行初始限制请求,并在后续限制请求中使用响应中最后一个已查看项目的 ID 作为 marker 参数值。

sort_dir (可选)

查询

字符串

排序方向。有效值为 asc(升序)或 desc(降序)。默认值为 desc。您可以指定多个排序键和排序方向查询参数。如果您省略配对中的排序方向,API 将使用段 sort_key 属性的自然排序方向。

sort_key (可选)

查询

字符串

按 vmove 属性排序。默认属性是 created_at。您可以指定多个排序键和排序方向查询参数。如果您在配对中省略排序方向,则 API 将使用 vmove sort_key 属性的自然排序方向。排序键限制为

  • created_at

  • updated_at

  • uuid

  • start_time

  • type

  • status

status (可选)

查询

字符串

按 vmove 状态过滤 vmoves 列表结果。

type (可选)

查询

字符串

按 vmove 类型过滤 vmoves 列表结果。

响应

名称

入参

类型

描述

vmoves

body

数组

一个 vmove 对象列表。

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

id

body

字符串

vmove 的 ID。

uuid

body

字符串

vmove 的 UUID。

notification_uuid

body

字符串

通知的 UUID。

instance_uuid

body

字符串

实例的 UUID。

instance_name

body

字符串

实例的名称。

source_host

body

字符串

主机名称。

dest_host

body

字符串

主机名称。

start_time

body

字符串

vmove 开始的时间和日期。

end_time

body

字符串

vmove 结束的时间和日期。

status

body

字符串

vmove 状态。

type

body

字符串

vmove 类型。

message

body

字符串

vmove 消息信息。

示例:列出 vmoves

{
    "vmoves": [
        {
            "created_at": "2023-01-28T14:55:27.000000",
            "updated_at": null,
            "deleted_at": null,
            "deleted": false,
            "id": 1,
            "notification_uuid": "a0e70d3a-b3a2-4616-b65d-a7c03a2c85fc",
            "instance_uuid": "1c2f1795-ce78-4d4c-afd0-ce141fdb3952",
            "instance_name": "vm1",
            "source_host": "host1",
            "dest_host": "host2",
            "start_time": "2023-01-28T14:55:27.000000",
            "end_time": "2023-01-28T14:55:31.000000",
            "status": "succeeded",
            "type": "evacuation",
            "message": null
        }
    ]
}
GET
/notifications/{notification_id}/vmoves/{vmove_id}

显示 VMove 详情

显示 vmove 的详情。

先决条件

通知必须存在。vmove 必须存在。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

用户必须在发出请求之前进行身份验证。

403 - 禁止

策略不允许当前用户执行此操作。

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

notification_id

路径

字符串

通知的 UUID。

vmove_id

路径

字符串

vmove 的 UUID。

响应

名称

入参

类型

描述

vmove

body

对象

一个 vmove 对象。

created_at

body

字符串

资源被创建的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

updated_at

body

字符串

资源被更新的日期和时间。日期和时间戳格式为 ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

例如,2017-04-21T09:49:58-05:00。如果包含,±hh:mm 值是 UTC 的时区偏移量。在前面的示例中,偏移量值为 -05:00

deleted

body

布尔值

一个布尔值,指示此资源是否已删除,如果未删除,则会出现 false

id

body

字符串

vmove 的 ID。

uuid

body

字符串

vmove 的 UUID。

notification_uuid

body

字符串

通知的 UUID。

instance_uuid

body

字符串

实例的 UUID。

instance_name

body

字符串

实例的名称。

source_host

body

字符串

主机名称。

dest_host

body

字符串

主机名称。

start_time

body

字符串

vmove 开始的时间和日期。

end_time

body

字符串

vmove 结束的时间和日期。

status

body

字符串

vmove 状态。

type

body

字符串

vmove 类型。

message

body

字符串

vmove 消息信息。

示例:显示 VMove 详情

{
    "vmove": {
        "created_at": "2023-01-28T14:55:27.000000",
        "updated_at": null,
        "deleted_at": null,
        "deleted": false,
        "id": 1,
        "notification_uuid": "a0e70d3a-b3a2-4616-b65d-a7c03a2c85fc",
        "instance_uuid": "1c2f1795-ce78-4d4c-afd0-ce141fdb3952",
        "instance_name": "vm1",
        "source_host": "host1",
        "dest_host": "host2",
        "start_time": "2023-01-28T14:55:27.000000",
        "end_time": "2023-01-28T14:55:31.000000",
        "status": "succeeded",
        "type": "evacuation",
        "message": null
    }
}