Merge lp:~soren/nova/eager-load-network into lp:~hudson-openstack/nova/trunk

Proposed by Soren Hansen
Status: Merged
Approved by: Devin Carlen
Approved revision: 584
Merged at revision: 587
Proposed branch: lp:~soren/nova/eager-load-network
Merge into: lp:~hudson-openstack/nova/trunk
Diff against target: 20 lines (+2/-1)
1 file modified
nova/db/sqlalchemy/api.py (+2/-1)
To merge this branch: bzr merge lp:~soren/nova/eager-load-network
Reviewer Review Type Date Requested Status
Devin Carlen (community) Approve
Jay Pipes (community) Approve
Eric Day (community) Approve
Review via email: mp+46841@code.launchpad.net

Commit message

Eagerly load fixed_ip.network in instance_get_by_id.

Description of the change

Eagerly load fixed_ip.network in instance_get_by_id. Without this, sometimes tests (correctly!) fail. It seems to involve a race somewhere. Nevertheless, stuff needs the network attribute, so we need to joinedload it.

To post a comment you must log in.
Revision history for this message
Eric Day (eday) wrote :

lgtm

review: Approve
Revision history for this message
Jay Pipes (jaypipes) wrote :

no objections from me.

review: Approve
Revision history for this message
Devin Carlen (devcamcar) wrote :

approve

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'nova/db/sqlalchemy/api.py'
2--- nova/db/sqlalchemy/api.py 2011-01-18 19:01:16 +0000
3+++ nova/db/sqlalchemy/api.py 2011-01-19 22:17:31 +0000
4@@ -777,7 +777,7 @@
5 result = session.query(models.Instance).\
6 options(joinedload_all('fixed_ip.floating_ips')).\
7 options(joinedload('security_groups')).\
8- options(joinedload_all('fixed_ip.floating_ips')).\
9+ options(joinedload_all('fixed_ip.network')).\
10 filter_by(id=instance_id).\
11 filter_by(deleted=can_read_deleted(context)).\
12 first()
13@@ -785,6 +785,7 @@
14 result = session.query(models.Instance).\
15 options(joinedload('security_groups')).\
16 options(joinedload_all('fixed_ip.floating_ips')).\
17+ options(joinedload_all('fixed_ip.network')).\
18 filter_by(project_id=context.project_id).\
19 filter_by(id=instance_id).\
20 filter_by(deleted=False).\