数据库 API

API 版本

列出所有数据库服务 API 版本的相关信息。

GET
/

列出版本

列出所有数据库服务 API 版本的相关信息。无需身份验证。

正常响应代码:200

响应示例

{
    "versions": [
        {
            "id": "v1.0",
            "links": [
                {
                    "href": "http://127.0.0.1:8779/v1.0/",
                    "rel": "self"
                }
            ],
            "status": "CURRENT",
            "updated": "2012-08-01T00:00:00Z"
        }
    ]
}

数据存储

GET
/v1.0/{project_id}/datastores

列出数据存储

获取系统中注册的所有数据存储

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应示例

{
    "datastores": [
        {
            "default_version": "9e46a201-e92e-4ae0-af89-4af12a21bb45",
            "id": "75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/datastores/75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
                    "rel": "bookmark"
                }
            ],
            "name": "mariadb",
            "versions": [
                {
                    "id": "9e46a201-e92e-4ae0-af89-4af12a21bb45",
                    "links": [
                        {
                            "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/9e46a201-e92e-4ae0-af89-4af12a21bb45",
                            "rel": "self"
                        },
                        {
                            "href": "https://127.0.0.1:8779/datastores/versions/9e46a201-e92e-4ae0-af89-4af12a21bb45",
                            "rel": "bookmark"
                        }
                    ],
                    "name": "10.4"
                }
            ]
        },
        {
            "default_version": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "id": "3bf89e46-c3ed-4db6-a423-6e6709ec21ef",
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/3bf89e46-c3ed-4db6-a423-6e6709ec21ef",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/datastores/3bf89e46-c3ed-4db6-a423-6e6709ec21ef",
                    "rel": "bookmark"
                }
            ],
            "name": "mysql",
            "versions": [
                {
                    "id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
                    "links": [
                        {
                            "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/b3d5c099-dbd5-4518-baa3-7c7c195671bf",
                            "rel": "self"
                        },
                        {
                            "href": "https://127.0.0.1:8779/datastores/versions/b3d5c099-dbd5-4518-baa3-7c7c195671bf",
                            "rel": "bookmark"
                        }
                    ],
                    "name": "5.7"
                }
            ]
        },
        {
            "id": "cc9ee471-e781-43bf-a796-423c5d549997",
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
                    "rel": "bookmark"
                }
            ],
            "name": "postgresql",
            "versions": [
                {
                    "id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
                    "links": [
                        {
                            "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
                            "rel": "self"
                        },
                        {
                            "href": "https://127.0.0.1:8779/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
                            "rel": "bookmark"
                        }
                    ],
                    "name": "12"
                }
            ]
        }
    ]
}
GET
/v1.0/{project_id}/datastores/{datastore}

显示数据存储详情

显示数据存储详情

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore (可选)

路径

字符串

数据存储的名称或 ID。

响应示例

{
    "datastore": {
        "id": "cc9ee471-e781-43bf-a796-423c5d549997",
        "links": [
            {
                "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
                "rel": "self"
            },
            {
                "href": "https://127.0.0.1:8779/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
                "rel": "bookmark"
            }
        ],
        "name": "postgresql",
        "versions": [
            {
                "id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
                "links": [
                    {
                        "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
                        "rel": "self"
                    },
                    {
                        "href": "https://127.0.0.1:8779/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
                        "rel": "bookmark"
                    }
                ],
                "name": "12"
            }
        ]
    }
}
DELETE
/v1.0/{project_id}/datastores/{datastore}

删除数据存储

删除一个数据存储。

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore (可选)

路径

字符串

数据存储的名称或 ID。

数据存储版本

GET
/v1.0/{project_id}/datastores/{datastore}/versions

列出数据存储版本

获取给定数据存储的所有已注册版本

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore (可选)

路径

字符串

数据存储的名称或 ID。

响应示例

{
    "versions": [
        {
            "datastore": "cc9ee471-e781-43bf-a796-423c5d549997",
            "id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
                    "rel": "bookmark"
                }
            ],
            "name": "12",
            "version": "5.7.29"
        }
    ]
}
GET
/v1.0/{project_id}/datastores/{datastore}/versions/{version}

显示数据存储版本

获取给定数据存储版本(名称或 ID)的信息

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore (可选)

路径

字符串

数据存储的名称或 ID。

version (可选)

路径

字符串

数据存储版本的名称或 ID。如果存在具有相同名称但不同版本号的多个数据存储版本,则需要 ID。

响应示例

{
    "version": {
      "id": "800774c4-0505-4ae7-8cf9-aae131e065ae",
      "name": "5.7",
      "version": "5.7",
      "links": [
        {
          "href": "https://127.0.0.1:8779/v1.0/0600c20b16444bfa979b879b099805a1/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
          "rel": "self"
        },
        {
          "href": "https://127.0.0.1:8779/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
          "rel": "bookmark"
        }
      ],
      "datastore": "3423e828-3355-48ef-9c16-5c41e7c196fb",
      "active": true,
      "packages": "",
      "image": null,
      "registry_ext": "trove.guestagent.datastore.mysql.manager.Manager",
      "repl_strategy": "trove.guestagent.strategies.replication.mysql_gtid.MysqlGTIDReplication",
      "image_tags": [
        "trove"
      ]
    }
}
GET
/v1.0/{project_id}/datastores/{datastore}/versions/{version}/parameters

列出数据存储版本配置参数

获取与指定数据存储版本关联的所有配置参数

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore (可选)

路径

字符串

数据存储的名称或 ID。

version (可选)

路径

字符串

数据存储版本的名称或 ID。如果存在具有相同名称但不同版本号的多个数据存储版本,则需要 ID。

响应示例

{
    "configuration-parameters": [
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 1,
            "min": 0,
            "name": "autocommit",
            "restart_required": false,
            "type": "integer"
        },
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 65535,
            "min": 1,
            "name": "auto_increment_increment",
            "restart_required": false,
            "type": "integer"
        },
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 65535,
            "min": 1,
            "name": "auto_increment_offset",
            "restart_required": false,
            "type": "integer"
        },
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 31536000,
            "min": 1,
            "name": "wait_timeout",
            "restart_required": false,
            "type": "integer"
        }
    ]
}
GET
/v1.0/{project_id}/datastores/{datastore}/versions/{version}/parameters/{parameter_name}

显示数据存储版本配置参数

获取指定的配置参数定义。

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore (可选)

路径

字符串

数据存储的名称或 ID。

version (可选)

路径

字符串

数据存储版本的名称或 ID。如果存在具有相同名称但不同版本号的多个数据存储版本,则需要 ID。

parameter_name (可选)

路径

字符串

要显示详细信息的参数名称。

响应示例

{
    "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
    "max": 31536000,
    "min": 1,
    "name": "wait_timeout",
    "restart_required": false,
    "type": "integer"
}
GET
/v1.0/{project_id}/datastores/versions/{datastore_version_id}

显示数据存储版本

获取给定数据存储版本 ID 的信息。

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

响应示例

{
    "version": {
      "id": "800774c4-0505-4ae7-8cf9-aae131e065ae",
      "name": "5.7",
      "version": "5.7",
      "links": [
        {
          "href": "https://127.0.0.1:8779/v1.0/0600c20b16444bfa979b879b099805a1/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
          "rel": "self"
        },
        {
          "href": "https://127.0.0.1:8779/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
          "rel": "bookmark"
        }
      ],
      "datastore": "3423e828-3355-48ef-9c16-5c41e7c196fb",
      "active": true,
      "packages": "",
      "image": null,
      "registry_ext": "trove.guestagent.datastore.mysql.manager.Manager",
      "repl_strategy": "trove.guestagent.strategies.replication.mysql_gtid.MysqlGTIDReplication",
      "image_tags": [
        "trove"
      ]
    }
}
GET
/v1.0/{project_id}/datastores/versions/{datastore_version_id}/parameters

列出数据存储版本配置参数

获取与指定数据存储版本 ID 关联的所有配置参数。

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

响应示例

{
    "configuration-parameters": [
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 1,
            "min": 0,
            "name": "autocommit",
            "restart_required": false,
            "type": "integer"
        },
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 65535,
            "min": 1,
            "name": "auto_increment_increment",
            "restart_required": false,
            "type": "integer"
        },
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 65535,
            "min": 1,
            "name": "auto_increment_offset",
            "restart_required": false,
            "type": "integer"
        },
        {
            "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
            "max": 31536000,
            "min": 1,
            "name": "wait_timeout",
            "restart_required": false,
            "type": "integer"
        }
    ]
}
GET
/v1.0/{project_id}/datastores/versions/{datastore_version_id}/parameters/{parameter_name}

显示数据存储版本配置参数

获取指定的配置参数定义。

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

parameter_name (可选)

路径

字符串

要显示详细信息的参数名称。

响应示例

{
    "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
    "max": 31536000,
    "min": 1,
    "name": "wait_timeout",
    "restart_required": false,
    "type": "integer"
}
POST
/v1.0/{project_id}/mgmt/datastores/versions/{datastore_version_id}/parameters

创建数据存储版本配置参数

仅限管理员 API。为指定的数据存储版本注册一个配置参数。参数定义包含类型、最小值和最大值(如果类型为整数),以及参数值更改后是否需要重新启动实例。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

请求示例

{
    "configuration-parameter": {
        "name": "connect_timeout",
        "data_type": "integer",
        "min_size": 64,
        "max_size": 65535,
        "restart_required": 0
    }
}

响应示例

{
    "configuration-parameters": [
        {
            "datastore_version_id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
            "max": 65535,
            "min": 64,
            "name": "connect_timeout",
            "restart_required": false,
            "type": "integer"
        }
    ]
}
PUT
/v1.0/{project_id}/mgmt/datastores/versions/{datastore_version_id}/parameters/{parameter_name}

