descriptors update feedback
[osm/LW-UI.git] / projecthandler / views.py
index 575d253..9d4055d 100644 (file)
@@ -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:
@@ -64,7 +63,6 @@ def user_projects(request):
     },'projectlist.html')
 
 
-
 def open_composer(request):
     user = osmutils.get_user(request)
     project_id = user.project_id
@@ -255,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())
@@ -262,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,
@@ -275,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:
@@ -300,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())
@@ -359,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):
@@ -375,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']
 
@@ -396,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)
@@ -407,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
@@ -418,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:
@@ -434,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)
 
@@ -448,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)}
@@ -515,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)