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
|
Verifies, that apps in the list are either public or belong to current
|
||||||
project.
|
project.
|
||||||
"""
|
"""
|
||||||
|
id_param = "in:" + ",".join(request.session.get('latest_apps', []))
|
||||||
cleaned_apps, cleaned_app_ids = [], []
|
query_params = {'type': 'Application', 'catalog': True, 'id': id_param}
|
||||||
for app_id in request.session.get('latest_apps', []):
|
user_apps = list(api.muranoclient(request).packages.filter(**query_params))
|
||||||
try:
|
request.session['latest_apps'] = collections.deque([app.id
|
||||||
# TODO(kzaitsev): we have to update this to 1 request per list of
|
for app in user_apps])
|
||||||
# apps. Should be trivial and should remove the need to verify that
|
return user_apps
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
def clear_forms_data(func):
|
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