Merge branch 'fibre' of ssh://git.onelab.eu/git/myslice into fibre
[unfold.git] / portal / actions.py
index eb46bee..79538bd 100644 (file)
@@ -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",
     }