diff options
| author | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-09-07 19:48:12 -0700 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-09-07 19:48:12 -0700 |
| commit | 459db7deba825e79caa7801680df23b6f6b1c338 (patch) | |
| tree | 4f455c94253c5eea7d00c087e9e30b44601f0d2b | |
| parent | ced5f151715c4a82c29dcc7ce71a22991be4ccef (diff) | |
more fixes to session handling
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 10 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/session.py | 6 |
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() |
