Database API — trove documentation
Database API¶
API versions¶
Lists information for all Database Service API versions.
Lists information about all Database Service API versions. No authentication needed.
Normal response codes: 200
Response Example¶
{ "versions": [ { "id": "v1.0", "links": [ { "href": "http://127.0.0.1:8779/v1.0/", "rel": "self" } ], "status": "CURRENT", "updated": "2012-08-01T00:00:00Z" } ] }
Datastores¶
/v1.0/{project_id}/datastores
List datastores
Get all the datastores registered in the system
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Example¶
{ "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" } ] } ] }
/v1.0/{project_id}/datastores/{datastore}
Show datastore details
Shows datastore details
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore (Optional) |
path |
string |
Name or ID of the data store. |
Response Example¶
{ "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" } ] } }
/v1.0/{project_id}/datastores/{datastore}
Delete datastore
Delete a datastore.
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore (Optional) |
path |
string |
Name or ID of the data store. |
Datastore Versions¶
/v1.0/{project_id}/datastores/{datastore}/versions
List datastore versions
Get all the registered versions for a given datastore
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore (Optional) |
path |
string |
Name or ID of the data store. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/datastores/{datastore}/versions/{version}
Show datastore version
Get information for a given datastore version(name or ID)
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore (Optional) |
path |
string |
Name or ID of the data store. |
version (Optional) |
path |
string |
Name or ID of the datastore version. If there are multiple datastore versions with the same name but different version numbers, ID is needed. |
Response Example¶
{ "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" ] } }
/v1.0/{project_id}/datastores/{datastore}/versions/{version}/parameters
List datastore version configuration parameters
Get all the config parameters associated with the specified datastore version
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore (Optional) |
path |
string |
Name or ID of the data store. |
version (Optional) |
path |
string |
Name or ID of the datastore version. If there are multiple datastore versions with the same name but different version numbers, ID is needed. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/datastores/{datastore}/versions/{version}/parameters/{parameter_name}
Show datastore version configuration parameter
Get the specified config parameter definition.
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore (Optional) |
path |
string |
Name or ID of the data store. |
version (Optional) |
path |
string |
Name or ID of the datastore version. If there are multiple datastore versions with the same name but different version numbers, ID is needed. |
parameter_name (Optional) |
path |
string |
The name of the parameter for which to show details. |
Response Example¶
{ "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf", "max": 31536000, "min": 1, "name": "wait_timeout", "restart_required": false, "type": "integer" }
/v1.0/{project_id}/datastores/versions/{datastore_version_id}
Show datastore version
Get information for a given datastore version ID.
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
Response Example¶
{ "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" ] } }
/v1.0/{project_id}/datastores/versions/{datastore_version_id}/parameters
List datastore version configuration parameters
Get all the config parameters associated with the specified datastore version ID.
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/datastores/versions/{datastore_version_id}/parameters/{parameter_name}
Show datastore version configuration parameter
Get the specified config parameter definition.
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
parameter_name (Optional) |
path |
string |
The name of the parameter for which to show details. |
Response Example¶
{ "datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf", "max": 31536000, "min": 1, "name": "wait_timeout", "restart_required": false, "type": "integer" }
/v1.0/{project_id}/mgmt/datastores/versions/{datastore_version_id}/parameters
Create datastore version configuration parameters
Admin only API. Register a configuration parameter for the specified datastore version. The parameter definition contains the type, minimum and maximum values(if type is integer), and whether you must restart the instance after the parameter value is changed.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
Request Example¶
{ "configuration-parameter": { "name": "connect_timeout", "data_type": "integer", "min_size": 64, "max_size": 65535, "restart_required": 0 } }
Response Example¶
{ "configuration-parameters": [ { "datastore_version_id": "4eb0179d-fe11-4556-9422-5267d2fc7625", "max": 65535, "min": 64, "name": "connect_timeout", "restart_required": false, "type": "integer" } ] }
/v1.0/{project_id}/mgmt/datastores/versions/{datastore_version_id}/parameters/{parameter_name}
Update a datastore version configuration parameter
Admin only API. Update a configuration parameter for the specified datastore version.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
parameter_name (Optional) |
path |
string |
The name of the parameter for which to show details. |
Request Example¶
{ "configuration-parameter": { "name": "connect_timeout", "data_type": "integer", "min_size": 64, "max_size": 65535, "restart_required": 1 } }
Response Example¶
{ "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" }
/v1.0/{project_id}/mgmt/datastores/versions/{datastore_version_id}/parameters/{parameter_name}
Delete a datastore version configuration parameter
Admin only API. Remove a configuration parameter for the specified datastore version.
Normal response codes: 204
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
parameter_name (Optional) |
path |
string |
The name of the parameter for which to show details. |
/v1.0/{project_id}/mgmt/datastore-versions
Create datastore version
Admin only API. Register a datastore version, the datastore is created automatically if doesn’t exist.
It’s allowed to create datastore versions with the same name but different version numbers, or vice versa.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
name |
body |
string |
The name of the datastore version. Different datastore versions can have the same name. |
datastore_name |
body |
string |
The name of a datastore. |
datastore_manager |
body |
string |
The type of a datastore. |
image (Optional) |
body |
string |
The ID of an image. Either |
image_tags (Optional) |
body |
array |
List of image tags. Either If the image ID is not provided, the image can be retrieved by the image tags. The tags are used for filtering as a whole rather than separately. Using image tags is more flexible than ID especially when a new guest image is uploaded to Glance, Trove can pick up the latest image automatically for creating instances. When updating, only specifying |
active |
body |
boolean |
Whether the database version is enabled. |
default (Optional) |
body |
boolean |
When true this datastore version is created as the default in the datastore. If not specified, for creating, default is false, for updating, it’s ignored. |
version (Optional) |
body |
string |
The version number for the database. In container based trove instance deployment, the version number is the same as the container image tag, e.g. for MySQL, a valid version number is 5.7.30 |
Request Example¶
{ "version": { "datastore_name": "mysql", "datastore_manager": "mysql", "name": "test", "image_tags": ["trove"], "active": true, "default": false, "packages": [], "version": "5.7.30" } }
/v1.0/{project_id}/mgmt/datastore-versions
List datastore versions
Admin only API. Get all the datastore versions.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/mgmt/datastore-versions/{datastore_version_id}
Show datastore version details
Admin only API. Get information for a datastore version.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
Response Example¶
{ "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" } }
/v1.0/{project_id}/mgmt/datastore-versions/{datastore_version_id}
Update datastore version details
Admin only API. Update a specific datastore version.
The version number is not allowed to update.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
name (Optional) |
body |
string |
The name of the datastore version. Different datastore versions can have the same name. |
datastore_manager (Optional) |
body |
string |
The type of a datastore. |
image (Optional) |
body |
string |
The ID of an image. Either |
image_tags (Optional) |
body |
array |
List of image tags. Either If the image ID is not provided, the image can be retrieved by the image tags. The tags are used for filtering as a whole rather than separately. Using image tags is more flexible than ID especially when a new guest image is uploaded to Glance, Trove can pick up the latest image automatically for creating instances. When updating, only specifying |
active (Optional) |
body |
boolean |
Whether the database version is enabled. |
default (Optional) |
body |
boolean |
When true this datastore version is created as the default in the datastore. If not specified, for creating, default is false, for updating, it’s ignored. |
Request Example¶
{ "name": "new name", "image": "42706631-3b76-4d1c-95c9-6a85e72eebda", "active": true }
/v1.0/{project_id}/mgmt/datastore-versions/{datastore_version_id}
Delete a datastore version
Admin only API. Delete a specific datastore version.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore_version_id (Optional) |
path |
string |
The UUID of the data store version. |
Instances¶
/v1.0/{project_id}/instances
List database instances
Lists information for all database instances. Supported filters: include_clustered
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Example¶
{ "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 } } ] }
/v1.0/{project_id}/mgmt/instances
List database instances(admin)
Admin only API. Get all the instances, Could show more information such as Cinder volume ID, Nova server information, etc.
Supported filters:
deleted.include_clustered.project_id: Get instances of a speficied project.
Normal response codes: 200
Response Example¶
{ "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 } ] }
/v1.0/{project_id}/instances/detail
List database instances(with details)
Lists information for all database instances with more details, such as created and updated time, service status updated time, the failure message, etc. Supported filters: include_clustered
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Example¶
{ "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 } } ] }
/v1.0/{project_id}/instances
Create database instance
Creates a database instance.
Normally, you must specify a flavor ID, a volume size and the network the instance is attached to. The service provisions the instance with a volume of the requested size, which serves as storage for the database instance.
If creating replica (a secondary instance of the replication cluster), flavor and volume size are not needed.
The database service can only be access within the tenant network, unless the
access parameter is defined.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
users (Optional) |
body |
array |
A |
users.name |
body |
string |
The name of a user. |
users.password |
body |
string |
The password of a user. |
users.host (Optional) |
body |
string |
A host allowed for a user. |
users.databases (Optional) |
body |
array |
The |
users.databases.name |
body |
string |
The name of a database which the user can access. |
datastore (Optional) |
body |
object |
A |
datastore.type (Optional) |
body |
string |
The type of a datastore. |
datastore.version (Optional) |
body |
string |
Name of the datastore version to use when creating/updating the instance. |
datastore.version_number (Optional) |
body |
string |
The version number for the database. In container based trove instance deployment, the version number is the same as the container image tag, e.g. for MySQL, a valid version number is 5.7.30 |
name |
body |
string |
Name of the instance. |
flavorRef |
body |
string |
Reference (href), which is the actual URI to a
flavor as it appears in the list flavors response. Rather than
the flavor URI, you can also pass the flavor ID (integer) as the
|
volume (Optional) |
body |
object |
A |
volume.size |
body |
integer |
The volume size, in gigabytes (GB). A valid value
is from 1 to 50(this limit is controlled by the
configuration |
volume.type (Optional) |
body |
string |
The volume type to use. You can list the
available volume types on your system by using the |
modules (Optional) |
body |
object |
The |
modules.id |
body |
string |
The ID of a module. |
restorePoint (Optional) |
body |
object |
The |
restorePoint.backupRef |
body |
string |
The backup id used from which a new instance is created. |
availability_zone (Optional) |
body |
string |
The availability zone of the instance. |
nics (Optional) |
body |
array |
Network interface definition for database instance. This is a list of mappings for backward compatibility, but only one item is allowed. The allowed keys in the mapping are: network_id, subnet_id, ip_address and net-id (for backward compatibility, deprecated). Trove will allocate port using the given information. In order to successfully create database instance, either the user should make sure the traffic coming through that port could access the public contaier image registry(i.e. the port subnet is associated with a Neutron router), or the cloud provider should be responsible for that. |
replica_of |
body |
string |
ID or name of an existing instance to replicate from. |
replica_count (Optional) |
body |
integer |
Number of replicas to create (defaults to 1). |
locality (Optional) |
body |
string |
The scheduler hint when creating underlying
Nova instances. Valide values are:
|
region_name (Optional) |
body |
string |
The region name of an instance. |
databases (Optional) |
body |
array |
A |
databases.characterSet (Optional) |
body |
string |
A set of symbols and encodings. Default is
|
databases.collate (Optional) |
body |
string |
A set of rules for comparing characters in a
character set. Default is |
instance |
body |
object |
An |
configuration |
body |
string |
ID of the configuration group that you want to attach to the instance. |
access (Optional) |
body |
object |
A |
access.is_public (Optional) |
body |
boolean |
Whether the database service is exposed to the public. |
access.allowed_cidrs (Optional) |
body |
array |
A list of IPv4, IPv6 or mix of both CIDRs that restrict access to the
database service. |
Request Example¶
{ "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"] } } }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
id |
body |
string |
The ID of the database instance. |
name |
body |
string |
Name of the instance. |
status |
body |
string |
Status of the instance. |
operating_status |
body |
string |
The operating status of the database service inside the Trove instance. |
links |
body |
array |
The |
links.href |
body |
string |
The |
links.rel |
body |
string |
The |
flavor |
body |
object |
A |
flavor.id |
body |
string |
The ID of the flavor. |
flavor.links |
body |
array |
The |
flavor.links.href |
body |
string |
The |
flavor.links.rel |
body |
string |
The |
datastore |
body |
object |
A |
datastore.type (Optional) |
body |
string |
The type of a datastore. |
datastore.version |
body |
string |
Name or ID of a datastore version. |
datastore.version_number (Optional) |
body |
string |
The version number for the database. In container based trove instance deployment, the version number is the same as the container image tag, e.g. for MySQL, a valid version number is 5.7.30 |
volume (Optional) |
body |
object |
A |
volume.size |
body |
integer |
The volume size, in gigabytes (GB). A valid value
is from 1 to 50(this limit is controlled by the
configuration |
volume.used (Optional) |
body |
float |
The used space of the volume, in gigabytes (GB). |
created |
body |
string |
The date and time when the resource was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm For example, The |
updated |
body |
string |
The date and time when the resource was updated. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm The For example, The UTC time zone is assumed. |
service_status_updated |
body |
string |
The date and time when the database service status was updated. This field can be used to validate if the ‘HEALTHY’ status is stale or not. |
locality (Optional) |
body |
string |
The scheduler hint when creating underlying
Nova instances. Valide values are:
|
password (Optional) |
body |
string |
The password of the database root user(i.e. the administrative user). |
instance |
body |
object |
An |
Response Example¶
{ "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" } }
/v1.0/{project_id}/instances/{instanceId}
Show database instance details
Shows database instance details.
Lists the volume size in gigabytes (GB) and the approximate GB
used. After instance creation, the used value is greater than 0, which
is expected as databases may create some basic (non empty) files to
represent an empty schema. The response does not include the used
attribute when the instance status is BUILD, REBOOT,
RESIZE, or ERROR.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
instance |
body |
object |
An |
id |
body |
string |
The ID of the database instance. |
name |
body |
string |
Name of the instance. |
status |
body |
string |
Status of the instance. |
operating_status |
body |
string |
The operating status of the database service inside the Trove instance. |
links |
body |
array |
The |
links.href |
body |
string |
The |
links.rel |
body |
string |
The |
flavor |
body |
object |
A |
flavor.id |
body |
string |
The ID of the flavor. |
flavor.links |
body |
array |
The |
flavor.links.href |
body |
string |
The |
flavor.links.rel |
body |
string |
The |
datastore |
body |
object |
A |
datastore.type (Optional) |
body |
string |
The type of a datastore. |
datastore.version |
body |
string |
Name or ID of a datastore version. |
region |
body |
string |
The region name of an instance. |
tenant_id (Optional) |
body |
string |
The ID of a tenant. |
volume (Optional) |
body |
object |
A |
volume.size |
body |
integer |
The volume size, in gigabytes (GB). A valid value
is from 1 to 50(this limit is controlled by the
configuration |
volume.used (Optional) |
body |
float |
The used space of the volume, in gigabytes (GB). |
hostname (Optional) |
body |
string |
The hostname of an instance. |
ip (Optional) |
body |
string |
The IP address of an instance(deprecated). |
addresses (Optional) |
body |
array |
The IP addresses of an instance, including the address type(“private” or “public”) and IP. “network” field is added since Xena when the address type is “private”. |
created |
body |
string |
The date and time when the resource was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm For example, The |
updated |
body |
string |
The date and time when the resource was updated. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm The For example, The UTC time zone is assumed. |
service_status_updated |
body |
string |
The date and time when the database service status was updated. This field can be used to validate if the ‘HEALTHY’ status is stale or not. |
fault (Optional) |
body |
object |
The |
fault.message |
body |
string |
The fault message of an instance. |
fault.created |
body |
string |
The update timestamp of the fault message for an instance. |
fault.details |
body |
string |
The detail fault explanation of an instance. |
replicas (Optional) |
body |
array |
The |
replicas.id |
body |
string |
The ID of a replica instance. |
replicas.links |
body |
array |
The |
replicas.links.href |
body |
string |
The |
replicas.links.rel |
body |
string |
The |
replica_of (Optional) |
body |
string |
The primary instance ID of this replica. |
configuration (Optional) |
body |
object |
A |
configuration.id |
body |
string |
The ID of a configuration. |
configuration.name |
body |
string |
The name of a configuration. |
configuration.links |
body |
array |
The |
configuration.links.href |
body |
string |
The |
configuration.links.rel |
body |
string |
The |
locality (Optional) |
body |
string |
The scheduler hint when creating underlying
Nova instances. Valide values are:
|
local_storage_used (Optional) |
body |
float |
The used space of the ephemeral disk, in gigabytes (GB). |
password (Optional) |
body |
string |
The password of the database root user(i.e. the administrative user). |
cluster_id (Optional) |
body |
string |
The cluster ID of an instance. |
shard_id (Optional) |
body |
string |
The shard ID of an instance. |
server_id (Optional) |
body |
string |
The ID of the underlying Nova instance for an instance. |
volume_id (Optional) |
body |
string |
The ID of a volume. |
encrypted_rpc_messaging (Optional) |
body |
boolean |
Whether the instance is using encrypted rpm messaging feature or not. |
access (Optional) |
body |
object |
A |
access.is_public (Optional) |
body |
boolean |
Whether the database service is exposed to the public. |
access.allowed_cidrs (Optional) |
body |
array |
A list of IPv4, IPv6 or mix of both CIDRs that restrict access to the
database service. |
Response Example¶
{ "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 } } }
/v1.0/{project_id}/mgmt/instances/{instanceId}
Show database instance details(admin)
Admin only API. Get an instance information, including Cinder volume, Nova server, etc.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Example¶
{ "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" } }
/v1.0/{project_id}/instances/{instanceId}
Attach configuration group
Attach a configuration group for an instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
configuration |
body |
string |
ID of the configuration group that you want to attach to the instance. |
Request Example¶
{ "instance": { "configuration": "2aa51628-5c42-4086-8682-137caffd2ba6" } }
/v1.0/{project_id}/instances/{instanceId}
Detach configuration group
Detach a configuration group from an instance. When you pass in only
an instance ID and omit the configuration ID or explicitly set
"configuration_id": null, this operation detaches any configuration group
that was attached to the instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
configuration (Optional) |
body |
string |
Omit or set |
Request Examples¶
{ "instance": { "configuration": null } }
/v1.0/{project_id}/instances/{instanceId}
Update instance name
Update the instance name.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
instance |
body |
object |
An |
name (Optional) |
body |
string |
Name of the instance. |
Request Example¶
{ "instance": { "name": "sample_instance" } }
/v1.0/{project_id}/instances/{instanceId}
Upgrade datastore version for instance
Upgrade datastore version.
During datastore version upgrading, the instance status change to UPGRADE,
and changes back to HEALTHY after upgrading finishes, otherwize changes to
ERROR if the upgrading fails.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
instance |
body |
object |
An |
datastore_version (Optional) |
body |
string |
Name of the datastore version to use when creating/updating the instance. |
Request Example¶
{ "instance": { "datastore_version": "sample_datastore_version" } }
/v1.0/{project_id}/instances/{instanceId}
Detach replica
Detaches a replica from its replication source.
If you created an instance that is a replica of a source instance, you can detach the replica from the source later on. This can be useful if the source becomes unavailable. In this case, you can detach the replica from the source, making the replica a standalone database instance. You can then take the new standalone instance and create a new replica of that instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
instance |
body |
object |
An |
replica_of |
body |
string |
ID or name of an existing instance to replicate from. |
slave_of (Optional) |
body |
string |
To detach a replica, set |
Request Example¶
{ "instance": { "replica_of": null } }
/v1.0/{project_id}/instances/{instanceId}
Update instance accessbility
The following operations are supported:
If the instance should be exposed to public or not. Not providing
is_publicmeans private.The list of CIDRs that are allowed to access the database service. Not providing
allowed_cidrsmeans allowing everything.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
instance |
body |
object |
An |
access (Optional) |
body |
object |
A |
access.is_public (Optional) |
body |
boolean |
Whether the database service is exposed to the public. |
access.allowed_cidrs (Optional) |
body |
array |
A list of IPv4, IPv6 or mix of both CIDRs that restrict access to the
database service. |
Request Example¶
{ "instance": { "access": { "is_public": true, "allowed_cidrs": ["10.0.0.0/24"] } } }
/v1.0/{project_id}/instances/{instanceId}
Delete database instance
Deletes a database instance.
This operation does not delete any slaves.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
/v1.0/{project_id}/instances/{instanceId}/backups
List backups of database instance
Get all the backups for an instance.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/instances/{instanceId}/configuration
List default configuration parameters of database instance
Get the default configuration parameters for an instance.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Example¶
{ "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 } } }
Instance actions¶
/v1.0/{project_id}/instances/{instanceId}/action
Restart instance
Restarts the database service for an instance.
The restart operation restarts only the database instance. Restarting the database erases any dynamic configuration settings that you make in the database instance.
The database service is unavailable until the instance restart finishes.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
/v1.0/{project_id}/instances/{instanceId}/action
Resize instance flavor
Resizes the (Nova)flavor for an instance.
If you provide a valid flavorRef, this operation changes the
memory size of the instance, and restarts the database.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
flavorRef |
body |
string |
Reference (href), which is the actual URI to a
flavor as it appears in the list flavors response. Rather than
the flavor URI, you can also pass the flavor ID (integer) as the
|
Request Example¶
{ "resize": { "flavorRef": "2" } }
/v1.0/{project_id}/instances/{instanceId}/action
Resize instance volume
Resizes the volume that is attached to an instance.
You can use this operation to increase but not decrease the volume size. A valid volume size is an integer value in gigabytes (GB).
You cannot increase the volume to a size that is larger than the API volume size limit.
For replication cluster, resizing volume of the primary will also resize replicas automatically.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
volume (Optional) |
body |
object |
A |
Request Example¶
{ "resize": { "volume": { "size": 4 } } }
/v1.0/{project_id}/instances/{instanceId}/action
Promote instance to replica master
Promotes a replica.
If you have set up replication, and the master instance is still reachable, you can use this operation to promote a replica to be the new master instance.
This can be useful if you want to make a configuration change or maintenance to the master instance. If you made the change on the master instance directly, you would need to take the master instance down for the duration of the operation. Instead, you can create a replica, make the configuration change on the replica, and then promote the replica to become the new master instance.
Once this command is executed, the status of all the instances will be set to
PROMOTE and Trove will work its magic until all of them to come back to
HEALTHY.
The instanceId is the instance ID of the replica you want to promote.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
{ "promote_to_replica_source": {} }
/v1.0/{project_id}/instances/{instanceId}/action
Eject the master instance
Remove the master instance in a replication set.
This should be only done in a failed master scenario. This command ejects the current master and then forces a re-election for the new master. The new master is effectively the one with the most current replica of the old master.
Once this command is executed, the status of all the instances will be set to
EJECT and Trove will work its magic until all of them to come back to
HEALTHY.
The instanceId is the ID of the current unavailable master instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
{ "eject_replica_source": {} }
/v1.0/{project_id}/instances/{instanceId}/action
Reset instance status
Set instance service status to ERROR and clear the current task status.
Mark any running backup operations as FAILED.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
/v1.0/{project_id}/mgmt/instances/{instanceId}/action
Stop database service
Admin only API. Stop database service inside an instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
/v1.0/{project_id}/mgmt/instances/{instanceId}/action
Reboot instance
Admin only API. Reboot the database instance, database service will be stopped before rebooting.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
/v1.0/{project_id}/mgmt/instances/{instanceId}/action
Cold Migrate instance
Admin only API. Migrate(resize) the database instance, database service will be stopped before migrating.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
{ "migrate": { "host": "compute-001" } }
/v1.0/{project_id}/mgmt/instances/{instanceId}/action
Reset instance task status
Admin only API. Reset task status of an instance, mark any running backup
operations as FAILED.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
{ "reset-task-status": {} }
/v1.0/{project_id}/mgmt/instances/{instanceId}/action
Rebuild instance
Admin only API. Rebuild the Nova server’s operating system for the database instance. The rebuild operation is mainly for Trove upgrade, especially when the interface between Trove controller and guest agent changes. After Trove controller is upgraded, the cloud administrator needs to send rebuild request with the new guest image ID. Communication with the end users is needed as the database service goes offline during the process. User’s data in the database is not affected.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
{ "rebuild": { "image_id": "3e50414a-8532-4646-982c-a66fe8f0411b" } }
Instance logs¶
/v1.0/{project_id}/instances/{instanceId}/log
List instance logs
Listing all logs for an instance.
Different datastore backend has its own guest_log_exposed_logs
configuration to determine which type of logs will be listed by default. Admin
user can get all the logs.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
logs |
body |
array |
A list of |
name |
body |
string |
The name of the log. |
type |
body |
string |
The type of the log. |
status |
body |
string |
The log status. |
published |
body |
string |
Published size of the log. |
pending |
body |
string |
Log file size pending to be published. |
container |
body |
string |
The object store container where the published
log data will be stored. Defaults to |
prefix |
body |
string |
If the log has been published, thi is the prefix location
of where the log data are stored. Otherwize the prefix is
|
metafile |
body |
string |
The log metafile location. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/instances/{instanceId}/log
Show instance log details
Show details for a instance log.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
name |
body |
string |
The name of the log. |
Request Example¶
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
log |
body |
array |
A |
name |
body |
string |
The name of the log. |
type |
body |
string |
The type of the log. |
status |
body |
string |
The log status. |
published |
body |
string |
Published size of the log. |
pending |
body |
string |
Log file size pending to be published. |
container |
body |
string |
The object store container where the published
log data will be stored. Defaults to |
prefix |
body |
string |
If the log has been published, thi is the prefix location
of where the log data are stored. Otherwize the prefix is
|
metafile |
body |
string |
The log metafile location. |
Response Example¶
{ "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" } }
/v1.0/{project_id}/instances/{instanceId}/log
Enable instance log
Enable a log type for a instance.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
name |
body |
string |
The name of the log. |
enable (Optional) |
body |
integer |
To enable a log type, this should always set to 1. |
Request Example¶
{ "name": "general", "enable": 1 }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
log |
body |
array |
A |
name |
body |
string |
The name of the log. |
type |
body |
string |
The type of the log. |
status |
body |
string |
The log status. |
published |
body |
string |
Published size of the log. |
pending |
body |
string |
Log file size pending to be published. |
container |
body |
string |
The object store container where the published
log data will be stored. Defaults to |
prefix |
body |
string |
If the log has been published, thi is the prefix location
of where the log data are stored. Otherwize the prefix is
|
metafile |
body |
string |
The log metafile location. |
Response Example¶
{ "log": { "name": "general", "type": "USER", "status": "Eanbled", "published": "0", "pending": "0", "container": "None", "prefix": "None", "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile" } }
/v1.0/{project_id}/instances/{instanceId}/log
Disable instance log
Disable a log type for a instance.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
name |
body |
string |
The name of the log. |
disable (Optional) |
body |
integer |
To disable a log type, this should always set to 1. |
Request Example¶
{ "name": "general", "disable": 1 }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
log |
body |
array |
A |
name |
body |
string |
The name of the log. |
type |
body |
string |
The type of the log. |
status |
body |
string |
The log status. |
published |
body |
string |
Published size of the log. |
pending |
body |
string |
Log file size pending to be published. |
container |
body |
string |
The object store container where the published
log data will be stored. Defaults to |
prefix |
body |
string |
If the log has been published, thi is the prefix location
of where the log data are stored. Otherwize the prefix is
|
metafile |
body |
string |
The log metafile location. |
Response Example¶
{ "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" } }
/v1.0/{project_id}/instances/{instanceId}/log
Publish instance log
Publish a log type for a instance.
Publish`` will automatically enable a log.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
name |
body |
string |
The name of the log. |
publish (Optional) |
body |
integer |
To publish a log type, this should always set to 1. |
Request Example¶
{ "name": "general", "publish": 1 }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
log |
body |
array |
A |
name |
body |
string |
The name of the log. |
type |
body |
string |
The type of the log. |
status |
body |
string |
The log status. |
published |
body |
string |
Published size of the log. |
pending |
body |
string |
Log file size pending to be published. |
container |
body |
string |
The object store container where the published
log data will be stored. Defaults to |
prefix |
body |
string |
If the log has been published, thi is the prefix location
of where the log data are stored. Otherwize the prefix is
|
metafile |
body |
string |
The log metafile location. |
Response Example¶
{ "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" } }
/v1.0/{project_id}/instances/{instanceId}/log
Discard instance log
Discard all previously published logs for a instance.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
name |
body |
string |
The name of the log. |
discard (Optional) |
body |
integer |
To discard a log type which has been published previously, this should always set to 1. |
Request Example¶
{ "name": "general", "discard": 1 }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
log |
body |
array |
A |
name |
body |
string |
The name of the log. |
type |
body |
string |
The type of the log. |
status |
body |
string |
The log status. |
published |
body |
string |
Published size of the log. |
pending |
body |
string |
Log file size pending to be published. |
container |
body |
string |
The object store container where the published
log data will be stored. Defaults to |
prefix |
body |
string |
If the log has been published, thi is the prefix location
of where the log data are stored. Otherwize the prefix is
|
metafile |
body |
string |
The log metafile location. |
Response Example¶
{ "log": { "name": "general", "type": "USER", "status": "Ready", "published": "0", "pending": "128", "container": "None", "prefix": "None", "metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile" } }
Backups¶
/v1.0/{project_id}/backups
List database backups
List all database backups information for a project. You can filter results by using query string parameters. The following filters are supported:
instance_id={instance_id}- Return the list of backups for a particular database instance.all_projects=True/False- Return the list of backups for all the projects, this is an admin only param by default.datastore={datastore}- Return a list of backups of the same datastore.project_id={project_id}- Get backups of a specific project. Admin required.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
backups |
body |
array |
A list of |
created |
body |
string |
The date and time when the resource was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm For example, The |
datastore |
body |
object |
A |
datastore.type |
body |
string |
The type of a datastore. |
datastore.version |
body |
string |
The name of the datastore version. Different datastore versions can have the same name. |
datastore.version_id |
body |
string |
The UUID of the data store version. |
description |
body |
string |
An optional description for the backup. |
id |
path |
string |
The ID of the backup. |
instance_id (Optional) |
body |
string |
The ID of the instance to create backup for. |
locationRef |
body |
string |
The URL of the backup location. |
name |
body |
string |
Name of the backup. |
parent_id |
body |
string |
ID of the parent backup to perform an incremental backup from. |
size |
body |
string |
Size of the backup, the unit is GB. |
status |
body |
string |
Status of the backup. |
updated |
body |
string |
The date and time when the resource was updated. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm The For example, The UTC time zone is assumed. |
project_id |
body |
string |
The project ID of the resource. |
storage_driver (Optional) |
body |
string |
The backup strategy |
Response Example¶
{ "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": "http://localhost/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": "http://localhost/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" } ] }
/v1.0/{project_id}/backups
Create database backup
Creates a database backup for instance.
In the Trove deployment with service tenant enabled, The backup data is stored as objects in OpenStack Swift service in the user’s container. If not specified, the container name is defined by the cloud admin.
The user can create a backup strategy within the project scope or specific to a particular instance.
In multi-region deployment with geo-replicated Swift, the user can also restore a backup in a region by manually specifying the backup data location created in another region, then create instances from the backup. Instance ID is not required in this case.
Warning
The restored backup is dependent on the original backup data, if the original backup is deleted, the restored backup is invalid.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
name |
body |
string |
Name of the backup. |
instance (Optional) |
body |
string |
The ID of the instance to create backup for. |
parent_id (Optional) |
body |
string |
ID of the parent backup to perform an incremental backup from. |
incremental (Optional) |
body |
integer |
Create an incremental backup based on the last full backup by setting this parameter to 1 or 0. It will create a full backup if no existing backup found. |
description (Optional) |
body |
string |
An optional description for the backup. |
swift_container (Optional) |
body |
string |
User defined swift container name. When creating backups, the swift container is created automatically if does not exist. |
restore_from (Optional) |
body |
object |
The information needed to restore a backup, including:
|
storage_driver (Optional) |
body |
string |
The backup strategy |
Request Example¶
{ "backup": { "description": "My Backup", "incremental": 0, "instance": "44b277eb-39be-4921-be31-3d61b43651d7", "name": "snapshot", "storage_driver": "cinder" } }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
created |
body |
string |
The date and time when the resource was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm For example, The |
datastore |
body |
object |
A |
datastore.type |
body |
string |
The type of a datastore. |
datastore.version |
body |
string |
The name of the datastore version. Different datastore versions can have the same name. |
datastore.version_id |
body |
string |
The UUID of the data store version. |
description |
body |
string |
An optional description for the backup. |
id |
path |
string |
The ID of the backup. |
instance_id (Optional) |
body |
string |
The ID of the instance to create backup for. |
locationRef |
body |
string |
The URL of the backup location. |
name |
body |
string |
Name of the backup. |
parent_id |
body |
string |
ID of the parent backup to perform an incremental backup from. |
size |
body |
string |
Size of the backup, the unit is GB. |
status |
body |
string |
Status of the backup. |
updated |
body |
string |
The date and time when the resource was updated. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm The For example, The UTC time zone is assumed. |
project_id |
body |
string |
The project ID of the resource. |
storage_driver (Optional) |
body |
string |
The backup strategy |
Response Example¶
{ "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" } }
/v1.0/{project_id}/backups/{backupId}
Show database backup details
Show detailes of a backup.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
backupId |
path |
string |
The ID of the backup. |
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
created |
body |
string |
The date and time when the resource was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm For example, The |
datastore |
body |
object |
A |
datastore.type |
body |
string |
The type of a datastore. |
datastore.version |
body |
string |
The name of the datastore version. Different datastore versions can have the same name. |
datastore.version_id |
body |
string |
The UUID of the data store version. |
description |
body |
string |
An optional description for the backup. |
id |
path |
string |
The ID of the backup. |
instance_id (Optional) |
body |
string |
The ID of the instance to create backup for. |
locationRef |
body |
string |
The URL of the backup location. |
name |
body |
string |
Name of the backup. |
parent_id |
body |
string |
ID of the parent backup to perform an incremental backup from. |
size |
body |
string |
Size of the backup, the unit is GB. |
status |
body |
string |
Status of the backup. |
updated |
body |
string |
The date and time when the resource was updated. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm The For example, The UTC time zone is assumed. |
project_id |
body |
string |
The project ID of the resource. |
storage_driver (Optional) |
body |
string |
The backup strategy |
Response Example¶
{ "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": "http://localhost/path/to/backup", "name": "snapshot", "parent_id": null, "size": 0.14, "status": "COMPLETED", "updated": "2014-10-30T12:30:00", "storage_driver": "cinder" } }
/v1.0/{project_id}/backups/{backupId}
Delete database backup
Deletes a database backup. All the child backups are deleted automatically when a parent backup is deleted.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
backupId |
path |
string |
The ID of the backup. |
Backup Strategy¶
Backup strategy allows the user to customize the way of creating backups. Users can create strategy either in the project scope or for a particular database instance.
/v1.0/{project_id}/backup_strategies
List backup strategies
List backup strategies for a project. You can filter the results by using query string parameters. The following filters are supported:
instance_id={instance_id}- Return the list of backup strategies for a particular database instance.project_id={project_id}- Return the list of backup strategies for a particular project, admin only.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
backup_strategies |
body |
array |
A list of |
project_id |
path |
string |
The project ID of the instance owner. |
instance_id |
body |
string |
The ID of the database instance. |
backend |
body |
string |
The storage backend of instance backups, currently only swift is supported. |
swift_container |
body |
string |
User defined swift container name. |
Response Example¶
{ "backup_strategies": [ { "backend": "swift", "instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1", "project_id": "922b47766bcb448f83a760358337f2b4", "swift_container": "my_trove_backups" } ] }
/v1.0/{project_id}/backup_strategies
Create backup strategy
Creates or updates backup strategy for the project or a database instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instance_id (Optional) |
body |
string |
The ID of the database instance. |
swift_container |
body |
string |
User defined swift container name. |
Request Example¶
{ "backup_strategy": { "instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1", "swift_container": "my_trove_backups" } }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instance_id |
body |
string |
The ID of the database instance. |
backend |
body |
string |
The storage backend of instance backups, currently only swift is supported. |
swift_container |
body |
string |
User defined swift container name. |
Response Example¶
{ "backup_strategy": { "project_id": "922b47766bcb448f83a760358337f2b4", "instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1", "backend": "swift", "swift_container": "my_trove_backups" } }
/v1.0/{project_id}/backup_strategies
Delete database strategy
Deletes a database strategy for a project. If instance_id is specified in
the URL query parameters, delete the database strategy for that particular
database instance. Additionally, admin user is allowed to delete backup
strategy of other projects by specifying project_id in the URL query
parameters.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Configuration groups¶
/v1.0/{project_id}/configurations
List configuration groups
Lists all configuration groups.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Example¶
{ "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 } ] }
/v1.0/{project_id}/configurations
Create configuration group
Creates a configuration group.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
datastore |
body |
string |
Data store type and version assigned to the configuration group. Required if the default data store is not configured. |
name |
body |
string |
Name of the configuration group you are creating. |
values |
body |
string |
Dictionary that lists configuration parameter names and associated values. |
Request Example¶
{ "configuration": { "name": "group1", "datastore": { "type": "mysql", "version": "mysql-5.7", "version_number": "5.7.29" }, "values": { "connect_timeout": 200 } } }
Response Example¶
{ "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 } } }
/v1.0/{project_id}/configurations/{configId}
Show configuration group details
Lists details about a configuration group, including its values.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
configId (Optional) |
path |
string |
The ID of the configuration group. |
Response Example¶
{ "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 } }
/v1.0/{project_id}/configurations/{configId}/instances
List instances applied the configuration group
Lists the instances associated with the specified configuration group.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
configId (Optional) |
path |
string |
The ID of the configuration group. |
Response Example¶
{ "instances": [ { "id": "7fd2d1d6-a2ef-4a76-8c03-e233db4d86da", "name": "master_1" } ] }
/v1.0/{project_id}/configurations/{configId}
Patch configuration group
Sets new values for a configuration group.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
configId (Optional) |
path |
string |
The ID of the configuration group. |
values |
body |
string |
Dictionary that lists configuration parameter names and associated values. |
Request Example¶
{ "configuration": { "values": { "connect_timeout": 17 } } }
/v1.0/{project_id}/configurations/{configId}
Update configuration group
Sets new values for a configuration group. Also lets you change the name and description of the configuration group.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
configId (Optional) |
path |
string |
The ID of the configuration group. |
values |
body |
string |
Dictionary that lists configuration parameter names and associated values. |
description |
body |
string |
New description of the configuration group. |
name |
body |
string |
Name of the configuration group you are creating. |
Request Example¶
{ "configuration": { "values": { "connect_timeout": 18 }, "name": "new_name", "description": "New description" } }
/v1.0/{project_id}/configurations/{configId}
Delete configuration group
Deletes a configuration group.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
configId (Optional) |
path |
string |
The ID of the configuration group. |
Databases¶
Currently, the Database and User API is only supported by mysql datastore. For
others, the recommended way is to get root password
(POST /v1.0/{project_id}/instances/{instance_id}/root) and communicate with
the database service directly for database and user management.
/v1.0/{project_id}/instances/{instanceId}/databases
Create database
Creates a database within an instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
name |
body |
string |
Name of the configuration group you are creating. |
characterSet (Optional) |
body |
string |
A set of symbols and encodings. Default is
|
collate (Optional) |
body |
string |
A set of rules for comparing characters in a
character set. Default is |
Request Example¶
{ "databases": [ { "character_set": "utf8mb3", "collate": "utf8mb3_general_ci", "name": "databaseA" }, { "name": "databaseB" }, { "name": "databaseC" } ] }
/v1.0/{project_id}/instances/{instanceId}/databases
List instance databases
Lists databases for an instance.
This operation returns only the user-defined databases and not the system
databases. Only the database administrator can get system databases such as
mysql, information_schema, and lost+found.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Example¶
{ "databases": [ { "name": "databaseB" }, { "name": "databaseC" }, { "name": "databaseD" } ] }
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}/databases
List instance databases for a user
Get all the databases that the user has access to.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
user_name (Optional) |
path |
string |
The name of the user. |
Response Example¶
{ "databases": [ { "name": "databaseB" }, { "name": "databaseC" }, { "name": "databaseD" } ] }
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}/databases
Grant databases access
Grant user access to the databases.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
user_name (Optional) |
path |
string |
The name of the user. |
Request Example¶
{ "databases":[ { "name": "test" } ] }
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}/databases/{database_name}
Revoke databases access
Revoke user access to the database.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
user_name (Optional) |
path |
string |
The name of the user. |
database_name (Optional) |
path |
string |
The name for the database. |
/v1.0/{project_id}/instances/{instanceId}/databases/{database_name}
Delete database
Deletes a database.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
database_name (Optional) |
path |
string |
The name for the database. |
Users¶
Currently, the Database and User API is only supported by mysql datastore. For
others, the recommended way is to get root password
(POST /v1.0/{project_id}/instances/{instance_id}/root) and communicate with
the database service directly for database and user management.
/v1.0/{project_id}/instances/{instanceId}/users
Create user
Creates users for a database instance.
When specifying user name and password, you can also specify databases that the user can access.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
{ "users": [ { "databases": [ { "name": "databaseA" } ], "name": "dbuser1", "password": "password" }, { "databases": [ { "name": "databaseB" }, { "name": "databaseC" } ], "name": "dbuser2", "password": "password" }, { "name": "dbuser3", "password": "password" } ] }
/v1.0/{project_id}/instances/{instanceId}/users
List database instance users
Lists the users in a database instance and the associated databases for that user.
This operation does not return system users. A system user is a
database administrator who administers the health of the database.
Also, this operation returns the root user only if it is
enabled.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Example¶
{ "users": [ { "databases": [ { "name": "databaseA" } ], "host": "%", "name": "dbuser1" }, { "databases": [ { "name": "databaseB" }, { "name": "databaseC" } ], "host": "%", "name": "dbuser2" }, { "databases": [], "host": "%", "name": "dbuser3" } ] }
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}
Show database instance user
Get a specific user information in an instance.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
user_name (Optional) |
path |
string |
The name of the user. |
Response Example¶
{ "user": { "databases": [ { "name": "databaseA" } ], "host": "%", "name": "dbuser1" } }
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}
Delete user
Deletes a user for a database instance.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
user_name (Optional) |
path |
string |
The name of the user. |
/v1.0/{project_id}/instances/{instanceId}/users/{user_name}
Update a user
Modify attributes(e.g. user name, allowed host, password) for a specific user.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
user_name (Optional) |
path |
string |
The name of the user. |
Request Example¶
{ "user": { "name": "new_name", "password": "new_password", "host": "192.168.30.98" } }
/v1.0/{project_id}/instances/{instanceId}/users
Update users passwords
Modify passwords for users.
Normal response codes: 202
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Request Example¶
{ "users": [ { "name": "new_name", "password": "another_password", "host": "192.168.30.98" } ] }
/v1.0/{project_id}/instances/{instanceId}/root
Show root-enabled status for database instance
Shows root-enabled status for a database instance.
Returns true if root user is enabled for a database instance.
Otherwise, returns false.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Example¶
/v1.0/{project_id}/instances/{instanceId}/root
Enable root user
Enables the root user for a database instance and returns the root password.
This operation generates password for the root user if not provided and enables the root user to log in from any host. If provided, the user should guarantee the password complexity and change regularly.
Other than managing databases and users, root user can change database settings without touching Trove API which is not recommended.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
password (Optional) |
body |
string |
The password of the database root user(i.e. the administrative user). |
Request Example¶
{ "password": "q5BXXMUMbc8XBf5kkVToKZW4Kx3Egv5VjY0P" }
Response Example¶
{ "user": { "name": "root", "password": "q5BXXMUMbc8XBf5kkVToKZW4Kx3Egv5VjY0P" } }
/v1.0/{project_id}/instances/{instanceId}/root
Disable root user
Disables the root user.
Normal response codes: 204
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
/v1.0/{project_id}/mgmt/instances/{instanceId}/root
Show root-enabled history for database instance
Admin only API. Show the date and time that root user was enabled(if ever) for an instance.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
instanceId |
path |
string |
The ID of the database instance. |
Response Example¶
{ "root_history": { "enabled": "2019-12-24T03:10:16", "id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2", "user": "7578487d3cc843dca904d2f4eced7dd2" } }
Quotas¶
/v1.0/{project_id}/limits
Show resources limit for current project
Get resources quota and rate limit for the current project.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/mgmt/quotas/{user_project}
Show resources quota for a specific project
Admin can query resource quota of any project. The project user can only show the project’s own quota.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
user_project |
path |
string |
The project ID of the user’s project. |
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
quotas |
body |
array |
A list of resource quotas. |
resource |
body |
string |
The resource name. |
in_use |
body |
integer |
The used quota for a resource. |
limit |
body |
integer |
The limit of a resource quota. |
reserved |
body |
integer |
The reserved quota for a resource. |
Response Example¶
{ "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" } ] }
/v1.0/{project_id}/mgmt/quotas/{user_project}
Update resources quota for a specific project
Admin only action by default. Supported resources:
instances
backups
If not set, use the default resource quota in Trove configuration.
Normal response codes: 200
Request¶
Name |
In |
Type |
Description |
|---|---|---|---|
project_id |
path |
string |
The project ID of the instance owner. |
user_project |
path |
string |
The project ID of the user’s project. |
quotas |
body |
string |
Dictionary that defines the resources quota. |
Request Example¶
{ "quotas": { "instances": 10, "backups": 30 } }
Response Parameters¶
Name |
In |
Type |
Description |
|---|---|---|---|
quotas |
body |
string |
Dictionary that defines the resources quota. |
Response Example¶
{ "quotas": { "instances": 10, "backups": 30 } }