更新数据存储版本配置参数

仅限管理员 API。更新指定数据存储版本的配置参数。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

parameter_name (可选)

路径

字符串

要显示详细信息的参数名称。

请求示例

{
    "configuration-parameter": {
        "name": "connect_timeout",
        "data_type": "integer",
        "min_size": 64,
        "max_size": 65535,
        "restart_required": 1
    }
}

响应示例

{
    "datastore_version_id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
    "deleted": 0,
    "deleted_at": null,
    "max_size": 65535,
    "min_size": 64,
    "name": "connect_timeout",
    "restart_required": true,
    "type": "integer"
}
DELETE
/v1.0/{project_id}/mgmt/datastores/versions/{datastore_version_id}/parameters/{parameter_name}

删除数据存储版本配置参数

仅限管理员 API。删除指定数据存储版本的配置参数。

正常响应代码:204

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

parameter_name (可选)

路径

字符串

要显示详细信息的参数名称。

POST
/v1.0/{project_id}/mgmt/datastore-versions

创建数据存储版本

仅限管理员 API。注册一个数据存储版本,如果不存在则自动创建数据存储。

允许创建具有相同名称但不同版本号的数据存储版本,反之亦然。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

name

body

字符串

数据存储版本的名称。不同的数据存储版本可以具有相同的名称。

datastore_name

body

字符串

数据存储的名称。

datastore_manager

body

字符串

数据存储的类型。

image (可选)

body

字符串

镜像的 ID。

在创建数据存储版本时,需要指定 imageimage_tags 中的一个。

image_tags (可选)

body

数组

镜像标签列表。

在创建数据存储版本时,需要指定 imageimage_tags 中的一个。

如果未提供镜像 ID,则可以通过镜像标签检索镜像。标签用于整体过滤,而不是单独过滤。使用镜像标签比 ID 更灵活,尤其是在将新客户镜像上传到 Glance 时,Trove 可以自动选择最新的镜像来创建实例。

在更新时,仅指定 image_tags 可以从数据存储版本中删除 image

active

body

布尔值

数据库版本是否启用。

default (可选)

body

布尔值

如果为 true,则此数据存储版本将在数据存储中创建为默认版本。如果未指定,则对于创建,默认值为 false,对于更新,则忽略它。

version (可选)

body

字符串

数据库的版本号。在基于容器的 Trove 实例部署中,版本号与容器镜像标签相同,例如对于 MySQL,有效的版本号是 5.7.30

请求示例

{
    "version": {
        "datastore_name": "mysql",
        "datastore_manager": "mysql",
        "name": "test",
        "image_tags": ["trove"],
        "active": true,
        "default": false,
        "packages": [],
        "version": "5.7.30"
    }
}
GET
/v1.0/{project_id}/mgmt/datastore-versions

列出数据存储版本

仅限管理员 API。获取所有数据存储版本。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应示例

{
    "versions": [
        {
            "active": true,
            "datastore_id": "75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
            "datastore_manager": "mariadb",
            "datastore_name": "mariadb",
            "default": false,
            "id": "385fa391-f6f1-4444-9d80-7dc3b2188fa3",
            "image": "42706631-3b76-4d1c-95c9-6a85e72eebda",
            "name": "10.4-dev-train",
            "packages": [
                ""
            ],
            "version": "10.4.12"
        },
        {
            "active": true,
            "datastore_id": "cc9ee471-e781-43bf-a796-423c5d549997",
            "datastore_manager": "postgresql",
            "datastore_name": "postgresql",
            "default": false,
            "id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
            "image": "2eb8005f-270c-492f-977e-3c041a622ef7",
            "name": "12",
            "packages": [
                ""
            ],
            "version": "12.4"
        }
    ]
}
GET
/v1.0/{project_id}/mgmt/datastore-versions/{datastore_version_id}

显示数据存储版本详情

仅限管理员 API。获取数据存储版本的信息。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

响应示例

{
    "version": {
        "active": true,
        "datastore_id": "75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
        "datastore_manager": "mariadb",
        "datastore_name": "mariadb",
        "default": false,
        "id": "385fa391-f6f1-4444-9d80-7dc3b2188fa3",
        "image": "42706631-3b76-4d1c-95c9-6a85e72eebda",
        "name": "10.4-dev-train",
        "packages": [
            ""
        ],
        "version": "10.4.12"
    }
}
PATCH
/v1.0/{project_id}/mgmt/datastore-versions/{datastore_version_id}

更新数据存储版本详情

仅限管理员 API。更新特定的数据存储版本。

不允许更新版本号。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

name (可选)

body

字符串

数据存储版本的名称。不同的数据存储版本可以具有相同的名称。

datastore_manager (可选)

body

字符串

数据存储的类型。

image (可选)

body

字符串

镜像的 ID。

在创建数据存储版本时,需要指定 imageimage_tags 中的一个。

image_tags (可选)

body

数组

镜像标签列表。

在创建数据存储版本时,需要指定 imageimage_tags 中的一个。

如果未提供镜像 ID,则可以通过镜像标签检索镜像。标签用于整体过滤,而不是单独过滤。使用镜像标签比 ID 更灵活,尤其是在将新客户镜像上传到 Glance 时,Trove 可以自动选择最新的镜像来创建实例。

在更新时,仅指定 image_tags 可以从数据存储版本中删除 image

active (可选)

body

布尔值

数据库版本是否启用。

default (可选)

body

布尔值

如果为 true,则此数据存储版本将在数据存储中创建为默认版本。如果未指定,则对于创建,默认值为 false,对于更新,则忽略它。

请求示例

{
    "name": "new name",
    "image": "42706631-3b76-4d1c-95c9-6a85e72eebda",
    "active": true
}
DELETE
/v1.0/{project_id}/mgmt/datastore-versions/{datastore_version_id}

删除数据存储版本

仅限管理员 API。删除特定的数据存储版本。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore_version_id (可选)

路径

字符串

数据存储版本的 UUID。

实例

GET
/v1.0/{project_id}/instances

列出数据库实例

列出所有数据库实例的信息。支持的过滤器:include_clustered

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应示例

{
    "instances": [
        {
            "datastore": {
                "type": "mysql",
                "version": "5.7"
            },
            "flavor": {
                "id": "6"
            },
            "id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
            "ip": [
                "10.1.0.62",
                "172.24.5.114"
            ],
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                    "rel": "bookmark"
                }
            ],
            "name": "test",
            "operating_status": "HEALTHY",
            "region": "RegionOne",
            "status": "ACTIVE",
            "volume": {
                "size": 1
            }
        }
    ]
}
GET
/v1.0/{project_id}/mgmt/instances

列出数据库实例(管理员)

仅限管理员 API。获取所有实例,可以显示更多信息,例如 Cinder 卷 ID、Nova 服务器信息等。

支持的过滤器

  • deleted.

  • include_clustered.

  • project_id:获取指定项目的实例。

正常响应代码:200

响应示例

{
    "instances": [
        {
            "addresses": [
                {
                    "address": "10.1.0.62",
                    "type": "private",
                    "network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
                },
                {
                    "address": "172.24.5.114",
                    "type": "public"
                }
            ],
            "created": "2019-12-23T20:58:35",
            "datastore": {
                "type": "mysql",
                "version": "5.7"
            },
            "deleted": false,
            "deleted_at": null,
            "encrypted_rpc_messaging": true,
            "flavor": {
                "id": "d2"
            },
            "id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
            "ip": [
                "10.1.0.62",
                "172.24.5.114"
            ],
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/2afa58fd5db34fd8b7b659d997a5341f/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2"
                }
            ],
            "name": "test",
            "operating_status": "HEALTHY",
            "region": "RegionOne",
            "server": {
                "host": "bdfe3275004d2a98d38d494fd7adfcd0c6d5d5198e86fa0d6ec5d588",
                "id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
                "name": "test",
                "status": "ACTIVE",
                "tenant_id": "27ac4b83e9d045eb8c373bacaa994eb7"
            },
            "server_id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
            "service_status": "HEALTHY",
            "service_status_updated": "2019-12-24T00:02:55",
            "status": "ACTIVE",
            "task_description": "No tasks for the instance.",
            "tenant_id": "9f8dd5eacb074c9f87d2d822c9092aa5",
            "updated": "2019-12-23T23:53:46",
            "volume": {
                "size": 1
            },
            "volume_id": "ccb62e29-73ea-4859-b206-3b3a4e30a991"
        },
        {
            "created": "2019-12-23T20:53:38",
            "datastore": {
                "type": "mysql",
                "version": "5.7"
            },
            "deleted": false,
            "deleted_at": null,
            "encrypted_rpc_messaging": true,
            "fault": {
                "created": "2019-12-23T20:53:41",
                "details": "Failed to create User port for instance b76a6a76-748b-4064-adec-4c9e6c9abd68",
                "message": "Failed to create User port for instance b76a6a76-748b-4064-adec-4c9e6c9abd68"
            },
            "flavor": {
                "id": "6"
            },
            "id": "b76a6a76-748b-4064-adec-4c9e6c9abd68",
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/2afa58fd5db34fd8b7b659d997a5341f/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
                    "rel": "bookmark"
                }
            ],
            "name": "test",
            "operating_status": "",
            "region": "RegionOne",
            "server": null,
            "server_id": null,
            "service_status": "NEW",
            "service_status_updated": "2019-12-23T20:53:38",
            "status": "ERROR",
            "task_description": "Build error: Port.",
            "tenant_id": "9f8dd5eacb074c9f87d2d822c9092aa5",
            "updated": "2019-12-23T20:53:41",
            "volume": {
                "size": 1
            },
            "volume_id": null
        }
    ]
}
GET
/v1.0/{project_id}/instances/detail

