X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fslicetabcloud.py;h=5f151093557b156988f7dffd4bbb5524556ecf48;hb=0300e4a519eb44fa1e2b769f1c871471ebfe0620;hp=5526a187285c36260f134ee29ffa431102095ea1;hpb=4a034c2a5701c9fbb38da8670d25d7ebe8f339ac;p=myslice.git diff --git a/portal/slicetabcloud.py b/portal/slicetabcloud.py index 5526a187..5f151093 100644 --- a/portal/slicetabcloud.py +++ b/portal/slicetabcloud.py @@ -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,