func main() { cf_lager.AddFlags(flag.CommandLine) flag.Parse() logger, _ := cf_lager.New("hook") oldWd, err := os.Getwd() if err != nil { panic(err) } cwd := path.Dir(os.Args[0]) os.Chdir(cwd) defer os.Chdir(oldWd) config, err := process.EnvFromFile("../etc/config") if err != nil { panic(fmt.Sprintf("error reading config file in hook: %s", err)) } runner := &logging.Runner{linux_command_runner.New(), logger} configurer := network.NewConfigurer(logger.Session("linux_backend: hook.CHILD_AFTER_PIVOT")) linux_backend.RegisterHooks(hook.DefaultHookSet, runner, config, configurer) hook.Main(os.Args[1:]) }
config = process.Env{ "id": "someID", "network_cidr": "1.2.3.4/8", "container_iface_mtu": "5000", "network_container_ip": "1.6.6.6", "network_host_ip": "1.2.3.5", "network_host_iface": "hostIfc", "network_container_iface": "containerIfc", "bridge_iface": "bridgeName", } fakeNetworkConfigurer = &networkFakes.FakeConfigurer{} }) Context("After RegisterHooks has been run", func() { JustBeforeEach(func() { linux_backend.RegisterHooks(hooks, fakeRunner, config, fakeNetworkConfigurer) }) Context("Inside the host", func() { Context("before container creation", func() { It("runs the hook-parent-before-clone.sh legacy shell script", func() { hooks.Main(hook.PARENT_BEFORE_CLONE) Expect(fakeRunner).To(HaveExecutedSerially(fake_command_runner.CommandSpec{ Path: "hook-parent-before-clone.sh", })) }) Context("when the legacy shell script fails", func() { BeforeEach(func() { fakeRunner.WhenRunning(fake_command_runner.CommandSpec{ Path: "hook-parent-before-clone.sh",