数据保护 API V1

可保护资源

启用 Karbor 用户访问有关哪些资源类型可以被保护(即可以由 Karbor 保护)的信息。此外,启用用户获取有关每种资源类型的其他信息,例如实际实例列表及其依赖项。

GET
/v1/{tenant_id}/protectables

列出可保护的类型

列出所有可用的可保护类型。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

protectable_type

body

数组

所有可用的保护类型。

响应示例

{
  "protectable_type": [
    "OS::Keystone::Project",
    "OS::Cinder::Volume",
    "OS::Glance::Image",
    "OS::Nova::Server"
  ]
}
GET
/v1/{tenant_id}/protectables/{protectable_type}

显示可保护的类型

显示给定可保护类型的相关信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

protectable_type

路径

字符串

指定的可保护类型的名称。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

protectable_type

body

对象

一个 protectable_type 对象。

name

body

字符串

可保护类型的名称。

dependent_types

body

数组

所有依赖的可保护类型,可以是一个空列表。

响应示例

{
  "protectable_type": {
    "name": "OS::Nova::Server",
    "dependent_types": [
      "OS::Cinder::Volume",
      "OS::Glance::Image"
    ]
  }
}
GET
/v1/{tenant_id}/protectables/{protectable_type}/instances

列出可保护的实例

列出给定可保护类型的所有可用实例。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

protectable_type

路径

字符串

指定的可保护类型的名称。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

instances

body

数组

protectable_instance 对象的列表。

id

body

UUID

可保护实例的 UUID。

type

body

字符串

指定的可保护类型的名称。

name

body

字符串

可保护实例的名称。

dependent_resources

body

数组

给定可保护实例的所有依赖资源,可以是一个空列表。

instances_links

body

数组

用于传输的链接。

响应示例

{
  "instances":[
    {
        "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
        "type": "OS::Cinder::Volume",
        "name": "System volume",
        "extra_info": {
            "availability_zone": "az1"
        }
    },
    {
        "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
        "type": "OS::Cinder::Volume",
        "name": "Data volume",
        "extra_info": {
            "availability_zone": "az1"
        }
    }
],
  "instances_links": [
    {
      "href": "/v1/{project_id}/instances?limit=1&marker=cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
      "rel": "next"
    }
  ]
}
GET
/v1/{tenant_id}/protectables/{protectable_type}/instances/{resource_id}

显示可保护的实例

显示特定实例及其直接依赖项的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

protectable_type

路径

字符串

指定的可保护类型的名称。

resource_id

路径

UUID

资源的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

实例

body

对象

一个 protectable_instance 对象。

id

body

UUID

可保护实例的 UUID。

type

body

字符串

指定的可保护类型的名称。

name

body

字符串

可保护实例的名称。

dependent_resources

body

数组

给定可保护实例的所有依赖资源,可以是一个空列表。

响应示例

{
  "instance": {
    "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
    "type": "OS::Nova::Server",
    "name": "My VM",
    "dependent_resources": [
      {
        "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
        "type": "OS::Glance::Image",
        "name": "cirros-0.3.4-x86_64-uec"
      }
    ]
  }
}

提供程序

此 API 启用 Karbor 用户列出可用的提供程序,并获取特定提供程序的所有插件的参数和结果模式超集。

GET
/v1/{tenant_id}/providers

列出保护提供程序

列出给定服务提供的所有提供程序信息,或通过 GET 方法使用 ?limit={limit_num} 限制提供程序的一部分。所有提供程序首先需要由管理员配置。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

providers

body

数组

provider 对象的列表。

id

body

UUID

提供程序的 UUID。

name

body

字符串

提供程序的名称。

description

body

字符串

此对象、资源、操作等的描述。可能为 NULL

extended_info_schema

body

dict

提供程序的扩展信息模式。

saved_info_schema

body

dict

提供程序的已保存信息模式。

restore_schema

body

dict

提供程序的恢复模式。

providers_links

body

数组

用于传输的链接。

响应示例

{
  "providers": [
    {
      "id": "2220f8b1-975d-4621-a872-fa9afb43cb6c",
      "name": "OS Infra Provider",
      "description": "This provider uses OpenStack's own services (swift, cinder) as storage",
      "extended_info_schema": {
        "options_schema": {
          "OS::Cinder::Volume": {
            "required": [
              "backup_mode"
            ],
            "type": "object",
            "properties": {
              "backup_mode": {
                "default": "auto",
                "enum": [
                  "full",
                  "incremental",
                  "auto"
                ],
                "type": "string",
                "description": "The backup mode.",
                "title": "Backup Mode"
              }
            },
            "title": "Cinder Protection Options"
          }
        },
        "saved_info_schema": {
          "OS::Cinder::Volume": {
            "required": [
              "name"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The name for this backup.",
                "title": "Name"
              }
            },
            "title": "Cinder Protection Saved Info"
          }
        },
        "restore_schema": {
          "OS::Cinder::Volume": {
            "type": "object",
            "properties": {
              "restore_name": {
                "type": "string",
                "description": "The name of the restored volume.",
                "title": "Restore Name"
              }
            },
            "title": "Cinder Protection Restore"
          }
        }
      }
    }
  ],
  "providers_links": [
    {
      "href": "/v1/{project_id}/providers?limit={limit_num}&marker=cf56bd3e-97a7-4078-b6d5-f36246333fd9",
      "rel": "next"
    }
  ]
}
GET
/v1/{tenant_id}/providers/{provider_id}

显示保护提供程序

显示特定提供程序的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

provider_id

路径

UUID

提供程序的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

provider

body

对象

一个 provider 对象。

id

body

UUID

提供程序的 UUID。

name

body

字符串

提供程序的名称。

description

body

字符串

此对象、资源、操作等的描述。可能为 NULL

extended_info_schema

body

dict

提供程序的扩展信息模式。

saved_info_schema

body

dict

提供程序的已保存信息模式。

