fixed GUI
[myslice.git] / portal / slicetabcloud.py
index 5526a18..5f15109 100644 (file)
@@ -6,7 +6,7 @@ from django.template import RequestContext
 from django.shortcuts import render_to_response
 from django.shortcuts import render
 
-from unfold.loginrequired import FreeAccessView
+from unfold.loginrequired import LoginRequiredView
 
 from manifold.core.query        import Query
 from manifoldapi.manifoldapi    import execute_query
@@ -18,11 +18,13 @@ from myslice.theme import ThemeView
 from myslice.configengine import ConfigEngine
 from myslice.settings import logger
 
+from rest.sfa_api import sfa_client
+
 from sfa.planetlab.plxrn import hash_loginbase
 
 import urllib2,json
 
-class CloudView (FreeAccessView, ThemeView):
+class CloudView (LoginRequiredView, ThemeView):
     # parent View is portal/sliceview.py
 
     def get_platforms (self, request):
@@ -41,7 +43,7 @@ class CloudView (FreeAccessView, ThemeView):
 
         username = self.request.user    
         platforms = self.get_platforms(request)
-        cloud_platforms = ["onelab-cloud"]
+        cloud_platforms = ["onelab-cloud","fuseco"]
         len_platforms = len(platforms)
 
         #if 'action' in request.POST:
@@ -72,12 +74,20 @@ class CloudView (FreeAccessView, ThemeView):
   
         username = self.request.user    
         platforms = self.get_platforms(request)
-        cloud_platforms = ["onelab-cloud"]
+        cloud_platforms = ["onelab-cloud","fuseco"]
         len_platforms = len(platforms)
+        result = sfa_client(request,'ListResources',platforms=cloud_platforms)
+
+        # Handle errors in ListResources, example AM is down
+        for key, value in result.iteritems():
+            logger.debug("key in result = %s" % key)
+            if 'error' in value:
+                cloud_platforms.remove(key)
 
         env = { 'theme' : self.theme,
                 'slicename':slicename, 
                 'platforms':platforms,
+                'result':result,
                 'cloud_platforms':cloud_platforms,
                 'len_platforms': len_platforms,
                 'request':self.request,