Add error messages to IPVS module

Signed-off-by: Carlos de Paula <me@carlosedp.com>
This commit is contained in:
Carlos de Paula 2020-04-06 12:25:24 -03:00
parent c158001bbc
commit b3d84fac52
2 changed files with 21 additions and 18 deletions

View File

@ -40,6 +40,7 @@ go_library(
] + select({
"@io_bazel_rules_go//go/platform:android": [
"//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/utils/exec:go_default_library",
],
@ -57,6 +58,7 @@ go_library(
],
"@io_bazel_rules_go//go/platform:linux": [
"//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/utils/exec:go_default_library",
],

View File

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