db: Replace use of strings in join, defer operations
Resolve the following RemovedIn20Warning warnings: Using strings to indicate column or relationship paths in loader options is deprecated and will be removed in SQLAlchemy 2.0. Please use the class-bound attribute directly. Using strings to indicate relationship names in Query.join() is deprecated and will be removed in SQLAlchemy 2.0. Please use the class-bound attribute directly. Signed-off-by: Stephen Finucane <stephenfin@redhat.com> Change-Id: I81a506281a0cece77cad41c5290e41fa3d7ef246
This commit is contained in:
parent
6f61fa05c5
commit
591d0ba1be
|
@ -218,14 +218,14 @@ def raw_template_files_get(context, files_id):
|
|||
|
||||
def resource_get(context, resource_id, refresh=False, refresh_data=False,
|
||||
eager=True):
|
||||
options = [orm.joinedload("data")]
|
||||
options = [orm.joinedload(models.Resource.data)]
|
||||
if eager:
|
||||
options.append(orm.joinedload("rsrc_prop_data"))
|
||||
options.append(orm.joinedload(models.Resource.rsrc_prop_data))
|
||||
|
||||
result = context.session.get(
|
||||
models.Resource, resource_id,
|
||||
options=options,
|
||||
)
|
||||
|
||||
if not result:
|
||||
raise exception.NotFound(_("resource with id %s not found") %
|
||||
resource_id)
|
||||
|
@ -245,7 +245,7 @@ def resource_get_by_name_and_stack(context, resource_name, stack_id):
|
|||
name=resource_name
|
||||
).filter_by(
|
||||
stack_id=stack_id
|
||||
).options(orm.joinedload("data")).first()
|
||||
).options(orm.joinedload(models.Resource.data)).first()
|
||||
return result
|
||||
|
||||
|
||||
|
@ -528,7 +528,10 @@ def resource_get_all_by_stack(context, stack_id, filters=None):
|
|||
models.Resource
|
||||
).filter_by(
|
||||
stack_id=stack_id
|
||||
).options(orm.joinedload("data")).options(orm.joinedload("rsrc_prop_data"))
|
||||
).options(
|
||||
orm.joinedload(models.Resource.data),
|
||||
orm.joinedload(models.Resource.rsrc_prop_data),
|
||||
)
|
||||
|
||||
query = db_filters.exact_filter(query, models.Resource, filters)
|
||||
results = query.all()
|
||||
|
@ -543,7 +546,7 @@ def resource_get_all_active_by_stack(context, stack_id):
|
|||
results = context.session.query(models.Resource).filter_by(
|
||||
stack_id=stack_id).filter(
|
||||
models.Resource.id.notin_(subquery.scalar_subquery())
|
||||
).options(orm.joinedload("data")).all()
|
||||
).options(orm.joinedload(models.Resource.data)).all()
|
||||
|
||||
return dict((res.id, res) for res in results)
|
||||
|
||||
|
@ -557,10 +560,14 @@ def resource_get_all_by_root_stack(context, stack_id, filters=None,
|
|||
)
|
||||
|
||||
if stack_id_only:
|
||||
query = query.options(orm.load_only("id", "stack_id"))
|
||||
query = query.options(
|
||||
orm.load_only(models.Resource.id, models.Resource.stack_id)
|
||||
)
|
||||
else:
|
||||
query = query.options(orm.joinedload("data")).options(
|
||||
orm.joinedload("rsrc_prop_data"))
|
||||
query = query.options(
|
||||
orm.joinedload(models.Resource.data),
|
||||
orm.joinedload(models.Resource.rsrc_prop_data),
|
||||
)
|
||||
|
||||
query = db_filters.exact_filter(query, models.Resource, filters)
|
||||
results = query.all()
|
||||
|
@ -606,7 +613,7 @@ def resource_prop_data_get(context, resource_prop_data_id):
|
|||
def stack_get_by_name_and_owner_id(context, stack_name, owner_id):
|
||||
query = soft_delete_aware_query(
|
||||
context, models.Stack
|
||||
).options(orm.joinedload("raw_template")).filter(sqlalchemy.or_(
|
||||
).options(orm.joinedload(models.Stack.raw_template)).filter(sqlalchemy.or_(
|
||||
models.Stack.tenant == context.tenant_id,
|
||||
models.Stack.stack_user_project_id == context.tenant_id)
|
||||
).filter_by(name=stack_name).filter_by(owner_id=owner_id)
|
||||
|
@ -624,9 +631,9 @@ def stack_get_by_name(context, stack_name):
|
|||
|
||||
|
||||
def stack_get(context, stack_id, show_deleted=False, eager_load=True):
|
||||
options = ()
|
||||
options = []
|
||||
if eager_load:
|
||||
options = (orm.joinedload("raw_template"),)
|
||||
options.append(orm.joinedload(models.Stack.raw_template))
|
||||
result = context.session.get(models.Stack, stack_id, options=options)
|
||||
|
||||
deleted_ok = show_deleted or context.show_deleted
|
||||
|
@ -646,7 +653,13 @@ def stack_get(context, stack_id, show_deleted=False, eager_load=True):
|
|||
def stack_get_status(context, stack_id):
|
||||
query = context.session.query(models.Stack)
|
||||
query = query.options(
|
||||
orm.load_only("action", "status", "status_reason", "updated_at"))
|
||||
orm.load_only(
|
||||
models.Stack.action,
|
||||
models.Stack.status,
|
||||
models.Stack.status_reason,
|
||||
models.Stack.updated_at,
|
||||
)
|
||||
)
|
||||
result = query.filter_by(id=stack_id).first()
|
||||
if result is None:
|
||||
raise exception.NotFound(_('Stack with id %s not found') % stack_id)
|
||||
|
@ -720,7 +733,7 @@ def _query_stack_get_all(context, show_deleted=False,
|
|||
if not context.is_admin:
|
||||
query = query.filter_by(tenant=context.tenant_id)
|
||||
|
||||
query = query.options(orm.subqueryload("tags"))
|
||||
query = query.options(orm.subqueryload(models.Stack.tags))
|
||||
if tags:
|
||||
for tag in tags:
|
||||
tag_alias = orm_aliased(models.StackTag)
|
||||
|
@ -768,7 +781,7 @@ def stack_get_all(context, limit=None, sort_keys=None, marker=None,
|
|||
tags_any=tags_any, not_tags=not_tags,
|
||||
not_tags_any=not_tags_any)
|
||||
if eager_load:
|
||||
query = query.options(orm.joinedload("raw_template"))
|
||||
query = query.options(orm.joinedload(models.Stack.raw_template))
|
||||
return _filter_and_page_query(context, query, limit, sort_keys,
|
||||
marker, sort_dir, filters).all()
|
||||
|
||||
|
@ -1029,7 +1042,7 @@ def event_get_all_by_stack(context, stack_id, limit=None, marker=None,
|
|||
query = _query_all_events_by_stack(context, stack_id)
|
||||
if filters and 'uuid' in filters:
|
||||
# retrieving a single event, so eager load its rsrc_prop_data detail
|
||||
query = query.options(orm.joinedload("rsrc_prop_data"))
|
||||
query = query.options(orm.joinedload(models.Event.rsrc_prop_data))
|
||||
return _events_filter_and_page_query(context, query, limit, marker,
|
||||
sort_keys, sort_dir, filters).all()
|
||||
|
||||
|
|
|
@ -275,13 +275,6 @@ class WarningsFixture(fixtures.Fixture):
|
|||
category=sqla_exc.SADeprecationWarning,
|
||||
)
|
||||
|
||||
warnings.filterwarnings(
|
||||
'ignore',
|
||||
module='heat',
|
||||
message='Using strings to indicate column or relationship paths ',
|
||||
category=sqla_exc.SADeprecationWarning,
|
||||
)
|
||||
|
||||
warnings.filterwarnings(
|
||||
'ignore',
|
||||
module='heat',
|
||||
|
|
Loading…
Reference in New Issue