Skip to content

Commit

Permalink
Fix vlan plugin returning error when device is already removed
Browse files Browse the repository at this point in the history
DEL can be called multiple times, vlan plugin should return no error if
the device is already removed.
  • Loading branch information
tnqn committed Jan 14, 2020
1 parent 62b36d2 commit dfb5329
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 dfb5329

Please sign in to comment.