X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=blobdiff_plain;f=portal%2Fcloudlabview.py;fp=portal%2Fcloudlabview.py;h=aabc39694e086e28cd7d37128fa2a426548377db;hp=0000000000000000000000000000000000000000;hb=ac4d50c6fff1af8a06fdccbad916cd8d4d2200d1;hpb=b4969d314fe2004575a14b79dd337b6a5cc3fc5b diff --git a/portal/cloudlabview.py b/portal/cloudlabview.py new file mode 100644 index 00000000..aabc3969 --- /dev/null +++ b/portal/cloudlabview.py @@ -0,0 +1,53 @@ +import json +from django.core.context_processors import csrf +from django.http import HttpResponseRedirect +from django.contrib.auth import authenticate, login, logout +from django.template import RequestContext +from django.shortcuts import render_to_response +from django.shortcuts import render + +from unfold.loginrequired import LoginRequiredAutoLogoutView +from manifold.core.query import Query +from manifoldapi.manifoldapi import execute_query + +from manifoldapi.manifoldresult import ManifoldResult +from myslice.configengine import ConfigEngine + +from myslice.theme import ThemeView +from myslice.settings import logger + +class CloudView (LoginRequiredAutoLogoutView, ThemeView): + template_name = 'cloudlab.html' + + def get (self, request, state=None): + env = {} + pkey = None + cert = None + account_query = Query().get('local:account').select('user_id','platform_id','auth_type','config') + account_details = execute_query(self.request, account_query) + # Get the accounts of the current logged in user + for account_detail in account_details: + try: + account_config = json.loads(account_detail['config']) + if 'user_private_key' in account_config: + pkey = account_config['user_private_key'] + if 'gid' in account_config: + cert = account_config['gid'] + except ValueError as e: + print('not a JSON') + + env['supername'] = 'Amira' + env['cert'] = cert + env['key'] = pkey + if request.user.is_authenticated(): + env['person'] = self.request.user + env['username'] = self.request.user + else: + env['person'] = None + env['username'] = None + + env['theme'] = self.theme + env['section'] = "" + + return render_to_response(self.template_name, env, context_instance=RequestContext(request)) +