restore_schema

body

dict

提供程序的恢复模式。

响应示例

{
  "provider": {
    "id": "2220f8b1-975d-4621-a872-fa9afb43cb6c",
    "name": "OS Infra Provider",
    "description": "This provider uses OpenStack's own services (swift, cinder) as storage",
    "extended_info_schema": {
      "options_schema": {
        "OS::Cinder::Volume": {
          "required": [
            "backup_mode"
          ],
          "type": "object",
          "properties": {
            "backup_mode": {
              "default": "auto",
              "enum": [
                "full",
                "incremental",
                "auto"
              ],
              "type": "string",
              "description": "The backup mode.",
              "title": "Backup Mode"
            }
          },
          "title": "Cinder Protection Options"
        }
      },
      "saved_info_schema": {
        "OS::Cinder::Volume": {
          "required": [
            "name"
          ],
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The name for this backup.",
              "title": "Name"
            }
          },
          "title": "Cinder Protection Saved Info"
        }
      },
      "restore_schema": {
        "OS::Cinder::Volume": {
          "type": "object",
          "properties": {
            "restore_name": {
              "type": "string",
              "description": "The name of the restored volume.",
              "title": "Restore Name"
            }
          },
          "title": "Cinder Protection Restore"
        }
      }
    }
  }
}

计划

此 API 启用 Karbor 用户访问保护计划注册表并执行以下操作

  • 计划 CRUD。

  • 列出计划。

  • 启动和暂停计划。

执行上述操作时,这些状态值是可能的

状态

描述

started

已更新计划。

suspended

已创建计划。

GET
/v1/{tenant_id}/plans

列出计划

列出给定项目提供的所有保护计划,或通过 GET 方法使用 ?limit={limit_num} 限制保护计划的一部分。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

plans

body

数组

plan 对象的列表。

id

body

UUID

计划的 UUID。

name

body

字符串

计划的名称。

resources

body

数组

计划中所有资源的列表。

status

body

字符串

计划的状态。有效值为 startedsuspended

provider_id

body

UUID

提供程序的 UUID。

parameters

body

dict

计划的指定参数。

plans_links

body

数组

用于传输的链接。

响应示例

{
  "plans": [
    {
      "id": "9e5475d2-6425-4986-9136-a4f09642297f",
      "name": "My 3 tier application",
      "resources": [
        {
          "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
          "type": "OS::Glance::Image",
          "name": "cirros-0.3.4-x86_64-uec"
        },
        {
          "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
          "type": "OS::Nova::Server",
          "name": "App server"
        },
        {
          "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
          "type": "OS::Cinder::Volume",
          "name": "System volume",
          "extra_info": {
              "availability_zone": "az1"
          }
        },
        {
          "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
          "type": "OS::Cinder::Volume",
          "name": "Data volume",
          "extra_info": {
              "availability_zone": "az1"
          }
        }
      ],
      "status": "suspended",
      "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
      "parameters": {
        "OS::Nova::Server": {
          "backup_name": "os"
        },
        "OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
          "backup_name": "crash"
        },
        "OS::Cinder::Volume": {
          "backup_name": "os"
        },
        "OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
          "backup_name": "crash"
        }
      }
    }
  ],
  "plans_links": [
    {
      "href": "/v1/{project_id}/plans?limit={limit_num}&marker=9e5475d2-6425-4986-9136-a4f09642297f",
      "rel": "next"
    }
  ]
}
POST
/v1/{tenant_id}/plans

创建计划

创建一个新计划。

要指定此计划的参数,请在请求正文中的 parameters 属性中包含参数。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

plan

body

对象

一个 plan 对象。

name

body

字符串

计划的名称。

resources

body

数组

计划中所有资源的列表。

provider_id

body

UUID

提供程序的 UUID。

parameters

body

dict

计划的指定参数。

请求示例

{
  "plan": {
    "name": "My 3 tier application",
    "resources": [
      {
        "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
        "type": "OS::Glance::Image",
        "name": "cirros-0.3.4-x86_64-uec"
      },
      {
        "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
        "type": "OS::Nova::Server",
        "name": "App server"
      },
      {
        "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
        "type": "OS::Cinder::Volume",
        "name": "System volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      },
      {
        "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
        "type": "OS::Cinder::Volume",
        "name": "Data volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      }
    ],
    "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
    "parameters": {
      "OS::Nova::Server": {
        "backup_name": "os"
      },
      "OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
        "backup_name": "crash"
      },
      "OS::Cinder::Volume": {
        "backup_name": "os"
      },
      "OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
        "backup_name": "crash"
      }
    }
  }
}

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

plan

body

对象

一个 plan 对象。

id

body

UUID

计划的 UUID。

name

body

字符串

计划的名称。

resources

body

数组

计划中所有资源的列表。

status

body

字符串

计划的状态。有效值为 startedsuspended

provider_id

body

UUID

提供程序的 UUID。

parameters

body

dict

计划的指定参数。

响应示例

{
  "plan": {
    "id": "9e5475d2-6425-4986-9136-a4f09642297f",
    "name": "My 3 tier application",
    "resources": [
      {
        "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
        "type": "OS::Glance::Image",
        "name": "cirros-0.3.4-x86_64-uec"
      },
      {
        "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
        "type": "OS::Nova::Server",
        "name": "App server"
      },
      {
        "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
        "type": "OS::Cinder::Volume",
        "name": "System volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      },
      {
        "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
        "type": "OS::Cinder::Volume",
        "name": "Data volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      }
    ],
    "status": "suspended",
    "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
    "parameters": {
      "OS::Nova::Server": {
        "backup_name": "os"
      },
      "OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
        "backup_name": "crash"
      },
      "OS::Cinder::Volume": {
        "backup_name": "os"
      },
      "OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
        "backup_name": "crash"
      }
    }
  }
}
GET
/v1/{tenant_id}/plans/{plan_id}

显示计划

