func (s *LxcSuite) createTemplate(c *gc.C) golxc.Container { name := "juju-series-template" s.ensureTemplateStopped(name) network := container.BridgeNetworkConfig("nic42") authorizedKeys := "authorized keys list" aptProxy := osenv.ProxySettings{} template, err := lxc.EnsureCloneTemplate( "ext4", "series", network, authorizedKeys, aptProxy) c.Assert(err, gc.IsNil) c.Assert(template.Name(), gc.Equals, name) s.AssertEvent(c, <-s.events, mock.Created, name) s.AssertEvent(c, <-s.events, mock.Started, name) s.AssertEvent(c, <-s.events, mock.Stopped, name) autostartLink := lxc.RestartSymlink(name) config, err := ioutil.ReadFile(lxc.ContainerConfigFilename(name)) c.Assert(err, gc.IsNil) expected := ` lxc.network.type = veth lxc.network.link = nic42 lxc.network.flags = up ` // NOTE: no autostart, no mounting the log dir c.Assert(string(config), gc.Equals, expected) c.Assert(autostartLink, jc.DoesNotExist) return template }
func (s *LxcSuite) TestDestroyContainerRemovesAutostartLink(c *gc.C) { manager := s.makeManager(c, "test") instance := containertesting.CreateContainer(c, manager, "1/lxc/0") err := manager.DestroyContainer(instance) c.Assert(err, gc.IsNil) autostartLink := lxc.RestartSymlink(string(instance.Id())) c.Assert(autostartLink, jc.SymlinkDoesNotExist) }
func (s *LxcSuite) TestCreateContainerWithCloneMountsAndAutostarts(c *gc.C) { s.createTemplate(c) s.PatchValue(&s.useClone, true) manager := s.makeManager(c, "test") instance := containertesting.CreateContainer(c, manager, "1") name := string(instance.Id()) autostartLink := lxc.RestartSymlink(name) config, err := ioutil.ReadFile(lxc.ContainerConfigFilename(name)) c.Assert(err, gc.IsNil) mountLine := "lxc.mount.entry=/var/log/juju var/log/juju none defaults,bind 0 0" c.Assert(string(config), jc.Contains, mountLine) c.Assert(autostartLink, jc.IsSymlink) }
func (s *LxcSuite) TestCreateContainerNoRestartDir(c *gc.C) { err := os.Remove(s.RestartDir) c.Assert(err, gc.IsNil) manager := s.makeManager(c, "test") instance := containertesting.CreateContainer(c, manager, "1/lxc/0") name := string(instance.Id()) autostartLink := lxc.RestartSymlink(name) config, err := ioutil.ReadFile(lxc.ContainerConfigFilename(name)) c.Assert(err, gc.IsNil) expected := ` lxc.network.type = veth lxc.network.link = nic42 lxc.network.flags = up lxc.start.auto = 1 lxc.mount.entry=/var/log/juju var/log/juju none defaults,bind 0 0 ` c.Assert(string(config), gc.Equals, expected) c.Assert(autostartLink, jc.DoesNotExist) }
func (s *LxcSuite) TestCreateContainerAutostarts(c *gc.C) { manager := s.makeManager(c, "test") instance := containertesting.CreateContainer(c, manager, "1/lxc/0") autostartLink := lxc.RestartSymlink(string(instance.Id())) c.Assert(autostartLink, jc.IsSymlink) }