#
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:
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')