显示特定计划的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

plan_id

body

UUID

计划的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

plan

body

对象

一个 plan 对象。

id

body

UUID

计划的 UUID。

name

body

字符串

计划的名称。

resources

body

数组

计划中所有资源的列表。

status

body

字符串

计划的状态。有效值为 startedsuspended

provider_id

body

UUID

提供程序的 UUID。

parameters

body

dict

计划的指定参数。

响应示例

{
  "plan": {
    "id": "9e5475d2-6425-4986-9136-a4f09642297f",
    "name": "My 3 tier application",
    "resources": [
      {
        "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
        "type": "OS::Glance::Image",
        "name": "cirros-0.3.4-x86_64-uec"
      },
      {
        "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
        "type": "OS::Nova::Server",
        "name": "App server"
      },
      {
        "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
        "type": "OS::Cinder::Volume",
        "name": "System volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      },
      {
        "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
        "type": "OS::Cinder::Volume",
        "name": "Data volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      }
    ],
    "status": "suspended",
    "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
    "parameters": {
      "OS::Nova::Server": {
        "backup_name": "os"
      },
      "OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
        "backup_name": "crash"
      },
      "OS::Cinder::Volume": {
        "backup_name": "os"
      },
      "OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
        "backup_name": "crash"
      }
    }
  }
}
PUT
/v1/{tenant_id}/plans/{plan_id}

更新计划

更新特定的计划。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

plan_id

body

UUID

计划的 UUID。

plan

body

对象

一个 plan 对象。

name (可选)

body

字符串

计划的名称。

resources (可选)

body

数组

计划中所有资源的列表。

status (可选)

body

字符串

计划的状态。有效值为 startedsuspended

请求示例

{
  "plan":{
    "status": "started",
    "name": "My 1 tier application"
  }
}

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

plan

body

对象

一个 plan 对象。

id

body

UUID

计划的 UUID。

name

body

字符串

计划的名称。

resources

body

数组

计划中所有资源的列表。

status

body

字符串

计划的状态。有效值为 startedsuspended

provider_id

body

UUID

提供程序的 UUID。

parameters

body

dict

计划的指定参数。

响应示例

{
  "plan": {
    "id": "9e5475d2-6425-4986-9136-a4f09642297f",
    "name": "My 1 tier application",
    "resources": [
      {
        "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
        "type": "OS::Glance::Image",
        "name": "cirros-0.3.4-x86_64-uec"
      },
      {
        "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
        "type": "OS::Nova::Server",
        "name": "App server"
      },
      {
        "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
        "type": "OS::Cinder::Volume",
        "name": "System volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      },
      {
        "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
        "type": "OS::Cinder::Volume",
        "name": "Data volume",
        "extra_info": {
            "availability_zone": "az1"
        }
      }
    ],
    "status": "started",
    "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
    "parameters": {
      "OS::Nova::Server": {
        "backup_name": "os"
      },
      "OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
        "backup_name": "crash"
      },
      "OS::Cinder::Volume": {
        "backup_name": "os"
      },
      "OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
        "backup_name": "crash"
      }
    }
  }
}
DELETE
/v1/{tenant_id}/plans/{plan_id}

删除计划

删除特定的计划。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

202 - Accepted

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

plan_id

body

UUID

计划的 UUID。

计划操作

此 API 启用 Karbor 用户访问触发器注册表并执行以下操作

  • 触发器 CRUD。

  • 列出触发器。

GET
/v1/{tenant_id}/triggers

列出触发器

列出给定项目提供的所有触发器,或通过 GET 方法使用 ?limit={limit_num} 限制触发器的一部分。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

triggers

body

数组

trigger 对象的列表。

id

body

UUID

触发器的 UUID。

type

body

字符串

触发器的类型。

name

body

字符串

触发器的名称。

properties

body

dict

触发器的属性列表。它必须包含“pattern”和“format”,可能包含“window”、“start_time”和“end_time”。

plans_links

body

数组

用于传输的链接。

响应示例

{"triggers": [
    {"trigger_info": {
      "id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
      "type": "time",
      "name": "My backup trigger",
      "properties": {
        "format": "calendar",
        "pattern": "BEGIN:VEVENT\\nRRULE:FREQ=HOURLY;INTERVAL=1;\\nEND:VEVENT",
        "start_time": "2015-12-17T08:30:00",
        "end_time": "2016-03-17T08:30:00",
        "window": "3600"
        }
      }
    }
  ],
 "triggers_links": [
    {
      "href": "/v1/{project_id}/triggers?limit={limit_num}&marker=2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
      "rel": "next"
    }
  ]
}
POST
/v1/{tenant_id}/triggers

创建触发器

创建一个新的触发器。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

trigger_info

body

对象

一个 trigger 对象。

type

body

字符串

触发器的类型。

name

body

字符串

触发器的名称。

properties

body

dict

触发器的属性列表。它必须包含“pattern”和“format”,可能包含“window”、“start_time”和“end_time”。

请求示例

{"trigger_info": {
    "name": "My backup trigger",
    "type": "time",
    "properties": {
      "format": "calendar",
      "pattern": "BEGIN:VEVENT\\nRRULE:FREQ=HOURLY;INTERVAL=1;\\nEND:VEVENT",
      "start_time": "2015-12-17T08:30:00",
      "end_time": "2016-03-17T08:30:00",
      "window": "3600"
    }
  }
}

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

trigger_info

body

对象

一个 trigger 对象。

id

body

UUID

触发器的 UUID。

type

body

字符串

触发器的类型。

name

body

字符串

触发器的名称。

properties

body

dict

触发器的属性列表。它必须包含“pattern”和“format”,可能包含“window”、“start_time”和“end_time”。

响应示例

