func (p *provider) ProvideContainer(spec linux_backend.LinuxContainerSpec) linux_backend.Container { cgroupReader := &cgroups_manager.LinuxCgroupReader{ Path: p.sysconfig.CgroupNodeFilePath, } cgroupsManager := cgroups_manager.New(p.sysconfig.CgroupPath, spec.ID, cgroupReader) oomWatcher := linux_container.NewOomNotifier( p.runner, spec.ContainerPath, cgroupsManager, ) return linux_container.NewLinuxContainer( spec, p.portPool, p.runner, cgroupsManager, p.quotaManager, bandwidth_manager.New(spec.ContainerPath, spec.ID, p.runner), process_tracker.New(spec.ContainerPath, p.runner), p.ProvideFilter(spec.ID), p.ipTablesMgr, devices.Link{Name: p.sysconfig.NetworkInterfacePrefix + spec.ID + "-0"}, oomWatcher, p.log.Session("container", lager.Data{"handle": spec.Handle}), ) }
"github.com/cloudfoundry-incubator/garden" "github.com/cloudfoundry-incubator/garden-linux/linux_container/bandwidth_manager" "github.com/cloudfoundry/gunk/command_runner/fake_command_runner" . "github.com/cloudfoundry/gunk/command_runner/fake_command_runner/matchers" ) var fakeRunner *fake_command_runner.FakeCommandRunner var logger *lagertest.TestLogger var bandwidthManager *bandwidth_manager.ContainerBandwidthManager var _ = Describe("setting rate limits", func() { BeforeEach(func() { fakeRunner = fake_command_runner.New() logger = lagertest.NewTestLogger("test") bandwidthManager = bandwidth_manager.New("/depot/some-id", "some-id", fakeRunner) }) It("executes net_rate.sh with the appropriate environment", func() { limits := garden.BandwidthLimits{ RateInBytesPerSecond: 128, BurstRateInBytesPerSecond: 256, } err := bandwidthManager.SetLimits(logger, limits) Expect(err).ToNot(HaveOccurred()) Expect(fakeRunner).To(HaveExecutedSerially( fake_command_runner.CommandSpec{ Path: "/depot/some-id/net_rate.sh", Env: []string{