X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=rest%2F__init__.py;h=070f07d8def3b9e640ad5307faf8e85aa7ab034a;hb=8555da6645ade3f9683c62fad7ca2dd701b01233;hp=ba26663a250fc89b1defb77bc246a799001963d6;hpb=a35d2c13ef668fb46200e4ca8ed52a5fbb9596ab;p=unfold.git diff --git a/rest/__init__.py b/rest/__init__.py index ba26663a..070f07d8 100644 --- a/rest/__init__.py +++ b/rest/__init__.py @@ -1,12 +1,13 @@ from manifold.core.query import Query from django.views.generic.base import TemplateView +from django.shortcuts import render_to_response from unfold.loginrequired import LoginRequiredView from django.http import HttpResponse from manifold.core.query import Query, AnalyzedQuery -from manifold.manifoldapi import execute_query +from manifoldapi.manifoldapi import execute_query from string import join import json @@ -17,11 +18,12 @@ def dispatch(request, object_type, object_name): switch = { 'platform' : platform, 'slice' : slice, + 'resource' : resource, 'user' : user } # platform is local - if (object_type == 'platform') : + if ((object_type == 'platform') or (object_type == 'testbed')) : object_type = 'local:platform' object_properties = ['platform', 'platform_longname', 'platform_url', 'platform_description','gateway_type']; return switch.get('platform', error)(request, object_name, object_properties) @@ -33,7 +35,7 @@ def dispatch(request, object_type, object_name): for r in results[0]['column'] : object_properties.append(r['name']) else : - return error() + return error(request, object_name, {}) return switch.get(object_type, error)(request, object_name, object_properties) # if request.method == 'GET': @@ -45,10 +47,15 @@ def platform(request, object_name, object_properties): query = Query().get('local:platform').filter_by('disabled', '==', '0').select(object_properties) return send(request, execute_query(request, query), object_properties) +# Add different filters possibilities [['user.user_hrn','==','$user_hrn'],['parent_authority','==','ple.upmc']] def slice(request, object_name, object_properties): - query = Query().get('slice').filter_by('user.user_hrn', '==', '$user_hrn').select(object_properties) + #query = Query().get('slice').filter_by('user.user_hrn', '==', '$user_hrn').select(object_properties) + query = Query().get('slice').filter_by('parent_authority', '==', 'ple.upmc').select(object_properties) return send(request, execute_query(request, query), object_properties) +def resource(request, object_name, object_properties): + pass + def user(request, object_name, object_properties): query = Query().get('user').filter_by('user_hrn', '==', '$user_hrn').select(object_properties) return send(request, execute_query(request, query), object_properties) @@ -56,8 +63,9 @@ def user(request, object_name, object_properties): def send(request, response, object_properties): if request.path.split('/')[1] == 'rest' : response_data = response + return HttpResponse(json.dumps(response_data), content_type="application/json") elif request.path.split('/')[1] == 'table' : - response_data = response + return render_to_response('table-default.html', {'data' : response, 'properties' : object_properties}) elif request.path.split('/')[1] == 'datatable' : response_data = {} response_data['columns'] = object_properties @@ -72,9 +80,8 @@ def send(request, response, object_properties): print d response_data['data'].append(d) - #response_data['data'].append([ r['platform'], r['platform_longname'], r['platform_url'], r['platform_description'], r['gateway_type'] ]) - return HttpResponse(json.dumps(response_data), content_type="application/json") + return HttpResponse(json.dumps(response_data), content_type="application/json") def error(request, object_name, object_properties): - return HttpResponse(json.dumps({'error' : 'an error has occurred'}), content_type="application/json") \ No newline at end of file + return HttpResponse(json.dumps({'error' : 'an error has occurred'}), content_type="application/json")