예제 #1
0
파일: main.go 프로젝트: timani/garden-linux
func (p *provider) ProvideFilter(containerId string) network.Filter {
	return network.NewFilter(iptables.NewLoggingChain(p.chainPrefix+containerId, p.useKernelLogging, p.runner, p.log.Session(containerId).Session("filter")))
}
예제 #2
0
	"github.com/cloudfoundry-incubator/garden"
	"github.com/cloudfoundry-incubator/garden-linux/network"
	"github.com/cloudfoundry-incubator/garden-linux/network/iptables/fakes"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("Filter", func() {
	var (
		fakeChain *fakes.FakeChain
		filter    network.Filter
	)

	BeforeEach(func() {
		fakeChain = new(fakes.FakeChain)
		filter = network.NewFilter(fakeChain)
		Expect(filter).ToNot(BeNil())
	})

	Context("Setup", func() {
		It("sets up the chain", func() {
			Expect(filter.Setup("logPrefix")).To(Succeed())
			Expect(fakeChain.SetupCallCount()).To(Equal(1))
			Expect(fakeChain.SetupArgsForCall(0)).To(Equal("logPrefix"))
		})

		Context("when chain setup returns an error", func() {
			It("Setup wraps the error and returns it", func() {
				fakeChain.SetupReturns(errors.New("x"))
				err := filter.Setup("logPrefix")
				Expect(err).To(MatchError("network: log chain setup: x"))