Difference between revisions of "Trove/trove-capabilities"
(→Database Schema) |
|||
Line 7: | Line 7: | ||
=Database Schema= | =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 | |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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 | ||
+ | |} | ||
= API Changes = | = API Changes = | ||
== List capabilities == | == List capabilities == | ||
TBD | TBD |
Revision as of 20:42, 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.
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 |
API Changes
List capabilities
TBD