--- a/components/openstack/heat/patches/mysql_cluster_support.patch Wed Apr 13 10:14:18 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,279 +0,0 @@
-This patchset is for bug:
-
-22725887 - Heat needs to support MySQL Cluster
-
-This fixes the following aspects of Heat:
-1. Implementation of an oslo.db configuration parameter to specify the MySQL
- storage engine (mysql_storage_engine).
-2. Replacement of hardcoded SQL statements that set the engine to "InnoDB"
- to the above configuration value.
-3. Logic to handle SQL differences between MySQL InnoDB and MySQL Cluster (NDB).
- This includes column lengths, constraints, foreign keys, and indexes.
-
-This has not been committed upstream, but has been filed in launchpad:
-
-https://bugs.launchpad.net/heat/+bug/1564110
-
-
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/054_stack_tags_table.py.orig 2016-03-21 13:47:51.478823055 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/054_stack_tags_table.py 2016-03-21 14:10:49.491818130 -0600
-@@ -15,6 +15,8 @@ import sqlalchemy
-
- from heat.db.sqlalchemy import types as heat_db_types
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData(bind=migrate_engine)
-@@ -35,7 +37,7 @@ def upgrade(migrate_engine):
- sqlalchemy.String(36),
- sqlalchemy.ForeignKey('stack.id'),
- nullable=False),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- stack_tag.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py.orig 2016-03-21 13:47:51.489113007 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py 2016-03-21 14:12:11.161688299 -0600
-@@ -13,6 +13,8 @@
-
- import sqlalchemy
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData()
-@@ -25,7 +27,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('created_at', sqlalchemy.DateTime),
- sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
- sqlalchemy.Column('template', sqlalchemy.Text),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
-
-@@ -44,7 +46,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('aws_auth_url', sqlalchemy.Text),
- sqlalchemy.Column('tenant_id', sqlalchemy.String(256)),
- sqlalchemy.Column('aws_creds', sqlalchemy.Text),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
-
-@@ -71,7 +73,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('tenant', sqlalchemy.String(256)),
- sqlalchemy.Column('disable_rollback', sqlalchemy.Boolean,
- nullable=False),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
-
-@@ -88,7 +90,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('stack_id', sqlalchemy.String(36),
- sqlalchemy.ForeignKey('stack.id'), nullable=False),
- sqlalchemy.Column('rsrc_metadata', sqlalchemy.Text),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
-
-@@ -106,7 +108,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('resource_status_reason', sqlalchemy.String(255)),
- sqlalchemy.Column('resource_type', sqlalchemy.String(255)),
- sqlalchemy.Column('resource_properties', sqlalchemy.PickleType),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
-
-@@ -122,7 +124,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('last_evaluated', sqlalchemy.DateTime),
- sqlalchemy.Column('stack_id', sqlalchemy.String(36),
- sqlalchemy.ForeignKey('stack.id'), nullable=False),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
-
-@@ -136,7 +138,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('watch_rule_id', sqlalchemy.Integer,
- sqlalchemy.ForeignKey('watch_rule.id'),
- nullable=False),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
-
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/059_sync_point.py.orig 2016-03-21 13:47:51.477364113 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/059_sync_point.py 2016-03-21 14:10:19.959407071 -0600
-@@ -15,6 +15,8 @@ import sqlalchemy
-
- from heat.db.sqlalchemy import types as heat_db_types
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData()
-@@ -41,7 +43,7 @@ def upgrade(migrate_engine):
- sqlalchemy.ForeignKeyConstraint(['stack_id'], ['stack.id'],
- name='fk_stack_id'),
-
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- sync_point.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py.orig 2016-03-21 13:47:51.474901896 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py 2016-03-21 14:09:45.997088917 -0600
-@@ -15,6 +15,8 @@ import sqlalchemy
-
- from heat.db.sqlalchemy import types
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData()
-@@ -34,7 +36,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('tenant', sqlalchemy.String(64),
- nullable=False,
- index=True),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- software_config.create()
-@@ -63,7 +65,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('tenant', sqlalchemy.String(64),
- nullable=False,
- index=True),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- software_deployment.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/057_resource_uuid_to_id.py.orig 2016-03-21 15:20:39.094701078 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/057_resource_uuid_to_id.py 2016-03-21 15:27:03.703520056 -0600
-@@ -194,10 +194,11 @@ def upgrade_resource_data_post(migrate_e
- name = inspector.get_indexes('resource_data')[0]['name']
- sqlalchemy.Index(name, rd_table.c.resource_id).drop()
-
-+ # Change column before it becomes a foreign key
-+ rd_table.c.resource_id.alter(nullable=False)
- cons = migrate.ForeignKeyConstraint(columns=[rd_table.c.resource_id],
- refcolumns=[res_table.c.id])
- cons.create()
-- rd_table.c.resource_id.alter(nullable=False)
-
- rd_table.c.tmp_res_uuid.drop()
-
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/044_snapshots.py.orig 2016-03-21 13:47:51.463766122 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/044_snapshots.py 2016-03-21 14:06:42.631756412 -0600
-@@ -15,6 +15,8 @@ import sqlalchemy
-
- from heat.db.sqlalchemy import types
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData()
-@@ -38,7 +40,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('tenant', sqlalchemy.String(64),
- nullable=False,
- index=True),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- sqlalchemy.Table('stack', meta, autoload=True)
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/051_service.py.orig 2016-03-21 13:47:51.491891604 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/051_service.py 2016-03-21 14:13:20.248008442 -0600
-@@ -17,6 +17,8 @@ import uuid
-
- import sqlalchemy
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData()
-@@ -36,7 +38,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('created_at', sqlalchemy.DateTime),
- sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
- sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- service.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/021_resource_data.py.orig 2016-03-21 13:47:51.490496353 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/021_resource_data.py 2016-03-21 14:12:44.701121260 -0600
-@@ -13,6 +13,8 @@
-
- import sqlalchemy
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData()
-@@ -33,7 +35,7 @@ def upgrade(migrate_engine):
- sqlalchemy.String(36),
- sqlalchemy.ForeignKey('resource.id'),
- nullable=False),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- sqlalchemy.Table('resource', meta, autoload=True)
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/031_stack_lock.py.orig 2016-03-21 13:47:51.493279368 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/031_stack_lock.py 2016-03-21 14:13:42.399970934 -0600
-@@ -13,6 +13,8 @@
-
- import sqlalchemy
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-
- def upgrade(migrate_engine):
- meta = sqlalchemy.MetaData()
-@@ -27,7 +29,7 @@ def upgrade(migrate_engine):
- sqlalchemy.Column('created_at', sqlalchemy.DateTime),
- sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
- sqlalchemy.Column('engine_id', sqlalchemy.String(length=36)),
-- mysql_engine='InnoDB',
-+ mysql_engine=CONF.database.mysql_storage_engine,
- mysql_charset='utf8'
- )
- sqlalchemy.Table('stack', meta, autoload=True)
---- heat-2015.1.2/heat/db/sqlalchemy/models.py.orig 2016-03-21 13:47:51.458115014 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/models.py 2016-03-21 14:03:29.252734801 -0600
-@@ -27,6 +27,9 @@ from sqlalchemy.orm import session as or
-
- from heat.db.sqlalchemy import types
-
-+from oslo_config import cfg
-+CONF = cfg.CONF
-+
- BASE = declarative.declarative_base()
-
-
-@@ -37,7 +40,10 @@ def get_session():
-
- class HeatBase(models.ModelBase, models.TimestampMixin):
- """Base class for Heat Models."""
-- __table_args__ = {'mysql_engine': 'InnoDB'}
-+ if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
-+ __table_args__ = {'mysql_engine': 'NDBCLUSTER'}
-+ else:
-+ __table_args__ = {'mysql_engine': 'InnoDB'}
-
- def expire(self, session=None, attrs=None):
- """Expire this object ()."""