|
|
|
@@ -15,8 +15,9 @@ import ( |
|
|
|
) |
|
|
|
|
|
|
|
const ( |
|
|
|
ADAPTERID = "1777144940459986944" // 异构适配器id |
|
|
|
QUERY_RESOURCES = "query_resources" |
|
|
|
ADAPTERID = "1777144940459986944" // 异构适配器id |
|
|
|
QUERY_TRAIN_RESOURCES = "train_resources" |
|
|
|
QUERY_INFERENCE_RESOURCES = "inference_resources" |
|
|
|
) |
|
|
|
|
|
|
|
type QueryResourcesLogic struct { |
|
|
|
@@ -41,25 +42,29 @@ func (l *QueryResourcesLogic) QueryResources(req *types.QueryResourcesReq) (resp |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
resources, ok := l.svcCtx.Scheduler.AiService.LocalCache[QUERY_RESOURCES] |
|
|
|
|
|
|
|
var resources interface{} |
|
|
|
switch req.Type { |
|
|
|
case "Train": |
|
|
|
resources, _ = l.svcCtx.Scheduler.AiService.LocalCache[QUERY_TRAIN_RESOURCES] |
|
|
|
case "Inference": |
|
|
|
resources, _ = l.svcCtx.Scheduler.AiService.LocalCache[QUERY_INFERENCE_RESOURCES] |
|
|
|
default: |
|
|
|
resources, _ = l.svcCtx.Scheduler.AiService.LocalCache[QUERY_TRAIN_RESOURCES] |
|
|
|
} |
|
|
|
|
|
|
|
specs, ok := resources.([]*collector.ResourceSpec) |
|
|
|
if ok { |
|
|
|
specs, ok := resources.([]*collector.ResourceSpec) |
|
|
|
if ok { |
|
|
|
results := handleEmptyResourceUsage(cs.List, specs) |
|
|
|
resp.Data = results |
|
|
|
return resp, nil |
|
|
|
} |
|
|
|
results := handleEmptyResourceUsage(cs.List, specs) |
|
|
|
resp.Data = results |
|
|
|
return resp, nil |
|
|
|
} |
|
|
|
|
|
|
|
rus, err := l.QueryResourcesByClusterId(cs.List) |
|
|
|
rus, err := l.QueryResourcesByClusterId(cs.List, req.Type) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
|
|
|
|
if checkCachingCondition(cs.List, rus) { |
|
|
|
l.svcCtx.Scheduler.AiService.LocalCache[QUERY_RESOURCES] = rus |
|
|
|
} |
|
|
|
|
|
|
|
results := handleEmptyResourceUsage(cs.List, rus) |
|
|
|
resp.Data = results |
|
|
|
|
|
|
|
@@ -77,7 +82,7 @@ func (l *QueryResourcesLogic) QueryResources(req *types.QueryResourcesReq) (resp |
|
|
|
return nil, errors.New("no clusters found ") |
|
|
|
} |
|
|
|
|
|
|
|
rus, err := l.QueryResourcesByClusterId(clusters) |
|
|
|
rus, err := l.QueryResourcesByClusterId(clusters, req.Type) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
@@ -89,7 +94,7 @@ func (l *QueryResourcesLogic) QueryResources(req *types.QueryResourcesReq) (resp |
|
|
|
return resp, nil |
|
|
|
} |
|
|
|
|
|
|
|
func (l *QueryResourcesLogic) QueryResourcesByClusterId(clusterinfos []types.ClusterInfo) ([]*collector.ResourceSpec, error) { |
|
|
|
func (l *QueryResourcesLogic) QueryResourcesByClusterId(clusterinfos []types.ClusterInfo, resrcType string) ([]*collector.ResourceSpec, error) { |
|
|
|
var clusters []types.ClusterInfo |
|
|
|
if len(clusterinfos) == 0 { |
|
|
|
cs, err := l.svcCtx.Scheduler.AiStorages.GetClustersByAdapterId(ADAPTERID) |
|
|
|
@@ -121,7 +126,7 @@ func (l *QueryResourcesLogic) QueryResourcesByClusterId(clusterinfos []types.Clu |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
u, err = col.GetResourceSpecs(l.ctx) |
|
|
|
u, err = col.GetResourceSpecs(l.ctx, resrcType) |
|
|
|
if err != nil { |
|
|
|
done <- true |
|
|
|
return |
|
|
|
|