Merge pull request #89896 from carlosedp/fix-89597

Add error messages to IPVS module
This commit is contained in:
Kubernetes Prow Robot
2020-04-22 17:02:41 -07:00
committed by GitHub
2 changed files with 21 additions and 18 deletions

View File

@@ -40,6 +40,7 @@ go_library(
] + select({ ] + select({
"@io_bazel_rules_go//go/platform:android": [ "@io_bazel_rules_go//go/platform:android": [
"//vendor/github.com/moby/ipvs:go_default_library", "//vendor/github.com/moby/ipvs:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
], ],
@@ -57,6 +58,7 @@ go_library(
], ],
"@io_bazel_rules_go//go/platform:linux": [ "@io_bazel_rules_go//go/platform:linux": [
"//vendor/github.com/moby/ipvs:go_default_library", "//vendor/github.com/moby/ipvs:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
], ],

View File

@@ -19,7 +19,6 @@ limitations under the License.
package ipvs package ipvs
import ( import (
"errors"
"fmt" "fmt"
"net" "net"
"strings" "strings"
@@ -28,6 +27,8 @@ import (
"time" "time"
libipvs "github.com/moby/ipvs" libipvs "github.com/moby/ipvs"
"github.com/pkg/errors"
"k8s.io/klog" "k8s.io/klog"
utilexec "k8s.io/utils/exec" utilexec "k8s.io/utils/exec"
) )
@@ -59,7 +60,7 @@ func New(exec utilexec.Interface) Interface {
func (runner *runner) AddVirtualServer(vs *VirtualServer) error { func (runner *runner) AddVirtualServer(vs *VirtualServer) error {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
runner.mu.Lock() runner.mu.Lock()
defer runner.mu.Unlock() defer runner.mu.Unlock()
@@ -70,7 +71,7 @@ func (runner *runner) AddVirtualServer(vs *VirtualServer) error {
func (runner *runner) UpdateVirtualServer(vs *VirtualServer) error { func (runner *runner) UpdateVirtualServer(vs *VirtualServer) error {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
runner.mu.Lock() runner.mu.Lock()
defer runner.mu.Unlock() defer runner.mu.Unlock()
@@ -81,7 +82,7 @@ func (runner *runner) UpdateVirtualServer(vs *VirtualServer) error {
func (runner *runner) DeleteVirtualServer(vs *VirtualServer) error { func (runner *runner) DeleteVirtualServer(vs *VirtualServer) error {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
runner.mu.Lock() runner.mu.Lock()
defer runner.mu.Unlock() defer runner.mu.Unlock()
@@ -92,18 +93,18 @@ func (runner *runner) DeleteVirtualServer(vs *VirtualServer) error {
func (runner *runner) GetVirtualServer(vs *VirtualServer) (*VirtualServer, error) { func (runner *runner) GetVirtualServer(vs *VirtualServer) (*VirtualServer, error) {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
runner.mu.Lock() runner.mu.Lock()
ipvsSvc, err := runner.ipvsHandle.GetService(svc) ipvsSvc, err := runner.ipvsHandle.GetService(svc)
runner.mu.Unlock() runner.mu.Unlock()
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not get IPVS service")
} }
vServ, err := toVirtualServer(ipvsSvc) vServ, err := toVirtualServer(ipvsSvc)
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not convert IPVS service to local virtual server")
} }
return vServ, nil return vServ, nil
} }
@@ -114,13 +115,13 @@ func (runner *runner) GetVirtualServers() ([]*VirtualServer, error) {
ipvsSvcs, err := runner.ipvsHandle.GetServices() ipvsSvcs, err := runner.ipvsHandle.GetServices()
runner.mu.Unlock() runner.mu.Unlock()
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not get IPVS services")
} }
vss := make([]*VirtualServer, 0) vss := make([]*VirtualServer, 0)
for _, ipvsSvc := range ipvsSvcs { for _, ipvsSvc := range ipvsSvcs {
vs, err := toVirtualServer(ipvsSvc) vs, err := toVirtualServer(ipvsSvc)
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not convert IPVS service to local virtual server")
} }
vss = append(vss, vs) vss = append(vss, vs)
} }
@@ -138,11 +139,11 @@ func (runner *runner) Flush() error {
func (runner *runner) AddRealServer(vs *VirtualServer, rs *RealServer) error { func (runner *runner) AddRealServer(vs *VirtualServer, rs *RealServer) error {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
dst, err := toIPVSDestination(rs) dst, err := toIPVSDestination(rs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local real server to IPVS destination")
} }
runner.mu.Lock() runner.mu.Lock()
defer runner.mu.Unlock() defer runner.mu.Unlock()
@@ -153,11 +154,11 @@ func (runner *runner) AddRealServer(vs *VirtualServer, rs *RealServer) error {
func (runner *runner) DeleteRealServer(vs *VirtualServer, rs *RealServer) error { func (runner *runner) DeleteRealServer(vs *VirtualServer, rs *RealServer) error {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
dst, err := toIPVSDestination(rs) dst, err := toIPVSDestination(rs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local real server to IPVS destination")
} }
runner.mu.Lock() runner.mu.Lock()
defer runner.mu.Unlock() defer runner.mu.Unlock()
@@ -167,11 +168,11 @@ func (runner *runner) DeleteRealServer(vs *VirtualServer, rs *RealServer) error
func (runner *runner) UpdateRealServer(vs *VirtualServer, rs *RealServer) error { func (runner *runner) UpdateRealServer(vs *VirtualServer, rs *RealServer) error {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
dst, err := toIPVSDestination(rs) dst, err := toIPVSDestination(rs)
if err != nil { if err != nil {
return err return errors.Wrap(err, "could not convert local real server to IPVS destination")
} }
runner.mu.Lock() runner.mu.Lock()
defer runner.mu.Unlock() defer runner.mu.Unlock()
@@ -182,20 +183,20 @@ func (runner *runner) UpdateRealServer(vs *VirtualServer, rs *RealServer) error
func (runner *runner) GetRealServers(vs *VirtualServer) ([]*RealServer, error) { func (runner *runner) GetRealServers(vs *VirtualServer) ([]*RealServer, error) {
svc, err := toIPVSService(vs) svc, err := toIPVSService(vs)
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not convert local virtual server to IPVS service")
} }
runner.mu.Lock() runner.mu.Lock()
dsts, err := runner.ipvsHandle.GetDestinations(svc) dsts, err := runner.ipvsHandle.GetDestinations(svc)
runner.mu.Unlock() runner.mu.Unlock()
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not get IPVS destination for service")
} }
rss := make([]*RealServer, 0) rss := make([]*RealServer, 0)
for _, dst := range dsts { for _, dst := range dsts {
dst, err := toRealServer(dst) dst, err := toRealServer(dst)
// TODO: aggregate errors? // TODO: aggregate errors?
if err != nil { if err != nil {
return nil, err return nil, errors.Wrap(err, "could not convert IPVS destination to local real server")
} }
rss = append(rss, dst) rss = append(rss, dst)
} }