summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-09-07 19:48:12 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-09-07 19:48:12 -0700
commit459db7deba825e79caa7801680df23b6f6b1c338 (patch)
tree4f455c94253c5eea7d00c087e9e30b44601f0d2b
parentced5f151715c4a82c29dcc7ce71a22991be4ccef (diff)
more fixes to session handling
-rw-r--r--nova/db/sqlalchemy/api.py10
-rw-r--r--nova/db/sqlalchemy/session.py6
2 files changed, 9 insertions, 7 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 7b2703a7c..c661fca3d 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -188,9 +188,7 @@ def fixed_ip_get_network(_context, address):
def fixed_ip_deallocate(context, address):
- fixed_ip_ref = fixed_ip_get_by_address(context, address)
- fixed_ip_ref['allocated'] = False
- fixed_ip_ref.save()
+ db.fixed_ip_update(context, address, {'allocated': False})
def fixed_ip_instance_associate(_context, address, instance_id):
@@ -231,8 +229,10 @@ def instance_create(_context, values):
def instance_destroy(context, instance_id):
- instance_ref = instance_get(context, instance_id)
- instance_ref.delete()
+ session = get_session()
+ with session.begin():
+ instance_ref = models.Instance.find(instance_id, session=session)
+ instance_ref.delete(session=session)
def instance_get(_context, instance_id):
diff --git a/nova/db/sqlalchemy/session.py b/nova/db/sqlalchemy/session.py
index c00eecb5c..69a205378 100644
--- a/nova/db/sqlalchemy/session.py
+++ b/nova/db/sqlalchemy/session.py
@@ -29,12 +29,14 @@ FLAGS = flags.FLAGS
_ENGINE = None
_MAKER = None
-def get_session(autocommit=True):
+def get_session(autocommit=True, expire_on_commit=False):
"""Helper method to grab session"""
global _ENGINE
global _MAKER
if not _MAKER:
if not _ENGINE:
_ENGINE = create_engine(FLAGS.sql_connection, echo=False)
- _MAKER = sessionmaker(bind=_ENGINE, autocommit=autocommit)
+ _MAKER = sessionmaker(bind=_ENGINE,
+ autocommit=autocommit,
+ expire_on_commit=expire_on_commit)
return _MAKER()