X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Factions.py;h=8745cb52c46ec750754d0783f35bb83ef4d14acc;hb=b07f4e9d842b3e4c59d5599be7445e45b819a547;hp=97b8ac81d1fa2c07ff096cb79ddc103ff9fc7529;hpb=4cff7691aba786e1e2e94c5a9c86a27f1be96b5b;p=unfold.git diff --git a/portal/actions.py b/portal/actions.py index 97b8ac81..8745cb52 100644 --- a/portal/actions.py +++ b/portal/actions.py @@ -42,6 +42,12 @@ 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) @@ -49,6 +55,13 @@ def sfa_add_slice(request, slice_params): raise Exception, "Could not create %s. Already exists ?" % slice_params['hrn'] return results +def sfa_add_user_to_slice(request, user_hrn, slice_params): + query = Query.update('slice').filter_by('user_hrn', '==', user_hrn).set(slice_params).select('slice_hrn') + results = execute_query(request, query) + if not results: + raise Exception, "Could not create %s. Already exists ?" % slice_params['hrn'] + return results + # Propose hrn def manifold_add_user(request, user_params): @@ -60,10 +73,10 @@ def manifold_add_user(request, user_params): 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: @@ -124,6 +137,7 @@ def make_request_slice(slice): request = {} request['type'] = 'slice' request['id'] = slice.id + request['user_email'] = slice.user_email request['timestamp'] = slice.created request['authority_hrn'] = slice.authority_hrn request['slice_name'] = slice.slice_name @@ -189,7 +203,9 @@ 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() @@ -251,6 +267,7 @@ def portal_validate_request(wsgi_request, request_ids): # ignored in request: id, timestamp, number_of_nodes, type_of_nodes, purpose sfa_add_slice(wsgi_request, sfa_slice_params) + #sfa_add_user_to_slice(wsgi_request, user_hrn, sfa_slice_params) # XXX Remove from database