{"trigger_info": {
    "id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
    "name": "My backup trigger",
    "type": "time",
    "properties": {
      "format": "calendar",
      "pattern": "BEGIN:VEVENT\\nRRULE:FREQ=HOURLY;INTERVAL=1;\\nEND:VEVENT",
      "start_time": "2015-12-17T08:30:00",
      "end_time": "2016-03-17T08:30:00",
      "window": "3600"
    }
  }
}
GET
/v1/{tenant_id}/triggers/{trigger_id}

显示触发器

显示特定触发器的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

trigger_id

路径

UUID

触发器的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

trigger_info

body

对象

一个 trigger 对象。

id

body

UUID

触发器的 UUID。

type

body

字符串

触发器的类型。

name

body

字符串

触发器的名称。

properties

body

dict

触发器的属性列表。它必须包含“pattern”和“format”,可能包含“window”、“start_time”和“end_time”。

响应示例

{"trigger_info": {
    "id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
    "name": "My backup trigger",
    "type": "time",
    "properties": {
      "format": "calendar",
      "pattern": "BEGIN:VEVENT\\nRRULE:FREQ=HOURLY;INTERVAL=1;\\nEND:VEVENT",
      "start_time": "2015-12-17T08:30:00",
      "end_time": "2016-03-17T08:30:00",
      "window": "3600"
    }
  }
}
PUT
/v1/{tenant_id}/triggers/{trigger_id}

更新触发器

更新特定触发器的名称或属性。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

trigger_id

路径

UUID

触发器的 UUID。

trigger_info

body

对象

一个 trigger 对象。

name (可选)

body

字符串

触发器的名称。

properties (可选)

body

dict

触发器的属性列表。它必须包含“pattern”和“format”,可能包含“window”、“start_time”和“end_time”。

请求示例

{"trigger_info": {
    "name": "Trigger for backup",
    "properties": {
      "format": "calendar",
      "pattern": "BEGIN:VEVENT\\nRRULE:FREQ=HOURLY;INTERVAL=1;\\nEND:VEVENT",
      "start_time": "2015-12-17T08:30:00",
      "end_time": "2016-03-17T08:30:00",
      "window": "3600"
    }
  }
}

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

trigger_info

body

对象

一个 trigger 对象。

id

body

UUID

触发器的 UUID。

type

body

字符串

触发器的类型。

name

body

字符串

触发器的名称。

properties

body

dict

触发器的属性列表。它必须包含“pattern”和“format”,可能包含“window”、“start_time”和“end_time”。

响应示例

{"trigger_info": {
    "id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
    "name": "Trigger for backup",
    "type": "time",
    "properties": {
      "format": "calendar",
      "pattern": "BEGIN:VEVENT\\nRRULE:FREQ=HOURLY;INTERVAL=1;\\nEND:VEVENT",
      "start_time": "2015-12-17T08:30:00",
      "end_time": "2016-03-17T08:30:00",
      "window": "3600"
    }
  }
}
DELETE
/v1/{tenant_id}/triggers/{trigger_id}

删除触发器

删除特定的触发器。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

202 - Accepted

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

trigger_id

路径

UUID

触发器的 UUID。

计划操作

此 API 启用 Karbor 用户管理保护操作

  • 为给定的保护计划创建一个检查点。

  • 删除提供程序中不需要的检查点。

  • 在给定的操作 ID 上的状态。

计划操作是当触发特定触发器时将执行的操作。

GET
/v1/{tenant_id}/scheduled_operations

列出计划操作

根据触发器和计划列出所有计划操作,或通过 GET 方法使用 ?limit={limit_num} 限制计划操作的一部分。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

operations

body

数组

scheduled operation 对象的列表。

scheduled_operation

body

对象

一个 scheduled operation 对象。

id

body

UUID

计划操作的 UUID。

name

body

字符串

计划操作的名称。

description

body

字符串

此对象、资源、操作等的描述。可能为 NULL

operation_type

body

字符串

计划操作的类型。

trigger_id

body

UUID

触发器的 UUID。

operation_definition

body

dict

计划操作的定义,包括 provider_idplan_id 键。

enabled

body

int

1” 表示 启用,“0” 表示 禁用

plans_links

body

数组

用于传输的链接。

响应示例

{"operations": [
    {"scheduled_operation": {
       "id": "1a2c0c3d-f402-4cd8-b5db-82e85cb51fad",
       "name": "My scheduled operation",
       "description": "It will run everyday",
       "operation_type": "protect",
       "trigger_id": "23902b02-5666-4ee6-8dfe-962ac09c3995",
       "operation_definition": {
         "provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
         "plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398"
         },
       "enabled": 1
      }
    },
  ],
  "operations_links": [
    {
      "href": "/v1/{project_id}/scheduled_operations?limit={limit_num}&marker=1a2c0c3d-f402-4cd8-b5db-82e85cb51fad",
      "rel": "next"
    }
  ]
}
POST
/v1/{tenant_id}/scheduled_operations

创建计划操作

创建一个新的计划操作。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

scheduled_operation

body

对象

一个 scheduled operation 对象。

name

body

字符串

计划操作的名称。

description

body

字符串

此对象、资源、操作等的描述。可能为 NULL

operation_type

body

字符串

计划操作的类型。

trigger_id

body

UUID

触发器的 UUID。

operation_definition

body

dict

计划操作的定义,包括 provider_idplan_id 键。

请求示例

{"scheduled_operation": {
    "name": "My scheduled operation",
    "description": "It will run everyday",
    "operation_type": "protect",
    "trigger_id": "23902b02-5666-4ee6-8dfe-962ac09c3995",
    "operation_definition": {
      "provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
      "plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398"
    }
  }
}

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

scheduled_operation

body

对象

一个 scheduled operation 对象。

id

body

UUID

计划操作的 UUID。

name

body

字符串

计划操作的名称。

description

body

字符串

此对象、资源、操作等的描述。可能为 NULL

operation_type

body

字符串

计划操作的类型。

trigger_id

body

UUID

触发器的 UUID。

operation_definition

body

dict