列出数据库实例(带详情)

列出所有数据库实例的信息,包含更多详情,例如创建和更新时间、服务状态更新时间、故障消息等。支持的过滤器:include_clustered

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应示例

{
    "instances": [
        {
            "addresses": [
                {
                    "address": "10.1.0.62",
                    "type": "private",
                    "network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
                },
                {
                    "address": "172.24.5.114",
                    "type": "public"
                }
            ],
            "created": "2019-12-23T20:58:35",
            "datastore": {
                "type": "mysql",
                "version": "5.7"
            },
            "flavor": {
                "id": "6"
            },
            "id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
            "ip": [
                "10.1.0.62",
                "172.24.5.114"
            ],
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                    "rel": "bookmark"
                }
            ],
            "name": "test",
            "operating_status": "HEALTHY",
            "region": "RegionOne",
            "service_status_updated": "2019-12-23T21:01:11",
            "status": "ACTIVE",
            "updated": "2019-12-23T20:58:45",
            "volume": {
                "size": 1
            }
        },
        {
            "created": "2019-12-23T20:53:38",
            "datastore": {
                "type": "mysql",
                "version": "5.7"
            },
            "fault": {
                "created": "2019-12-23T20:53:41",
                "details": null,
                "message": "Failed to create User port for instance b76a6a76-748b-4064-adec-4c9e6c9abd68"
            },
            "flavor": {
                "id": "6"
            },
            "id": "b76a6a76-748b-4064-adec-4c9e6c9abd68",
            "links": [
                {
                    "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
                    "rel": "self"
                },
                {
                    "href": "https://127.0.0.1:8779/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
                    "rel": "bookmark"
                }
            ],
            "name": "test",
            "operating_status": "",
            "region": "RegionOne",
            "service_status_updated": "2019-12-23T20:53:38",
            "status": "ERROR",
            "updated": "2019-12-23T20:53:41",
            "volume": {
                "size": 1
            }
        }
    ]
}
POST
/v1.0/{project_id}/instances

创建数据库实例

创建一个数据库实例。

通常,您必须指定 flavor ID、卷大小以及实例连接的网络。服务会使用请求的大小配置卷,该卷作为数据库实例的存储。

如果创建副本(复制集群的辅助实例),则不需要 flavor 和卷大小。

数据库服务只能在租户网络内访问,除非定义了 access 参数。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

users (可选)

body

数组

一个 users 对象。

users.name

body

字符串

用户的名称。

users.password

body

字符串

用户的密码。

users.host (可选)

body

字符串

允许用户的 host。

users.databases (可选)

body

数组

一个 databases 对象。这是一个用户可以访问的数据库列表。

users.databases.name

body

字符串

用户可以访问的数据库的名称。

datastore (可选)

body

对象

一个 datastore 对象。

datastore.type (可选)

body

字符串

数据存储的类型。

datastore.version (可选)

body

字符串

在创建/更新实例时要使用的数据存储版本的名称。

datastore.version_number (可选)

body

字符串

数据库的版本号。在基于容器的 Trove 实例部署中,版本号与容器镜像标签相同,例如对于 MySQL,有效的版本号是 5.7.30

name

body

字符串

实例的名称。

flavorRef

body

字符串

引用(href),它是 flavor 列表响应中 flavor 的实际 URI。您可以传递 flavor ID(整数)作为 flavorRef 值,而不是 flavor URI。例如,1

volume (可选)

body

对象

一个 volume 对象。

volume.size

body

整数

卷大小,以千兆字节 (GB) 为单位。有效值为 1 到 50(此限制由配置 max_accepted_volume_size 控制)。

volume.type (可选)

body

字符串

要使用的卷类型。您可以使用 cinder type- list 命令列出系统上的可用卷类型。如果您想指定卷类型,则必须同时指定卷大小。

modules (可选)

body

对象

一个 modules 对象。

modules.id

body

字符串

模块的 ID。

restorePoint (可选)

body

对象

一个 restorePoint 对象。使用此参数从备份创建实例。

restorePoint.backupRef

body

字符串

用于创建新实例的备份 ID。

availability_zone (可选)

body

字符串

实例的可用区。

nics (可选)

body

数组

数据库实例的网络接口定义。这是一个映射列表,用于向后兼容,但只允许一个项目。映射中允许的键是:network_id、subnet_id、ip_address 和 net-id(为了向后兼容,已弃用)。

Trove 将使用给定的信息分配端口。为了成功创建数据库实例,用户应确保通过该端口的流量可以访问公共容器镜像注册表(即端口子网与 Neutron 路由器关联),或者云提供商应负责该问题。

replica_of

body

字符串

要从中复制的现有实例的 ID 或名称。

replica_count (可选)

body

整数

要创建的副本数(默认为 1)。

locality (可选)

body

字符串

在创建底层 Nova 实例时,调度程序的提示。有效值为:affinityanti-affinity

region_name (可选)

body

字符串

实例的区域名称。

databases (可选)

body

数组

一个 databases 对象。

databases.characterSet (可选)

body

字符串

一组符号和编码。默认值为 utf8。有关支持的字符集和排序规则的信息,请参阅 MySQL 中的字符集和排序规则

databases.collate (可选)

body

字符串

字符集中比较字符的规则集。默认值为 utf8_general_ci。有关支持的字符集和排序规则的信息,请参阅 MySQL 中的字符集和排序规则

实例

body

对象

一个 instance 对象。

配置

body

字符串

要附加到实例的配置组的 ID。

access (可选)

body

对象

一个 access 对象定义了数据库服务如何暴露。

access.is_public (可选)

body

布尔值

数据库服务是否暴露给公众。

access.allowed_cidrs (可选)

body

数组

限制访问数据库服务的 IPv4、IPv6 或两者的 CIDR 列表。如果未提供此参数,则默认使用 0.0.0.0/0

请求示例

{
  "instance": {
    "name": "test",
    "flavorRef": 1,
    "volume": {"size": 2},
    "nics": [{"net-id": "a5330d7d-0e8c-48b4-9f6c-0f2c4ab1b854"}],
    "datastore": {
      "type": "mysql",
      "version": "5.7"
    },
    "databases": [
      {
        "character_set": "utf8mb3",
        "collate": "utf8mb3_general_ci",
        "name": "sampledb"
      },
      {
        "name": "nextround"
      }
    ],
    "users": [
      {
        "databases": [
          {
              "name": "sampledb"
          }
        ],
        "name": "demouser",
        "password": "demopassword"
      }
    ],
    "access": {
      "is_public": true,
      "allowed_cidrs": ["202.78.240.0/24"]
    }
  }
}

响应参数

名称

入参

类型

描述

id

body

字符串

数据库实例的 ID。

name

body

字符串

实例的名称。

status

body

字符串

实例的状态。

operating_status

body

字符串

Trove 实例内部数据库服务的运行状态。

links

body

数组

实例的 links 对象。

links.href

body

字符串

实例链接的 href 属性。

links.rel

body

字符串

实例链接的 rel 属性。

flavor

body

对象

一个 flavor 对象,包括 flavor ID(整数)和 flavor 相对链接。

flavor.id

body

字符串

flavor 的 ID。

flavor.links

body

数组

flavor 的 links 对象。

flavor.links.href

body

字符串

flavor 链接的 href 属性。

flavor.links.rel

body

字符串

flavor 链接的 rel 属性。

datastore

body

对象

一个 datastore 对象。

datastore.type (可选)

body

字符串

数据存储的类型。

datastore.version

body

字符串

数据存储版本的名称或 ID。

datastore.version_number (可选)

body

字符串

数据库的版本号。在基于容器的 Trove 实例部署中,版本号与容器镜像标签相同,例如对于 MySQL,有效的版本号是 5.7.30

volume (可选)

body

对象

一个 volume 对象。

volume.size

body

整数

卷大小,以千兆字节 (GB) 为单位。有效值为 1 到 50(此限制由配置 max_accepted_volume_size 控制)。

volume.used (可选)

body

float

卷的已用空间,以千兆字节 (GB) 为单位。

创建时间

body

字符串

创建资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

例如,2015-08-27T09:49:58-05:00

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

updated

body

字符串

更新资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

假定使用 UTC 时区。

service_status_updated

body

字符串

更新数据库服务状态的日期和时间。此字段可用于验证“HEALTHY”状态是否陈旧。

locality (可选)

body

字符串

在创建底层 Nova 实例时,调度程序的提示。有效值为:affinityanti-affinity

密码 (可选)

body

字符串

数据库 root 用户(即管理员用户)的密码。

实例

body

对象

一个 instance 对象。

响应示例

{
    "instance": {
        "id": "b76a6a76-748b-4064-adec-4c9e6c9abd68",
        "name": "test",
        "status": "BUILD",
        "operating_status": "",
        "datastore": {
            "type": "mysql",
            "version": "5.7.29",
            "version_number": "5.7.29"
        },
        "flavor": {
          "id": "3ca76fe7-8dc1-4059-b728-de725835abcb",
          "links": [
            {
              "href": "https://192.168.206.8:87 79/v1.0/c37341d7d1934ebc949c9d6b5c9f818c/flavors/3ca76fe7-8dc1-4059-b728-de725835abcb",
              "rel": "self"
            },
            {
              "href": "https://192.168.206.8:8779/flavors/3ca76fe7-8dc1-4059-b728-de725835abcb",
              "rel": "bookmark"
            }
          ]
        },
        "links": [
            {
                "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
                "rel": "self"
            },
            {
                "href": "https://127.0.0.1:8779/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
                "rel": "bookmark"
            }
        ],
        "region": "RegionOne",
        "access": {
          "is_public": false
        },
        "volume": {
            "size": 1
        },
        "created": "2019-12-23T20:53:38",
        "updated": "2019-12-23T20:53:38",
        "service_status_updated": "2019-12-23T20:53:38"
    }
}
GET
/v1.0/{project_id}/instances/{instanceId}

