if platform_detail['platform_id'] == account_detail['platform_id']:
if 'myslice' in platform_detail['platform']:
account_config = json.loads(account_detail['config'])
- user_cred = account_config.get('delegated_user_credential','N/A')
+ #user_cred = account_config.get('delegated_user_credential','N/A')
+ user_cred = account_config.get('user_credential','N/A')
if 'N/A' not in user_cred:
user_hrn = account_config.get('user_hrn','N/A')
user_pub_key = json.dumps(account_config.get('user_public_key','N/A'))
user_hrn = request.get('user_hrn', None)
user_hrns = list([user_hrn]) if user_hrn else list()
- user_email = request.get
+ 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 We should create a slice with Manifold terminology
slice_params = {
'slice_hrn' : hrn,
'slice_urn' : urn,
'slice_type' : request['type'],
+ 'url' : request['number_of_nodes'],
'users' : user_hrns,
'slice_enabled' : True
}
results = execute_query(wsgi_request, query)
if not results:
raise Exception, "Could not create %s. Already exists ?" % slice_params['hrn']
- ## We do not store the email in pendingslice table. As a result receiver's email is unknown ##
- ## Need modification in pendingslice table ###
- #else:
- # subject = 'Slice created'
- # msg = 'A manager of your institution has validated your slice request. You can now add resources to the slice and start experimenting.'
- # send_mail(subject, msg, 'support@onelab.eu',['yasin.upmc@gmail.com'], fail_silently=False)
+ else:
+ clear_user_creds(wsgi_request,user_email)
+ subject = 'Slice created'
+ msg = 'A manager of your institution has validated your slice request. You can now add resources to the slice and start experimenting.'
+ send_mail(subject, msg, 'support@onelab.eu',[user_email], fail_silently=False)
return results
slice_name = request['slice_name'],
user_hrn = request['user_hrn'],
authority_hrn = request['authority_hrn'],
- number_of_nodes = request['exp_url'],
+ number_of_nodes = request['url'],
purpose = request['purpose'],
)
s.save()
}
manifold_add_account(wsgi_request, manifold_account_params)
-def sfa_create_user(wsgi_request, request):
+def sfa_create_user(wsgi_request, request, namespace = None, as_admin = False):
"""
Arguments:
wsgi_request (~ WSGIRequest) :
'user_enabled' : True
}
- query = Query.create('user').set(sfa_user_params).select('user_hrn')
- results = execute_query(wsgi_request, query)
+ if namespace is not None:
+ query = Query.create('%s:user' % namespace).set(sfa_user_params).select('user_hrn')
+ else:
+ query = Query.create('user').set(sfa_user_params).select('user_hrn')
+
+ if as_admin:
+ results = execute_admin_query(wsgi_request, query)
+ else:
+ results = execute_query(wsgi_request, query)
+
if not results:
raise Exception, "Could not create %s. Already exists ?" % sfa_user_params['user_hrn']
else:
send_mail(subject, msg, 'support@onelab.eu',[request['email']], fail_silently=False)
return results
-def create_user(wsgi_request, request):
-
+def create_user(wsgi_request, request, namespace = None, as_admin = False):
# XXX This has to be stored centrally
USER_STATUS_ENABLED = 2
# we would have to perform the steps in create_pending_user too
# Add the user to the SFA registry
- sfa_create_user(wsgi_request, request)
+ sfa_create_user(wsgi_request, request, namespace, as_admin)
# Update Manifold user status
manifold_update_user(wsgi_request, request['email'], {'status': USER_STATUS_ENABLED})