Trove/ConfigurationParameters

Overview
Configuration Parameters need to be stored in the database and have a management api.

Database Model
{* Denotes a primary key}

{name and datastore_version_id combined should be unique to the table}

New management api calls
Calls to Create/Alter/Purge configuration parameters for each datastore version.

Create or Update a parameter for the given datastore version (POST/PUT)
Request {    "configuration-parameter": { "max_size": "1", "min_size": "100", "description": "A friendly description for the configuration parameter.", "name": "test-1231232", "data_type": "integer", "restart_required": "1" } }

Questions

 * Should the {key} be the uuid of the parameter like everything else?
 * Should the {key} be the name? Every configuration parameter is unique by a combination of name and datastore version.

Existing api calls
Calls to Read the configuration parameters for each datastore do not require any change.

trove-manage Command Additions
In order to insert many configuration parameters (say 20 or more) into the database for a datastore version, we need a way of importing the list from the trove-manage command. This should not preclude the ability of adding or deleting parameters from the database as well for a datastore version.

Add configuration import command
trove-manage load_datastore_config_parameters datastore_version_uuid /path/to/file/to/import

This command will allow you to import the existing configuration parameters that are specified in the template file so that it is easier to load them.

if trove-manage categories are available
This will be similar but it can be shortened.

trove-manage configuration_parameters import datastore_version_uuid /path/to/file/to/import