Difference between revisions of "Trove/trove-capabilities"
(→Supported Capabilities) |
|||
Line 6: | Line 6: | ||
this capability (such as redis) would not create a volume. | this capability (such as redis) would not create a volume. | ||
− | = | + | = Capabilities = |
− | Supported | + | Supported with the first iteration: |
+ | |||
+ | * volume_support | ||
+ | * enable_root_user | ||
+ | |||
+ | Eventually we want to add support for the following capabilities: | ||
+ | |||
+ | * multiple_users | ||
+ | * databases | ||
+ | * security_groups | ||
= API Resources = | = API Resources = |
Revision as of 20:54, 23 January 2014
Overview
This proposal includes the ability to setup different capabilities for different datastore types.
An example capability would be "ephemeral_volume". As a result of a datastore having this capability,an ephemeral volume would be created on server create. A datastore without this capability (such as redis) would not create a volume.
Capabilities
Supported with the first iteration:
- volume_support
- enable_root_user
Eventually we want to add support for the following capabilities:
- multiple_users
- databases
- security_groups
API Resources
Verb | Resource | Description |
---|---|---|
GET | /capabilities | Supplies a list of capabilities that can be associated to a datastore |
GET | /datastores/{datastore}/capabilities | Get a list of capabilities configured for this datastore |
POST | /datastores/{datastore}/capabilities | Associate a capability with the datastore |
DELETE | /datastores/{datastore}/capabilities/{capability_id} | Remove a capability from the datastore |
Database Schema
Two new entities will be created in the trove database: capabilities and datastore_capabilities. These entities will store the capabilities and the association between those capabilities and the datastore
Capabilities (capabilities)
This table will contain the id, name and description of the capabilities
Name | Data Type | Length | Nullable | Details |
---|---|---|---|---|
id | VARCHAR | 36 | False | Primary Key, Generated UUID |
name | VARCHAR | 64 | False | - |
description | VARCHAR | 256 | True | - |
Datastore Capabilities (datastore_capabilities)
This table maintains a many-to-many relationship of datastores to capabilities via the foreign key references to capability_id and datastore_id
Name | Data Type | Length | Nullable | Details |
---|---|---|---|---|
capability_id | VARCHAR | 36 | False | Foreign Key reference to capabilities.id |
datastore_id | VARCHAR | 32 | False | Foreign Key reference to datastore.id |
datastore_version_id | VARCHAR | 32 | False | Foreign Key reference to datastore_version.id |