From 2ce1d0c5093926c8258847ea5b4a8074ac1b5aba Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Wed, 4 Nov 2020 20:01:46 +0000 Subject: [PATCH 1/3] log what ips we got and make defer pickup when no ips are found --- go.mod | 2 -- ipam/azure.go | 3 +++ ipam/pool.go | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bc704d7f3e..9c4c674eb7 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,6 @@ require ( github.com/petar/GoLLRB v0.0.0-20190514000832-33fb24c13b99 // indirect github.com/prometheus/client_golang v1.0.0 github.com/prometheus/client_model v0.2.0 - github.com/satori/go.uuid v1.2.0 // indirect github.com/spf13/cobra v0.0.5 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.3.2 @@ -31,7 +30,6 @@ require ( golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect google.golang.org/appengine v1.6.5 // indirect - gopkg.in/fsnotify.v1 v1.4.7 // indirect k8s.io/api v0.18.2 k8s.io/apimachinery v0.18.2 k8s.io/client-go v0.18.2 diff --git a/ipam/azure.go b/ipam/azure.go index aed4bc9934..fb38dc4ca9 100644 --- a/ipam/azure.go +++ b/ipam/azure.go @@ -158,6 +158,7 @@ func (s *azureSource) refresh() error { continue } + addesscount := 0 // For each address in the subnet... for _, a := range s.IPAddress { // Primary addresses are reserved for the host. @@ -172,7 +173,9 @@ func (s *azureSource) refresh() error { log.Printf("[ipam] Failed to create address:%v err:%v.", address, err) continue } + addesscount++ } + log.Printf("[ipam] got %d addresses from interface %s, subnet %s", ifName, subnet) } } diff --git a/ipam/pool.go b/ipam/pool.go index 45e664a585..ea5be4c55a 100644 --- a/ipam/pool.go +++ b/ipam/pool.go @@ -515,7 +515,8 @@ func (ap *addressPool) requestAddress(address string, options map[string]string) } if ar == nil { - return "", errNoAvailableAddresses + err = errNoAvailableAddresses + return "", err } } From 20b557b736dfe546760f833cd11400c2637aec37 Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Fri, 6 Nov 2020 19:46:36 +0000 Subject: [PATCH 2/3] fix typos --- ipam/azure.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ipam/azure.go b/ipam/azure.go index fb38dc4ca9..1a0c742136 100644 --- a/ipam/azure.go +++ b/ipam/azure.go @@ -158,7 +158,7 @@ func (s *azureSource) refresh() error { continue } - addesscount := 0 + addressCount := 0 // For each address in the subnet... for _, a := range s.IPAddress { // Primary addresses are reserved for the host. @@ -173,9 +173,9 @@ func (s *azureSource) refresh() error { log.Printf("[ipam] Failed to create address:%v err:%v.", address, err) continue } - addesscount++ + addressCount++ } - log.Printf("[ipam] got %d addresses from interface %s, subnet %s", ifName, subnet) + log.Printf("[ipam] got %d addresses from interface %s, subnet %s", addressCount, ifName, subnet) } } From cc05d8baece0c99bb4230eca4b1b950f7373c855 Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Fri, 6 Nov 2020 19:49:49 +0000 Subject: [PATCH 3/3] differentiate success from failure --- ipam/pool.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ipam/pool.go b/ipam/pool.go index ea5be4c55a..71272ed335 100644 --- a/ipam/pool.go +++ b/ipam/pool.go @@ -474,24 +474,22 @@ func (ap *addressPool) newAddressRecord(addr *net.IP) (*addressRecord, error) { func (ap *addressPool) requestAddress(address string, options map[string]string) (string, error) { var ar *addressRecord var addr *net.IPNet - var err error id := options[OptAddressID] log.Printf("[ipam] Requesting address with address:%v options:%+v.", address, options) - defer func() { log.Printf("[ipam] Address request completed with address:%v err:%v.", addr, err) }() if address != "" { // Return the specific address requested. ar = ap.Addresses[address] if ar == nil { - err = errAddressNotFound - return "", err + log.Printf("[ipam] Address request failed with %v", errAddressNotFound) + return "", errAddressNotFound } if ar.InUse { // Return the same address if IDs match. if id == "" || id != ar.ID { - err = errAddressInUse - return "", err + log.Printf("[ipam] Address request failed with %v", errAddressInUse) + return "", errAddressInUse } } } else if options[OptAddressType] == OptAddressTypeGateway { @@ -515,8 +513,8 @@ func (ap *addressPool) requestAddress(address string, options map[string]string) } if ar == nil { - err = errNoAvailableAddresses - return "", err + log.Printf("[ipam] Address request failed with %v", errNoAvailableAddresses) + return "", errNoAvailableAddresses } } @@ -533,6 +531,8 @@ func (ap *addressPool) requestAddress(address string, options map[string]string) Mask: ap.Subnet.Mask, } + log.Printf("[ipam] Address request completed with address:%v", addr) + return addr.String(), nil }