Jump to: navigation, search

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)'''
  
TDB
+
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