diff options
author | Craig Vyvial <cp16net@gmail.com> | 2013-05-23 10:33:58 -0700 |
---|---|---|
committer | Craig Vyvial <cp16net@gmail.com> | 2014-02-06 13:29:09 -0600 |
commit | 1f3a4fda8712dadaa4f2fe743ac566907d31d3c1 (patch) | |
tree | abadde975ab81711da6c740cbacf6e36c99d9fa0 /trove/db/sqlalchemy/migrate_repo/versions | |
parent | 522f6df6ad1e942b4ecfd031bfc82eaeebe5807c (diff) | |
download | trove-1f3a4fda8712dadaa4f2fe743ac566907d31d3c1.tar.gz |
adding configuration group support
This allows users to make custom configurations groups and apply them to
multiple instances. Configuration parameters that can be set are listed
in the validation_rules.json file.
implements blueprint configuration-management
Change-Id: I99b0bfe51c131ace30774e75e30d620101ed2e0b
Diffstat (limited to 'trove/db/sqlalchemy/migrate_repo/versions')
-rw-r--r-- | trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py b/trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py new file mode 100644 index 00000000..a6b654d1 --- /dev/null +++ b/trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py @@ -0,0 +1,65 @@ +# Copyright 2014 Rackspace +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from sqlalchemy import ForeignKey +from sqlalchemy.schema import Column +from sqlalchemy.schema import MetaData + +from trove.db.sqlalchemy.migrate_repo.schema import create_tables +from trove.db.sqlalchemy.migrate_repo.schema import DateTime +from trove.db.sqlalchemy.migrate_repo.schema import Boolean +from trove.db.sqlalchemy.migrate_repo.schema import String +from trove.db.sqlalchemy.migrate_repo.schema import Table + +meta = MetaData() + +configurations = Table( + 'configurations', + meta, + Column('id', String(36), primary_key=True, nullable=False), + Column('name', String(64), nullable=False), + Column('description', String(256)), + Column('tenant_id', String(36), nullable=False), + Column('datastore_version_id', String(36), nullable=False), + Column('deleted', Boolean(), nullable=False, default=False), + Column('deleted_at', DateTime()), +) + +configuration_parameters = Table( + 'configuration_parameters', + meta, + Column('configuration_id', String(36), ForeignKey("configurations.id"), + nullable=False, primary_key=True), + Column('configuration_key', String(128), nullable=False, primary_key=True), + Column('configuration_value', String(128)), + Column('deleted', Boolean(), nullable=False, default=False), + Column('deleted_at', DateTime()), +) + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + create_tables([configurations]) + create_tables([configuration_parameters]) + + instances = Table('instances', meta, autoload=True) + instances.create_column(Column('configuration_id', String(36), + ForeignKey("configurations.id"))) + + +def downgrade(migrate_engine): + meta.bind = migrate_engine + # Not dropping the tables for concern if rollback needed would cause + # consumers to recreate configurations. |