X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=projecthandler%2Fviews.py;h=9d4055d217400ee8d6ad169e12869d91a68cea01;hb=d3e9f5c6b209bf4ee742f1781364f5dc4103539d;hp=144aa5b9082165b09350efcf37cec8d800ab009d;hpb=99f922f1dc8623a444930a621ce3696802d619c0;p=osm%2FLW-UI.git diff --git a/projecthandler/views.py b/projecthandler/views.py index 144aa5b..9d4055d 100644 --- a/projecthandler/views.py +++ b/projecthandler/views.py @@ -18,7 +18,7 @@ import json import logging import yaml -from django.contrib.auth.decorators import login_required +from sf_t3d.decorators import login_required from django.http import HttpResponse, JsonResponse from django.shortcuts import render, redirect @@ -47,7 +47,6 @@ def create_new_project(request): project_data = dict(filter(lambda i: i[0] in keys and len(i[1]) > 0, new_project_dict.items())) result = client.project_create(user.get_token(), project_data) if isinstance(result, dict) and 'error' in result and result['error']: - print result return __response_handler(request, result['data'], url=None, status=result['data']['status'] if 'status' in result['data'] else 500) else: @@ -59,9 +58,9 @@ def user_projects(request): user = osmutils.get_user(request) client = Client() result = client.project_list(user.get_token()) - return render(request, 'projectlist.html', { + return __response_handler(request,{ 'projects': result['data'] if result and result['error'] is False else [], - }) + },'projectlist.html') def open_composer(request): @@ -254,6 +253,7 @@ def open_project(request): client = Client() ##TODO change with adhoc api call + prj = client.project_get(user.get_token(), project_id) nsd = client.nsd_list(user.get_token()) vnfd = client.vnfd_list(user.get_token()) ns = client.ns_list(user.get_token()) @@ -261,9 +261,9 @@ def open_project(request): project_overview = { 'owner': user.username, 'name': project_id, - 'updated_date': '-', - 'created_date': '-', - 'info': '-', + 'updated_date': prj['data']['_admin']['modified'] if prj and prj['error'] is False else '-', + 'created_date': prj['data']['_admin']['created'] if prj and prj['error'] is False else '-', + 'type': 'osm', 'nsd': len(nsd['data']) if nsd and nsd['error'] is False else 0, 'vnfd': len(vnfd['data']) if vnfd and vnfd['error'] is False else 0, @@ -274,18 +274,16 @@ def open_project(request): {'project_overview': project_overview, 'project_id': project_id}) except Exception as e: - print e return render(request, 'error.html', {'error_msg': 'Error open project! Please retry.'}) @login_required -def delete_project(request): +def delete_project(request, project_id): user = osmutils.get_user(request) - project_id = user.project_id + client = Client() result = client.project_delete(user.get_token(), project_id) if isinstance(result, dict) and 'error' in result and result['error']: - print result return __response_handler(request, result['data'], url=None, status=result['data']['status'] if 'status' in result['data'] else 500) else: @@ -299,12 +297,27 @@ def switch_project(request, project_id): return redirect('projects:open_project') +@login_required +def edit_project(request, project_id): + if request.method == 'POST': + user = osmutils.get_user(request) + client = Client() + project_dict = request.POST.dict() + keys = ["name"] + project_data = dict(filter(lambda i: i[0] in keys and len(i[1]) > 0, project_dict.items())) + result = client.project_edit(user.get_token(), project_id, project_data) + if isinstance(result, dict) and 'error' in result and result['error']: + return __response_handler(request, result['data'], url=None, + status=result['data']['status'] if 'status' in result['data'] else 500) + else: + return __response_handler(request, {}, url=None, status=200) + + @login_required def show_descriptors(request, descriptor_type=None): user = osmutils.get_user(request) project_id = user.project_id client = Client() - print request.GET.dict() try: if descriptor_type == 'nsd': descriptors = client.nsd_list(user.get_token()) @@ -358,6 +371,31 @@ def delete_descriptor(request, descriptor_type=None, descriptor_id=None): }, url) +@login_required +def clone_descriptor(request, descriptor_type=None, descriptor_id=None): + user = osmutils.get_user(request) + project_id = user.project_id + + try: + client = Client() + if descriptor_type == 'nsd': + result = client.nsd_clone(user.get_token(), descriptor_id) + elif descriptor_type == 'vnfd': + result = client.vnfd_clone(user.get_token(), descriptor_id) + else: + log.debug('Update descriptor: Unknown data type') + result = {'error': True, 'data': 'Update descriptor: Unknown data type'} + except Exception as e: + log.exception(e) + result = {'error': True, 'data': str(e)} + if result['error'] == True: + return __response_handler(request, result['data'], url=None, + status=result['data']['status'] if 'status' in result['data'] else 500) + + else: + return __response_handler(request, {}, url=None, status=200) + + @login_required def new_descriptor(request, descriptor_type=None): @@ -374,7 +412,6 @@ def new_descriptor(request, descriptor_type=None): }, page) elif request.method == 'POST': data_type = request.POST.get('type') - print "TYPE", data_type if data_type == "file": file_uploaded = request.FILES['file'] @@ -395,7 +432,6 @@ def new_descriptor(request, descriptor_type=None): result = {'error': True, 'data': 'Create descriptor: Unknown data type'} if result['error']: - print result return __response_handler(request, result['data'], url=None, status=result['data']['status'] if 'status' in result['data'] else 500) else: return __response_handler(request, {}, url=None, status=200) @@ -406,7 +442,6 @@ def edit_descriptor(request, descriptor_id=None, descriptor_type=None): user = osmutils.get_user(request) project_id = user.project_id if request.method == 'POST': - print "edit_descriptor" new_data = request.POST.get('text'), data_type = request.POST.get('type') #print new_data @@ -417,14 +452,12 @@ def edit_descriptor(request, descriptor_id=None, descriptor_type=None): new_data = yaml.load(request.POST.get('text')) elif data_type == 'json': new_data = json.loads(request.POST.get('text')) - print new_data result = client.nsd_update(user.get_token(), descriptor_id, new_data) elif descriptor_type == 'vnfd': if data_type == 'yaml': new_data = yaml.load(request.POST.get('text')) elif data_type == 'json': new_data = json.loads(request.POST.get('text')) - print new_data result = client.vnfd_update(user.get_token(), descriptor_id, new_data) else: @@ -433,7 +466,6 @@ def edit_descriptor(request, descriptor_id=None, descriptor_type=None): except Exception as e: log.exception(e) result = {'error': True, 'data': str(e)} - print result if result['error'] == True: return __response_handler(request, result['data'], url=None, status=result['data']['status'] if 'status' in result['data'] else 500) @@ -447,11 +479,9 @@ def edit_descriptor(request, descriptor_id=None, descriptor_type=None): client = Client() if descriptor_type == 'nsd': result = client.nsd_get(user.get_token(), descriptor_id) - print result elif descriptor_type == 'vnfd': result = client.vnfd_get(user.get_token(), descriptor_id) - print result except Exception as e: log.exception(e) result = {'error': True, 'data': str(e)} @@ -514,7 +544,6 @@ def download_pkg(request, descriptor_id, descriptor_type): @login_required def custom_action(request, descriptor_id=None, descriptor_type=None, action_name=None): if request.method == 'GET': - print "Custom action: " + action_name return globals()[action_name](request, descriptor_id, descriptor_type)