Skip to content

Commit

Permalink
Merge pull request #438 from tnqn/vlan-multi-del
Browse files Browse the repository at this point in the history
Fix vlan plugin returning error when device is already removed
  • Loading branch information
jellonek authored Jan 22, 2020
2 parents 754e153 + db7e6cf commit 1f33fb7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion plugins/main/vlan/vlan.go
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ func cmdDel(args *skel.CmdArgs) error {

err = ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
err = ip.DelLinkByName(args.IfName)
if err != nil && err != ip.ErrLinkNotFound {
if err != nil && err == ip.ErrLinkNotFound {
return nil
}
return err
Expand Down
13 changes: 13 additions & 0 deletions plugins/main/vlan/vlan_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,19 @@ var _ = Describe("vlan Operations", func() {
return nil
})
Expect(err).NotTo(HaveOccurred())

// DEL can be called multiple times, make sure no error is returned
// if the device is already removed.
err = originalNS.Do(func(ns.NetNS) error {
defer GinkgoRecover()

err = testutils.CmdDelWithArgs(args, func() error {
return cmdDel(args)
})
Expect(err).NotTo(HaveOccurred())
return nil
})
Expect(err).NotTo(HaveOccurred())
})

It("configures and deconfigures an CNI V4 vlan link with ADD/CHECK/DEL", func() {
Expand Down

0 comments on commit 1f33fb7

Please sign in to comment.