Skip to content

Commit 74645a2

Browse files
author
isaac
committed
Simplify error handling
- Most of the error handling in these batch update funcs can be removed. The caller only logs the errors anyway. - Fix a few rebase issues.
1 parent fc82d25 commit 74645a2

File tree

2 files changed

+29
-44
lines changed

2 files changed

+29
-44
lines changed

internal/controller/controller.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -278,19 +278,19 @@ func (lbc *LoadBalancerController) syncEndpoint(task queue.Task) {
278278
ings := lbc.getIngressForEndpoints(obj)
279279

280280
var ingExes []*nginx.IngressEx
281-
var mergableIngressesBatch []*nginx.MergeableIngresses
281+
var mergableIngressesSlice []*nginx.MergeableIngresses
282282

283283
for i := range ings {
284-
if !lbc.isNginxIngress(&ings[i]) {
284+
if !lbc.IsNginxIngress(&ings[i]) {
285285
continue
286286
}
287-
if isMinion(&ings[i]) {
288-
master, err := lbc.findMasterForMinion(&ings[i])
287+
if utils.IsMinion(&ings[i]) {
288+
master, err := lbc.FindMasterForMinion(&ings[i])
289289
if err != nil {
290290
glog.Errorf("Ignoring Ingress %v(Minion): %v", ings[i].Name, err)
291291
continue
292292
}
293-
if !lbc.configurator.HasIngress(master) {
293+
if !lbc.configurator.HasMinion(master, &ings[i]) {
294294
continue
295295
}
296296
mergeableIngresses, err := lbc.createMergableIngresses(master)
@@ -299,10 +299,10 @@ func (lbc *LoadBalancerController) syncEndpoint(task queue.Task) {
299299
continue
300300
}
301301

302-
mergableIngressesBatch = append(mergableIngressesBatch, mergeableIngresses)
302+
mergableIngressesSlice = append(mergableIngressesSlice, mergeableIngresses)
303303
continue
304304
}
305-
if !lbc.cnf.HasIngress(&ings[i]) {
305+
if !lbc.configurator.HasIngress(&ings[i]) {
306306
continue
307307
}
308308
ingEx, err := lbc.createIngress(&ings[i])
@@ -313,19 +313,20 @@ func (lbc *LoadBalancerController) syncEndpoint(task queue.Task) {
313313
ingExes = append(ingExes, ingEx)
314314
}
315315

316-
if len(ingExes) == 0 {
317-
return
316+
if len(ingExes) > 0 {
317+
glog.V(3).Infof("Updating Endpoints for %v", ingExes)
318+
err = lbc.configurator.UpdateEndpoints(ingExes)
319+
if err != nil {
320+
glog.Errorf("Error updating endpoints for %v: %v", ingExes, err)
321+
}
318322
}
319323

320-
glog.V(3).Infof("Updating Endpoints for %v", ingExes)
321-
lbc.cnf.UpdateEndpoints(ingExes)
322-
if err != nil {
323-
glog.Errorf("Error updating endpoints for %v: %v", ingExes, err)
324-
}
325-
glog.V(3).Infof("Updating Endpoints for %v", mergableIngressesBatch)
326-
err = lbc.cnf.UpdateEndpointsMergeableIngress(mergableIngressesBatch)
327-
if err != nil {
328-
glog.Errorf("Error updating endpoints for %v: %v", mergableIngressesBatch, err)
324+
if len(mergableIngressesSlice) > 0 {
325+
glog.V(3).Infof("Updating Endpoints for %v", mergableIngressesSlice)
326+
err = lbc.configurator.UpdateEndpointsMergeableIngress(mergableIngressesSlice)
327+
if err != nil {
328+
glog.Errorf("Error updating endpoints for %v: %v", mergableIngressesSlice, err)
329+
}
329330
}
330331
}
331332
}
@@ -1138,9 +1139,8 @@ func (lbc *LoadBalancerController) IsNginxIngress(ing *extensions.Ingress) bool
11381139
return class == lbc.ingressClass
11391140
}
11401141
return class == lbc.ingressClass || class == ""
1141-
} else {
1142-
return !lbc.useIngressClassOnly
11431142
}
1143+
return !lbc.useIngressClassOnly
11441144
}
11451145

11461146
// isHealthCheckEnabled checks if health checks are enabled so we can only query pods if enabled.

internal/nginx/configurator.go

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -994,48 +994,33 @@ func (cnf *Configurator) UpdateEndpoints(ingExes []*IngressEx) error {
994994
}
995995

996996
// UpdateEndpointsMergeableIngress updates endpoints in NGINX configuration for a mergeable Ingress resource
997-
func (cnf *Configurator) UpdateEndpointsMergeableIngress(mergableIngressesBatch []*MergeableIngresses) error {
997+
func (cnf *Configurator) UpdateEndpointsMergeableIngress(mergableIngressesSlice []*MergeableIngresses) error {
998998
reloadPlus := false
999-
errors := []error{}
1000-
for i := range mergableIngressesBatch {
1001-
err := cnf.addOrUpdateMergeableIngress(mergableIngressesBatch[i])
999+
for i := range mergableIngressesSlice {
1000+
err := cnf.addOrUpdateMergeableIngress(mergableIngressesSlice[i])
10021001
if err != nil {
1003-
glog.V(3).Infof("Error adding or updating ingress %v/%v: %v", mergableIngressesBatch[i].Master.Ingress.Namespace, mergableIngressesBatch[i].Master.Ingress.Name, err)
1004-
errors = append(errors, err)
1005-
continue
1002+
return fmt.Errorf("Error adding or updating mergeableIngress %v/%v: %v", mergableIngressesSlice[i].Master.Ingress.Namespace, mergableIngressesSlice[i].Master.Ingress.Name, err)
10061003
}
10071004

10081005
if cnf.isPlus() {
1009-
for _, ing := range mergableIngressesBatch[i].Minions {
1006+
for _, ing := range mergableIngressesSlice[i].Minions {
10101007
err = cnf.updatePlusEndpoints(ing)
10111008
if err != nil {
10121009
glog.Warningf("Couldn't update the endpoints via the API: %v; reloading configuration instead", err)
1013-
errors = append(errors, err)
10141010
reloadPlus = true
1015-
break
10161011
}
10171012
}
10181013
}
10191014
}
10201015
if cnf.isPlus() && !reloadPlus {
1021-
return consolodiateErrors(errors)
1016+
glog.V(3).Info("No need to reload nginx")
1017+
return nil
10221018
}
10231019

10241020
if err := cnf.nginx.Reload(); err != nil {
1025-
return fmt.Errorf("Error reloading NGINX: %v. additional errors: %v", err, consolodiateErrors(errors))
1026-
}
1027-
return consolodiateErrors(errors)
1028-
}
1029-
1030-
func consolodiateErrors(errors []error) error {
1031-
errorString := ""
1032-
if len(errors) == 0 {
1033-
return nil
1021+
return fmt.Errorf("Error reloading NGINX when updating endpoints for %v: %v", mergableIngressesSlice, err)
10341022
}
1035-
for _, e := range errors {
1036-
errorString = errorString + e.Error()
1037-
}
1038-
return fmt.Errorf(errorString)
1023+
return nil
10391024
}
10401025

10411026
func (cnf *Configurator) updatePlusEndpoints(ingEx *IngressEx) error {

0 commit comments

Comments
 (0)