显示数据库实例详细信息

显示数据库实例详细信息。

列出卷大小(以千兆字节 (GB) 为单位)和大约使用的 GB 数。实例创建后,used 值大于 0,这是预期的,因为数据库可能会创建一些基本(非空)文件来表示一个空模式。如果实例状态为 BUILDREBOOTRESIZEERROR,则响应不包含 used 属性。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应参数

名称

入参

类型

描述

实例

body

对象

一个 instance 对象。

id

body

字符串

数据库实例的 ID。

name

body

字符串

实例的名称。

status

body

字符串

实例的状态。

operating_status

body

字符串

Trove 实例内部数据库服务的运行状态。

links

body

数组

实例的 links 对象。

links.href

body

字符串

实例链接的 href 属性。

links.rel

body

字符串

实例链接的 rel 属性。

flavor

body

对象

一个 flavor 对象,包括 flavor ID(整数)和 flavor 相对链接。

flavor.id

body

字符串

flavor 的 ID。

flavor.links

body

数组

flavor 的 links 对象。

flavor.links.href

body

字符串

flavor 链接的 href 属性。

flavor.links.rel

body

字符串

flavor 链接的 rel 属性。

datastore

body

对象

一个 datastore 对象。

datastore.type (可选)

body

字符串

数据存储的类型。

datastore.version

body

字符串

数据存储版本的名称或 ID。

region

body

字符串

实例的区域名称。

tenant_id (可选)

body

字符串

租户的 ID。

volume (可选)

body

对象

一个 volume 对象。

volume.size

body

整数

卷大小,以千兆字节 (GB) 为单位。有效值为 1 到 50(此限制由配置 max_accepted_volume_size 控制)。

volume.used (可选)

body

float

卷的已用空间,以千兆字节 (GB) 为单位。

hostname (可选)

body

字符串

实例的主机名。

ip (可选)

body

字符串

实例的 IP 地址(已弃用)。

addresses (可选)

body

数组

实例的 IP 地址,包括地址类型(“private”或“public”)和 IP。“network”字段在地址类型为“private”时,自 Xena 起添加。

创建时间

body

字符串

创建资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

例如,2015-08-27T09:49:58-05:00

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

updated

body

字符串

更新资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

假定使用 UTC 时区。

service_status_updated

body

字符串

更新数据库服务状态的日期和时间。此字段可用于验证“HEALTHY”状态是否陈旧。

fault (可选)

body

对象

实例的 fault 对象。

fault.message

body

字符串

实例的故障消息。

fault.created

body

字符串

实例故障消息的更新时间戳。

fault.details

body

字符串

实例的详细故障说明。

replicas (可选)

body

数组

实例的 replicas 对象。

replicas.id

body

字符串

副本实例的 ID。

replicas.links

body

数组

副本实例的 links 对象。

replicas.links.href

body

字符串

副本实例链接的 href 属性。

replicas.links.rel

body

字符串

副本实例链接的 rel 属性。

replica_of (可选)

body

字符串

此副本的主要实例 ID。

configuration (可选)

body

对象

一个 configuration 对象。

configuration.id

body

字符串

配置的 ID。

configuration.name

body

字符串

配置的名称。

configuration.links

body

数组

配置的 links 对象。

configuration.links.href

body

字符串

配置链接的 href 属性。

configuration.links.rel

body

字符串

配置链接的 rel 属性。

locality (可选)

body

字符串

在创建底层 Nova 实例时,调度程序的提示。有效值为:affinityanti-affinity

local_storage_used (可选)

body

float

临时磁盘的已用空间,以千兆字节 (GB) 为单位。

密码 (可选)

body

字符串

数据库 root 用户(即管理员用户)的密码。

cluster_id (可选)

body

字符串

实例的集群 ID。

shard_id (可选)

body

字符串

实例的分片 ID。

server_id (可选)

body

字符串

实例的基础 Nova 实例的 ID。

volume_id (可选)

body

字符串

卷的 ID。

encrypted_rpc_messaging (可选)

body

布尔值

实例是否使用加密 rpm 消息传递功能。

access (可选)

body

对象

一个 access 对象定义了数据库服务如何暴露。

access.is_public (可选)

body

布尔值

数据库服务是否暴露给公众。

access.allowed_cidrs (可选)

body

数组

限制访问数据库服务的 IPv4、IPv6 或两者的 CIDR 列表。如果未提供此参数,则默认使用 0.0.0.0/0

响应示例

{
    "instance": {
        "addresses": [
            {
                "address": "10.1.0.62",
                "type": "private",
                "network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
            },
            {
                "address": "172.24.5.114",
                "type": "public"
            }
        ],
        "created": "2019-12-23T20:58:35",
        "datastore": {
            "type": "mysql",
            "version": "5.7"
        },
        "flavor": {
            "id": "6"
        },
        "id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
        "ip": [
            "10.1.0.62",
            "172.24.5.114"
        ],
        "links": [
            {
                "href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                "rel": "self"
            },
            {
                "href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                "rel": "bookmark"
            }
        ],
        "name": "test",
        "operating_status": "HEALTHY",
        "region": "RegionOne",
        "service_status_updated": "2019-12-23T22:15:11",
        "status": "ACTIVE",
        "updated": "2019-12-23T20:58:45",
        "volume": {
            "size": 1,
            "used": 0.12
        }
    }
}
GET
/v1.0/{project_id}/mgmt/instances/{instanceId}

显示数据库实例详细信息(管理员)

仅管理员 API。获取实例信息,包括 Cinder 卷、Nova 服务器等。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应示例

{
    "instance": {
        "addresses": [
            {
                "address": "10.1.0.62",
                "type": "private",
                "network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
            },
            {
                "address": "172.24.5.114",
                "type": "public"
            }
        ],
        "created": "2019-12-23T20:58:35",
        "datastore": {
            "type": "mysql",
            "version": "5.7"
        },
        "deleted": false,
        "deleted_at": null,
        "encrypted_rpc_messaging": true,
        "flavor": {
            "id": "d2"
        },
        "guest_status": {
            "state_description": "healthy"
        },
        "id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
        "ip": [
            "10.1.0.62",
            "172.24.5.114"
        ],
        "links": [
            {
                "href": "https://127.0.0.1:8779/v1.0/2afa58fd5db34fd8b7b659d997a5341f/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                "rel": "self"
            },
            {
                "href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
                "rel": "bookmark"
            }
        ],
        "name": "test",
        "operating_status": "HEALTHY",
        "region": "RegionOne",
        "server": {
            "addresses": {
                "private": [
                    {
                        "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:fc:eb:4a",
                        "OS-EXT-IPS:type": "fixed",
                        "addr": "10.1.0.62",
                        "version": 4
                    },
                    {
                        "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:fc:eb:4a",
                        "OS-EXT-IPS:type": "floating",
                        "addr": "172.24.5.114",
                        "version": 4
                    }
                ],
                "trove-mgmt": [
                    {
                        "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:f9:0f:6a",
                        "OS-EXT-IPS:type": "fixed",
                        "addr": "192.168.254.125",
                        "version": 4
                    }
                ]
            },
            "host": "bdfe3275004d2a98d38d494fd7adfcd0c6d5d5198e86fa0d6ec5d588",
            "id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
            "name": "test",
            "status": "ACTIVE",
            "tenant_id": "27ac4b83e9d045eb8c373bacaa994eb7"
        },
        "server_id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
        "service_status": "HEALTHY",
        "service_status_updated": "2019-12-24T00:08:55",
        "status": "ACTIVE",
        "task_description": "No tasks for the instance.",
        "tenant_id": "9f8dd5eacb074c9f87d2d822c9092aa5",
        "updated": "2019-12-23T23:53:46",
        "volume": {
            "attachments": [
                {
                    "attached_at": "2019-12-23T23:11:39.000000",
                    "attachment_id": "a31526ba-884a-4e1f-8c64-4dc4b987ba4e",
                    "device": "/dev/vdb",
                    "host_name": "node.trove.magnum-pg0.utah.cloudlab.us",
                    "id": "ccb62e29-73ea-4859-b206-3b3a4e30a991",
                    "server_id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
                    "volume_id": "ccb62e29-73ea-4859-b206-3b3a4e30a991"
                }
            ],
            "availability_zone": "nova",
            "created_at": "2019-12-23T20:58:39.000000",
            "id": "ccb62e29-73ea-4859-b206-3b3a4e30a991",
            "size": 1,
            "status": "in-use",
            "total": 0.95,
            "used": 0.12
        },
        "volume_id": "ccb62e29-73ea-4859-b206-3b3a4e30a991"
    }
}
PUT
/v1.0/{project_id}/instances/{instanceId}

附加/分离配置组

为实例附加或分离配置组。当您只传入实例 ID 并省略配置 ID 时,此操作将分离附加到实例的任何配置组。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

配置

body

字符串

要附加到实例的配置组的 ID。

请求示例

{
    "instance": {
        "configuration": "2aa51628-5c42-4086-8682-137caffd2ba6"
    }
}
PUT
/v1.0/{project_id}/instances/{instanceId}

更新实例名称

更新实例名称。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

实例

body

对象

一个 instance 对象。

name (可选)

body

字符串

实例的名称。

请求示例

