diff options
| author | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-09-09 06:55:54 -0700 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-09-09 06:55:54 -0700 |
| commit | 64d073ca080f194680c14ccdf3b2b08e50d8eade (patch) | |
| tree | 14228578621189c34bb5f7b11e57f840612d6b2d /nova/db | |
| parent | b8aaebee171876ffd0e115ea3a19d4524ca16d99 (diff) | |
| download | nova-64d073ca080f194680c14ccdf3b2b08e50d8eade.tar.gz nova-64d073ca080f194680c14ccdf3b2b08e50d8eade.tar.xz nova-64d073ca080f194680c14ccdf3b2b08e50d8eade.zip | |
speed up describe by loading fixed and floating ips
Diffstat (limited to 'nova/db')
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 817ff9ac3..958036707 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -25,6 +25,7 @@ from nova import flags from nova.db.sqlalchemy import models from nova.db.sqlalchemy.session import get_session from sqlalchemy import or_ +from sqlalchemy.orm import joinedload_all FLAGS = flags.FLAGS @@ -251,12 +252,17 @@ def instance_get(context, instance_id): def instance_get_all(context): - return models.Instance.all(deleted=_deleted(context)) + session = get_session() + return session.query(models.Instance + ).options(joinedload_all('fixed_ip.floating_ips') + ).filter_by(deleted=_deleted(context) + ).all() def instance_get_by_project(context, project_id): session = get_session() return session.query(models.Instance + ).options(joinedload_all('fixed_ip.floating_ips') ).filter_by(project_id=project_id ).filter_by(deleted=_deleted(context) ).all() @@ -265,6 +271,7 @@ def instance_get_by_project(context, project_id): def instance_get_by_reservation(_context, reservation_id): session = get_session() return session.query(models.Instance + ).options(joinedload_all('fixed_ip.floating_ips') ).filter_by(reservation_id=reservation_id ).filter_by(deleted=False ).all() |
