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:
- add_user = lsClient.add_user( user_data )
+ # Add user in the island.
+ addUser = lsClient.add_user( userData )
- return add_user
+ # 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 )
+ validate = lsClient.update_user( userData )
return validate
+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
"""
direct_calls = [ 'get_testbed_info', 'get_users', 'add_user', 'delete_user', 'update_user',
- 'get_user_id_by_username' ]
+ 'get_user_id_by_username', 'add_user_public_key', 'delete_user_public_key' ]
def __init__ ( self, organization ):
self.url, self.key = self.getOrganizationConfigs( organization )
method_parameters.extend(['filter'])
elif actual_name == "update_user":
method_parameters.extend(['user_id', 'new_user_data'])
- elif actual_name == "delete_user":
+ elif actual_name == "delete_user" or actual_name == "delete_user_public_key":
method_parameters.extend(['user_id'])
elif actual_name == "get_user_id_by_username":
method_parameters.extend(['username'])
elif actual_name == "add_user":
method_parameters.extend(['username', 'email', 'password', 'name', 'gidnumber',
- 'homedirectory'])
+ 'homedirectory', 'created_by'])
+ elif actual_name == "add_user_public_key":
+ method_parameters.extend(['user_id', 'public_key'])
for parameter in args:
if isinstance(parameter, (frozenset, list, set, tuple, dict)):
databaseConfig = {
'dbHost' : '10.128.11.200',
- 'dbUser' : '',
- 'dbPassword' : '',
+ 'dbUser' : 'postgres',
+ 'dbPassword' : '5e6b70f2e9dc',
'dbName' : 'LaboraSchedulerNOC'
}