{
    "instance": {
        "name": "sample_instance"
    }
}
PUT
/v1.0/{project_id}/instances/{instanceId}

升级实例的数据存储版本

升级数据存储版本。

在数据存储版本升级期间,实例状态更改为 UPGRADE,并在升级完成后更改回 HEALTHY,否则如果升级失败则更改为 ERROR

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

实例

body

对象

一个 instance 对象。

datastore_version (可选)

body

字符串

在创建/更新实例时要使用的数据存储版本的名称。

请求示例

{
    "instance": {
        "datastore_version": "sample_datastore_version"
    }
}
PUT
/v1.0/{project_id}/instances/{instanceId}

分离副本

从其复制源分离副本。

如果您创建了一个是源实例副本的实例,则以后可以将副本从源分离。如果源不可用,这会很有用。在这种情况下,您可以将副本从源分离,使副本成为一个独立的数据库实例。然后,您可以将新的独立实例并创建该实例的新副本。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

实例

body

对象

一个 instance 对象。

replica_of

body

字符串

要从中复制的现有实例的 ID 或名称。

slave_of (可选)

body

字符串

要分离副本,请将 slave_of 设置为 null。 弃用,推荐使用 replica_of

请求示例

{
    "instance": {
        "replica_of": null
    }
}
PUT
/v1.0/{project_id}/instances/{instanceId}

更新实例可访问性

支持以下操作

  • 如果实例应该暴露给公众。不提供 is_public 表示私有。

  • 允许访问数据库服务的 CIDR 列表。不提供 allowed_cidrs 表示允许所有内容。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

实例

body

对象

一个 instance 对象。

access (可选)

body

对象

一个 access 对象定义了数据库服务如何暴露。

access.is_public (可选)

body

布尔值

数据库服务是否暴露给公众。

access.allowed_cidrs (可选)

body

数组

限制访问数据库服务的 IPv4、IPv6 或两者的 CIDR 列表。如果未提供此参数,则默认使用 0.0.0.0/0

请求示例

{
    "instance": {
        "access": {
            "is_public": true,
            "allowed_cidrs": ["10.0.0.0/24"]
        }
    }
}
DELETE
/v1.0/{project_id}/instances/{instanceId}

删除数据库实例

删除数据库实例。

此操作不会删除任何从属实例。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

GET
/v1.0/{project_id}/instances/{instanceId}/backups

列出数据库实例的备份

获取实例的所有备份。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应示例

{
    "backups": [
        {
            "created": "2019-12-23T22:38:42",
            "datastore": {
                "type": "mysql",
                "version": "5.7",
                "version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf"
            },
            "description": null,
            "id": "71557643-2245-43ac-b871-3d5a50af21d3",
            "instance_id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
            "locationRef": "http://127.0.0.1:8080/v1/AUTH_9f8dd5eacb074c9f87d2d822c9092aa5/database_backups/71557643-2245-43ac-b871-3d5a50af21d3.xbstream.gz.enc",
            "name": "backup-full",
            "parent_id": null,
            "size": 0.12,
            "status": "COMPLETED",
            "updated": "2019-12-23T22:38:45"
        }
    ]
}
GET
/v1.0/{project_id}/instances/{instanceId}/configuration

列出数据库实例的默认配置参数

获取实例的默认配置参数。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应示例

{
    "instance": {
        "configuration": {
            "basedir": "/usr",
            "connect_timeout": 15,
            "datadir": "/var/lib/mysql/data",
            "default_storage_engine": "innodb",
            "innodb_buffer_pool_size": "2401M",
            "innodb_data_file_path": "ibdata1:10M:autoextend",
            "innodb_file_per_table": 1,
            "innodb_log_buffer_size": "25M",
            "innodb_log_file_size": "50M",
            "innodb_log_files_in_group": 2,
            "join_buffer_size": "1M",
            "key_buffer_size": "800M",
            "local-infile": 0,
            "max_allowed_packet": "16392K",
            "max_connections": 1600,
            "max_heap_table_size": "256M",
            "max_user_connections": 1600,
            "myisam-recover-options": "BACKUP,FORCE",
            "open_files_limit": 8196,
            "performance_schema": "ON",
            "pid-file": "/var/run/mysqld/mysqld.pid",
            "port": 3306,
            "query_cache_limit": "1M",
            "query_cache_size": "128M",
            "query_cache_type": 1,
            "read_buffer_size": "512K",
            "read_rnd_buffer_size": "512K",
            "server_id": 1468542390,
            "skip-external-locking": 1,
            "socket": "/var/run/mysqld/mysqld.sock",
            "sort_buffer_size": "1M",
            "table_definition_cache": 4098,
            "table_open_cache": 4098,
            "thread_cache_size": 64,
            "thread_stack": "192K",
            "tmp_table_size": "256M",
            "tmpdir": "/var/tmp",
            "user": "mysql",
            "wait_timeout": 120
        }
    }
}

实例操作

POST
/v1.0/{project_id}/instances/{instanceId}/action

重启实例

重启实例的数据库服务。

重启操作仅重启数据库实例。重启数据库会擦除您在数据库实例中所做的任何动态配置设置。

数据库服务在实例重启完成后才能使用。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "restart": {}
}
POST
/v1.0/{project_id}/instances/{instanceId}/action

调整实例 flavor

调整实例的 (Nova) flavor。

如果您提供有效的 flavorRef,此操作将更改实例的内存大小,并重启数据库。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

flavorRef

body

字符串

引用(href),它是 flavor 列表响应中 flavor 的实际 URI。您可以传递 flavor ID(整数)作为 flavorRef 值,而不是 flavor URI。例如,1

请求示例

{
    "resize": {
        "flavorRef": "2"
    }
}
POST
/v1.0/{project_id}/instances/{instanceId}/action

调整实例卷

调整附加到实例的卷的大小。

您可以使用此操作来增加但不减少卷的大小。有效的卷大小是千兆字节 (GB) 中的整数值。

您不能将卷增大到大于 API 卷大小限制的尺寸。

对于复制集群,调整主实例的卷也会自动调整副本的卷。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

volume (可选)

body

对象

一个 volume 对象。

请求示例

{
    "resize": {
        "volume": {
            "size": 4
        }
    }
}
POST
/v1.0/{project_id}/instances/{instanceId}/action

提升副本为 master

提升一个副本。

如果您设置了复制,并且 master 实例仍然可访问,则可以使用此操作将副本提升为新的 master 实例。

如果您想对 master 实例进行配置更改或维护,这会很有用。如果您直接在 master 实例上进行更改,则需要在操作期间关闭 master 实例。相反,您可以在副本上进行配置更改,然后将副本提升为新的 master 实例。

执行此命令后,所有实例的状态都将设置为 PROMOTE,Trove 将发挥其魔力,直到所有实例都恢复到 HEALTHY

instanceId 是您想要提升的副本的实例 ID。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "promote_to_replica_source": {}
}
POST
/v1.0/{project_id}/instances/{instanceId}/action

移除 master 实例

移除复制集中的 master 实例。

这应该仅在主节点失败的情况下执行。此命令会驱逐当前的主节点,然后强制重新选举新的主节点。新的主节点实际上是旧主节点最当前的副本。

执行此命令后,所有实例的状态将被设置为 EJECT,Trove 将发挥其魔力,直到它们全部恢复到 HEALTHY

instanceId 是当前不可用的主实例的 ID。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "eject_replica_source": {}
}
POST
/v1.0/{project_id}/instances/{instanceId}/action

重置实例状态

将实例服务状态设置为 ERROR 并清除当前任务状态。将任何正在运行的备份操作标记为 FAILED

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "reset_status": {}
}
POST
/v1.0/{project_id}/mgmt/instances/{instanceId}/action

停止数据库服务

仅限管理员 API。停止实例内的数据库服务。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "stop": {}
}
POST
/v1.0/{project_id}/mgmt/instances/{instanceId}/action

重启实例

仅限管理员 API。重启数据库实例,数据库服务将在重启前停止。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "reboot": {}
}
POST
/v1.0/{project_id}/mgmt/instances/{instanceId}/action

冷迁移实例

仅限管理员 API。迁移(调整大小)数据库实例,数据库服务将在迁移前停止。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "migrate": {
        "host": "compute-001"
    }
}
POST
/v1.0/{project_id}/mgmt/instances/{instanceId}/action

重置实例任务状态

仅限管理员 API。重置实例的任务状态,将任何正在运行的备份操作标记为 FAILED

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "reset-task-status": {}
}
POST
/v1.0/{project_id}/mgmt/instances/{instanceId}/action

重建实例

仅限管理员 API。重建数据库实例的 Nova 服务器操作系统。重建操作主要用于 Trove 升级,尤其是在 Trove 控制器和客户端代理之间的接口发生变化时。在 Trove 控制器升级后,云管理员需要使用新的客户端镜像 ID 发送重建请求。需要与最终用户进行沟通,因为数据库服务在此过程中将离线。数据库中的用户数据不受影响。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
  "rebuild": {
      "image_id": "3e50414a-8532-4646-982c-a66fe8f0411b"
  }
}

实例日志

GET
/v1.0/{project_id}/instances/{instanceId}/log

列出实例日志

列出实例的所有日志。

不同的数据存储后端具有自己的 guest_log_exposed_logs 配置,以确定默认情况下将列出哪些类型的日志。管理员用户可以获取所有日志。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应参数

名称

入参

类型

描述

日志

body

数组

一个 log 对象列表。

name

body

字符串

日志的名称。

type

body

字符串

日志的类型。

status

body

字符串

日志状态。

已发布

body

字符串

已发布日志的大小。

待定

body

字符串

待发布日志的文件大小。

container

body

字符串

