Esempio n. 1
0
 def register_user(self, sfa_record, hrn, pub_key):
     # add person roles, projects and keys
     email = sfa_record.get('email', None)
     xrn = Xrn(hrn)
     name = xrn.get_leaf()
     auth_hrn = xrn.get_authority_hrn()
     tenant_name = OSXrn(xrn=auth_hrn, type='authority').get_tenant_name()
     tenant = self.shell.auth_manager.tenants.find(name=tenant_name)
     self.shell.auth_manager.users.create(name,
                                          email=email,
                                          tenant_id=tenant.id)
     user = self.shell.auth_manager.users.find(name=name)
     slices = sfa_records.get('slices', [])
     for slice in projects:
         slice_tenant_name = OSXrn(xrn=slice,
                                   type='slice').get_tenant_name()
         slice_tenant = self.shell.auth_manager.tenants.find(
             name=slice_tenant_name)
         self.shell.auth_manager.roles.add_user_role(
             user, slice_tenant, 'user')
     keys = sfa_records.get('keys', [])
     for key in keys:
         keyname = OSXrn(xrn=hrn, type='user').get_slicename()
         self.shell.nova_client.keypairs.create(keyname, key)
     return user
Esempio n. 2
0
 def register_user(self, sfa_record, hrn, pub_key):
     # add person roles, projects and keys
     email = sfa_record.get('email', None)
     xrn = Xrn(hrn)
     name = xrn.get_leaf()
     auth_hrn = xrn.get_authority_hrn()
     tenant_name = OSXrn(xrn=auth_hrn, type='authority').get_tenant_name()  
     tenant = self.shell.auth_manager.tenants.find(name=tenant_name)  
     self.shell.auth_manager.users.create(name, email=email, tenant_id=tenant.id)
     user = self.shell.auth_manager.users.find(name=name)
     slices = sfa_records.get('slices', [])
     for slice in projects:
         slice_tenant_name = OSXrn(xrn=slice, type='slice').get_tenant_name()
         slice_tenant = self.shell.auth_manager.tenants.find(name=slice_tenant_name)
         self.shell.auth_manager.roles.add_user_role(user, slice_tenant, 'user')
     keys = sfa_records.get('keys', [])
     for key in keys:
         keyname = OSXrn(xrn=hrn, type='user').get_slicename()
         self.shell.nova_client.keypairs.create(keyname, key)
     return user
Esempio n. 3
0
 def fill_user_record_info(self, record):
     xrn = Xrn(record['hrn'])
     name = xrn.get_leaf()
     record['name'] = name
     user = self.shell.auth_manager.users.find(name=name)
     record['email'] = user.email
     tenant = self.shell.auth_manager.tenants.find(id=user.tenantId)
     slices = []
     all_tenants = self.shell.auth_manager.tenants.list()
     for tmp_tenant in all_tenants:
         if tmp_tenant.name.startswith(tenant.name + "."):
             for tmp_user in tmp_tenant.list_users():
                 if tmp_user.name == user.name:
                     slice_hrn = ".".join([self.hrn, tmp_tenant.name])
                     slices.append(slice_hrn)
     record['slices'] = slices
     roles = self.shell.auth_manager.roles.roles_for_user(user, tenant)
     record['roles'] = [role.name for role in roles]
     keys = self.shell.nova_manager.keypairs.findall(name=record['hrn'])
     record['keys'] = [key.public_key for key in keys]
     return record
Esempio n. 4
0
 def fill_user_record_info(self, record):
     xrn = Xrn(record['hrn'])
     name = xrn.get_leaf()
     record['name'] = name
     user = self.shell.auth_manager.users.find(name=name)
     record['email'] = user.email
     tenant = self.shell.auth_manager.tenants.find(id=user.tenantId)
     slices = []
     all_tenants = self.shell.auth_manager.tenants.list()
     for tmp_tenant in all_tenants:
         if tmp_tenant.name.startswith(tenant.name +"."):
             for tmp_user in tmp_tenant.list_users():
                 if tmp_user.name == user.name:
                     slice_hrn = ".".join([self.hrn, tmp_tenant.name]) 
                     slices.append(slice_hrn)   
     record['slices'] = slices
     roles = self.shell.auth_manager.roles.roles_for_user(user, tenant)
     record['roles'] = [role.name for role in roles] 
     keys = self.shell.nova_manager.keypairs.findall(name=record['hrn'])
     record['keys'] = [key.public_key for key in keys]
     return record