From 376132c9a63ab1771fd032bee934f7ac27661f85 Mon Sep 17 00:00:00 2001 From: yankaiz Date: Mon, 29 Oct 2018 12:26:24 -0700 Subject: [PATCH] Remove return value of mergeHealthChecks. Simplified HC equivalence check. --- .../gce/gce_loadbalancer_external.go | 21 ++++++++++++------ .../gce/gce_loadbalancer_internal.go | 22 ++++++++++++------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go index dedebe71255..8a332871e7d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go @@ -636,7 +636,7 @@ func makeHTTPHealthCheck(name, path string, port int32) *compute.HttpHealthCheck // The HC interval will be reconciled to 8 seconds. // If the existing health check is larger than the default interval, // the configuration will be kept. -func mergeHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) *compute.HttpHealthCheck { +func mergeHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) { if hc.CheckIntervalSec > newHC.CheckIntervalSec { newHC.CheckIntervalSec = hc.CheckIntervalSec } @@ -649,16 +649,23 @@ func mergeHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) *compute.HttpHeal if hc.HealthyThreshold > newHC.HealthyThreshold { newHC.HealthyThreshold = hc.HealthyThreshold } - return newHC } // needToUpdateHTTPHealthChecks checks whether the http healthcheck needs to be // updated. func needToUpdateHTTPHealthChecks(hc, newHC *compute.HttpHealthCheck) bool { - changed := hc.Port != newHC.Port || hc.RequestPath != newHC.RequestPath || hc.Description != newHC.Description - changed = changed || hc.CheckIntervalSec < newHC.CheckIntervalSec || hc.TimeoutSec < newHC.TimeoutSec - changed = changed || hc.UnhealthyThreshold < newHC.UnhealthyThreshold || hc.HealthyThreshold < newHC.HealthyThreshold - return changed + switch { + case + hc.Port != newHC.Port, + hc.RequestPath != newHC.RequestPath, + hc.Description != newHC.Description, + hc.CheckIntervalSec < newHC.CheckIntervalSec, + hc.TimeoutSec < newHC.TimeoutSec, + hc.UnhealthyThreshold < newHC.UnhealthyThreshold, + hc.HealthyThreshold < newHC.HealthyThreshold: + return true + } + return false } func (g *Cloud) ensureHTTPHealthCheck(name, path string, port int32) (hc *compute.HttpHealthCheck, err error) { @@ -681,7 +688,7 @@ func (g *Cloud) ensureHTTPHealthCheck(name, path string, port int32) (hc *comput klog.V(4).Infof("Checking http health check params %s", name) if needToUpdateHTTPHealthChecks(hc, newHC) { klog.Warningf("Health check %v exists but parameters have drifted - updating...", name) - newHC = mergeHTTPHealthChecks(hc, newHC) + mergeHTTPHealthChecks(hc, newHC) if err := g.UpdateHTTPHealthCheck(newHC); err != nil { klog.Warningf("Failed to reconcile http health check %v parameters", name) return nil, err diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go index 88560a9f961..0ae34885920 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go @@ -420,7 +420,7 @@ func (g *Cloud) ensureInternalHealthCheck(name string, svcName types.NamespacedN if needToUpdateHealthChecks(hc, expectedHC) { klog.V(2).Infof("ensureInternalHealthCheck: health check %v exists but parameters have drifted - updating...", name) - expectedHC = mergeHealthChecks(hc, expectedHC) + mergeHealthChecks(hc, expectedHC) if err := g.UpdateHealthCheck(expectedHC); err != nil { klog.Warningf("Failed to reconcile http health check %v parameters", name) return nil, err @@ -642,7 +642,7 @@ func firewallRuleEqual(a, b *compute.Firewall) bool { // The HC interval will be reconciled to 8 seconds. // If the existing health check is larger than the default interval, // the configuration will be kept. -func mergeHealthChecks(hc, newHC *compute.HealthCheck) *compute.HealthCheck { +func mergeHealthChecks(hc, newHC *compute.HealthCheck) { if hc.CheckIntervalSec > newHC.CheckIntervalSec { newHC.CheckIntervalSec = hc.CheckIntervalSec } @@ -655,18 +655,24 @@ func mergeHealthChecks(hc, newHC *compute.HealthCheck) *compute.HealthCheck { if hc.HealthyThreshold > newHC.HealthyThreshold { newHC.HealthyThreshold = hc.HealthyThreshold } - return newHC } // needToUpdateHealthChecks checks whether the healthcheck needs to be updated. func needToUpdateHealthChecks(hc, newHC *compute.HealthCheck) bool { - if hc.HttpHealthCheck == nil || newHC.HttpHealthCheck == nil { + switch { + case + hc.HttpHealthCheck == nil, + newHC.HttpHealthCheck == nil, + hc.HttpHealthCheck.Port != newHC.HttpHealthCheck.Port, + hc.HttpHealthCheck.RequestPath != newHC.HttpHealthCheck.RequestPath, + hc.Description != newHC.Description, + hc.CheckIntervalSec < newHC.CheckIntervalSec, + hc.TimeoutSec < newHC.TimeoutSec, + hc.UnhealthyThreshold < newHC.UnhealthyThreshold, + hc.HealthyThreshold < newHC.HealthyThreshold: return true } - changed := hc.HttpHealthCheck.Port != newHC.HttpHealthCheck.Port || hc.HttpHealthCheck.RequestPath != newHC.HttpHealthCheck.RequestPath || hc.Description != newHC.Description - changed = changed || hc.CheckIntervalSec < newHC.CheckIntervalSec || hc.TimeoutSec < newHC.TimeoutSec - changed = changed || hc.UnhealthyThreshold < newHC.UnhealthyThreshold || hc.HealthyThreshold < newHC.HealthyThreshold - return changed + return false } // backendsListEqual asserts that backend lists are equal by instance group link only