def _get_metadata(self, user_id=None, tenant_id=None, domain_id=None, group_id=None, session=None): # TODO(henry-nash): This method represents the last vestiges of the old # metadata concept in this driver. Although we no longer need it here, # since the Manager layer uses the metadata concept across all # assignment drivers, we need to remove it from all of them in order to # finally remove this method. # We aren't given a session when called by the manager directly. if session is None: session = sql.get_session() q = session.query(RoleAssignment) q = q.filter_by(actor_id=user_id or group_id) q = q.filter_by(target_id=tenant_id or domain_id) refs = q.all() if not refs: raise exception.MetadataNotFound() metadata_ref = {} metadata_ref['roles'] = [] for assignment in refs: role_ref = {} role_ref['id'] = assignment.role_id if assignment.inherited and ( assignment.type == AssignmentType.USER_DOMAIN or assignment.type == AssignmentType.GROUP_DOMAIN): role_ref['inherited_to'] = 'projects' metadata_ref['roles'].append(role_ref) return metadata_ref
def get_metadata(self, user_id=None, tenant_id=None, domain_id=None, group_id=None): session = self.get_session() if user_id: if tenant_id: q = session.query(UserProjectGrant) q = q.filter_by(project_id=tenant_id) elif domain_id: q = session.query(UserDomainGrant) q = q.filter_by(domain_id=domain_id) q = q.filter_by(user_id=user_id) elif group_id: if tenant_id: q = session.query(GroupProjectGrant) q = q.filter_by(project_id=tenant_id) elif domain_id: q = session.query(GroupDomainGrant) q = q.filter_by(domain_id=domain_id) q = q.filter_by(group_id=group_id) try: return q.one().data except sql.NotFound: raise exception.MetadataNotFound()
def _get_metadata(self, user_id=None, tenant_id=None, domain_id=None, group_id=None, session=None): # We aren't given a session when called by the manager directly. if session is None: session = db_session.get_session() if user_id: if tenant_id: q = session.query(UserProjectGrant) q = q.filter_by(project_id=tenant_id) elif domain_id: q = session.query(UserDomainGrant) q = q.filter_by(domain_id=domain_id) q = q.filter_by(user_id=user_id) elif group_id: if tenant_id: q = session.query(GroupProjectGrant) q = q.filter_by(project_id=tenant_id) elif domain_id: q = session.query(GroupDomainGrant) q = q.filter_by(domain_id=domain_id) q = q.filter_by(group_id=group_id) try: return q.one().data except sql.NotFound: raise exception.MetadataNotFound()
def get_metadata(self, user_id, tenant_id): session = self.get_session() query = session.query(Metadata) query = query.filter_by(user_id=user_id) query = query.filter_by(tenant_id=tenant_id) metadata_ref = query.first() if metadata_ref is None: raise exception.MetadataNotFound() return metadata_ref.data
def get_metadata(self, user_id, tenant_id=None, domain_id=None): session = self.get_session() if tenant_id: q = session.query(UserProjectMetadata) q = q.filter_by(tenant_id=tenant_id) elif domain_id: q = session.query(UserDomainMetadata) q = q.filter_by(domain_id=domain_id) q = q.filter_by(user_id=user_id) try: return q.one().data except sql.NotFound: raise exception.MetadataNotFound()
def _get_metadata(self, user_id=None, tenant_id=None, domain_id=None, group_id=None): try: if user_id: if tenant_id: return self.db.get('metadata-%s-%s' % (tenant_id, user_id)) else: return self.db.get('metadata-%s-%s' % (domain_id, user_id)) else: if tenant_id: return self.db.get('metadata-%s-%s' % (tenant_id, group_id)) else: return self.db.get('metadata-%s-%s' % (domain_id, group_id)) except exception.NotFound: raise exception.MetadataNotFound()
def get_metadata(self, user_id, tenant_id): try: return self.db.get('metadata-%s-%s' % (tenant_id, user_id)) except exception.NotFound: raise exception.MetadataNotFound()