Adds migration test case for version 056
Adds migration pre-setup and post-check test case for the version 056 Change-Id: Ibe5b40eac093525d47f99910e634757cb00cd77c Closes-bug: #1430743
This commit is contained in:
parent
ebdaaae518
commit
e66d257c24
|
@ -70,15 +70,20 @@ def upgrade_sqlite(migrate_engine):
|
|||
templates = list(tmpl_table.select().order_by(
|
||||
sqlalchemy.sql.expression.asc(tmpl_table.c.created_at))
|
||||
.execute())
|
||||
stacks = list(stack_table.select().order_by(
|
||||
sqlalchemy.sql.expression.asc(stack_table.c.created_at))
|
||||
.execute())
|
||||
|
||||
stack_parameters = {}
|
||||
for s in stacks:
|
||||
stack_parameters[s.raw_template_id] = s.parameters
|
||||
|
||||
colnames = [c.name for c in tmpl_table.columns]
|
||||
for template in templates:
|
||||
values = dict(zip(colnames,
|
||||
map(lambda colname: getattr(template, colname),
|
||||
colnames)))
|
||||
params = (stack_table.select(stack_table.c.parameters).
|
||||
where(stack_table.c.raw_template_id == values['id']).
|
||||
execute().fetchone())
|
||||
values['environment'] = params
|
||||
values['environment'] = stack_parameters.get(values['id'])
|
||||
migrate_engine.execute(new_template.insert(values))
|
||||
|
||||
# migrate stacks to new table
|
||||
|
|
|
@ -418,6 +418,64 @@ class HeatMigrationsCheckers(test_migrations.WalkVersionsMixin,
|
|||
self.assertColumnExists(engine, 'stack', 'current_traversal')
|
||||
self.assertColumnExists(engine, 'stack', 'current_deps')
|
||||
|
||||
def _pre_upgrade_056(self, engine):
|
||||
raw_template = utils.get_table(engine, 'raw_template')
|
||||
templ = []
|
||||
for i in range(900, 903, 1):
|
||||
t = dict(id=i, template='{}', files='{}')
|
||||
engine.execute(raw_template.insert(), [t])
|
||||
templ.append(t)
|
||||
|
||||
user_creds = utils.get_table(engine, 'user_creds')
|
||||
user = [dict(id=900, username='test_user', password='password',
|
||||
tenant='test_project', auth_url='bla',
|
||||
tenant_id=str(uuid.uuid4()),
|
||||
trust_id='',
|
||||
trustor_user_id='')]
|
||||
engine.execute(user_creds.insert(), user)
|
||||
|
||||
stack = utils.get_table(engine, 'stack')
|
||||
stack_ids = [('967aaefa-152e-405d-b13a-35d4c816390c', 0),
|
||||
('9e9debab-a303-4f29-84d3-c8165647c47e', 1),
|
||||
('9a4bd1e9-8b21-46cd-964a-f66cb1cfa2f9', 2)]
|
||||
data = [dict(id=ll_id, name=ll_id,
|
||||
raw_template_id=templ[templ_id]['id'],
|
||||
user_creds_id=user[0]['id'],
|
||||
username='test_user',
|
||||
disable_rollback=True,
|
||||
parameters='test_params')
|
||||
for ll_id, templ_id in stack_ids]
|
||||
|
||||
engine.execute(stack.insert(), data)
|
||||
return data
|
||||
|
||||
def _check_056(self, engine, data):
|
||||
self.assertColumnNotExists(engine, 'stack', 'parameters')
|
||||
|
||||
self.assertColumnExists(engine, 'raw_template', 'environment')
|
||||
self.assertColumnExists(engine, 'raw_template', 'predecessor')
|
||||
|
||||
# Get the parameters in stack table
|
||||
stack_parameters = {}
|
||||
for stack in data:
|
||||
stack_parameters[stack['raw_template_id']] = stack['parameters']
|
||||
|
||||
# validate whether its moved to raw_template
|
||||
raw_template_table = utils.get_table(engine, 'raw_template')
|
||||
raw_templates = raw_template_table.select().execute()
|
||||
|
||||
for raw_template in raw_templates:
|
||||
if stack_parameters.get(raw_template.id) is not None:
|
||||
stack_param = stack_parameters[raw_template.id]
|
||||
tmpl_env = raw_template.environment
|
||||
if engine.name == 'sqlite':
|
||||
stack_param = '"%s"' % stack_param
|
||||
|
||||
self.assertEqual(stack_param,
|
||||
tmpl_env,
|
||||
'parameters migration from stack to '
|
||||
'raw_template failed')
|
||||
|
||||
def _pre_upgrade_057(self, engine):
|
||||
# template
|
||||
raw_template = utils.get_table(engine, 'raw_template')
|
||||
|
|
Loading…
Reference in New Issue