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
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:
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):
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())
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,
{'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:
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())
}, 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):
}, page)
elif request.method == 'POST':
data_type = request.POST.get('type')
- print "TYPE", data_type
if data_type == "file":
file_uploaded = request.FILES['file']
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)
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
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:
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)
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)}
@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)