From 95be5da5e293fc63d2ece8020ec299d7d295dc0e Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 3 May 2018 16:14:28 -0500 Subject: [PATCH] firewall: add a couple more testcases --- .../meta/firewall/firewall_firewalld_test.go | 86 ++++++++++++++++++- 1 file changed, 84 insertions(+), 2 deletions(-) diff --git a/plugins/meta/firewall/firewall_firewalld_test.go b/plugins/meta/firewall/firewall_firewalld_test.go index 17717993..9d174fac 100644 --- a/plugins/meta/firewall/firewall_firewalld_test.go +++ b/plugins/meta/firewall/firewall_firewalld_test.go @@ -24,6 +24,7 @@ import ( "github.com/containernetworking/cni/pkg/invoke" "github.com/containernetworking/cni/pkg/skel" + "github.com/containernetworking/cni/pkg/types/current" "github.com/containernetworking/plugins/pkg/ns" "github.com/containernetworking/plugins/pkg/testutils" @@ -52,8 +53,7 @@ const ( "gateway": "10.0.0.1", "interface": 0 } - ], - "routes": [] + ] } }` ifname = "eth0" @@ -193,4 +193,86 @@ var _ = Describe("firewalld test", func() { Expect(fwd.zone).To(Equal("trusted")) Expect(fwd.source).To(Equal("10.0.0.2/32")) }) + + It("defaults to the firewalld backend", func() { + conf := `{ + "cniVersion": "0.3.1", + "name": "firewalld-test", + "type": "firewall", + "zone": "trusted", + "prevResult": { + "cniVersion": "0.3.0", + "interfaces": [ + {"name": "eth0", "sandbox": "/foobar"} + ], + "ips": [ + { + "version": "4", + "address": "10.0.0.2/24", + "gateway": "10.0.0.1", + "interface": 0 + } + ] + } + }` + + Expect(isFirewalldRunning()).To(BeTrue()) + + args := &skel.CmdArgs{ + ContainerID: "dummy", + Netns: targetNs.Path(), + IfName: ifname, + StdinData: []byte(conf), + } + _, _, err := testutils.CmdAddWithResult(targetNs.Path(), ifname, []byte(conf), func() error { + return cmdAdd(args) + }) + Expect(err).NotTo(HaveOccurred()) + Expect(fwd.zone).To(Equal("trusted")) + Expect(fwd.source).To(Equal("10.0.0.2/32")) + }) + + It("passes through the prevResult", func() { + conf := `{ + "cniVersion": "0.3.1", + "name": "firewalld-test", + "type": "firewall", + "zone": "trusted", + "prevResult": { + "cniVersion": "0.3.0", + "interfaces": [ + {"name": "eth0", "sandbox": "/foobar"} + ], + "ips": [ + { + "version": "4", + "address": "10.0.0.2/24", + "gateway": "10.0.0.1", + "interface": 0 + } + ] + } + }` + + Expect(isFirewalldRunning()).To(BeTrue()) + + args := &skel.CmdArgs{ + ContainerID: "dummy", + Netns: targetNs.Path(), + IfName: ifname, + StdinData: []byte(conf), + } + r, _, err := testutils.CmdAddWithResult(targetNs.Path(), ifname, []byte(conf), func() error { + return cmdAdd(args) + }) + Expect(err).NotTo(HaveOccurred()) + + result, err := current.GetResult(r) + Expect(err).NotTo(HaveOccurred()) + + Expect(len(result.Interfaces)).To(Equal(1)) + Expect(result.Interfaces[0].Name).To(Equal("eth0")) + Expect(len(result.IPs)).To(Equal(1)) + Expect(result.IPs[0].Address.String()).To(Equal("10.0.0.2/24")) + }) })