将存储已发布日志数据的对象存储容器。默认为 None,直到日志发布。

prefix

body

字符串

如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 None

metafile

body

字符串

日志元文件位置。

响应示例

{
    "logs": [
        {
            "name": "general",
            "type": "USER",
            "status": "Partial",
            "published": "128",
            "pending": "4096",
            "container": "data_logs",
            "prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
            "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
        },
        {
            "name": "slow_query",
            "type": "USER",
            "status": "Ready",
            "published": "0",
            "pending": "128",
            "container": "None",
            "prefix": "None",
            "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-slow_query_metafile"
        }
    ]
}
POST
/v1.0/{project_id}/instances/{instanceId}/log

显示实例日志详细信息

显示实例日志的详细信息。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

name

body

字符串

日志的名称。

请求示例

{
    "name": "general"
}

响应参数

名称

入参

类型

描述

log

body

数组

一个 log 对象。

name

body

字符串

日志的名称。

type

body

字符串

日志的类型。

status

body

字符串

日志状态。

已发布

body

字符串

已发布日志的大小。

待定

body

字符串

待发布日志的文件大小。

container

body

字符串

将存储已发布日志数据的对象存储容器。默认为 None,直到日志发布。

prefix

body

字符串

如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 None

metafile

body

字符串

日志元文件位置。

响应示例

{
    "log": {
        "name": "general",
        "type": "USER",
        "status": "Partial",
        "published": "128",
        "pending": "4096",
        "container": "data_logs",
        "prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
        "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
    }
}
POST
/v1.0/{project_id}/instances/{instanceId}/log

启用实例日志

为实例启用日志类型。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

name

body

字符串

日志的名称。

enable (可选)

body

整数

要启用日志类型,应始终设置为 1。

请求示例

{
    "name": "general",
    "enable": 1
}

响应参数

名称

入参

类型

描述

log

body

数组

一个 log 对象。

name

body

字符串

日志的名称。

type

body

字符串

日志的类型。

status

body

字符串

日志状态。

已发布

body

字符串

已发布日志的大小。

待定

body

字符串

待发布日志的文件大小。

container

body

字符串

将存储已发布日志数据的对象存储容器。默认为 None,直到日志发布。

prefix

body

字符串

如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 None

metafile

body

字符串

日志元文件位置。

响应示例

{
    "log": {
        "name": "general",
        "type": "USER",
        "status": "Eanbled",
        "published": "0",
        "pending": "0",
        "container": "None",
        "prefix": "None",
        "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
    }
}
POST
/v1.0/{project_id}/instances/{instanceId}/log

禁用实例日志

为实例禁用日志类型。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

name

body

字符串

日志的名称。

disable (可选)

body

整数

要禁用日志类型,应始终设置为 1。

请求示例

{
    "name": "general",
    "disable": 1
}

响应参数

名称

入参

类型

描述

log

body

数组

一个 log 对象。

name

body

字符串

日志的名称。

type

body

字符串

日志的类型。

status

body

字符串

日志状态。

已发布

body

字符串

已发布日志的大小。

待定

body

字符串

待发布日志的文件大小。

container

body

字符串

将存储已发布日志数据的对象存储容器。默认为 None,直到日志发布。

prefix

body

字符串

如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 None

metafile

body

字符串

日志元文件位置。

响应示例

{
    "log": {
        "name": "general",
        "type": "USER",
        "status": "Disabled",
        "published": "4096",
        "pending": "0",
        "container": "data_logs",
        "prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
        "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
    }
}
POST
/v1.0/{project_id}/instances/{instanceId}/log

发布实例日志

为实例发布日志类型。

“发布”会自动 启用 日志。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

name

body

字符串

日志的名称。

publish (可选)

body

整数

要发布日志类型,应始终设置为 1。

请求示例

{
    "name": "general",
    "publish": 1
}

响应参数

名称

入参

类型

描述

log

body

数组

一个 log 对象。

name

body

字符串

日志的名称。

type

body

字符串

日志的类型。

status

body

字符串

日志状态。

已发布

body

字符串

已发布日志的大小。

待定

body

字符串

待发布日志的文件大小。

container

body

字符串

将存储已发布日志数据的对象存储容器。默认为 None,直到日志发布。

prefix

body

字符串

如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 None

metafile

body

字符串

日志元文件位置。

响应示例

{
    "log": {
        "name": "general",
        "type": "USER",
        "status": "Published",
        "published": "128",
        "pending": "0",
        "container": "data_logs",
        "prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
        "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
    }
}
POST
/v1.0/{project_id}/instances/{instanceId}/log

丢弃实例日志

丢弃实例之前发布的所有日志。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

name

body

字符串

日志的名称。

discard (可选)

body

整数

要丢弃之前已发布的日志类型,应始终设置为 1。

请求示例

{
    "name": "general",
    "discard": 1
}

响应参数

名称

入参

类型

描述

log

body

数组

一个 log 对象。

name

body

字符串

日志的名称。

type

body

字符串

日志的类型。

status

body

字符串

日志状态。

已发布

body

字符串

已发布日志的大小。

待定

body

字符串

待发布日志的文件大小。

container

body

字符串

将存储已发布日志数据的对象存储容器。默认为 None,直到日志发布。

prefix

body

字符串

如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 None

metafile

body

字符串

日志元文件位置。

响应示例

{
    "log": {
        "name": "general",
        "type": "USER",
        "status": "Ready",
        "published": "0",
        "pending": "128",
        "container": "None",
        "prefix": "None",
        "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
    }
}

备份

GET
/v1.0/{project_id}/backups

列出数据库备份

列出项目的所有数据库备份信息。您可以使用查询字符串参数过滤结果。支持以下过滤器

  • instance_id={instance_id} - 返回特定数据库实例的备份列表。

  • all_projects=True/False - 返回所有项目的备份列表,默认情况下这是一个仅限管理员的参数。

  • datastore={datastore} - 返回相同数据存储的备份列表。

  • project_id={project_id} - 获取特定项目的备份。需要管理员权限。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应参数

名称

入参

类型

描述

backups

body

数组

一个 backup 对象列表。

创建时间

body

字符串

创建资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

例如,2015-08-27T09:49:58-05:00

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

datastore

body

对象

一个 datastore 对象。

datastore.type

body

字符串

数据存储的类型。

datastore.version

body

字符串

数据存储版本的名称。不同的数据存储版本可以具有相同的名称。

datastore.version_id

body

字符串

数据存储版本的 UUID。

description

body

字符串

备份的可选描述。

id

路径

字符串

备份的 ID。

instance_id (可选)

body

字符串

创建备份的实例的 ID。

locationRef

body

字符串

备份位置的 URL。

name

body

字符串

备份的名称。

parent_id

body

字符串

父备份的 ID,用于从最后一个完整备份执行增量备份。

size

body

字符串

备份的大小,单位为 GB。

status

body

字符串

备份的状态。

updated

body

字符串

更新资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

假定使用 UTC 时区。

project_id

body

字符串

资源的 project ID。

storage_driver (可选)

body

字符串

备份策略

响应示例

{
    "backups": [
        {
            "created": "2014-10-30T12:30:00",
            "datastore": {
                "type": "mysql",
                "version": "5.5",
                "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
            },
            "description": "My Backup",
            "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
            "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
            "locationRef": "https:///path/to/backup",
            "name": "snapshot",
            "parent_id": null,
            "size": 0.14,
            "status": "COMPLETED",
            "updated": "2014-10-30T12:30:00",
            "storage_driver": "cinder"
        },
        {
            "created": "2014-10-30T12:30:00",
            "datastore": {
                "type": "mysql",
                "version": "5.5",
                "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
            },
            "description": "My Incremental Backup",
            "id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173",
            "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
            "locationRef": "https:///path/to/backup",
            "name": "Incremental Snapshot",
            "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
            "size": 0.14,
            "status": "COMPLETED",
            "updated": "2014-10-30T12:30:00",
            "storage_driver": "swift"
        }
    ]
}
POST
/v1.0/{project_id}/backups

创建数据库备份

为实例创建数据库备份。

在启用服务租户的 Trove 部署中,备份数据将作为对象存储在 OpenStack Swift 服务中的用户容器中。如果未指定,容器名称由云管理员定义。

用户可以在项目范围内或针对特定数据库实例创建备份策略。

在具有地理复制 Swift 的多区域部署中,用户还可以通过手动指定在另一个区域创建的备份数据位置来在区域中恢复备份,然后从备份创建实例。在这种情况下,不需要实例 ID。

警告

恢复的备份依赖于原始备份数据,如果原始备份被删除,恢复的备份将无效。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

name

body

字符串

备份的名称。

instance (可选)

body

字符串

创建备份的实例的 ID。

parent_id (可选)

body

字符串

父备份的 ID,用于从最后一个完整备份执行增量备份。

incremental (可选)

body

整数

通过将此参数设置为 1 或 0 来基于最后一个完整备份创建增量备份。如果没有找到现有的备份,则将创建一个完整备份。

description (可选)

body

字符串

备份的可选描述。

swift_container (可选)

body

字符串

用户定义的 Swift 容器名称。创建备份时,如果容器不存在,则会自动创建容器。

restore_from (可选)

body

对象

恢复备份所需的信息,包括

  • remote_location:原始备份数据的位置。

  • local_datastore_version_id:与原始备份对应的本地数据存储版本。

  • size:原始备份的大小。

storage_driver (可选)

body

字符串

备份策略

请求示例

{
    "backup": {
        "description": "My Backup",
        "incremental": 0,
        "instance": "44b277eb-39be-4921-be31-3d61b43651d7",
        "name": "snapshot",
        "storage_driver": "cinder"
    }
}