计划操作的定义,包括 provider_idplan_id 键。

enabled

body

int

1” 表示 启用,“0” 表示 禁用

响应示例

{"scheduled_operation": {
    "id": "1a2c0c3d-f402-4cd8-b5db-82e85cb51fad",
    "name": "My scheduled operation",
    "description": "It will run everyday",
    "operation_type": "protect",
    "trigger_id": "23902b02-5666-4ee6-8dfe-962ac09c3995",
    "operation_definition": {
      "provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
      "plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398"
    },
    "enabled": 1
  }
}
GET
/v1/{tenant_id}/scheduled_operations/{scheduled_operation_id}

显示计划操作

显示指定的计划操作信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

scheduled_operation_id

路径

UUID

计划操作的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

scheduled_operation

body

对象

一个 scheduled operation 对象。

id

body

UUID

计划操作的 UUID。

name

body

字符串

计划操作的名称。

description

body

字符串

此对象、资源、操作等的描述。可能为 NULL

operation_type

body

字符串

计划操作的类型。

trigger_id

body

UUID

触发器的 UUID。

operation_definition

body

dict

计划操作的定义,包括 provider_idplan_id 键。

enabled

body

int

1” 表示 启用,“0” 表示 禁用

响应示例

{"scheduled_operation": {
    "id": "1a2c0c3d-f402-4cd8-b5db-82e85cb51fad",
    "name": "My scheduled operation",
    "description": "It will run everyday",
    "operation_type": "protect",
    "trigger_id": "23902b02-5666-4ee6-8dfe-962ac09c3995",
    "operation_definition": {
      "provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
      "plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398"
    },
    "enabled": 1
  }
}
DELETE
/v1/{tenant_id}/scheduled_operations/{scheduled_operation_id}

删除计划操作

删除特定的计划操作。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

202 - Accepted

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

scheduled_operation_id

路径

UUID

计划操作的 UUID。

检查点

此 API 允许 Karbor 用户访问和管理存储在保护提供程序中的检查点

  • 列出给定 Bank ID 的所有检查点。

  • 显示给定检查点 ID 的信息。

  • 删除一个检查点。

  • 创建一个检查点。

执行上述操作时,这些状态值是可能的

状态

描述

error

发生检查点创建错误。

保护中

检查点正在创建中。

available

检查点已创建,可用。

deleting

检查点正在删除中。

deleted

检查点已删除。

删除错误

发生检查点删除错误。

GET
/v1/{tenant_id}/providers/{provider_id}/checkpoints

列出检查点

列出给定提供程序提供的所有检查点,或者通过 ?limit={limit_num} 通过 GET 方法限制的检查点的一部分。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

provider_id

路径

UUID

提供程序的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

checkpoints

body

数组

checkpoint 对象的列表。

id

body

UUID

检查点的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

status

body

字符串

检查点状态。有效值为 errorprotectingavailabledeletingdeletederror-deleting

protection_plan

body

对象

一个 plan 对象。

resource_graph

body

数组

与检查点对应的保护计划的资源图。

checkpoints_links

body

数组

用于传输的链接。

响应示例

{
  "checkpoints": [
    {
      "id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
      "project_id": "e486a2f49695423ca9c47e589b948108",
      "status": "available",
      "protection_plan": {
        "id": "3523a271-68aa-42f5-b9ba-56e5200a2ebb",
        "name": "My 3 tier application",
        "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
        "resources": [
          {
            "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
            "type": "OS::Glance::Image",
            "name": "cirros-0.3.4-x86_64-uec"
          },
          {
            "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
            "type": "OS::Nova::Server",
            "name": "App server"
          },
          {
            "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
            "type": "OS::Cinder::Volume",
            "name": "System volume"
          },
          {
            "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
            "type": "OS::Cinder::Volume",
            "name": "Data volume"
          }
        ]
      },
      "resource_graph": "[{'0x3': ['OS::Cinder::Volume', '33b6bb0b-1157-4e66-8553-1c9e14b1c7ba', 'Data volume'], '0x2': ['OS::Cinder::Volume', '25336116-f38e-4c22-81ad-e9b7bd71ba51', 'System volume'], '0x1': ['OS::Nova::Server', 'cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01', 'App server'], '0x0': ['OS::Glance::Image', '99777fdd-8a5b-45ab-ba2c-52420008103f', 'cirros-0.3.4-x86_64-uec']}, [['0x1', ['0x0']]]]"
    }
  ],
  "checkpoints_links": [
    {
      "href": "/v1/{project_id}/checkpoints?limit={limit_num}&marker=dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
      "rel": "next"
    }
  ]
}
POST
/v1/{tenant_id}/providers/{provider_id}/checkpoints

创建检查点

执行指定计划的保护操作,并在给定提供程序处创建一个检查点。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

provider_id

路径

UUID

提供程序的 UUID。

checkpoint

body

对象

一个 checkpoint 对象。

plan_id

body

UUID

计划的 UUID。

extra_info (可选)

body

dict

检查点的额外信息。

请求示例

{
  "checkpoint": {
    "plan_id": "3523a271-68aa-42f5-b9ba-56e5200a2ebb",
    "extra_info": {
      "create-by": "operation-engine",
      "trigger_id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba"
    }
  }
}

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

checkpoint

body

对象

一个 checkpoint 对象。

id

body

UUID

检查点的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

status

body

字符串

检查点状态。有效值为 errorprotectingavailabledeletingdeletederror-deleting

protection_plan

body

对象

一个 plan 对象。

resource_graph

body

数组

与检查点对应的保护计划的资源图。

响应示例

