X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=descriptorhandler%2Fviews.py;h=5824e573c1672b0e07ef289f49d8e18b14c6e931;hb=e19f16b989fbb7ef068d6ddfd222a9d0cd1bacb2;hp=1bdb9b4def007d88246bc4d6fa98c07518f420ce;hpb=e428af7f429a3e42379c42c633ded0651ea2f0cf;p=osm%2FLW-UI.git diff --git a/descriptorhandler/views.py b/descriptorhandler/views.py index 1bdb9b4..5824e57 100644 --- a/descriptorhandler/views.py +++ b/descriptorhandler/views.py @@ -90,12 +90,35 @@ def delete_descriptor(request, descriptor_type=None, descriptor_id=None): 'message': 'An error occurred while processing your request.' if result and result['error'] is True else "Record deleted successfully"} }, url) +@login_required +def create_package_empty(request, descriptor_type=None): + user = osmutils.get_user(request) + pkg_name = request.POST.get('name', '') + try: + client = Client() + if descriptor_type == 'nsd': + result = client.nsd_create_pkg_base(user.get_token(), pkg_name) + elif descriptor_type == 'vnfd': + result = client.vnfd_create_pkg_base(user.get_token(), pkg_name) + 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: + result['data']['type'] = descriptor_type + return __response_handler(request, result, url=None, status=200) + @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': @@ -111,7 +134,6 @@ def clone_descriptor(request, descriptor_type=None, descriptor_id=None): 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) @@ -137,6 +159,24 @@ def addElement(request, descriptor_type=None, descriptor_id=None, element_type=N return __response_handler(request, result_graph, url=None, status=200) + elif descriptor_type == 'vnfd': + descriptor_result = client.vnfd_get(user.get_token(), descriptor_id) + element_id = request.POST.get('id', '') + util = OsmUtil() + descriptor_updated = util.add_base_node('vnfd', descriptor_result, element_type, element_id, request.POST.dict()) + result = client.vnfd_update(user.get_token(), descriptor_id, descriptor_updated) + if result['error'] == True: + return __response_handler(request, result['data'], url=None, + status=result['data']['status'] if 'status' in result['data'] else 500) + else: + parser = OsmParser() + # print nsr_object + if descriptor_type == 'vnfd': + result_graph = parser.vnfd_to_graph(descriptor_updated) + + return __response_handler(request, result_graph, url=None, status=200) + + @login_required def removeElement(request, descriptor_type=None, descriptor_id=None, element_type=None): user = osmutils.get_user(request) @@ -159,6 +199,24 @@ def removeElement(request, descriptor_type=None, descriptor_id=None, element_typ return __response_handler(request, result_graph, url=None, status=200) + elif descriptor_type == 'vnfd': + descriptor_result = client.vnfd_get(user.get_token(), descriptor_id) + element_id = request.POST.get('id', '') + util = OsmUtil() + descriptor_updated = util.remove_node('vnfd', descriptor_result, element_type, element_id, request.POST.dict()) + result = client.vnfd_update(user.get_token(), descriptor_id, descriptor_updated) + if result['error'] == True: + return __response_handler(request, result['data'], url=None, + status=result['data']['status'] if 'status' in result['data'] else 500) + else: + parser = OsmParser() + # print nsr_object + if descriptor_type == 'vnfd': + result_graph = parser.vnfd_to_graph(descriptor_updated) + + return __response_handler(request, result_graph, url=None, status=200) + + @login_required def updateElement(request, descriptor_type=None, descriptor_id=None, element_type=None): user = osmutils.get_user(request) @@ -181,6 +239,22 @@ def updateElement(request, descriptor_type=None, descriptor_id=None, element_typ # print nsr_object if descriptor_type == 'nsd': result_graph = parser.nsd_to_graph(descriptor_updated) + if descriptor_type == 'vnfd': + descriptor_result = client.vnfd_get(user.get_token(), descriptor_id) + util = OsmUtil() + payload = request.POST.dict() + if element_type == 'graph_params': + descriptor_updated = util.update_graph_params('vnfd', descriptor_result, json.loads(payload['update'])) + else: + descriptor_updated = util.update_node('vnfd', descriptor_result, element_type, json.loads(payload['old']), json.loads(payload['update'])) + result = client.vnfd_update(user.get_token(), descriptor_id, descriptor_updated) + if result['error'] == True: + return __response_handler(request, result['data'], url=None, + status=result['data']['status'] if 'status' in result['data'] else 500) + else: + parser = OsmParser() + if descriptor_type == 'vnfd': + result_graph = parser.vnfd_to_graph(descriptor_updated) return __response_handler(request, result_graph, url=None, status=200) @@ -268,7 +342,6 @@ def edit_descriptor(request, descriptor_id=None, descriptor_type=None): result = client.nsd_get(user.get_token(), descriptor_id) elif descriptor_type == 'vnfd': result = client.vnfd_get(user.get_token(), descriptor_id) - except Exception as e: log.exception(e) result = {'error': True, 'data': str(e)}