request['public_key'] = user.public_key
request['private_key'] = user.private_key
request['username'] = user.login
+ request['reasons'] = user.reasons
return request
def make_request_slice(slice):
try:
# Send an email: the recipients are the PI of the authority
recipients = authority_get_pi_emails(wsgi_request, request['authority_hrn'])
+
+ pis = authority_get_pis(request, request['authority_hrn'])
+ pi_emails = []
+ for x in pis:
+ for e in x['pi_users']:
+ try:
+ u = e.split(".")[1]
+ y = User.objects.get(username = u)
+ print y.username
+ if y.username.count("@") != 0:
+ if y.username.split("@")[1] == request['user_hrn'].split("@")[1]:
+ pi_emails += [y.email]
+ print y.email
+ except:
+ print "fail"
theme.template_name = 'slice_request_email.txt'
text_content = render_to_string(theme.template, request)
sender = sender.replace('\n', '')
#sender = email
- msg = EmailMultiAlternatives(subject, text_content, sender, recipients)
+ msg = EmailMultiAlternatives(subject, text_content, sender, pi_emails)
msg.attach_alternative(html_content, "text/html")
msg.send()
except Exception, e:
organization = request['username'].split('@')[1]
lsClient = LaboraSchedulerClient( organization )
- org_gidnumber = lsClient.get_testbed_info()['gidnumber']
- user_homedirectory = "/home/" + organization + "/" + request['username'].split('@')[0]
- user_homedirectory = user_homedirectory.encode('utf-8')
+ orgGIDNumber = lsClient.get_testbed_info()['gidnumber']
+ userHomeDirectory = "/home/" + organization + "/" + request['username'].split('@')[0]
+ userHomeDirectory = userHomeDirectory.encode('utf-8')
- user_data = {
+ userData = {
'username' : request['username'],
'email' : request['email'].encode('utf-8'),
'password' : request['password'].encode('utf-8'),
'name' : str( request['first_name'].encode('latin1') ) + ' ' + str( request['last_name'].encode('latin1') ),
- 'gidnumber' : org_gidnumber,
- 'homedirectory' : user_homedirectory
+ 'gidnumber' : orgGIDNumber,
+ 'homedirectory' : userHomeDirectory,
+ 'created_by' : "myslice"
}
- # Add user in the island:
- addUser = lsClient.add_user( user_data )
-
-
+ # Add user in the island.
+ addUser = lsClient.add_user( userData )
+
+ # User successfully created, upload user public key.
+ if addUser:
+ ls_update_public_key( wsgi_request, request, lsClient, addUser )
+
return addUser
def ls_validate_user(wsgi_request, request):
organization = request['username'].split('@')[1]
lsClient = LaboraSchedulerClient( organization )
- user_id = lsClient.get_user_id_by_username( { 'username': str(request['username']) } )
+ userId = lsClient.get_user_id_by_username( { 'username': str( request['username'] ) } )
validate = False
- if user_id:
- user_data = {
- 'user_id' : user_id,
+ if userId:
+ userData = {
+ 'user_id' : userId,
'new_user_data' : { 'enable': 'TRUE' }
}
- validate = lsClient.update_user( user_data )
-
- addUserPublicKey = lsClient.add_user_public_key( { 'user_id' : user_id, 'public_key': request['public_key'] } )
+ validate = lsClient.update_user( userData )
return validate and addUserPublicKey
+def ls_update_public_key( wsgi_request, request, lsClient, userId ):
+ userPbKey = {
+ 'user_id' : userId,
+ 'public_key' : request['public_key']
+ }
+
+ addUserPublicKey = lsClient.add_user_public_key( userPbKey )
+
+ return addUserPublicKey
+
def create_user(wsgi_request, request):
# XXX This has to be stored centrally
# Add reference accounts for platforms
manifold_add_reference_user_accounts(wsgi_request, request)
+ organization = request['username'].split('@')[1]
+ lsClient = LaboraSchedulerClient( organization )
+
+ userId = lsClient.get_user_id_by_username( { 'username': str( request['username'] ) } )
+
+ ls_up_pkey = ls_update_public_key( wsgi_request, request, lsClient, userId )
+
+ if ls_up_pkey:
+ print "OK PKEY"
+
from sfa.util.xrn import Xrn
auth_pi = request.get('pi', None)