diff options
| author | Soren Hansen <soren.hansen@rackspace.com> | 2010-09-22 21:36:15 +0200 |
|---|---|---|
| committer | Soren Hansen <soren.hansen@rackspace.com> | 2010-09-22 21:36:15 +0200 |
| commit | 41fa6058f9eecc1492833846acfc1bb8762aecc2 (patch) | |
| tree | e22141c3d3fa4b8cb460e9c5c784855a9f86f414 /nova/db | |
| parent | d42e168763d232476407a07b79056fb745c6075e (diff) | |
| parent | d6104d8302057d45fa150079b5911f941cc311ce (diff) | |
| download | nova-41fa6058f9eecc1492833846acfc1bb8762aecc2.tar.gz nova-41fa6058f9eecc1492833846acfc1bb8762aecc2.tar.xz nova-41fa6058f9eecc1492833846acfc1bb8762aecc2.zip | |
Merge trunk.
Diffstat (limited to 'nova/db')
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 6 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/models.py | 12 |
2 files changed, 10 insertions, 8 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 858b955f3..3f925d2ae 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -380,10 +380,8 @@ def instance_destroy(_context, instance_id): def instance_get(context, instance_id): - session = get_session() - return session.query(models.Instance - ).options(eagerload('security_groups') - ).find(instance_id, deleted=_deleted(context)) + return models.Instance().find(instance_id, deleted=_deleted(context), + options=eagerload('security_groups')) def instance_get_all(context): diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index 2392f1c86..3c5b853a5 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -69,15 +69,19 @@ class NovaBase(object): ).count() @classmethod - def find(cls, obj_id, session=None, deleted=False): + def find(cls, obj_id, session=None, deleted=False, options=None): """Find object by id""" if not session: session = get_session() try: - return session.query(cls + query = session.query(cls ).filter_by(id=obj_id - ).filter_by(deleted=deleted - ).one() + ).filter_by(deleted=deleted) + + if options: + query = query.options(options) + + return query.one() except exc.NoResultFound: new_exc = exception.NotFound("No model for id %s" % obj_id) raise new_exc.__class__, new_exc, sys.exc_info()[2] |
