コード例 #1
0
 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
コード例 #2
0
    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)