Skip to content

Commit 1b5c410

Browse files
authored
Merge pull request #99 from XiaoMi/develop
fix: fix fetching services' and pods' data bug
2 parents 9e5e07a + 3a928b5 commit 1b5c410

File tree

2 files changed

+13
-21
lines changed

2 files changed

+13
-21
lines changed

src/api/handler/service.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@
1515
package handler
1616

1717
import (
18+
"github.com/gin-gonic/gin"
1819
"github.com/xiaomi/naftis/src/api/bootstrap"
1920
"github.com/xiaomi/naftis/src/api/service"
2021
"github.com/xiaomi/naftis/src/api/util"
21-
22-
"github.com/gin-gonic/gin"
2322
)
2423

2524
// Services returns all available services.

src/api/service/kube.go

+12-19
Original file line numberDiff line numberDiff line change
@@ -352,39 +352,32 @@ func (k *kubeInfo) sync() {
352352

353353
// get services' and pods' data from Kubernetes
354354
var serviceCh = make(chan service, 200)
355-
var podCh = make(chan v1.Pod, 100)
356-
357355
k.wg.Add(len(svcs.Items))
358356
for _, i := range svcs.Items {
359357
go func(i v1.Service) {
360358
s := service{}
361359
s.Service = i
362360
s.Pods = k.podsFromK8S(i.Spec.Selector)
363-
for _, p := range s.Pods {
364-
podCh <- p
365-
}
366361
serviceCh <- s
367-
k.wg.Done()
368362
}(i)
369363
}
370-
go func() {
371-
k.wg.Wait()
372-
close(serviceCh)
373-
close(podCh)
374-
}()
375364

376365
services := make([]service, 0, len(svcs.Items))
377-
for s := range serviceCh {
378-
services = append(services, s)
379-
}
380-
381366
tmpPods := make(map[string]v1.Pod)
382367
pods := make(pods, 0)
383-
for p := range podCh {
384-
if _, ok := tmpPods[string(p.UID)]; !ok {
385-
pods = append(pods, p)
368+
go func() {
369+
for s := range serviceCh {
370+
services = append(services, s)
371+
for _, p := range s.Pods {
372+
if _, ok := tmpPods[string(p.UID)]; !ok {
373+
pods = append(pods, p)
374+
}
375+
}
376+
k.wg.Done()
386377
}
387-
}
378+
}()
379+
k.wg.Wait()
380+
close(serviceCh)
388381

389382
k.mtx.Lock()
390383
k.services = services

0 commit comments

Comments
 (0)