-hard_wired_slice_names = []
-for site in [ 'inria', 'upmc' , 'ibbt' ]:
- for slice in [ 'foo', 'bar', 'tutu', 'test', 'omf', 'heartbeat' ]:
- hard_wired_slice_names.append ("ple.%s.%s"%(site,slice))
+# a decorator for view classes to catch manifold exceptions
+# by design views should not directly exercise a manifold query
+# given that these are asynchroneous, you would expect a view to just
+# return a mundane skeleton
+# however of course this is not always true, and if only for metadata
+# that for some reason we deal with some other way, it is often a good idea
+# for a view to monitor these exceptions - and to take this opportunity to
+# logout people if it's a matter of expired session for example
+def logout_on_manifold_exception (view_as_a_function):
+ def wrapped (request, *args, **kwds):
+ try:
+ return view_as_a_function(request,*args, **kwds)
+ except ManifoldException, manifold_result:
+ # xxx we need a means to display this message to user...
+ from django.contrib.auth import logout
+ logout(request)
+ return HttpResponseRedirect ('/')
+ except Exception, e:
+ # xxx we need to sugarcoat this error message in some error template...
+ print "Unexpected exception",e
+ import traceback
+ traceback.print_exc()
+ return HttpResponseRedirect ('/')
+ return wrapped
+