From a511cd334f4b16f59befed8de73d89847db612de Mon Sep 17 00:00:00 2001 From: Tristan Morgan Date: Fri, 24 Jan 2025 10:47:04 +1100 Subject: [PATCH] replace multierror with errors package. --- bgp/bgp_nonwindows.go | 30 ++++++++++++++---------------- bgp/bgp_nonwindows_test.go | 1 + go.mod | 2 +- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/bgp/bgp_nonwindows.go b/bgp/bgp_nonwindows.go index fb89123d6..d9c3fd4b7 100644 --- a/bgp/bgp_nonwindows.go +++ b/bgp/bgp_nonwindows.go @@ -19,8 +19,6 @@ import ( "google.golang.org/protobuf/proto" apb "google.golang.org/protobuf/types/known/anypb" - "github.com/hashicorp/go-multierror" - api "github.com/osrg/gobgp/v3/api" bgpconfig "github.com/osrg/gobgp/v3/pkg/config" "github.com/osrg/gobgp/v3/pkg/server" @@ -229,7 +227,7 @@ func (bgph *BGPHandler) setPolicies() error { } func (bgph *BGPHandler) addNeighbors(ctx context.Context, peers []config.BGPPeer) error { - var result error + var errs []error peerCount := 0 for _, peer := range peers { var hop *api.EbgpMultihop @@ -263,19 +261,19 @@ func (bgph *BGPHandler) addNeighbors(ctx context.Context, peers []config.BGPPeer }, }) if err != nil { - result = multierror.Append(result, err) + errs = append(errs, err) continue } peerCount++ } if peerCount == 0 { - result = multierror.Append(result, ErrNoPeersAdded) + errs = append(errs, ErrNoPeersAdded) } - return result + return errors.Join(errs...) } func (bgph *BGPHandler) AddRoutes(ctx context.Context, routes []string) error { - var result error + var errs []error // Add our Anycast routes routesAdded := 0 @@ -283,7 +281,7 @@ func (bgph *BGPHandler) AddRoutes(ctx context.Context, routes []string) error { for _, addr := range routes { _, ipnet, err := net.ParseCIDR(addr) if err != nil { - result = multierror.Append(result, err) + errs = append(errs, err) continue } prefixLen, _ := ipnet.Mask.Size() @@ -307,25 +305,25 @@ func (bgph *BGPHandler) AddRoutes(ctx context.Context, routes []string) error { }) if err != nil { log.Printf("[ERROR] bgp error adding path for %s: %s", addr, err) - result = multierror.Append(result, fmt.Errorf("error adding %s: %w", addr, err)) + errs = append(errs, fmt.Errorf("error adding %s: %w", addr, err)) } else { log.Printf("[INFO] bgp successfully added path for %s", addr) routesAdded++ } } if routesAdded == 0 { - result = multierror.Append(result, ErrNoRoutesAdded) + errs = append(errs, ErrNoRoutesAdded) } - return result + return errors.Join(errs...) } func (bgph *BGPHandler) DeleteRoutes(ctx context.Context, routes []string) error { - var result error + var errs []error delCount := 0 for _, addr := range routes { _, ipnet, err := net.ParseCIDR(addr) if err != nil { - result = multierror.Append(result, err) + errs = append(errs, err) continue } prefixLen, _ := ipnet.Mask.Size() @@ -349,15 +347,15 @@ func (bgph *BGPHandler) DeleteRoutes(ctx context.Context, routes []string) error }, }) if err != nil { - result = multierror.Append(result, err) + errs = append(errs, err) continue } delCount++ } if delCount == 0 { - result = multierror.Append(result, ErrNoRoutesDeleted) + errs = append(errs, ErrNoRoutesDeleted) } - return result + return errors.Join(errs...) } func ValidateConfig(config *config.BGP) error { diff --git a/bgp/bgp_nonwindows_test.go b/bgp/bgp_nonwindows_test.go index 71fcfc603..a64a5f6f9 100644 --- a/bgp/bgp_nonwindows_test.go +++ b/bgp/bgp_nonwindows_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows package bgp diff --git a/go.mod b/go.mod index aecd0ddae..63fe246dd 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,6 @@ require ( github.com/go-kit/log v0.2.1 github.com/gobwas/glob v0.2.3 github.com/hashicorp/consul/api v1.29.4 - github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-sockaddr v1.0.7 github.com/hashicorp/vault/api v1.15.0 github.com/hashicorp/vault/sdk v0.14.0 @@ -61,6 +60,7 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect