X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Factions.py;h=79538bd6fce0ba8bba69ca7c51d6a611e0664931;hb=bb98f1e7f4d1d2692b0405377c8f7c7466d72aee;hp=eb46bee9a9ef1da85502e22bcbfe0e5f33c16ba4;hpb=22d09f122df0baa7f9d033e687b0422ea12b0e07;p=myslice.git diff --git a/portal/actions.py b/portal/actions.py index eb46bee9..79538bd6 100644 --- a/portal/actions.py +++ b/portal/actions.py @@ -61,7 +61,6 @@ def clear_user_creds(request, user_email): try: user_query = Query().get('local:user').filter_by('email', '==', user_email).select('user_id','email','password','config') user_details = execute_admin_query(request, user_query) - # getting the user_id from the session for user_detail in user_details: user_id = user_detail['user_id'] @@ -593,21 +592,31 @@ def create_slice(wsgi_request, request): Exception """ 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() # Add User to Slice if we have the user_hrn in pendingslice table user_hrn = request.get('user_hrn', None) + user_obj = User.objects.get(username = user_hrn.split(".")[1]) + list_users = [] user_hrns = list([user_hrn]) if user_hrn else list() + for user in user_hrns: + list_users +=[User.objects.get(username = user.split(".")[1])] + + #user_query = Query.get('local:user').select('email').filter_by('email','==',user.username) + #user_details_sfa = execute_admin_query(wsgi_request, user_query) + + pendinguser = PendingUser.objects.filter(login__iexact = user_obj.username) + if pendinguser : + raise Exception, "User %s doesn't exist, validate user before validating slice" % user_obj.username + #if not user_details_sfa: + # raise Exception, "User %s doesn't exist, validate user before validating slice" % user_hrn + #for user in list_users: + + user_email = user_obj.email - user_query = Query().get('user').select('user_hrn','user_email').filter_by('user_hrn','==',user_hrn) - user_details_sfa = execute_admin_query(wsgi_request, user_query) - if not user_details_sfa: - raise Exception, "User %s doesn't exist, validate user before validating slice" % user_hrn - for user in user_details_sfa: - user_email = user['user_email'] - # XXX LOIC Quick fix because this is totally inconsistent if not 'number_of_nodes' in request: request['number_of_nodes']="" @@ -624,13 +633,14 @@ def create_slice(wsgi_request, request): # ignored in request: id, timestamp, number_of_nodes, type_of_nodes, purpose query = Query.create('slice').set(slice_params).select('slice_hrn') - results = execute_query(wsgi_request, query) + results = execute_admin_query(wsgi_request, query) if not results: raise Exception, "Could not create %s. Already exists ?" % slice_params['hrn'] - else: - clear_user_creds(wsgi_request,user_email) + else: + clear_user_creds(wsgi_request,user_obj.username) # log user activity - activity.slice.validate(self.request, "Slice validation", { "slice" : hrn }) + activity.slice.validate(request,{ "slice" : hrn }) #"Slice validation", { "slice" : hrn }) + try: theme.template_name = 'slice_request_validated.txt' text_content = render_to_string(theme.template, request) @@ -889,7 +899,7 @@ def iotlab_create_user (wsgi_request, request, namespace = None, as_admin=False) "structure" : request['authority_hrn'], "city" : "N/A", "country" : "N/A", - "sshPublicKey" : [request['public_key']], + "sshPublicKey" : request['public_key'], "motivations" : "SFA federation", }