From 02067f03abcd4f42d17bb9303d82ee3afeb8b33b Mon Sep 17 00:00:00 2001 From: Mikolaj Pawlikowski Date: Wed, 11 Mar 2020 12:48:59 +0000 Subject: [PATCH] Change PingAllPods to send an error if the client can't be created Signed-off-by: Mikolaj Pawlikowski --- pkg/goldpinger/client.go | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/pkg/goldpinger/client.go b/pkg/goldpinger/client.go index 3d01c08..8e541a7 100644 --- a/pkg/goldpinger/client.go +++ b/pkg/goldpinger/client.go @@ -81,24 +81,36 @@ func PingAllPods(pods map[string]string) *models.CheckResults { for podIP, hostIP := range pods { go func(podIP string, hostIP string) { - var channelResult PingAllPodsResult + // metrics CountCall("made", "ping") timer := GetLabeledPeersCallsTimer("ping", hostIP, podIP) start := time.Now() - resp, err := getClient(pickPodHostIP(podIP, hostIP)).Operations.Ping(nil) + // setup + var channelResult PingAllPodsResult channelResult.hostIPv4.UnmarshalText([]byte(hostIP)) - responseTime := time.Since(start).Nanoseconds() / int64(time.Millisecond) - var OK = (err == nil) - if OK { - channelResult.podResult = models.PodResult{HostIP: channelResult.hostIPv4, OK: &OK, Response: resp.Payload, StatusCode: 200, ResponseTimeMs: responseTime} - timer.ObserveDuration() - } else { + channelResult.podIP = podIP + + OK := false + var responseTime int64 + client, err := getClient(pickPodHostIP(podIP, hostIP)) + + if err != nil { channelResult.podResult = models.PodResult{HostIP: channelResult.hostIPv4, OK: &OK, Error: err.Error(), StatusCode: 500, ResponseTimeMs: responseTime} CountError("ping") + } else { + resp, err := client.Operations.Ping(nil) + responseTime = time.Since(start).Nanoseconds() / int64(time.Millisecond) + OK = (err == nil) + if OK { + channelResult.podResult = models.PodResult{HostIP: channelResult.hostIPv4, OK: &OK, Response: resp.Payload, StatusCode: 200, ResponseTimeMs: responseTime} + timer.ObserveDuration() + } else { + channelResult.podResult = models.PodResult{HostIP: channelResult.hostIPv4, OK: &OK, Error: err.Error(), StatusCode: 504, ResponseTimeMs: responseTime} + CountError("ping") + } } - channelResult.podIP = podIP ch <- channelResult wg.Done()