check ErrorNotFound in netlink.go to fix cross build error

This commit is contained in:
m1093782566 2018-02-02 14:28:55 +08:00
parent d3b783d5ec
commit 5c3ee0f2fa
2 changed files with 5 additions and 5 deletions

View File

@ -57,7 +57,7 @@ func (h *netlinkHandle) EnsureAddressBind(address, devName string) (exist bool,
return false, nil return false, nil
} }
// UnbindAddress unbind address from the interface // UnbindAddress makes sure IP address is unbound from the network interface.
func (h *netlinkHandle) UnbindAddress(address, devName string) error { func (h *netlinkHandle) UnbindAddress(address, devName string) error {
dev, err := h.LinkByName(devName) dev, err := h.LinkByName(devName)
if err != nil { if err != nil {
@ -68,7 +68,9 @@ func (h *netlinkHandle) UnbindAddress(address, devName string) error {
return fmt.Errorf("error parse ip address: %s", address) return fmt.Errorf("error parse ip address: %s", address)
} }
if err := h.AddrDel(dev, &netlink.Addr{IPNet: netlink.NewIPNet(addr)}); err != nil { if err := h.AddrDel(dev, &netlink.Addr{IPNet: netlink.NewIPNet(addr)}); err != nil {
return fmt.Errorf("error unbind address: %s from interface: %s, err: %v", address, devName, err) if err != unix.ENXIO {
return fmt.Errorf("error unbind address: %s from interface: %s, err: %v", address, devName, err)
}
} }
return nil return nil
} }

View File

@ -51,8 +51,6 @@ import (
utilipvs "k8s.io/kubernetes/pkg/util/ipvs" utilipvs "k8s.io/kubernetes/pkg/util/ipvs"
utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl"
utilexec "k8s.io/utils/exec" utilexec "k8s.io/utils/exec"
"golang.org/x/sys/unix"
) )
const ( const (
@ -1705,7 +1703,7 @@ func (proxier *Proxier) cleanLegacyService(atciveServices map[string]bool, curre
for _, addr := range unbindIPAddr.UnsortedList() { for _, addr := range unbindIPAddr.UnsortedList() {
err := proxier.netlinkHandle.UnbindAddress(addr, DefaultDummyDevice) err := proxier.netlinkHandle.UnbindAddress(addr, DefaultDummyDevice)
// Ignore no such address error when try to unbind address // Ignore no such address error when try to unbind address
if err != nil && err != unix.ENXIO { if err != nil {
glog.Errorf("Failed to unbind service addr %s from dummy interface %s: %v", addr, DefaultDummyDevice, err) glog.Errorf("Failed to unbind service addr %s from dummy interface %s: %v", addr, DefaultDummyDevice, err)
} }
} }