Skip to content

Commit 2074b54

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Replace joinedload_all with joinedload"
2 parents 6ea8094 + 658e35c commit 2074b54

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))
@@ -841,7 +849,7 @@ def floating_ip_get(context, id):
841849
try:
842850
result = model_query(context, models.FloatingIp, project_only=True).\
843851
filter_by(id=id).\
844-
options(joinedload_all('fixed_ip.instance')).\
852+
options(_joinedload_all('fixed_ip.instance')).\
845853
first()
846854

847855
if not result:
@@ -1060,7 +1068,7 @@ def floating_ip_get_all_by_project(context, project_id):
10601068
return _floating_ip_get_all(context).\
10611069
filter_by(project_id=project_id).\
10621070
filter_by(auto_assigned=False).\
1063-
options(joinedload_all('fixed_ip.instance')).\
1071+
options(_joinedload_all('fixed_ip.instance')).\
10641072
all()
10651073

10661074

@@ -1078,7 +1086,7 @@ def _floating_ip_get_by_address(context, address):
10781086
try:
10791087
result = model_query(context, models.FloatingIp).\
10801088
filter_by(address=address).\
1081-
options(joinedload_all('fixed_ip.instance')).\
1089+
options(_joinedload_all('fixed_ip.instance')).\
10821090
first()
10831091

10841092
if not result:
@@ -1393,7 +1401,7 @@ def _fixed_ip_get_by_address(context, address, columns_to_join=None):
13931401
try:
13941402
result = model_query(context, models.FixedIp)
13951403
for column in columns_to_join:
1396-
result = result.options(joinedload_all(column))
1404+
result = result.options(_joinedload_all(column))
13971405
result = result.filter_by(address=address).first()
13981406
if not result:
13991407
raise exception.FixedIpNotFoundForAddress(address=address)
@@ -1868,7 +1876,7 @@ def instance_get(context, instance_id, columns_to_join=None):
18681876

18691877
def _build_instance_get(context, columns_to_join=None):
18701878
query = model_query(context, models.Instance, project_only=True).\
1871-
options(joinedload_all('security_groups.rules')).\
1879+
options(_joinedload_all('security_groups.rules')).\
18721880
options(joinedload('info_cache'))
18731881
if columns_to_join is None:
18741882
columns_to_join = ['metadata', 'system_metadata']
@@ -3882,7 +3890,7 @@ def _security_group_get_query(context, read_deleted=None,
38823890
query = model_query(context, models.SecurityGroup,
38833891
read_deleted=read_deleted, project_only=project_only)
38843892
if join_rules:
3885-
query = query.options(joinedload_all('rules.grantee_group'))
3893+
query = query.options(_joinedload_all('rules.grantee_group'))
38863894
return query
38873895

38883896

@@ -3926,7 +3934,7 @@ def security_group_get(context, security_group_id, columns_to_join=None):
39263934
columns_to_join = []
39273935
for column in columns_to_join:
39283936
if column.startswith('instances'):
3929-
query = query.options(joinedload_all(column))
3937+
query = query.options(_joinedload_all(column))
39303938

39313939
result = query.first()
39323940
if not result:
@@ -3949,7 +3957,7 @@ def security_group_get_by_name(context, project_id, group_name,
39493957
columns_to_join = ['instances', 'rules.grantee_group']
39503958

39513959
for column in columns_to_join:
3952-
query = query.options(joinedload_all(column))
3960+
query = query.options(_joinedload_all(column))
39533961

39543962
result = query.first()
39553963
if not result:
@@ -4005,7 +4013,7 @@ def security_group_update(context, security_group_id, values,
40054013
id=security_group_id)
40064014
if columns_to_join:
40074015
for column in columns_to_join:
4008-
query = query.options(joinedload_all(column))
4016+
query = query.options(_joinedload_all(column))
40094017
security_group_ref = query.first()
40104018

40114019
if not security_group_ref:
@@ -4121,7 +4129,7 @@ def security_group_rule_get_by_security_group(context, security_group_id,
41214129
query = (_security_group_rule_get_query(context).
41224130
filter_by(parent_group_id=security_group_id))
41234131
for column in columns_to_join:
4124-
query = query.options(joinedload_all(column))
4132+
query = query.options(_joinedload_all(column))
41254133
return query.all()
41264134

41274135

@@ -4357,7 +4365,7 @@ def migration_get_in_progress_by_host_and_node(context, host, node):
43574365
'reverted', 'error',
43584366
'failed', 'completed',
43594367
'cancelled', 'done'])).\
4360-
options(joinedload_all('instance.system_metadata')).\
4368+
options(_joinedload_all('instance.system_metadata')).\
43614369
all()
43624370

43634371

0 commit comments

Comments
 (0)