From b5078735bebdc483e6ae3c1dec069c78cfa03b05 Mon Sep 17 00:00:00 2001
From: Kálmán Viktor <kviktor@cloud.bme.hu>
Date: Mon, 16 Mar 2015 12:28:25 +0100
Subject: [PATCH] dashboard: don't fail if datastore is missing

---
 circle/dashboard/views/storage.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/circle/dashboard/views/storage.py b/circle/dashboard/views/storage.py
index e1e02c4..5a579f6 100644
--- a/circle/dashboard/views/storage.py
+++ b/circle/dashboard/views/storage.py
@@ -16,14 +16,16 @@
 # with CIRCLE.  If not, see <http://www.gnu.org/licenses/>.
 from __future__ import unicode_literals, absolute_import
 
-from django.db.models import Q
-from django.views.generic import UpdateView
+from django.contrib import messages
 from django.core.urlresolvers import reverse
+from django.db.models import Q
 from django.utils.translation import ugettext_lazy as _
+from django.views.generic import UpdateView
 
-from sizefield.utils import filesizeformat
 from braces.views import SuperuserRequiredMixin
+from sizefield.utils import filesizeformat
 
+from common.models import WorkerNotFound
 from storage.models import DataStore, Disk
 from ..tables import DiskListTable
 from ..forms import DataStoreForm, DiskForm
@@ -41,9 +43,13 @@ class StorageDetail(SuperuserRequiredMixin, UpdateView):
         context = super(StorageDetail, self).get_context_data(**kwargs)
 
         ds = self.get_object()
-        context['stats'] = self._get_stats()
-        context['missing_disks'] = ds.get_missing_disks()
-        context['orphan_disks'] = ds.get_orphan_disks()
+        try:
+            context['stats'] = self._get_stats()
+            context['missing_disks'] = ds.get_missing_disks()
+            context['orphan_disks'] = ds.get_orphan_disks()
+        except WorkerNotFound:
+            messages.error(self.request, _("The DataStore is offline."))
+
         context['disk_table'] = DiskListTable(
             self.get_table_data(), request=self.request,
             template="django_tables2/with_pagination.html")
--
libgit2 0.26.0