def fill_auth_record_info(self, record): tenant_name = hrn_to_os_tenant_name(record['hrn']) tenant = self.shell.auth_manager.tenants.find(name=tenant_name) researchers = [] pis = [] # look for users and pis in slice tenant for user in tenant.list_users(): for role in self.shell.auth_manager.roles.roles_for_user(user, tenant): hrn = ".".join([self.hrn, tenant.name, user.name]) if role.name.lower() == 'pi': pis.append(hrn) elif role.name.lower() in ['user', 'member']: researchers.append(hrn) # look for slices slices = [] all_tenants = self.shell.auth_manager.tenants.list() for tmp_tenant in all_tenants: if tmp_tenant.name.startswith(tenant.name+"."): slices.append(".".join([self.hrn, tmp_tenant.name])) record['name'] = tenant_name record['description'] = tenant.description record['PI'] = pis record['enabled'] = tenant.enabled record['researchers'] = researchers record['slices'] = slices return record
def fill_auth_record_info(self, record): tenant_name = hrn_to_os_tenant_name(record['hrn']) tenant = self.shell.auth_manager.tenants.find(name=tenant_name) researchers = [] pis = [] # look for users and pis in slice tenant for user in tenant.list_users(): for role in self.shell.auth_manager.roles.roles_for_user( user, tenant): hrn = ".".join([self.hrn, tenant.name, user.name]) if role.name.lower() == 'pi': pis.append(hrn) elif role.name.lower() in ['user', 'member']: researchers.append(hrn) # look for slices slices = [] all_tenants = self.shell.auth_manager.tenants.list() for tmp_tenant in all_tenants: if tmp_tenant.name.startswith(tenant.name + "."): slices.append(".".join([self.hrn, tmp_tenant.name])) record['name'] = tenant_name record['description'] = tenant.description record['PI'] = pis record['enabled'] = tenant.enabled record['researchers'] = researchers record['slices'] = slices return record
def register_slice(self, sfa_record, hrn): # add slice description, name, researchers, PI name = hrn_to_os_tenant_name(hrn) description = sfa_record.get('description', None) self.shell.auth_manager.tenants.create(name, description) tenant = self.shell.auth_manager.tenants.find(name=name) auth_hrn = OSXrn(xrn=hrn, type='slice').get_authority_hrn() parent_tenant_name = OSXrn(xrn=auth_hrn, type='slice').get_tenant_name() parent_tenant = self.shell.auth_manager.tenants.find( name=parent_tenant_name) researchers = sfa_record.get('researchers', []) for researcher in researchers: name = Xrn(researcher).get_leaf() user = self.shell.auth_manager.users.find(name=name) self.shell.auth_manager.roles.add_user_role(user, 'Member', tenant) self.shell.auth_manager.roles.add_user_role(user, 'user', tenant) pis = sfa_record.get('pis', []) for pi in pis: name = Xrn(pi).get_leaf() user = self.shell.auth_manager.users.find(name=name) self.shell.auth_manager.roles.add_user_role(user, 'pi', tenant) self.shell.auth_manager.roles.add_user_role( user, 'pi', parent_tenant) return tenant
def register_slice(self, sfa_record, hrn): # add slice description, name, researchers, PI name = hrn_to_os_tenant_name(hrn) description = sfa_record.get('description', None) self.shell.auth_manager.tenants.create(name, description) tenant = self.shell.auth_manager.tenants.find(name=name) auth_hrn = OSXrn(xrn=hrn, type='slice').get_authority_hrn() parent_tenant_name = OSXrn(xrn=auth_hrn, type='slice').get_tenant_name() parent_tenant = self.shell.auth_manager.tenants.find(name=parent_tenant_name) researchers = sfa_record.get('researchers', []) for researcher in researchers: name = Xrn(researcher).get_leaf() user = self.shell.auth_manager.users.find(name=name) self.shell.auth_manager.roles.add_user_role(user, 'Member', tenant) self.shell.auth_manager.roles.add_user_role(user, 'user', tenant) pis = sfa_record.get('pis', []) for pi in pis: name = Xrn(pi).get_leaf() user = self.shell.auth_manager.users.find(name=name) self.shell.auth_manager.roles.add_user_role(user, 'pi', tenant) self.shell.auth_manager.roles.add_user_role(user, 'pi', parent_tenant) return tenant
def fill_slice_record_info(self, record): tenant_name = hrn_to_os_tenant_name(record['hrn']) tenant = self.shell.auth_manager.tenants.find(name=tenant_name) parent_tenant_name = OSXrn(xrn=tenant_name).get_authority_hrn() parent_tenant = self.shell.auth_manager.tenants.find( name=parent_tenant_name) researchers = [] pis = [] # look for users and pis in slice tenant for user in tenant.list_users(): for role in self.shell.auth_manager.roles.roles_for_user( user, tenant): if role.name.lower() == 'pi': user_tenant = self.shell.auth_manager.tenants.find( id=user.tenantId) hrn = ".".join([self.hrn, user_tenant.name, user.name]) pis.append(hrn) elif role.name.lower() in ['user', 'member']: user_tenant = self.shell.auth_manager.tenants.find( id=user.tenantId) hrn = ".".join([self.hrn, user_tenant.name, user.name]) researchers.append(hrn) # look for pis in the slice's parent (site/organization) tenant for user in parent_tenant.list_users(): for role in self.shell.auth_manager.roles.roles_for_user( user, parent_tenant): if role.name.lower() == 'pi': user_tenant = self.shell.auth_manager.tenants.find( id=user.tenantId) hrn = ".".join([self.hrn, user_tenant.name, user.name]) pis.append(hrn) record['name'] = tenant_name record['description'] = tenant.description record['PI'] = pis if pis: record['geni_creator'] = pis[0] else: record['geni_creator'] = None record['researcher'] = researchers return record
def fill_slice_record_info(self, record): tenant_name = hrn_to_os_tenant_name(record['hrn']) tenant = self.shell.auth_manager.tenants.find(name=tenant_name) auth_tenant_name = OSXrn(xrn=tenant_name).get_authority_hrn() auth_tenant = self.shell.auth_manager.tenants.find(name=auth_tenant_name) researchers = [] pis = [] # look for users and pis in slice tenant for user in tenant.list_users(): for role in self.shell.auth_manager.roles.roles_for_user(user, tenant): if role.name.lower() == 'pi': user_tenant = self.shell.auth_manager.tenants.find(id=user.tenantId) hrn = ".".join([self.hrn, user_tenant.name, user.name]) pis.append(hrn) elif role.name.lower() in ['user', 'member']: user_tenant = self.shell.auth_manager.tenants.find(id=user.tenantId) hrn = ".".join([self.hrn, user_tenant.name, user.name]) researchers.append(hrn) # look for pis in the slice's parent (site/organization) tenant for user in auth_tenant.list_users(): for role in self.shell.auth_manager.roles.roles_for_user(user, auth_tenant): if role.name.lower() == 'pi': user_tenant = self.shell.auth_manager.tenants.find(id=user.tenantId) hrn = ".".join([self.hrn, user_tenant.name, user.name]) pis.append(hrn) record['name'] = tenant_name record['description'] = tenant.description record['PI'] = pis if pis: record['geni_creator'] = pis[0] else: record['geni_creator'] = None record['researcher'] = researchers return record