X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=instancehandler%2Fviews.py;h=53dfb22d2a617963807d25abb25ec6a5775b4a7e;hb=478c2a894ec892beafab0f59365b996287e58cb1;hp=ad7ead7debb274a89767568a7cb035315b94243e;hpb=b58d5d8e177049ab63587f4329f282bc206352ec;p=osm%2FLW-UI.git diff --git a/instancehandler/views.py b/instancehandler/views.py index ad7ead7..53dfb22 100644 --- a/instancehandler/views.py +++ b/instancehandler/views.py @@ -15,7 +15,6 @@ # from django.shortcuts import render, redirect -#from django.contrib.auth.decorators import login_required from django.http import HttpResponse, JsonResponse import yaml import json @@ -48,6 +47,8 @@ def list(request, type=None): instance_list = client.vnf_list(user.get_token()) elif type == 'pdu': instance_list = client.pdu_list(user.get_token()) + elif type == 'nsi': + instance_list = client.nsi_list(user.get_token()) result['instances'] = instance_list['data'] if instance_list and instance_list['error'] is False else [] @@ -56,8 +57,10 @@ def list(request, type=None): @login_required def create(request, type=None): result = {} + config_vim_account_id = {} user = osmutils.get_user(request) client = Client() + if type == 'ns': try: @@ -96,6 +99,24 @@ def create(request, type=None): return __response_handler(request, {}, 'instances:list', to_redirect=True, type='ns', ) result = client.ns_create(user.get_token(), ns_data) return __response_handler(request, result, 'instances:list', to_redirect=True, type='ns') + + elif type == 'nsi': + try: + nsi_data = { + "nsiName": request.POST.get('nsiName', 'WithoutName'), + "nsiDescription": request.POST.get('nsiDescription', ''), + "nstId": request.POST.get('nstId', ''), + "vimAccountId": request.POST.get('vimAccountId', ''), + } + + if 'ssh_key' in request.POST and request.POST.get('ssh_key') != '': + nsi_data["ssh_keys"] = [request.POST.get('ssh_key')] + except Exception as e: + request.session["OSM_ERROR"] = "Error creating the NSI; Invalid parameters provided." + return __response_handler(request, {}, 'instances:list', to_redirect=True, type=type) + result = client.nsi_create(user.get_token(), nsi_data) + return __response_handler(request, result, 'instances:list', to_redirect=True, type=type) + elif type == 'pdu': interface_param_name = request.POST.getlist('interfaces_name') interface_param_ip = request.POST.getlist('interfaces_ip') @@ -128,12 +149,15 @@ def ns_operations(request, instance_id=None, type=None): user = osmutils.get_user(request) project_id = user.project_id - result = {'type': 'ns', 'project_id': project_id, 'instance_id': instance_id} + result = {'type': type, 'project_id': project_id, 'instance_id': instance_id} raw_content_types = request.META.get('HTTP_ACCEPT', '*/*').split(',') if 'application/json' not in raw_content_types: return __response_handler(request, result, 'instance_operations_list.html') client = Client() - op_list = client.ns_op_list(user.get_token(), instance_id) + if type == 'ns': + op_list = client.ns_op_list(user.get_token(), instance_id) + elif type == 'nsi': + op_list = client.nsi_op_list(user.get_token(), instance_id) result['operations'] = op_list['data'] if op_list and op_list['error'] is False else [] return __response_handler(request, result, 'instance_operations_list.html') @@ -164,7 +188,6 @@ def action(request, instance_id=None, type=None): if 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) @@ -179,8 +202,14 @@ def delete(request, instance_id=None, type=None): result = client.ns_delete(user.get_token(), instance_id, force) elif type == 'pdu': result = client.pdu_delete(user.get_token(), instance_id) - print result - return __response_handler(request, result, 'instances:list', to_redirect=True, type='ns') + elif type == 'nsi': + result = client.nsi_delete(user.get_token(), instance_id, force) + + if 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_topology(request, instance_id=None, type=None): @@ -224,6 +253,8 @@ def show(request, instance_id=None, type=None): result = client.vnf_get(user.get_token(), instance_id) elif type == 'pdu': result = client.pdu_get(user.get_token(), instance_id) + elif type == 'nsi': + result = client.nsi_get(user.get_token(), instance_id) print result return __response_handler(request, result)