{
  "checkpoint": {
    "id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
    "project_id": "e486a2f49695423ca9c47e589b948108",
    "status": "available",
    "protection_plan": {
      "id": "3523a271-68aa-42f5-b9ba-56e5200a2ebb",
      "name": "My 3 tier application",
      "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
      "resources": [
        {
          "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
          "type": "OS::Glance::Image",
          "name": "cirros-0.3.4-x86_64-uec"
        },
        {
          "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
          "type": "OS::Nova::Server",
          "name": "App server"
        },
        {
          "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
          "type": "OS::Cinder::Volume",
          "name": "System volume"
        },
        {
          "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
          "type": "OS::Cinder::Volume",
          "name": "Data volume"
        }
      ]
    },
    "resource_graph": "[{'0x3': ['OS::Cinder::Volume', '33b6bb0b-1157-4e66-8553-1c9e14b1c7ba', 'Data volume'], '0x2': ['OS::Cinder::Volume', '25336116-f38e-4c22-81ad-e9b7bd71ba51', 'System volume'], '0x1': ['OS::Nova::Server', 'cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01', 'App server'], '0x0': ['OS::Glance::Image', '99777fdd-8a5b-45ab-ba2c-52420008103f', 'cirros-0.3.4-x86_64-uec']}, [['0x1', ['0x0']]]]"
  }
}
GET
/v1/{tenant_id}/providers/{provider_id}/checkpoints/{checkpoint_id}

显示检查点

显示在给定提供程序处提供的指定检查点的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

provider_id

路径

UUID

提供程序的 UUID。

checkpoint_id

路径

UUID

检查点的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

checkpoint

body

对象

一个 checkpoint 对象。

id

body

UUID

检查点的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

status

body

字符串

检查点状态。有效值为 errorprotectingavailabledeletingdeletederror-deleting

protection_plan

body

对象

一个 plan 对象。

resource_graph

body

数组

与检查点对应的保护计划的资源图。

响应示例

{
  "checkpoint": {
    "id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
    "project_id": "e486a2f49695423ca9c47e589b948108",
    "status": "available",
    "protection_plan": {
      "id": "3523a271-68aa-42f5-b9ba-56e5200a2ebb",
      "name": "My 3 tier application",
      "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
      "resources": [
        {
          "id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
          "type": "OS::Glance::Image",
          "name": "cirros-0.3.4-x86_64-uec"
        },
        {
          "id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
          "type": "OS::Nova::Server",
          "name": "App server"
        },
        {
          "id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
          "type": "OS::Cinder::Volume",
          "name": "System volume"
        },
        {
          "id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
          "type": "OS::Cinder::Volume",
          "name": "Data volume"
        }
      ]
    },
    "resource_graph": "[{'0x3': ['OS::Cinder::Volume', '33b6bb0b-1157-4e66-8553-1c9e14b1c7ba', 'Data volume'], '0x2': ['OS::Cinder::Volume', '25336116-f38e-4c22-81ad-e9b7bd71ba51', 'System volume'], '0x1': ['OS::Nova::Server', 'cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01', 'App server'], '0x0': ['OS::Glance::Image', '99777fdd-8a5b-45ab-ba2c-52420008103f', 'cirros-0.3.4-x86_64-uec']}, [['0x1', ['0x0']]]]"
  }
}
DELETE
/v1/{tenant_id}/providers/{provider_id}/checkpoints/{checkpoint_id}

删除检查点

删除特定的检查点。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

provider_id

路径

UUID

提供程序的 UUID。

checkpoint_id

路径

UUID

检查点的 UUID。

响应

空字典

响应示例

{}
PUT
/v1/{tenant_id}/providers/{provider_id}/checkpoints/{checkpoint_id}

更新检查点

更新特定的检查点。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

provider_id

路径

UUID

提供程序的 UUID。

checkpoint_id

路径

UUID

检查点的 UUID。

os-resetState

body

对象

一个 os-resetState 对象。

os-resetState.state

body

字符串

检查点状态。有效值为 erroravailable

响应

空字典

响应示例

{}

恢复

此 API 允许 Karbor 用户将检查点恢复到恢复目标

  • 列出给定项目的所有恢复。

  • 从检查点创建恢复的系统。

  • 显示给定恢复操作的信息。

执行上述操作时,这些状态值是可能的

状态

描述

started

恢复操作正在进行中。

success

恢复操作成功。

失败

恢复操作失败。

GET
/v1/{tenant_id}/restores

列出恢复

列出已启动、成功或失败的所有恢复,由给定项目触发,或者通过 ?limit={limit_num} 通过 GET 方法限制的保护计划的一部分。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

restores

body

数组

restore 对象的列表。

id

body

UUID

恢复的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

provider_id

body

UUID

提供程序的 UUID。

checkpoint_id

body

UUID

检查点的 UUID。

restore_target

body

字符串

恢复操作的目标。

parameters

body

dict

根据保护插件的恢复模式指定每个资源或资源类型参数。

status

body

字符串

恢复状态。有效值为“started”、“success”或“failed”。

resource_status

body

dict

每个资源的恢复状态映射

resource_reason

body

dict

恢复中每个资源的失败原因映射

restores_links

body

数组

用于传输的链接。

响应示例

{
  "restores": [
    {
      "id": "22b82aa7-9179-4c71-bba2-caf5c0e68db7",
      "project_id": "e486a2f49695423ca9c47e589b948108",
      "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
      "checkpoint_id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
      "restore_target": "http://192.168.1.2/identity/",
      "parameters": {
        "OS::Cinder::Volume": {
        },
        "OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": {
        }
      },
      "restore_auth": {
        "type": "password",
        "username": "admin",
        "password": "***"
      },
      "resource_status": {
        "OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": "restoring",
        "OS::Cinder::Volume#98eb847f-9f59-4d54-8b7b-5047bd2fa4c7": "error"
      },
      "resource_reason": {
        "OS::Cinder::Volume#98eb847f-9f59-4d54-8b7b-5047bd2fa4c7": "Backup not found"
      },
      "status": "success"
    }
  ],
  "restores_links": [
    {
      "href": "/v1/{project_id}/restores?limit={limit_num}&marker=22b82aa7-9179-4c71-bba2-caf5c0e68db7",
      "rel": "next"
    }
  ]
}
POST
/v1/{tenant_id}/restores