响应参数

名称

入参

类型

描述

创建时间

body

字符串

创建资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

例如,2015-08-27T09:49:58-05:00

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

datastore

body

对象

一个 datastore 对象。

datastore.type

body

字符串

数据存储的类型。

datastore.version

body

字符串

数据存储版本的名称。不同的数据存储版本可以具有相同的名称。

datastore.version_id

body

字符串

数据存储版本的 UUID。

description

body

字符串

备份的可选描述。

id

路径

字符串

备份的 ID。

instance_id (可选)

body

字符串

创建备份的实例的 ID。

locationRef

body

字符串

备份位置的 URL。

name

body

字符串

备份的名称。

parent_id

body

字符串

父备份的 ID,用于从最后一个完整备份执行增量备份。

size

body

字符串

备份的大小,单位为 GB。

status

body

字符串

备份的状态。

updated

body

字符串

更新资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

假定使用 UTC 时区。

project_id

body

字符串

资源的 project ID。

storage_driver (可选)

body

字符串

备份策略

响应示例

{
    "backup": {
        "created": "2014-10-30T12:30:00",
        "datastore": {
            "type": "mysql",
            "version": "5.5",
            "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
        },
        "description": "My Backup",
        "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
        "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
        "locationRef": null,
        "name": "snapshot",
        "parent_id": null,
        "size": null,
        "status": "NEW",
        "updated": "2014-10-30T12:30:00",
        "storage_driver": "cinder"
    }
}
GET
/v1.0/{project_id}/backups/{backupId}

显示数据库备份详细信息

显示备份的详细信息。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

backupId

路径

字符串

备份的 ID。

响应参数

名称

入参

类型

描述

创建时间

body

字符串

创建资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

例如,2015-08-27T09:49:58-05:00

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

datastore

body

对象

一个 datastore 对象。

datastore.type

body

字符串

数据存储的类型。

datastore.version

body

字符串

数据存储版本的名称。不同的数据存储版本可以具有相同的名称。

datastore.version_id

body

字符串

数据存储版本的 UUID。

description

body

字符串

备份的可选描述。

id

路径

字符串

备份的 ID。

instance_id (可选)

body

字符串

创建备份的实例的 ID。

locationRef

body

字符串

备份位置的 URL。

name

body

字符串

备份的名称。

parent_id

body

字符串

父备份的 ID,用于从最后一个完整备份执行增量备份。

size

body

字符串

备份的大小,单位为 GB。

status

body

字符串

备份的状态。

updated

body

字符串

更新资源的时间和日期。

日期和时间戳格式为 ISO 8601

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

如果包含 ±hh:mm 值,则为 UTC 的时区偏移量。

例如,2015-08-27T09:49:58-05:00

假定使用 UTC 时区。

project_id

body

字符串

资源的 project ID。

storage_driver (可选)

body

字符串

备份策略

响应示例

{
    "backup": {
        "created": "2014-10-30T12:30:00",
        "datastore": {
            "type": "mysql",
            "version": "5.5",
            "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
        },
        "description": "My Backup",
        "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
        "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
        "locationRef": "https:///path/to/backup",
        "name": "snapshot",
        "parent_id": null,
        "size": 0.14,
        "status": "COMPLETED",
        "updated": "2014-10-30T12:30:00",
        "storage_driver": "cinder"
    }
}
DELETE
/v1.0/{project_id}/backups/{backupId}

删除数据库备份

删除数据库备份。删除父备份时,所有子备份将自动删除。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

backupId

路径

字符串

备份的 ID。

备份策略

备份策略允许用户自定义创建备份的方式。用户可以在项目范围内或针对特定数据库实例创建策略。

GET
/v1.0/{project_id}/backup_strategies

列出备份策略

列出项目的备份策略。您可以使用查询字符串参数过滤结果。支持以下过滤器

  • instance_id={instance_id} - 返回特定数据库实例的备份策略列表。

  • project_id={project_id} - 返回特定项目的备份策略列表,仅限管理员。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应参数

名称

入参

类型

描述

backup_strategies

body

数组

一个 backup_strategy 对象列表。

project_id

路径

字符串

实例所有者的项目 ID。

instance_id

body

字符串

数据库实例的 ID。

backend

body

字符串

实例备份的存储后端,目前仅支持 swift。

swift_container

body

字符串

用户定义的 Swift 容器名称。

响应示例

{
    "backup_strategies": [
        {
            "backend": "swift",
            "instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1",
            "project_id": "922b47766bcb448f83a760358337f2b4",
            "swift_container": "my_trove_backups"
        }
    ]
}
POST
/v1.0/{project_id}/backup_strategies

创建备份策略

为项目或数据库实例创建或更新备份策略。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instance_id (可选)

body

字符串

数据库实例的 ID。

swift_container

body

字符串

用户定义的 Swift 容器名称。

请求示例

{
  "backup_strategy": {
    "instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1",
    "swift_container": "my_trove_backups"
  }
}

响应参数

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instance_id

body

字符串

数据库实例的 ID。

backend

body

字符串

实例备份的存储后端,目前仅支持 swift。

swift_container

body

字符串

用户定义的 Swift 容器名称。

响应示例

{
    "backup_strategy": {
        "project_id": "922b47766bcb448f83a760358337f2b4",
        "instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1",
        "backend": "swift",
        "swift_container": "my_trove_backups"
    }
}
DELETE
/v1.0/{project_id}/backup_strategies

删除数据库策略

删除项目的数据库策略。如果 URL 查询参数中指定了 instance_id,则删除该特定数据库实例的数据库策略。此外,管理员允许通过在 URL 查询参数中指定 project_id 来删除其他项目的备份策略。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

配置组

GET
/v1.0/{project_id}/configurations

列出配置组

列出所有配置组。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应示例

{
    "configurations": [
        {
            "updated": "2015-07-01T16:38:27",
            "datastore_version_id": "2dc7faa0-efff-4c2b-8cff-bcd949c518a5",
            "datastore_name": "mysql",
            "datastore_version_name": "mysql-5.7",
            "datastore_version_number": "5.7.29",
            "name": "group1",
            "created": "2015-07-01T16:38:27",
            "id": "2aa51628-5c42-4086-8682-137caffd2ba6",
            "description": null
        }
    ]
}
POST
/v1.0/{project_id}/configurations

创建配置组

创建配置组。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

datastore

body

字符串

分配给配置组的数据存储类型和版本。如果未配置默认数据存储,则需要此项。

name

body

字符串

您正在创建的配置组的名称。

values

body

字符串

列出配置参数名称和相关值的字典。

请求示例

{
    "configuration": {
        "name": "group1",
        "datastore": {
            "type": "mysql",
            "version": "mysql-5.7",
            "version_number": "5.7.29"
        },
        "values": {
            "connect_timeout": 200
        }
    }
}

响应示例

{
    "configuration": {
        "created": "2020-06-16T10:40:50",
        "updated": "2020-06-16T10:40:50",
        "datastore_name": "mysql",
        "datastore_version_id": "cf91aa9a-2192-4ec4-b7ce-5cac3b1e7dbe",
        "datastore_version_name": "mysql-5.7",
        "datastore_version_number": "5.7.29",
        "description": null,
        "id": "9dcfca0b-d181-4b36-bbf0-09bc47b103ab",
        "instance_count": 0,
        "name": "group1",
        "values": {
            "connect_timeout": 200
        }
    }
}
GET
/v1.0/{project_id}/configurations/{configId}

显示配置组详细信息

列出配置组的详细信息,包括其值。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

configId (可选)

路径

字符串

配置组的 ID。

响应示例

{
    "configuration": {
        "datastore_name": "mysql",
        "datastore_version_id": "b9f97132-467b-4f8e-b12d-947cfc223ac3",
        "datastore_version_name": "mysql-5.7",
        "datastore_version_number": "5.7.29",
        "updated": "2015-11-22T19:07:20",
        "values": {
            "connect_timeout": 17
        },
        "name": "group1",
        "created": "2015-11-20T20:51:24",
        "instance_count": 1,
        "id": "1c8a4fdd-690c-4e6e-b2e1-148b8d738770",
        "description": null
    }
}
GET
/v1.0/{project_id}/configurations/{configId}/instances

应用配置组的实例列表

列出与指定配置组关联的实例。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

configId (可选)

路径

字符串

配置组的 ID。

响应示例

{
    "instances": [
        {
            "id": "7fd2d1d6-a2ef-4a76-8c03-e233db4d86da",
            "name": "master_1"
        }
    ]
}
PATCH
/v1.0/{project_id}/configurations/{configId}

修补配置组

为配置组设置新值。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

configId (可选)

路径

字符串

配置组的 ID。

values

body

字符串

列出配置参数名称和相关值的字典。

请求示例

{
    "configuration": {
        "values": {
            "connect_timeout": 17
        }
    }
}
PUT
/v1.0/{project_id}/configurations/{configId}

更新配置组

为配置组设置新值。还可以更改配置组的名称和描述。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

configId (可选)

路径

字符串

配置组的 ID。

values

body

字符串

列出配置参数名称和相关值的字典。

description

body

字符串

配置组的新描述。

name

body

字符串

您正在创建的配置组的名称。

请求示例

{
    "configuration": {
        "values": {
            "connect_timeout": 18
        },
        "name": "new_name",
        "description": "New description"
    }
}
DELETE
/v1.0/{project_id}/configurations/{configId}

删除配置组

删除配置组。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

configId (可选)

路径

字符串

配置组的 ID。

数据库

目前,数据库和用户 API 仅支持 mysql 数据存储。对于其他存储,推荐的方法是获取 root 密码 (POST /v1.0/{project_id}/instances/{instance_id}/root) 并直接与数据库服务通信以进行数据库和用户管理。

