Skip to content

Commit 4f9023e

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Replace joinedload_all with joinedload" into stable/stein
2 parents 8faa60f + b12d166 commit 4f9023e

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

nova/db/sqlalchemy/api.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
from sqlalchemy.orm import aliased
4747
from sqlalchemy.orm import contains_eager
4848
from sqlalchemy.orm import joinedload
49-
from sqlalchemy.orm import joinedload_all
5049
from sqlalchemy.orm import noload
5150
from sqlalchemy.orm import undefer
5251
from sqlalchemy.schema import Table
@@ -96,6 +95,15 @@ def _context_manager_from_context(context):
9695
pass
9796

9897

98+
def _joinedload_all(column):
99+
elements = column.split('.')
100+
joined = joinedload(elements.pop(0))
101+
for element in elements:
102+
joined = joined.joinedload(element)
103+
104+
return joined
105+
106+
99107
def configure(conf):
100108
main_context_manager.configure(**_get_db_conf(conf.database))
101109
api_context_manager.configure(**_get_db_conf(conf.api_database))
@@ -845,7 +853,7 @@ def floating_ip_get(context, id):
845853
try:
846854
result = model_query(context, models.FloatingIp, project_only=True).\
847855
filter_by(id=id).\
848-
options(joinedload_all('fixed_ip.instance')).\
856+
options(_joinedload_all('fixed_ip.instance')).\
849857
first()
850858

851859
if not result:
@@ -1073,7 +1081,7 @@ def floating_ip_get_all_by_project(context, project_id):
10731081
return _floating_ip_get_all(context).\
10741082
filter_by(project_id=project_id).\
10751083
filter_by(auto_assigned=False).\
1076-
options(joinedload_all('fixed_ip.instance')).\
1084+
options(_joinedload_all('fixed_ip.instance')).\
10771085
all()
10781086

10791087

@@ -1091,7 +1099,7 @@ def _floating_ip_get_by_address(context, address):
10911099
try:
10921100
result = model_query(context, models.FloatingIp).\
10931101
filter_by(address=address).\
1094-
options(joinedload_all('fixed_ip.instance')).\
1102+
options(_joinedload_all('fixed_ip.instance')).\
10951103
first()
10961104

10971105
if not result:
@@ -1406,7 +1414,7 @@ def _fixed_ip_get_by_address(context, address, columns_to_join=None):
14061414
try:
14071415
result = model_query(context, models.FixedIp)
14081416
for column in columns_to_join:
1409-
result = result.options(joinedload_all(column))
1417+
result = result.options(_joinedload_all(column))
14101418
result = result.filter_by(address=address).first()
14111419
if not result:
14121420
raise exception.FixedIpNotFoundForAddress(address=address)
@@ -1876,7 +1884,7 @@ def instance_get(context, instance_id, columns_to_join=None):
18761884

18771885
def _build_instance_get(context, columns_to_join=None):
18781886
query = model_query(context, models.Instance, project_only=True).\
1879-
options(joinedload_all('security_groups.rules')).\
1887+
options(_joinedload_all('security_groups.rules')).\
18801888
options(joinedload('info_cache'))
18811889
if columns_to_join is None:
18821890
columns_to_join = ['metadata', 'system_metadata']
@@ -3890,7 +3898,7 @@ def _security_group_get_query(context, read_deleted=None,
38903898
query = model_query(context, models.SecurityGroup,
38913899
read_deleted=read_deleted, project_only=project_only)
38923900
if join_rules:
3893-
query = query.options(joinedload_all('rules.grantee_group'))
3901+
query = query.options(_joinedload_all('rules.grantee_group'))
38943902
return query
38953903

38963904

@@ -3934,7 +3942,7 @@ def security_group_get(context, security_group_id, columns_to_join=None):
39343942
columns_to_join = []
39353943
for column in columns_to_join:
39363944
if column.startswith('instances'):
3937-
query = query.options(joinedload_all(column))
3945+
query = query.options(_joinedload_all(column))
39383946

39393947
result = query.first()
39403948
if not result:
@@ -3957,7 +3965,7 @@ def security_group_get_by_name(context, project_id, group_name,
39573965
columns_to_join = ['instances', 'rules.grantee_group']
39583966

39593967
for column in columns_to_join:
3960-
query = query.options(joinedload_all(column))
3968+
query = query.options(_joinedload_all(column))
39613969

39623970
result = query.first()
39633971
if not result:
@@ -4013,7 +4021,7 @@ def security_group_update(context, security_group_id, values,
40134021
id=security_group_id)
40144022
if columns_to_join:
40154023
for column in columns_to_join:
4016-
query = query.options(joinedload_all(column))
4024+
query = query.options(_joinedload_all(column))
40174025
security_group_ref = query.first()
40184026

40194027
if not security_group_ref:
@@ -4137,7 +4145,7 @@ def security_group_rule_get_by_security_group(context, security_group_id,
41374145
query = (_security_group_rule_get_query(context).
41384146
filter_by(parent_group_id=security_group_id))
41394147
for column in columns_to_join:
4140-
query = query.options(joinedload_all(column))
4148+
query = query.options(_joinedload_all(column))
41414149
return query.all()
41424150

41434151

@@ -4373,7 +4381,7 @@ def migration_get_in_progress_by_host_and_node(context, host, node):
43734381
'reverted', 'error',
43744382
'failed', 'completed',
43754383
'cancelled', 'done'])).\
4376-
options(joinedload_all('instance.system_metadata')).\
4384+
options(_joinedload_all('instance.system_metadata')).\
43774385
all()
43784386

43794387

0 commit comments

Comments
 (0)