mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Merge pull request #17892 from mqliang/parallizeHealthCheck
Auto commit by PR queue bot
This commit is contained in:
commit
1a750b95e6
@ -25,6 +25,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/apiserver"
|
"k8s.io/kubernetes/pkg/apiserver"
|
||||||
"k8s.io/kubernetes/pkg/probe"
|
"k8s.io/kubernetes/pkg/probe"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
type REST struct {
|
type REST struct {
|
||||||
@ -53,11 +54,22 @@ func (rs *REST) NewList() runtime.Object {
|
|||||||
func (rs *REST) List(ctx api.Context, options *unversioned.ListOptions) (runtime.Object, error) {
|
func (rs *REST) List(ctx api.Context, options *unversioned.ListOptions) (runtime.Object, error) {
|
||||||
servers := rs.GetServersToValidate()
|
servers := rs.GetServersToValidate()
|
||||||
|
|
||||||
// TODO: This should be parallelized.
|
wait := sync.WaitGroup{}
|
||||||
reply := []api.ComponentStatus{}
|
wait.Add(len(servers))
|
||||||
for name, server := range servers {
|
statuses := make(chan api.ComponentStatus, len(servers))
|
||||||
|
for k, v := range servers {
|
||||||
|
go func(name string, server apiserver.Server) {
|
||||||
|
defer wait.Done()
|
||||||
status := rs.getComponentStatus(name, server)
|
status := rs.getComponentStatus(name, server)
|
||||||
reply = append(reply, *status)
|
statuses <- *status
|
||||||
|
}(k, v)
|
||||||
|
}
|
||||||
|
wait.Wait()
|
||||||
|
close(statuses)
|
||||||
|
|
||||||
|
reply := []api.ComponentStatus{}
|
||||||
|
for status := range statuses {
|
||||||
|
reply = append(reply, status)
|
||||||
}
|
}
|
||||||
return &api.ComponentStatusList{Items: reply}, nil
|
return &api.ComponentStatusList{Items: reply}, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user