创建恢复

启动恢复操作。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

restore

body

对象

一个 restore 对象。

provider_id

body

UUID

提供程序的 UUID。

checkpoint_id

body

UUID

检查点的 UUID。

restore_target

body

字符串

恢复操作的目标。

restore_auth

body

dict

恢复的身份验证,包括“type”、“username”和“password”键。

parameters

body

dict

根据保护插件的恢复模式指定每个资源或资源类型参数。

请求示例

{
  "restore": {
    "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
    "checkpoint_id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
    "restore_target": "http://192.168.1.2/identity/",
    "restore_auth": {
      "type": "password",
      "username": "admin",
      "password": "secretadmin"
    },
    "parameters": {
      "OS::Cinder::Volume": {
      },
      "OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": {
      }
    }
  }
}

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

restore

body

对象

一个 restore 对象。

id

body

UUID

恢复的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

provider_id

body

UUID

提供程序的 UUID。

checkpoint_id

body

UUID

检查点的 UUID。

restore_target

body

字符串

恢复操作的目标。

restore_auth

body

dict

恢复的身份验证,包括“type”、“username”和“password”键。

parameters

body

dict

根据保护插件的恢复模式指定每个资源或资源类型参数。

status

body

字符串

恢复状态。有效值为“started”、“success”或“failed”。

resource_status

body

dict

每个资源的恢复状态映射

resource_reason

body

dict

恢复中每个资源的失败原因映射

响应示例

{
  "restore": {
    "id": "22b82aa7-9179-4c71-bba2-caf5c0e68db7",
    "project_id": "e486a2f49695423ca9c47e589b948108",
    "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
    "checkpoint_id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
    "restore_target": "http://192.168.1.2/identity/",
    "restore_auth": {
      "type": "password",
      "username": "admin",
      "password": "***"
    },
    "parameters": {
      "OS::Cinder::Volume": {
      },
      "OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": {
      }
    },
    "resource_status": {
      "OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": "restoring",
      "OS::Cinder::Volume#98eb847f-9f59-4d54-8b7b-5047bd2fa4c7": "restoring"
    },
    "resource_reason": {
    },
    "status": "success"
  }
}
GET
/v1/{tenant_id}/restores/{restore_id}

显示恢复

显示给定恢复操作的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

restore_id

路径

UUID

恢复的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

restore

body

对象

一个 restore 对象。

id

body

UUID

恢复的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

provider_id

body

UUID

提供程序的 UUID。

checkpoint_id

body

UUID

检查点的 UUID。

restore_target

body

字符串

恢复操作的目标。

parameters

body

dict

根据保护插件的恢复模式指定每个资源或资源类型参数。

status

body

字符串

恢复状态。有效值为“started”、“success”或“failed”。

resource_status

body

dict

每个资源的恢复状态映射

resource_reason

body

dict

恢复中每个资源的失败原因映射

响应示例

{
  "restore": {
    "id": "22b82aa7-9179-4c71-bba2-caf5c0e68db7",
    "project_id": "e486a2f49695423ca9c47e589b948108",
    "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
    "checkpoint_id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
    "restore_target": "http://192.168.1.2/identity/",
    "restore_auth": {
      "type": "password",
      "username": "admin",
      "password": "***"
    },
    "parameters": {
      "OS::Cinder::Volume": {
      },
      "OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": {
      }
    },
    "resource_status": {
      "OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": "restoring",
      "OS::Cinder::Volume#98eb847f-9f59-4d54-8b7b-5047bd2fa4c7": "restoring"
    },
    "resource_reason": {
    },
    "status": "success"
  }
}

操作日志

此 API 允许 Karbor 用户获取有关操作日志的信息

  • 列出给定项目的所有操作日志。

  • 显示给定操作日志的信息。

执行上述操作时,这些状态值是可能的

状态

描述

available

保护操作已完成。

success

恢复操作成功。

deleted

删除操作已完成。

GET
/v1/{tenant_id}/operation_logs

列出操作日志

列出所有操作日志,由给定项目触发,或者通过 ?limit={limit_num} 通过 GET 方法限制的操作日志的一部分。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

sort (可选)

查询

字符串

逗号分隔的排序键列表和可选的排序方向,格式为 < key > [: < direction > ]。有效的方向是 asc(升序)或 desc(降序)。

limit (可选)

查询

整数

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

marker (可选)

查询

字符串

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

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

operation_logs

body

数组

operation_log 对象的列表。

id

body

UUID

operation_log 的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

operation_type

body

字符串

计划操作的类型。

checkpoint_id (可选)

body

UUID

检查点的 UUID。

plan_id (可选)

body

UUID

计划的 UUID。

provider_id (可选)

body

UUID

提供程序的 UUID。

restore_id (可选)

body

UUID

恢复的 UUID。

scheduled_operation_id (可选)

body

UUID

计划操作的 UUID。

status (可选)

body

字符串

操作日志的状态。

started_at (可选)

body

字符串

操作的开始时间。

ended_at (可选)

body

字符串

操作的结束时间。

error_info (可选)

body

dict

操作的错误信息。

extra_info (可选)

body

dict

检查点的额外信息。

operation_logs_links

body

数组

用于传输的链接。

响应示例

