X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=vimhandler%2Fviews.py;h=28c264cf1523c62cd0eadfed244fca12d80ae5a2;hb=0d4daed0dea8c38e158bf4b41b02a57a3458f35c;hp=817a05216f2624f00788f3748f3df57611330b8c;hpb=fb37bca4b7e8178c65df2f1496afe372c1d55e78;p=osm%2FLW-UI.git diff --git a/vimhandler/views.py b/vimhandler/views.py index 817a052..28c264c 100644 --- a/vimhandler/views.py +++ b/vimhandler/views.py @@ -15,28 +15,31 @@ # from django.shortcuts import render, redirect -from django.contrib.auth.decorators import login_required, permission_required -from django.http import HttpResponse, JsonResponse +from django.contrib.auth.decorators import login_required +from django.http import JsonResponse from lib.osm.osmclient.client import Client -import json +import yaml import logging logging.basicConfig(level=logging.DEBUG) -log = logging.getLogger('helper.py') +log = logging.getLogger('view.py') + @login_required -def list(request): +def list(request, project_id): client = Client() result = client.vim_list() print result result = { + "project_id": project_id, "datacenters": result } return __response_handler(request, result, 'vim_list.html') + @login_required -def create(request): - result = {} +def create(request, project_id): + result = {'project_id': project_id} if request.method == 'GET': return __response_handler(request, result, 'vim_create.html') else: @@ -57,27 +60,35 @@ def create(request): if str(k).startswith('config_') and len(v) > 0: config_key = k[7:] vim_data['config'][config_key] = v - print vim_data + if 'additional_conf' in new_vim_dict: + try: + additional_conf_dict = yaml.safe_load(new_vim_dict['additional_conf']) + for k,v in additional_conf_dict.items(): + vim_data['config'][k] = v + except Exception as e: + # TODO return error on json.loads exception + print e result = client.vim_create(vim_data) # TODO 'vim:show', to_redirect=True, vim_id=vim_id - return __response_handler(request, result, 'vim:list', to_redirect=True) + return __response_handler(request, result, 'projects:vims:list', to_redirect=True, project_id=project_id) @login_required -def delete(request, vim_id=None): +def delete(request, project_id, vim_id=None): try: client = Client() del_res = client.vim_delete(vim_id) except Exception as e: log.exception(e) - return __response_handler(request, {}, 'vim:list', to_redirect=True) + return __response_handler(request, {}, 'projects:vims:list', to_redirect=True, project_id=project_id) @login_required -def show(request, vim_id=None): +def show(request, project_id, vim_id=None): client = Client() datacenter = client.vim_get(vim_id) print datacenter return __response_handler(request, { - "datacenter": datacenter + "datacenter": datacenter, + "project_id": project_id }, 'vim_show.html')