diff --git a/pkg/compute/models/hostresource.go b/pkg/compute/models/hostresource.go index 2e83775827..249bc1651b 100644 --- a/pkg/compute/models/hostresource.go +++ b/pkg/compute/models/hostresource.go @@ -112,8 +112,11 @@ func (manager *SHostResourceBaseManager) FetchCustomizeColumns( zoneRows := manager.SZoneResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, zoneList, fields, isList) managerRows := manager.SManagedResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, managerList, fields, isList) for i := range rows { - rows[i].ZoneResourceInfo = zoneRows[i] - rows[i].ManagedResourceInfo = managerRows[i] + // 避免调度失败的机器返回错误的provider信息 + if len(hostIds[i]) > 0 { + rows[i].ZoneResourceInfo = zoneRows[i] + rows[i].ManagedResourceInfo = managerRows[i] + } } return rows diff --git a/pkg/compute/models/managedresource.go b/pkg/compute/models/managedresource.go index d8a9381039..8c605f0cda 100644 --- a/pkg/compute/models/managedresource.go +++ b/pkg/compute/models/managedresource.go @@ -220,8 +220,8 @@ func (manager *SManagedResourceBaseManager) FetchCustomizeColumns( return rows } - accountIds := make([]string, 0) - projectIds := make([]string, 0) + accountIds := make([]string, len(objs)) + projectIds := make([]string, len(objs)) for i := range rows { if _, ok := managers[managerIds[i]]; ok { manager := managers[managerIds[i]] @@ -229,12 +229,9 @@ func (manager *SManagedResourceBaseManager) FetchCustomizeColumns( rows[i].ManagerDomainId = manager.DomainId rows[i].ManagerProjectId = manager.ProjectId rows[i].AccountId = manager.CloudaccountId - if len(manager.ProjectId) > 0 { - projectIds = append(projectIds, manager.ProjectId) - } - if len(manager.CloudaccountId) > 0 { - accountIds = append(accountIds, manager.CloudaccountId) - } + + projectIds[i] = manager.ProjectId + accountIds[i] = manager.CloudaccountId } }