From c0d59cc838fe3b6052d1053b6b2bebceffe128e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Memo=20Garc=C3=ADa?= Date: Thu, 14 Jan 2016 13:51:44 +0000 Subject: [PATCH] Fix for sessions that point to non-existing urls When a session is selected and then deleted, freezer-web-ui breaks by trying to create a list of clients inside a non-existing session Resolves bug: 1533705 Change-Id: I460c0abca746e74f2eab78694765ea941406ecf7 --- disaster_recovery/api/api.py | 8 ++++++-- disaster_recovery/sessions/views.py | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/disaster_recovery/api/api.py b/disaster_recovery/api/api.py index 0fb9fe4..954c81b 100644 --- a/disaster_recovery/api/api.py +++ b/disaster_recovery/api/api.py @@ -305,14 +305,18 @@ class Session(object): def jobs(self, session_id): session = self.get(session_id, json=True) jobs = [] + + if session is None: + return jobs + try: jobs = [utils.JobsInSessionObject(k, session_id, v['client_id'], v['result']) for k, v in session['jobs'].iteritems()] - except AttributeError: - pass + except AttributeError as error: + LOG.error(error.message) return jobs def _build(self, session): diff --git a/disaster_recovery/sessions/views.py b/disaster_recovery/sessions/views.py index f14ac89..6be2a93 100644 --- a/disaster_recovery/sessions/views.py +++ b/disaster_recovery/sessions/views.py @@ -32,11 +32,11 @@ class SessionsView(browsers.ResourceBrowserView): browser_class = project_browsers.SessionBrowser template_name = "disaster_recovery/sessions/browser.html" - @shield('Unable to get sessions list.', redirect='actions:index') + @shield('Unable to get sessions list.', redirect='sessions:index') def get_sessions_data(self): return freezer_api.Session(self.request).list(limit=100) - @shield('Unable to get job list.', redirect='actions:index') + @shield('Unable to get job list.', redirect='sessions:index') def get_jobs_data(self): if self.kwargs['session_id']: return freezer_api.Session(self.request).jobs(