summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-03-12 18:29:13 +0000
committerGerrit Code Review <review@openstack.org>2013-03-12 18:29:13 +0000
commitf2b1d4b433606580c3eed9df9942112fa8440291 (patch)
treedb402dbe4aad6933a20059fd7f9854bc82a29d94
parente9bd11fd552ee6757e1268cd6c93ae576f85ff5d (diff)
parent45bd459318b9d60214bf6db28d2cbb4b62676518 (diff)
downloadheat-f2b1d4b433606580c3eed9df9942112fa8440291.tar.gz
Merge "Squash Grizzly database migrations"
-rw-r--r--heat/db/migration.py2
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/001_norwhal.py107
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py24
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/003_add_missing_cols.py18
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/004_guest_watch.py59
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/005_user_creds.py79
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/006_nested_stacks.py23
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/007_resource_work.py32
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/008_user_parameters.py16
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/009_remove_parsed_template.py49
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/010_add_stack_timeout_col.py25
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/011_stack_tenant.py20
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/012_stack_id_uuid.py104
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py67
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/014_watch_stackid.py25
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/015_add_stack_rollback_col.py26
-rw-r--r--heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py140
17 files changed, 141 insertions, 675 deletions
diff --git a/heat/db/migration.py b/heat/db/migration.py
index fb4402217..73c9cfd9d 100644
--- a/heat/db/migration.py
+++ b/heat/db/migration.py
@@ -20,7 +20,7 @@ from heat.db import utils
IMPL = utils.LazyPluggable('db_backend',
sqlalchemy='heat.db.sqlalchemy.migration')
-INIT_VERSION = 0
+INIT_VERSION = 14
def db_sync(version=None):
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/001_norwhal.py b/heat/db/sqlalchemy/migrate_repo/versions/001_norwhal.py
deleted file mode 100644
index 84d901c5f..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/001_norwhal.py
+++ /dev/null
@@ -1,107 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- rawtemplate = Table(
- 'raw_template', meta,
- Column('id', Integer, primary_key=True),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('template', Text()),
- )
-
- stack = Table(
- 'stack', meta,
- Column('id', Integer, primary_key=True),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('name', String(
- length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('raw_template_id', Integer, ForeignKey("raw_template.id"),
- nullable=False),
- )
-
- event = Table(
- 'event', meta,
- Column('id', Integer, primary_key=True),
- Column('stack_id', Integer, ForeignKey("stack.id"), nullable=False),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('name', String(
- length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- )
-
- resource = Table(
- 'resource', meta,
- Column('id', Integer, primary_key=True),
- Column('nova_instance', String(
- length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('name', String(
- length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('state', String(
- length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('state_description', String(length=255, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('parsed_template_id', Integer, ForeignKey("parsed_template.id"),
- nullable=True),
- Column('stack_id', Integer, ForeignKey("stack.id"), nullable=False),
- Column('depends_on', Integer),
- )
-
- parsedtemplate = Table(
- 'parsed_template', meta,
- Column('id', Integer, primary_key=True),
- Column('raw_template_id', Integer, ForeignKey("raw_template.id"),
- nullable=False),
- Column('template', Text()),
- )
-
- tables = [rawtemplate, stack, event, parsedtemplate, resource]
- for table in tables:
- try:
- table.create()
- except Exception:
- meta.drop_all(tables=tables)
- raise
-
-
-def downgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- rawtemplate = Table('raw_template', meta, autoload=True)
- event = Table('event', meta, autoload=True)
- resource = Table('resource', meta, autoload=True)
- parsedtemplate = Table('parsed_template', meta, autoload=True)
- stack = Table('stack', meta, autoload=True)
-
- for table in (event, stack, resource, parsedtemplate, rawtemplate):
- table.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py b/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py
deleted file mode 100644
index a0d06475f..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- event = Table('event', meta, autoload=True)
-
- Column('logical_resource_id', String(255)).create(event)
- Column('physical_resource_id', String(255)).create(event)
- Column('resource_status_reason', String(255)).create(event)
- Column('resource_type', String(255)).create(event)
- Column('resource_properties', PickleType).create(event)
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- event = Table('event', meta, autoload=True)
-
- event.c.logical_resource_id.drop()
- event.c.physical_resource_id.drop()
- event.c.resource_status_reason.drop()
- event.c.resource_type.drop()
- event.c.resource_properties.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/003_add_missing_cols.py b/heat/db/sqlalchemy/migrate_repo/versions/003_add_missing_cols.py
deleted file mode 100644
index a62af7e95..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/003_add_missing_cols.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- parsed_template = Table('parsed_template', meta, autoload=True)
-
- Column('created_at', DateTime(timezone=False)).create(parsed_template)
- Column('updated_at', DateTime(timezone=False)).create(parsed_template)
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- parsed_template = Table('parsed_template', meta, autoload=True)
-
- parsed_template.c.created_at.drop()
- parsed_template.c.updated_at.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/004_guest_watch.py b/heat/db/sqlalchemy/migrate_repo/versions/004_guest_watch.py
deleted file mode 100644
index ed9361219..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/004_guest_watch.py
+++ /dev/null
@@ -1,59 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- watch_rule = Table(
- 'watch_rule', meta,
- Column('id', Integer, primary_key=True),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('stack_name', String(length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('name', String(length=255, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None, _warn_on_bytestring=False)),
- Column('state', String(length=255, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None, _warn_on_bytestring=False)),
- Column('rule', Text()),
- Column('last_evaluated', DateTime(timezone=False)),
- )
-
- try:
- watch_rule.create()
- except Exception:
- meta.drop_all(tables=tables)
- raise
-
- watch_data = Table(
- 'watch_data', meta,
- Column('id', Integer, primary_key=True),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('data', Text()),
- Column('watch_rule_id', Integer, ForeignKey("watch_rule.id"),
- nullable=False),
- )
-
- try:
- watch_data.create()
- except Exception:
- meta.drop_all(tables=tables)
- raise
-
-
-def downgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- watch_rule = Table('watch_rule', meta, autoload=True)
- watch_rule.drop()
- watch_data = Table('watch_data', meta, autoload=True)
- watch_data.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/005_user_creds.py b/heat/db/sqlalchemy/migrate_repo/versions/005_user_creds.py
deleted file mode 100644
index 705862edf..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/005_user_creds.py
+++ /dev/null
@@ -1,79 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- user_creds = Table(
- 'user_creds', meta,
- Column('id', Integer, primary_key=True),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('username', String(length=255, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('password', String(length=255, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('service_user', String(length=255, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('service_password', String(length=255, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('tenant', String(length=1024, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('auth_url', Text()),
- Column('aws_auth_url', Text()),
- Column('tenant_id', String(length=256, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)),
- Column('aws_creds', Text())
- )
-
- user_creds.create()
-
- stack = Table('stack', meta, autoload=True)
-
- try:
- Column('user_creds_id', Integer, ForeignKey("user_creds.id"),
- nullable=False).create(stack)
- except sqlalchemy.exc.IntegrityError:
- stack.c.user_creds_id.drop()
- user_creds.drop()
- raise
-
- Column('username', String(length=256, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)).create(stack)
-
-
-def downgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- stack = Table('stack', meta, autoload=True)
- user_creds = Table('user_creds', meta, autoload=True)
-
- stack.c.username.drop()
-
- def fk_name(table, ref_column):
- for fk in table.foreign_keys:
- if fk.column == ref_column:
- return fk.name
-
- fkc = ForeignKeyConstraint([stack.c.user_creds_id], [user_creds.c.id],
- name=fk_name(stack, user_creds.c.id))
- fkc.drop()
-
- stack.c.user_creds_id.drop()
- user_creds.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/006_nested_stacks.py b/heat/db/sqlalchemy/migrate_repo/versions/006_nested_stacks.py
deleted file mode 100644
index 1dd989a6b..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/006_nested_stacks.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- # This was unused
- resource = Table('resource', meta, autoload=True)
- resource.c.depends_on.drop()
-
- stack = Table('stack', meta, autoload=True)
- Column('owner_id', Integer, nullable=True).create(stack)
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- resource = Table('resource', meta, autoload=True)
- Column('depends_on', Integer).create(resource)
-
- stack = Table('stack', meta, autoload=True)
- stack.c.owner_id.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/007_resource_work.py b/heat/db/sqlalchemy/migrate_repo/versions/007_resource_work.py
deleted file mode 100644
index 02bf553c0..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/007_resource_work.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- resource = Table('resource', meta, autoload=True)
- Column('rsrc_metadata', Text()).create(resource)
-
- stack = Table('stack', meta, autoload=True)
- Column('status', String(length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)).create(stack)
- Column('status_reason', String(length=255,
- convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)).create(stack)
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- resource = Table('resource', meta, autoload=True)
- resource.c.rsrc_metadata.drop()
-
- stack = Table('stack', meta, autoload=True)
- stack.c.status.drop()
- stack.c.status_reason.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/008_user_parameters.py b/heat/db/sqlalchemy/migrate_repo/versions/008_user_parameters.py
deleted file mode 100644
index 6511b1412..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/008_user_parameters.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- stack = Table('stack', meta, autoload=True)
- Column('parameters', Text()).create(stack)
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- stack = Table('stack', meta, autoload=True)
- stack.c.parameters.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/009_remove_parsed_template.py b/heat/db/sqlalchemy/migrate_repo/versions/009_remove_parsed_template.py
deleted file mode 100644
index 8b485460b..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/009_remove_parsed_template.py
+++ /dev/null
@@ -1,49 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- def fk_name(table, ref_column):
- for fk in table.foreign_keys:
- if fk.column == ref_column:
- return fk.name
-
- resource = Table('resource', meta, autoload=True)
- parsed_template = Table('parsed_template', meta, autoload=True)
-
- res_kc = ForeignKeyConstraint([resource.c.parsed_template_id],
- [parsed_template.c.id],
- name=fk_name(resource,
- parsed_template.c.id))
- try:
- res_kc.drop()
- except NotSupportedError:
- # SQLite (used in unit tests) cannot drop a Foreign Key constraint
- pass
-
- resource.c.parsed_template_id.drop()
-
- parsed_template.drop()
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- raw_template = Table('raw_template', meta, autoload=True)
-
- parsed_template = Table(
- 'parsed_template', meta,
- Column('id', Integer, primary_key=True),
- Column('created_at', DateTime(timezone=False)),
- Column('updated_at', DateTime(timezone=False)),
- Column('raw_template_id', Integer, ForeignKey("raw_template.id"),
- nullable=False),
- Column('template', Text())
- )
- parsed_template.create()
-
- resource = Table('resource', meta, autoload=True)
- Column('parsed_template_id', Integer, ForeignKey('parsed_template.id'),
- nullable=True).create(resource)
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/010_add_stack_timeout_col.py b/heat/db/sqlalchemy/migrate_repo/versions/010_add_stack_timeout_col.py
deleted file mode 100644
index 49b97ff43..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/010_add_stack_timeout_col.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- stack = Table('stack', meta, autoload=True)
-
- # Note hard-coded default 60 (minutes) here from the value in the
- # engine, means we can upgrade and populate existing rows
- try:
- col = Column('timeout', Integer, nullable=False, default=60)
- col.create(stack, populate_default=True)
- except Exception as ex:
- print "Caught exception adding timeout column to stacks %s" % ex
- # *Hack-alert* Sqlite in the unit tests can't handle the above
- # approach to nullable=False, so retry with nullable=True
- Column('timeout', Integer, nullable=True, default=60).create(stack)
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- stack = Table('stack', meta, autoload=True)
-
- stack.c.timeout.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/011_stack_tenant.py b/heat/db/sqlalchemy/migrate_repo/versions/011_stack_tenant.py
deleted file mode 100644
index 70721c4bd..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/011_stack_tenant.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- stack = Table('stack', meta, autoload=True)
-
- Column('tenant', String(length=256, convert_unicode=False,
- assert_unicode=None,
- unicode_error=None,
- _warn_on_bytestring=False)).create(stack)
-
-
-def downgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
- stack = Table('stack', meta, autoload=True)
- stack.c.tenant.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/012_stack_id_uuid.py b/heat/db/sqlalchemy/migrate_repo/versions/012_stack_id_uuid.py
deleted file mode 100644
index b2127f781..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/012_stack_id_uuid.py
+++ /dev/null
@@ -1,104 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-from heat.openstack.common import uuidutils
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- stack = Table('stack', meta, autoload=True)
- event = Table('event', meta, autoload=True)
- resource = Table('resource', meta, autoload=True)
-
- dialect = migrate_engine.url.get_dialect().name
-
- if not dialect.startswith('sqlite'):
- fkeys = list(event.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[event.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).drop()
-
- fkeys = list(resource.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[resource.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).drop()
-
- stack.c.id.alter(
- String(36), primary_key=True,
- default=uuidutils.generate_uuid)
- event.c.stack_id.alter(String(36), nullable=False)
- resource.c.stack_id.alter(String(36), nullable=False)
-
- fkeys = list(event.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[event.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).create()
-
- fkeys = list(resource.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[resource.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).create()
-
-
-def downgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- dialect = migrate_engine.url.get_dialect().name
-
- if dialect.startswith('sqlite'):
- return
-
- stack = Table('stack', meta, autoload=True)
- event = Table('event', meta, autoload=True)
- resource = Table('resource', meta, autoload=True)
-
- fkeys = list(event.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[event.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).drop()
-
- fkeys = list(resource.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[resource.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).drop()
-
- stack.c.id.alter(
- Integer, primary_key=True,
- default=utils.generate_uuid)
- event.c.stack_id.alter(Integer, nullable=False)
- resource.c.stack_id.alter(Integer, nullable=False)
-
- fkeys = list(event.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[event.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).create()
-
- fkeys = list(resource.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[resource.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).create()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py b/heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py
deleted file mode 100644
index e0825c4cf..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- stack = Table('stack', meta, autoload=True)
-
- dialect = migrate_engine.url.get_dialect().name
-
- if not dialect.startswith('sqlite'):
- fkeys = list(stack.c.owner_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(columns=[
- stack.c.owner_id],
- refcolumns=[stack.c.id],
- name=fkey_name).drop()
-
- stack.c.owner_id.alter(String(36), nullable=True)
-
- fkeys = list(stack.c.owner_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[stack.c.owner_id],
- refcolumns=[stack.c.id],
- name=fkey_name).create()
-
-
-def downgrade(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- dialect = migrate_engine.url.get_dialect().name
-
- if dialect.startswith('sqlite'):
- return
-
- stack = Table('stack', meta, autoload=True)
-
- fkeys = list(stack.c.owner_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[stack.c.owner_id],
- refcolumns=[stack.c.id],
- name=fkey_name).drop()
-
- stack.c.owner_id.alter(Integer, nullable=True)
-
- fkeys = list(event.c.stack_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[event.c.stack_id],
- refcolumns=[stack.c.id],
- name=fkey_name).create()
-
- fkeys = list(stack.c.owner_id.foreign_keys)
- if fkeys:
- fkey_name = fkeys[0].constraint.name
- ForeignKeyConstraint(
- columns=[stack.c.owner_id],
- refcolumns=[stack.c.id],
- name=fkey_name).create()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/014_watch_stackid.py b/heat/db/sqlalchemy/migrate_repo/versions/014_watch_stackid.py
deleted file mode 100644
index 707928d6d..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/014_watch_stackid.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- stack = Table('stack', meta, autoload=True)
- watch_rule = Table('watch_rule', meta, autoload=True)
-
- Column('stack_id', String(length=36), ForeignKey("stack.id"),
- nullable=False).create(watch_rule)
-
- watch_rule.c.stack_name.drop()
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
-
- watch_rule = Table('watch_rule', meta, autoload=True)
-
- watch_rule.c.stack_id.drop()
- Column('stack_name', String(length=255), convert_unicode=False,
- assert_unicode=None, unicode_error=None,
- _warn_on_bytestring=False).create(watch_rule)
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/015_add_stack_rollback_col.py b/heat/db/sqlalchemy/migrate_repo/versions/015_add_stack_rollback_col.py
deleted file mode 100644
index 2856fef61..000000000
--- a/heat/db/sqlalchemy/migrate_repo/versions/015_add_stack_rollback_col.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from sqlalchemy import *
-from migrate import *
-
-
-def upgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- stack = Table('stack', meta, autoload=True)
-
- # Note hard-coded default 60 (minutes) here from the value in the
- # engine, means we can upgrade and populate existing rows
- try:
- col = Column('disable_rollback', Boolean, nullable=False, default=True)
- col.create(stack, populate_default=True)
- except Exception as ex:
- print "Caught exception adding disable_rollback column %s" % ex
- # *Hack-alert* Sqlite in the unit tests can't handle the above
- # approach to nullable=False, so retry with nullable=True
- Column('disable_rollback', Boolean, nullable=True,
- default=60).create(stack)
-
-
-def downgrade(migrate_engine):
- meta = MetaData(bind=migrate_engine)
- stack = Table('stack', meta, autoload=True)
-
- stack.c.disable_rollback.drop()
diff --git a/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py b/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py
new file mode 100644
index 000000000..066f6893e
--- /dev/null
+++ b/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py
@@ -0,0 +1,140 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# 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 *
+from migrate import *
+
+
+def upgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+
+ raw_template = Table(
+ 'raw_template', meta,
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('template', Text),
+ )
+
+ user_creds = Table(
+ 'user_creds', meta,
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('username', String(255)),
+ Column('password', String(255)),
+ Column('service_user', String(255)),
+ Column('service_password', String(255)),
+ Column('tenant', String(1024)),
+ Column('auth_url', Text),
+ Column('aws_auth_url', Text),
+ Column('tenant_id', String(256)),
+ Column('aws_creds', Text),
+ )
+
+ stack = Table(
+ 'stack', meta,
+ Column('id', String(36), primary_key=True, nullable=False),
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('name', String(255)),
+ Column('raw_template_id', Integer, ForeignKey('raw_template.id'),
+ nullable=False),
+ Column('user_creds_id', Integer, ForeignKey('user_creds.id'),
+ nullable=False),
+ Column('username', String(256)),
+ Column('owner_id', String(36)),
+ Column('status', String(255)),
+ Column('status_reason', String(255)),
+ Column('parameters', Text),
+ Column('timeout', Integer, nullable=False),
+ Column('tenant', String(256)),
+ Column('disable_rollback', Boolean, nullable=False),
+ )
+
+ resource = Table(
+ 'resource', meta,
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('nova_instance', String(255)),
+ Column('name', String(255)),
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('state', String(255)),
+ Column('state_description', String(255)),
+ Column('stack_id', String(36), ForeignKey('stack.id'),
+ nullable=False),
+ Column('rsrc_metadata', Text),
+ )
+
+ event = Table(
+ 'event', meta,
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('stack_id', String(36), ForeignKey('stack.id'),
+ nullable=False),
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('name', String(255)),
+ Column('logical_resource_id', String(255)),
+ Column('physical_resource_id', String(255)),
+ Column('resource_status_reason', String(255)),
+ Column('resource_type', String(255)),
+ Column('resource_properties', PickleType),
+ )
+
+ watch_rule = Table(
+ 'watch_rule', meta,
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('name', String(255)),
+ Column('state', String(255)),
+ Column('rule', Text),
+ Column('last_evaluated', DateTime),
+ Column('stack_id', String(36), ForeignKey('stack.id'),
+ nullable=False),
+ )
+
+ watch_data = Table(
+ 'watch_data', meta,
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('data', Text),
+ Column('watch_rule_id', Integer, ForeignKey('watch_rule.id'),
+ nullable=False),
+ )
+
+ tables = (
+ raw_template,
+ user_creds,
+ stack,
+ resource,
+ event,
+ watch_rule,
+ watch_data,
+ )
+
+ for index, table in enumerate(tables):
+ try:
+ table.create()
+ except:
+ # If an error occurs, drop all tables created so far to return
+ # to the previously existing state.
+ meta.drop_all(tables=tables[:index])
+ raise
+
+
+def downgrade(migrate_engine):
+ raise Exception('Database downgrade not supported - would drop all tables')