Updated .gitignore to add pool folder
[osm/LW-UI.git] / descriptorhandler / views.py
index 1bdb9b4..fda9aff 100644 (file)
@@ -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,23 @@ 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 +238,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 +341,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)}