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
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
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
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