Cloud plugin: OK
[myslice.git] / portal / slicetabcloud.py
1 # this somehow is not used anymore - should it not be ?
2 from django.core.context_processors import csrf
3 from django.http import HttpResponseRedirect
4 from django.contrib.auth import authenticate, login, logout
5 from django.template import RequestContext
6 from django.shortcuts import render_to_response
7 from django.shortcuts import render
8
9 from unfold.loginrequired import LoginRequiredView
10
11 from manifold.core.query        import Query
12 from manifoldapi.manifoldapi    import execute_query
13 from manifoldapi.manifoldresult import ManifoldResult
14 from ui.topmenu import topmenu_items, the_user
15 from myslice.configengine import ConfigEngine
16
17 from myslice.theme import ThemeView
18 from myslice.configengine import ConfigEngine
19 from myslice.settings import logger
20
21 from sfa.planetlab.plxrn import hash_loginbase
22
23 import urllib2,json
24
25 class CloudView (LoginRequiredView, ThemeView):
26     # parent View is portal/sliceview.py
27
28     def get_platforms (self, request):
29         username = self.request.user    
30         
31         pf_query = Query().get('local:platform').filter_by('disabled', '==', '0').filter_by('gateway_type', '==', 'sfa').select('platform')
32         res_platforms = execute_query(request, pf_query)
33         platforms = [p['platform'] for p in res_platforms]
34         return platforms
35
36
37     template_name = 'slice-tab-cloud.html'
38     def post (self, request, slicename):
39         logger.debug("---------------- POST CloudView ------------------")
40         logger.debug(request.POST)
41
42         username = self.request.user    
43         platforms = self.get_platforms(request)
44         cloud_platforms = ["onelab-cloud"]
45         len_platforms = len(platforms)
46
47         #if 'action' in request.POST:
48         #    if request.POST['action'] == 'add':
49
50         #    elif request.POST['action'] == 'delete':
51         #        for key,val in request.POST:
52         #            if key.endswith('_vm'):
53         #                request.POST['platform']
54         #                
55         #    elif request.POST['action'] == 'reserve':
56         #    
57         #    else:
58         #        log.error("action %s not supported" % request.POST['action'])
59
60         env = { 'theme' : self.theme,
61                 'slicename':slicename,
62                 'platforms':platforms,
63                 'cloud_platforms':cloud_platforms,
64                 'len_platforms': len_platforms,
65                 'post_values': request.POST,
66                 'request':self.request,
67               }
68         return render_to_response(self.template, env, context_instance=RequestContext(request))
69
70
71     def get (self, request, slicename, state=None):
72   
73         username = self.request.user    
74         platforms = self.get_platforms(request)
75         cloud_platforms = ["onelab-cloud"]
76         len_platforms = len(platforms)
77
78         env = { 'theme' : self.theme,
79                 'slicename':slicename, 
80                 'platforms':platforms,
81                 'cloud_platforms':cloud_platforms,
82                 'len_platforms': len_platforms,
83                 'request':self.request,
84               }
85         return render_to_response(self.template, env, context_instance=RequestContext(request))
86