def list_by_tenant_id(self, tenant_id, query="", page=None, page_size=None): regions = region_repo.list_by_tenant_id(tenant_id, query, page, page_size) total = region_repo.count_by_tenant_id(tenant_id, query) return regions, total
def delete_by_tenant_id(self, tenant_id): service_count = self.count_by_tenant_id(tenant_id=tenant_id) if service_count >= 1: raise ErrStillHasServices # list all related regions tenant_regions = region_repo.list_by_tenant_id(tenant_id) success_count = 0 for tenant_region in tenant_regions: try: # There is no guarantee that the deletion of each tenant can be successful. region_api.delete_tenant(tenant_region["region_name"], tenant_region["tenant_name"]) success_count = success_count + 1 except Exception as e: logger.error( "tenantid: {}; region name: {}; delete tenant: {}".format( tenant_id, tenant_region["tenant_name"], e)) # The current strategy is that if a tenant is deleted successfully, it is considered successful. # For tenants that have not been deleted successfully, other deletion paths need to be taken. if success_count == 0: raise ErrAllTenantDeletionFailed team_repo.delete_by_tenant_id(tenant_id=tenant_id)