{
    "operation_logs": [{
        "status": "deleted",
        "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
        "restore_id": null,
        "checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
        "error_info": null,
        "ended_at": "2017-07-28T09:02:57.000000",
        "started_at": "2017-07-28T09:02:41.000000",
        "id": "f0aa664b-f385-4618-bc27-9e0116cceea7",
        "extra_info": null,
        "plan_id": "d58ffd3e-f64e-4b67-9bb0-b86d3483e7d0",
        "scheduled_operation_id": null,
        "operation_type": "protect"
    },
    {
        "status": "success",
        "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
        "restore_id": "7c0d396a-981b-4953-95f5-30382ddaa8bf",
        "checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
        "error_info": null,
        "ended_at": "2017-07-28T08:58:08.000000",
        "started_at": "2017-07-28T08:57:36.000000",
        "id": "8736649d-857e-4637-923c-3bdb35edd74e",
        "extra_info": null,
        "plan_id": null,
        "scheduled_operation_id": null,
        "operation_type": "restore"
    },
    {
        "status": "available",
        "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
        "restore_id": null,
        "checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
        "error_info": null,
        "ended_at": "2017-07-28T08:43:22.000000",
        "started_at": "2017-07-28T08:42:02.000000",
        "id": "7a16c731-0658-47dd-aa3b-98ee21830e23",
        "extra_info": null,
        "plan_id": "d58ffd3e-f64e-4b67-9bb0-b86d3483e7d0",
        "scheduled_operation_id": null,
        "operation_type": "protect"
    }],
    "operation_logs_links": [{
        "href": "/v1/{project_id}/operation_logs?limit={limit_num}&marker=7a16c731-0658-47dd-aa3b-98ee21830e23",
        "rel": "next"
    }]
}
GET
/v1/{tenant_id}/operation_logs/{operation_log_id}

显示操作日志

显示给定操作日志的信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

operation_log_id

路径

UUID

操作日志的 UUID。

响应

名称

入参

类型

描述

X-Openstack-Request-Id

标头

UUID

用于跟踪服务请求的唯一 ID。默认情况下,与请求关联的请求 ID 出现在服务日志中。

operation_log

body

对象

一个 operation_log 对象。

id

body

UUID

operation_log 的 UUID。

project_id

body

字符串

多租户云中的租户的 UUID。

operation_type

body

UUID

操作动作的类型。

checkpoint_id (可选)

body

UUID

检查点的 UUID。

plan_id (可选)

body

UUID

计划的 UUID。

provider_id (可选)

body

UUID

提供程序的 UUID。

restore_id (可选)

body

UUID

恢复的 UUID。

scheduled_operation_id (可选)

body

UUID

计划操作的 UUID。

status (可选)

body

字符串

操作日志的状态。

started_at (可选)

body

字符串

操作的开始时间。

ended_at (可选)

body

字符串

操作的结束时间。

error_info (可选)

body

dict

操作的错误信息。

extra_info (可选)

body

dict

操作的额外信息。

响应示例

{
    "operation_log": {
        "status": "available",
        "provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
        "restore_id": null,
        "checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
        "error_info": null,
        "ended_at": "2017-07-28T08:43:22.000000",
        "started_at": "2017-07-28T08:42:02.000000",
        "id": "7a16c731-0658-47dd-aa3b-98ee21830e23",
        "extra_info": null,
        "plan_id": "d58ffd3e-f64e-4b67-9bb0-b86d3483e7d0",
        "scheduled_operation_id": null,
        "operation_type": "protect"
    }
}

服务

仅限管理员。列出所有 Karbor 服务,启用或禁用 Karbor 服务,冻结或解冻指定的 karbor-operationengine 主机。

GET
/v1/{tenant_id}/os-services

列出所有 Karbor 服务

列出所有 Karbor 服务。提供任何服务被禁用的原因的详细信息。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

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

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

host (可选)

查询

字符串

按服务的主机名过滤服务列表结果。

binary (可选)

查询

字符串

按服务的二进制名称过滤服务列表结果。

响应

名称

入参

类型

描述

services

body

数组

服务对象列表。

id

body

整数

清理服务的 UUID。

binary

body

字符串

服务的二进制名称。

host

body

字符串

主机的名称。

status

body

字符串

服务状态。为 enableddisabled 中的一个。

state

body

字符串

服务的状态。为 updown 中的一个。

updated_at

body

字符串

扩展上次更新的日期和时间戳。

disabled_reason

body

字符串

禁用服务的理由。

响应示例

{
  "services": [{
    "status": "enabled",
    "binary": "karbor-operationengine",
    "state": "down",
    "updated_at": "2019-11-03T11:50:25.000000",
    "host": "devstack",
    "disabled_reason": null,
    "id": 1
  }, {
    "status": "enabled",
    "binary": "karbor-operationengine",
    "state": "up",
    "updated_at": "2019-11-11T02:56:05.000000",
    "host": "devstack",
    "disabled_reason": null,
    "id": 2
  }, {
    "status": "enabled",
    "binary": "karbor-protection",
    "state": "up",
    "updated_at": "2019-11-11T02:56:03.000000",
    "host": "devstack",
    "disabled_reason": null,
    "id": 3
  }]
}
PUT
/v1/{tenant_id}/os-services/{service_id}

更新 Karbor 服务状态

更新 Karbor operationengine 服务状态。通过其 ID 指定服务。

响应代码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

请求中的某些内容无效。

401 - 未授权

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

403 - 禁止

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

404 - Not Found

找不到请求的资源。

请求

名称

入参

类型

描述

tenant_id

路径

字符串

多租户云中的租户的 UUID。

service_id

路径

整数

服务的 ID。

请求示例

{
  "status": "disabled",
  "disabled_reason": "service down"
}

响应参数

名称

入参

类型

描述

服务

body

对象

一个 service 对象。

id

body

整数

清理服务的 UUID。

binary

body

字符串

服务的二进制名称。

host

body

字符串

主机的名称。

status

body

字符串

服务状态。为 enableddisabled 中的一个。

state

body

字符串

服务的状态。为 updown 中的一个。

updated_at

body

字符串

扩展上次更新的日期和时间戳。

disabled_reason

body

字符串

禁用服务的理由。

响应示例

{
  "service": {
    "status": "disabled",
    "binary": "karbor-operationengine",
    "state": "down",
    "updated_at": "2019-11-03T11:50:25.000000",
    "host": "devstack",
    "disabled_reason": null,
    "id": 1
  }
}