def get_by_uuid_or_slug(self, scoping_tenant_uuid, id_): visible_tenants = self._tenant_tree.list_visible_tenant_uuids_with_slugs( scoping_tenant_uuid) for tenant_uuid, tenant_slug in visible_tenants: if tenant_uuid == id_ or tenant_slug == id_: return self._get(tenant_uuid) raise exceptions.UnknownTenantException(id_)
def delete(self, scoping_tenant_uuid, uuid): visible_tenants = self.list_sub_tenants(scoping_tenant_uuid) if uuid not in visible_tenants: raise exceptions.UnknownTenantException(uuid) result = self._dao.tenant.delete(uuid) event = events.TenantDeletedEvent(uuid) self._bus_publisher.publish(event, headers={'tenant_uuid': uuid}) return result
def update(self, scoping_tenant_uuid, tenant_uuid, **kwargs): visible_tenants = self.list_sub_tenants(scoping_tenant_uuid) if tenant_uuid not in visible_tenants: raise exceptions.UnknownTenantException(tenant_uuid) address_id = self._dao.tenant.get_address_id(tenant_uuid) if not address_id: address_id = self._dao.address.new(**kwargs['address']) else: address_id, self._dao.address.update(address_id, **kwargs['address']) self._dao.tenant.update(tenant_uuid, address_id=address_id, **kwargs) result = self._get(tenant_uuid) event = events.TenantUpdatedEvent(tenant_uuid, result.get('name')) self._bus_publisher.publish(event) return result
def _get(self, uuid): tenants = self._dao.tenant.list_(uuid=uuid, limit=1) for tenant in tenants: return tenant raise exceptions.UnknownTenantException(uuid)
def get(self, scoping_tenant_uuid, uuid): visible_tenants = self.list_sub_tenants(scoping_tenant_uuid) if uuid not in visible_tenants: raise exceptions.UnknownTenantException(uuid) return self._get(uuid)
def count_users(self, tenant_uuid, **kwargs): result = self._dao.tenant.count_users(tenant_uuid, **kwargs) if not result and not self._dao.tenant.exists(tenant_uuid): raise exceptions.UnknownTenantException(tenant_uuid) return result
def assert_tenant_under(self, scoping_tenant_uuid, tenant_uuid): visible_tenants = self.list_sub_tenants(scoping_tenant_uuid) if str(tenant_uuid) not in visible_tenants: raise exceptions.UnknownTenantException(tenant_uuid)