X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=blobdiff_plain;f=portal%2Factions.py;h=c373a30ccc671640ac5a2f76a4e5b90a0a6fe2fb;hp=5699562722b45dbe6116a1355a63536f302dff30;hb=caafec9916ce3ca86106a7bc8aa167b53309e072;hpb=0c8a634162f3271018102e75a3934c5db5e48f59 diff --git a/portal/actions.py b/portal/actions.py index 56995627..c373a30c 100644 --- a/portal/actions.py +++ b/portal/actions.py @@ -1,11 +1,13 @@ from django.http import HttpResponse from manifold.core.query import Query -from manifold.manifoldapi import execute_query +from manifold.manifoldapi import execute_query,execute_admin_query from portal.models import PendingUser, PendingSlice import json -# XXX sfa dependency, should be moved to SFA gateway -from sfa.util.xrn import Xrn +# Thierry: moving this right into the code so +# most people can use myslice without having to install sfa +# XXX tmp sfa dependency, should be moved to SFA gateway +#from sfa.util.xrn import Xrn # Get the list of authorities @@ -40,6 +42,13 @@ def sfa_add_user(request, user_params): raise Exception, "Could not create %s. Already exists ?" % user_params['hrn'] return results +def sfa_update_user(request, user_hrn, user_params): + # user_params: keys [public_key] + query = Query.update('user').filter_by('user_hrn', '==', user_hrn).set(user_params).select('user_hrn') + results = execute_query(request,query) + return results + + def sfa_add_slice(request, slice_params): query = Query.create('slice').set(slice_params).select('slice_hrn') results = execute_query(request, query) @@ -52,16 +61,16 @@ def sfa_add_slice(request, slice_params): def manifold_add_user(request, user_params): # user_params: email, password e.g., user_params = {'email':'aa@aa.com','password':'demo'} query = Query.create('local:user').set(user_params).select('email') - results = execute_query(request, query) + results = execute_admin_query(request, query) if not results: raise Exception, "Failed creating manifold user: %s" % user_params['email'] result, = results return result['email'] -def manifold_update_user(request, user_params): +def manifold_update_user(request, email, user_params): # user_params: password, config e.g., - query = Query.update('local:user').filter_by('email', '==', request.user.email).set(user_params).select('email') - results = execute_query(request,query) + query = Query.update('local:user').filter_by('email', '==', email).set(user_params).select('email') + results = execute_admin_query(request,query) # NOTE: results remains empty and goes to Exception. However, it updates the manifold DB. # That's why I commented the exception part. -- Yasin #if not results: @@ -71,11 +80,11 @@ def manifold_update_user(request, user_params): def manifold_add_account(request, account_params): query = Query.create('local:account').set(account_params).select(['user', 'platform']) - results = execute_query(request,query) + results = execute_admin_query(request,query) if not results: raise Exception, "Failed creating manifold account on platform %s for user: %s" % (account_params['platform'], account_params['user']) result, = results - return (result['user'], result['platform']) + return result['user_id'] def manifold_update_account(request,account_params): # account_params: config @@ -88,6 +97,22 @@ def manifold_update_account(request,account_params): #result, = results return results +#explicitly mention the platform_id +def manifold_delete_account(request, platform_id, account_params): + query = Query.delete('local:account').filter_by('platform_id', '==', platform_id).set(account_params).select('user_id') + results = execute_query(request,query) + return results + + +#not tested +def manifold_add_platform(request, platform_params): + query = Query.create('local:platform').set(platform_params).select(['user', 'platform']) + results = execute_admin_query(request,query) + if not results: + raise Exception, "Failed creating manifold platform %s for user: %s" % (platform_params['platform'], platform_params['user']) + result, = results + return result['platform_id'] + def make_request_user(user): request = {} @@ -171,7 +196,11 @@ def portal_validate_request(wsgi_request, request_ids): if request['type'] == 'user': try: - hrn = "%s.%s" % (request['authority_hrn'], request['login']) + # XXX tmp user_hrn inside the keypair column of pendiguser table + hrn = json.loads(request['keypair'])['user_hrn'] + #hrn = "%s.%s" % (request['authority_hrn'], request['login']) + # XXX tmp sfa dependency + from sfa.util.xrn import Xrn urn = Xrn(hrn, request['type']).get_urn() sfa_user_params = { @@ -215,6 +244,8 @@ def portal_validate_request(wsgi_request, request_ids): elif request['type'] == 'slice': try: hrn = "%s.%s" % (request['authority_hrn'], request['slice_name']) + # XXX tmp sfa dependency + from sfa.util.xrn import Xrn urn = Xrn(hrn, request['type']).get_urn() sfa_slice_params = {