Always use context manager for DB transactions

An exception could occur at any time, so we want to make sure we roll
back any uncompleted transaction when that happens.

Change-Id: Id0d5b65f44981bde24840b8a0d5fdc0b88f24d8a
Related-bug: #1546431
This commit is contained in:
Zane Bitter 2016-09-13 15:05:16 -04:00
parent f067a4e3a0
commit 6d0e8e9f68
1 changed files with 8 additions and 9 deletions

View File

@ -348,14 +348,12 @@ def resource_data_set(context, resource_id, key, value, redact=False):
def resource_exchange_stacks(context, resource_id1, resource_id2):
query = context.session.query(models.Resource)
session = query.session
session.begin()
res1 = query.get(resource_id1)
res2 = query.get(resource_id2)
with session.begin():
res1 = query.get(resource_id1)
res2 = query.get(resource_id2)
res1.stack, res2.stack = res2.stack, res1.stack
session.commit()
res1.stack, res2.stack = res2.stack, res1.stack
def resource_data_delete(context, resource_id, key):
@ -1030,9 +1028,10 @@ def software_deployment_create(context, values):
obj_ref = models.SoftwareDeployment()
obj_ref.update(values)
session = context.session
session.begin()
obj_ref.save(session)
session.commit()
with session.begin():
obj_ref.save(session)
return obj_ref