Trove/trove-versions-types
Contents
Versions and DB Types
List Supported Types and Versions (New Call)
Use Case / User Story
As a Reddwarf User, I want the ability to list all support database types and major versions, so that I know which types and versions are available to be provisioned.
GET /types List supported instance types
STATUS FIELDS
DEFAULT - This is the default database type. If you do not specify a type when creating an instance, this is the default database type.
SUPPORTED - This is a supported database type.
UNSUPPORTED - This is an unsupported but available database type.
DEPRECATED - Deprecated instance types are no longer provisionable but are still supported. You will not be able to create instances of this type.
API
Response Codes: 200
Error Codes: STD_ERR_CODES
Description: Returns the support instance types (major versions). Example, MySQL 5.1, MySQL 5.5, Percona 5.5, MariaDB 5.5, etc.
Request Body: This operation does not require a request body.
Response:
{ "types": [ { "id": 1, "links": [ { "href": "https://service/v1.0/1234/types/2", "rel": "self" }, { "href": "https://service/types/2", "rel": "bookmark" } ], '''"name": "MySQL 5.1", "versions": [ { "version":"5.1.63", "description":"Imperitive security updates included in this version. Reccommend that you update" } ], "status": "DEPRECATED", "updated": "2012-01-01T00:00:00Z" "description":"Some description." },''' { "id": 2, "links": [ { "href": "https://service/v1.0/1234/types/2", "rel": "self" }, { "href": "https://service/types/2", "rel": "bookmark" } ], "name": "MySQL 5.5", "versions": [ { "version":"5.5.22", "description":"Some description that is optional" } ], "status": "SUPPORTED", "updated": "2012-01-01T00:00:00Z" "description":"Some description." }, { "id": 3, "links": [ { "href": "https://service/v1.0/1234/types/3", "rel": "self" }, { "href": "https://service/types/3", "rel": "bookmark" } ], "name": "MySQL 5.6", "versions": [ { "version":"5.6.30", "description":"Imperitive security updates included in this version. Reccommend that you update" } ], "status": "DEFAULT", "updated": "2012-01-01T00:00:00Z" "description":"Some description." }, { "id": 4, "links": [ { "href": "https://service/v1.0/1234/types/4", "rel": "self" }, { "href": "https://service/types/4", "rel": "bookmark" } ], "name": "MariaDB 5.5", "versions": [ { "version":"5.5.36", "description":"Maria updates!" } ], "status": "UNSUPPORTED", "updated": "2012-01-01T00:00:00Z" "description":"Some description." } ] }
List Database Instance Status and Details (Existing)
Use Cases / User Stories
As a Reddwarf user, I want to know what the current version and type of database (MySQL in the current case) that is associated with my instance so that I can better understand version-based limitations/vulnerabilities and determine if I would benefit from an upgrade (when upgrades and multiple versions become available).
Note: This is a modification to the "List Database Instance Status and Details" call
API
GET /instances/{instanceId} Add the type and version to the instance details returned
Response Codes: same as current call
Error Codes: same as current call
Description: Return the database type and version currently in use on the instance
Request Body: This operation does not require a request body.
Response:
{ "instance": { "created": "2012-03-28T21:31:02Z", "flavor": { ... }, "hostname": "192.168.1.1", "id": "2450c73f-7805-4afe-a42c-4094ab42666b", "links": [ ... ], "name": "my_db_inst", "status": "ACTIVE", "updated": "2012-03-28T21:34:25Z", "volume": { "size": 2, "used": 0.124542236328125 }, "type": { "id": "1", "links": [ { "href": "https://service/v1.0/1234/type/1", "rel": "self" }, { "href": "https://service/type/1", "rel": "bookmark" } ] }, "version": "5.1.61" } }
List Instances (Existing)
Use Case / User Story
As a Reddwarf user, I want to view the type of database (i.e. MySQL 5.1 / major version) that is associated with each instance listed on my account so that I can quickly assess any differentiations between instances and determine which instances, if any, may need to be updated.
API
GET /instances Lists the status and information for all database instances.
Response Codes: same as current call
Error Codes: same as current call
Description: Return the database type and version currently in use on the instance
Request Body: This operation does not require a request body.
Response:
{
"instances": [ { "flavor": { ... }, "id": "28d1b8f3-172a-4f6d-983d-36021508444a", "links": [ ... ], "name": "my_db_inst", "status": "ACTIVE", "volume": { "size": 2 } "type": { "id": "1", "links": [ { "href": "https://service/v1.0/1234/type/1", "rel": "self" }, { "href": "https://service/type/1", "rel": "bookmark" } ] } }, { "flavor": { ... }, "id": "8fb081af-f237-44f5-80cc-b46be1840ca9", "links": [ ... ], "name": "my_db_inst_2", "status": "ACTIVE", "volume": { "size": 2 } "type": { "id": "2", "links": [ { "href": "https://service/v1.0/1234/type/2", "rel": "self" }, { "href": "https://service/type/2", "rel": "bookmark" } ] } } ]
}
Create Database Instance (Existing)
Use Case / User Story
As a Reddwarf User, I want the ability to specify the database type (major version) when creating an instance, so that I can create different database instances based on my application needs.
API
POST /instances Creates a new database instance.
New Attributes: type, optional - default will be what has STATUS - DEFAULT
Response Codes: same as current call
Error Codes: same as current call
Description:
Request Body:
{
"instance": { "databases": [ { "character_set": "utf8", "collate": "utf8_general_ci", "name": "sampledb" }, { "name": "nextround" } ], "flavorRef": ""href": "https://service/v1.0/1234/flavors/1", "name": "my_db_inst", "users": [ { "databases": [ { "name": "sampledb" } ], "name": "demouser", "password": "demopassword" } ], "volume": { "size": 2 } "typeRef": ""href": "https://service/v1.0/1234/type/1", }
}
Response: {
"instance": { "created": "2012-01-25T21:53:09Z", "flavor": { "id": "1", "links": [ ... ] }, "hostname": "192.168.1.1", "id": "dea5a2f7-3ec7-4496-adab-0abb5a42d635", "links": [ ... ], "name": "my_db_inst", "status": "BUILD", "updated": "2012-01-25T21:53:10Z", "volume": { "size": 2 } "type": { "id": "1", "name": "MySQL 5.1", "links": [ { "href": "https://service/v1.0/1234/type/1", "rel": "self" }, { "href": "https://service/type/1", "rel": "bookmark" } ] } }
}