POST
/v1.0/{project_id}/instances/{instanceId}/databases

创建数据库

在实例中创建一个数据库。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

name

body

字符串

您正在创建的配置组的名称。

characterSet (可选)

body

字符串

一组符号和编码。默认值为 utf8。有关支持的字符集和排序规则的信息,请参阅 MySQL 中的字符集和排序规则

collate (可选)

body

字符串

字符集中比较字符的规则集。默认值为 utf8_general_ci。有关支持的字符集和排序规则的信息,请参阅 MySQL 中的字符集和排序规则

请求示例

{
    "databases": [
        {
            "character_set": "utf8mb3",
            "collate": "utf8mb3_general_ci",
            "name": "databaseA"
        },
        {
            "name": "databaseB"
        },
        {
            "name": "databaseC"
        }
    ]
}
GET
/v1.0/{project_id}/instances/{instanceId}/databases

列出实例数据库

列出实例的数据库。

此操作仅返回用户定义的数据库,不返回系统数据库。只有数据库管理员才能获取系统数据库,例如 mysqlinformation_schemalost+found

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应示例

{
    "databases": [
        {
            "name": "databaseB"
        },
        {
            "name": "databaseC"
        },
        {
            "name": "databaseD"
        }
    ]
}
GET
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}/databases

列出用户实例数据库

获取用户有权访问的所有数据库。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

user_name (可选)

路径

字符串

用户的名称。

响应示例

{
    "databases": [
        {
            "name": "databaseB"
        },
        {
            "name": "databaseC"
        },
        {
            "name": "databaseD"
        }
    ]
}
PUT
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}/databases

授予数据库访问权限

授予用户对数据库的访问权限。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

user_name (可选)

路径

字符串

用户的名称。

请求示例

{
    "databases":[
        {
            "name": "test"
        }
    ]
}
DELETE
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}/databases/{database_name}

撤销数据库访问权限

撤销用户对数据库的访问权限。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

user_name (可选)

路径

字符串

用户的名称。

database_name (可选)

路径

字符串

数据库的名称。

DELETE
/v1.0/{project_id}/instances/{instanceId}/databases/{database_name}

删除数据库

删除数据库。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

database_name (可选)

路径

字符串

数据库的名称。

用户

目前,数据库和用户 API 仅支持 mysql 数据存储。对于其他存储,推荐的方法是获取 root 密码 (POST /v1.0/{project_id}/instances/{instance_id}/root) 并直接与数据库服务通信以进行数据库和用户管理。

POST
/v1.0/{project_id}/instances/{instanceId}/users

创建用户

创建数据库实例用户。

在指定用户名和密码时,还可以指定用户可以访问的数据库。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "users": [
        {
            "databases": [
                {
                    "name": "databaseA"
                }
            ],
            "name": "dbuser1",
            "password": "password"
        },
        {
            "databases": [
                {
                    "name": "databaseB"
                },
                {
                    "name": "databaseC"
                }
            ],
            "name": "dbuser2",
            "password": "password"
        },
        {
            "name": "dbuser3",
            "password": "password"
        }
    ]
}
GET
/v1.0/{project_id}/instances/{instanceId}/users

列出数据库实例用户

列出数据库实例中的用户以及该用户的关联数据库。

此操作不返回系统用户。系统用户是管理数据库健康的数据库管理员。此外,此操作仅在启用时返回 root 用户。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应示例

{
    "users": [
        {
            "databases": [
                {
                    "name": "databaseA"
                }
            ],
            "host": "%",
            "name": "dbuser1"
        },
        {
            "databases": [
                {
                    "name": "databaseB"
                },
                {
                    "name": "databaseC"
                }
            ],
            "host": "%",
            "name": "dbuser2"
        },
        {
            "databases": [],
            "host": "%",
            "name": "dbuser3"
        }
    ]
}
GET
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}

显示数据库实例用户

获取实例中的特定用户信息。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

user_name (可选)

路径

字符串

用户的名称。

响应示例

{
    "user": {
        "databases": [
            {
                "name": "databaseA"
            }
        ],
        "host": "%",
        "name": "dbuser1"
    }
}
DELETE
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}

删除用户

删除数据库实例的用户。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

user_name (可选)

路径

字符串

用户的名称。

PUT
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}

更新一个用户

修改特定用户的属性(例如,用户名、允许的主机、密码)。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

user_name (可选)

路径

字符串

用户的名称。

请求示例

{
    "user": {
        "name": "new_name",
        "password": "new_password",
        "host": "192.168.30.98"
    }
}
PUT
/v1.0/{project_id}/instances/{instanceId}/users

更新用户密码

修改用户密码。

正常响应代码:202

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

请求示例

{
    "users": [
        {
            "name": "new_name",
            "password": "another_password",
            "host": "192.168.30.98"
        }
    ]
}
GET
/v1.0/{project_id}/instances/{instanceId}/root

显示数据库实例的 root 启用状态

显示数据库实例的 root 启用状态。

如果数据库实例的 root 用户已启用,则返回 true。否则,返回 false

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应示例

{
    "rootEnabled": true
}
POST
/v1.0/{project_id}/instances/{instanceId}/root

启用 root 用户

启用数据库实例的 root 用户并返回 root 密码。

如果未提供,此操作会为 root 用户生成密码并启用 root 用户从任何主机登录。如果提供,用户应保证密码的复杂性并定期更改。

除了管理数据库和用户之外,root 用户还可以更改数据库设置,而无需触及 Trove API,这不建议这样做。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

密码 (可选)

body

字符串

数据库 root 用户(即管理员用户)的密码。

请求示例

{
  "password": "q5BXXMUMbc8XBf5kkVToKZW4Kx3Egv5VjY0P"
}

响应示例

{
    "user": {
        "name": "root",
        "password": "q5BXXMUMbc8XBf5kkVToKZW4Kx3Egv5VjY0P"
    }
}
DELETE
/v1.0/{project_id}/instances/{instanceId}/root

禁用 root 用户

禁用 root 用户。

正常响应代码:204

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

GET
/v1.0/{project_id}/mgmt/instances/{instanceId}/root

显示数据库实例的 root 启用历史记录

仅限管理员 API。显示 root 用户已启用的日期和时间(如果曾经启用过)的实例。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

instanceId

路径

字符串

数据库实例的 ID。

响应示例

{
    "root_history": {
        "enabled": "2019-12-24T03:10:16",
        "id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
        "user": "7578487d3cc843dca904d2f4eced7dd2"
    }
}

配额

GET
/v1.0/{project_id}/limits

显示当前项目的资源限制

获取当前项目的资源配额和速率限制。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

响应示例

{
    "limits": [
        {
            "max_backups": 50,
            "max_instances": 10,
            "max_volumes": 40,
            "verb": "ABSOLUTE"
        },
        {
            "nextAvailable": "2019-12-23T22:38:41Z",
            "regex": ".*",
            "remaining": 199,
            "unit": "MINUTE",
            "uri": "*",
            "value": 200,
            "verb": "POST"
        },
        {
            "nextAvailable": "2019-12-24T02:49:24Z",
            "regex": ".*",
            "remaining": 199,
            "unit": "MINUTE",
            "uri": "*",
            "value": 200,
            "verb": "PUT"
        },
        {
            "nextAvailable": "2019-12-24T03:42:19Z",
            "regex": ".*",
            "remaining": 200,
            "unit": "MINUTE",
            "uri": "*",
            "value": 200,
            "verb": "DELETE"
        },
        {
            "nextAvailable": "2019-12-24T03:42:19Z",
            "regex": ".*",
            "remaining": 199,
            "unit": "MINUTE",
            "uri": "*",
            "value": 200,
            "verb": "GET"
        },
        {
            "nextAvailable": "2019-12-24T03:42:19Z",
            "regex": "^/mgmt",
            "remaining": 200,
            "unit": "MINUTE",
            "uri": "*/mgmt",
            "value": 200,
            "verb": "POST"
        }
    ]
}
GET
/v1.0/{project_id}/mgmt/quotas/{user_project}

显示特定项目的资源配额

管理员可以查询任何项目的资源配额。项目用户只能显示其自身的配额。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

user_project

路径

字符串

用户项目的项目 ID。

响应参数

名称

入参

类型

描述

quotas

body

数组

资源配额列表。

resource

body

字符串

资源名称。

in_use

body

整数

资源的已用配额。

limit

body

整数

资源配额的限制。

reserved

body

整数

资源的保留配额。

响应示例

{
    "quotas": [
        {
            "in_use": 5,
            "limit": 15,
            "reserved": 0,
            "resource": "instances"
        },
        {
            "in_use": 2,
            "limit": 50,
            "reserved": 0,
            "resource": "backups"
        },
        {
            "in_use": 1,
            "limit": 40,
            "reserved": 0,
            "resource": "volumes"
        }
    ]
}
PUT
/v1.0/{project_id}/mgmt/quotas/{user_project}

更新特定项目的资源配额

默认情况下,仅限管理员操作。支持的资源

  • instances

  • backups

如果未设置,则使用 Trove 配置中的默认资源配额。

正常响应代码:200

请求

名称

入参

类型

描述

project_id

路径

字符串

实例所有者的项目 ID。

user_project

路径

字符串

用户项目的项目 ID。

quotas

body

字符串

定义资源配额的字典。

请求示例

{
    "quotas": {
        "instances": 10,
        "backups": 30
    }
}

响应参数

名称

入参

类型

描述

quotas

body

字符串

定义资源配额的字典。

响应示例

{
    "quotas": {
        "instances": 10,
        "backups": 30
    }
}