Route del would fail due to wrong scope; better errors
authorEugene Yakubovich <eugene.yakubovich@coreos.com>
Tue, 29 Sep 2015 18:27:49 +0000 (11:27 -0700)
committerEugene Yakubovich <eugene.yakubovich@coreos.com>
Tue, 29 Sep 2015 18:27:49 +0000 (11:27 -0700)
In some cases the route deletion would fail due to wrong
scope. It should be NOWHERE when deleting (per iproute2).
This also adds more verbose error messages.

plugins/main/ptp/ptp.go

index 58d52ef..e76bc6d 100644 (file)
@@ -70,7 +70,7 @@ func setupContainerVeth(netns, ifName string, mtu int, pr *types.Result) (string
 
                contVeth, err := netlink.LinkByName(ifName)
                if err != nil {
-                       return err
+                       return fmt.Errorf("failed to look up %q: %v", ifName, err)
                }
 
                // Delete the route that was automatically added
@@ -80,12 +80,11 @@ func setupContainerVeth(netns, ifName string, mtu int, pr *types.Result) (string
                                IP:   pr.IP4.IP.IP.Mask(pr.IP4.IP.Mask),
                                Mask: pr.IP4.IP.Mask,
                        },
-                       Scope: netlink.SCOPE_LINK,
-                       Src:   pr.IP4.IP.IP,
+                       Scope: netlink.SCOPE_NOWHERE,
                }
 
                if err := netlink.RouteDel(&route); err != nil {
-                       return err
+                       return fmt.Errorf("failed to delete route %v: %v", route, err)
                }
 
                for _, r := range []netlink.Route{
@@ -110,7 +109,7 @@ func setupContainerVeth(netns, ifName string, mtu int, pr *types.Result) (string
                        },
                } {
                        if err := netlink.RouteAdd(&r); err != nil {
-                               return err
+                               return fmt.Errorf("failed to add route %v: %v", r, err)
                        }
                }