From: Loic Baron Date: Fri, 4 Dec 2015 09:53:49 +0000 (+0100) Subject: Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=commitdiff_plain;h=f9f854b970a22793c6fd2ede625f3891f05fd128;hp=2d7cf76d844a407ac8bcd79db301883fea5b60b7 Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab --- diff --git a/portal/slicetabcloud.py b/portal/slicetabcloud.py index ce1dc31d..5f151093 100644 --- a/portal/slicetabcloud.py +++ b/portal/slicetabcloud.py @@ -18,6 +18,8 @@ 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 @@ -41,7 +43,7 @@ class CloudView (LoginRequiredView, 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 (LoginRequiredView, 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, diff --git a/portal/templates/_widget-cloud-node.html b/portal/templates/_widget-cloud-node.html new file mode 100644 index 00000000..7bb0b729 --- /dev/null +++ b/portal/templates/_widget-cloud-node.html @@ -0,0 +1,32 @@ +{% load portal_filters %} +
+

Create new VMs on node {{node_urn|get_name_from_urn}}

+ + +
diff --git a/portal/templates/slice-tab-cloud.html b/portal/templates/slice-tab-cloud.html index 436af696..c92b416b 100644 --- a/portal/templates/slice-tab-cloud.html +++ b/portal/templates/slice-tab-cloud.html @@ -1,58 +1,80 @@ {% extends "layout_wide.html" %} +{% load portal_filters %} {% block head %} {% endblock %} @@ -420,63 +555,51 @@ $(document).ready(function() { {{post_values}} {% for platform in platforms %} {% if platform in cloud_platforms %} - -
+ + +

{{ platform }}

// display only if VMs already in slice

VMs in slice {{slicename}}

-
- {% csrf_token %} -
-

Create new VMs

- {% endif %} diff --git a/portal/templatetags/portal_filters.py b/portal/templatetags/portal_filters.py index 74f113ad..7333efaf 100644 --- a/portal/templatetags/portal_filters.py +++ b/portal/templatetags/portal_filters.py @@ -47,4 +47,12 @@ def file_exists(filepath): else: index = filepath.rfind('/') new_filepath = filepath[:index] + '/image.png' - return new_filepath \ No newline at end of file + return new_filepath + +@register.filter +def get_type(value): + return type(value).__name__ + +@register.filter +def get_name_from_urn(value): + return value.split("+")[-1] diff --git a/rest/sfa_api.py b/rest/sfa_api.py index b35fa35c..14ec3107 100644 --- a/rest/sfa_api.py +++ b/rest/sfa_api.py @@ -203,7 +203,7 @@ def sfa_client(request, method, hrn=None, urn=None, object_type=None, rspec=None #return HttpResponse(json.dumps({'error' : '-2'}), content_type="application/json") return {'error' : '-2'} - server = SfaServerProxy(server_url, pkey, cert) + server = SfaServerProxy(server_url, pkey, cert, verbose=False, timeout=5) #server = SFAProxy(server_url, pkey, cert) if 'geni_rspec_version' in options: # GetVersion to know if the AM supports the requested version