Refactor to a single request for latest apps
Latest apps section did a single request for each app in the list. This patch refactors it with only one request for user's applications using 'in' operator. Solves the TODO. Change-Id: I76d9f48de30c7ec0299aad12e402080ea713c0d5 Closes-bug: #1559066 Depends-On: Ibd93233392552699f9fc02e7f1d92542de2597f1
This commit is contained in:
parent
75e8ce5650
commit
9f2f1d52e7
@ -182,25 +182,12 @@ def cleaned_latest_apps(request):
|
||||
Verifies, that apps in the list are either public or belong to current
|
||||
project.
|
||||
"""
|
||||
|
||||
cleaned_apps, cleaned_app_ids = [], []
|
||||
for app_id in request.session.get('latest_apps', []):
|
||||
try:
|
||||
# TODO(kzaitsev): we have to update this to 1 request per list of
|
||||
# apps. Should be trivial and should remove the need to verify that
|
||||
# apps are available. bug/1559066
|
||||
app = api.muranoclient(request).packages.get(app_id)
|
||||
except exc.HTTPNotFound:
|
||||
continue
|
||||
else:
|
||||
if app.type != 'Application':
|
||||
continue
|
||||
if (app.owner_id == request.session['token'].project['id'] or
|
||||
app.is_public):
|
||||
cleaned_apps.append(app)
|
||||
cleaned_app_ids.append(app_id)
|
||||
request.session['latest_apps'] = collections.deque(cleaned_app_ids)
|
||||
return cleaned_apps
|
||||
id_param = "in:" + ",".join(request.session.get('latest_apps', []))
|
||||
query_params = {'type': 'Application', 'catalog': True, 'id': id_param}
|
||||
user_apps = list(api.muranoclient(request).packages.filter(**query_params))
|
||||
request.session['latest_apps'] = collections.deque([app.id
|
||||
for app in user_apps])
|
||||
return user_apps
|
||||
|
||||
|
||||
def clear_forms_data(func):
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
features:
|
||||
- Improved the performance of 'Recent Activity' panel at the
|
||||
'Browse Catalog' page.
|
||||
It was done with refactoring single request for every latest app
|
||||
with single for all, using new API 'in' operator.
|
Loading…
Reference in New Issue
Block a user