Merge lp:~thumper/juju-core/fix-lxc-destroy into lp:~go-bot/juju-core/trunk

Proposed by Tim Penhey
Status: Merged
Approved by: Tim Penhey
Approved revision: no longer in the source branch.
Merged at revision: 2275
Proposed branch: lp:~thumper/juju-core/fix-lxc-destroy
Merge into: lp:~go-bot/juju-core/trunk
Diff against target: 81 lines (+31/-20)
3 files modified
container/lxc/lxc.go (+21/-4)
container/lxc/lxc_test.go (+10/-0)
container/lxc/restart.go (+0/-16)
To merge this branch: bzr merge lp:~thumper/juju-core/fix-lxc-destroy
Reviewer Review Type Date Requested Status
Ian Booth Approve
Review via email: mp+203861@code.launchpad.net

Commit message

Don't try to remove the restart link if we aren't using restart links to restart.

Description of the change

Don't try to remove the restart link if we aren't using restart links to restart.

To post a comment you must log in.
Revision history for this message
Ian Booth (wallyworld) wrote :

Small typo:

"Older version of LXC"....

version needs the s

review: Approve
Revision history for this message
Go Bot (go-bot) wrote :
Download full text (9.3 KiB)

The attempt to merge lp:~thumper/juju-core/fix-lxc-destroy into lp:juju-core failed. Below is the output from the failed tests.

ok launchpad.net/juju-core/agent 1.316s
ok launchpad.net/juju-core/agent/tools 0.255s
ok launchpad.net/juju-core/bzr 7.544s
ok launchpad.net/juju-core/cert 3.531s
ok launchpad.net/juju-core/charm 0.614s
? launchpad.net/juju-core/charm/hooks [no test files]
? launchpad.net/juju-core/charm/testing [no test files]
ok launchpad.net/juju-core/cloudinit 0.052s
ok launchpad.net/juju-core/cloudinit/sshinit 1.014s
ok launchpad.net/juju-core/cmd 0.222s
ok launchpad.net/juju-core/cmd/charm-admin 0.880s
? launchpad.net/juju-core/cmd/charmd [no test files]
? launchpad.net/juju-core/cmd/charmload [no test files]
ok launchpad.net/juju-core/cmd/juju 241.599s
ok launchpad.net/juju-core/cmd/jujud 62.346s
ok launchpad.net/juju-core/cmd/plugins/juju-metadata 14.922s
? launchpad.net/juju-core/cmd/plugins/juju-restore [no test files]
ok launchpad.net/juju-core/constraints 0.027s
ok launchpad.net/juju-core/container 0.037s
ok launchpad.net/juju-core/container/factory 0.065s
ok launchpad.net/juju-core/container/kvm 0.290s
ok launchpad.net/juju-core/container/kvm/mock 0.060s
? launchpad.net/juju-core/container/kvm/testing [no test files]
ok launchpad.net/juju-core/container/lxc 0.356s
? launchpad.net/juju-core/container/lxc/mock [no test files]
? launchpad.net/juju-core/container/lxc/testing [no test files]
? launchpad.net/juju-core/container/testing [no test files]
ok launchpad.net/juju-core/downloader 5.343s
ok launchpad.net/juju-core/environs 3.339s
ok launchpad.net/juju-core/environs/bootstrap 4.637s
ok launchpad.net/juju-core/environs/cloudinit 0.637s
ok launchpad.net/juju-core/environs/config 3.166s
ok launchpad.net/juju-core/environs/configstore 0.042s
ok launchpad.net/juju-core/environs/filestorage 0.032s
ok launchpad.net/juju-core/environs/httpstorage 0.941s
ok launchpad.net/juju-core/environs/imagemetadata 0.660s
? launchpad.net/juju-core/environs/imagemetadata/testing [no test files]
ok launchpad.net/juju-core/environs/instances 0.061s
ok launchpad.net/juju-core/environs/jujutest 0.234s
ok launchpad.net/juju-core/environs/manual 10.738s
ok launchpad.net/juju-core/environs/simplestreams 0.323s
? launchpad.net/juju-core/environs/simplestreams/testing [no test files]
ok launchpad.net/juju-core/environs/sshstorage 1.235s
ok launchpad.net/juju-core/environs/storage 1.152s
ok launchpad.net/juju-core/environs/sync 34.858s
ok launchpad.net/juju-core/environs/testing 0.199s
ok launchpad.net/juju-core/environs/tools 7.066s
? launchpad.net/juju-core/environs/tools/testing [no test files]
ok launchpad.net/juju-core/errors 0.016s
ok launchpad.net/juju-core/instance 0.024s
? launchpad.net/juju-core/instance/testing [no test files]
ok launchpad.net/juju-core/juju 22.993s
ok launchpad.net/juju-core/juju/osenv 0.021s
? launchpad.net/juju-core/juju/testing [no test files]
ok launchpad.net/juju-core/log 0.016s
ok launchpad.net/juju-core/log/syslog 0.026s
ok launchpad.net/juju-core/names 0.027s
? launchpad.net/juju-core/...

Read more...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'container/lxc/lxc.go'
--- container/lxc/lxc.go 2014-01-28 04:58:43 +0000
+++ container/lxc/lxc.go 2014-01-30 00:52:25 +0000
@@ -145,10 +145,12 @@
145func (manager *containerManager) StopContainer(instance instance.Instance) error {145func (manager *containerManager) StopContainer(instance instance.Instance) error {
146 name := string(instance.Id())146 name := string(instance.Id())
147 lxcContainer := LxcObjectFactory.New(name)147 lxcContainer := LxcObjectFactory.New(name)
148 // Remove the autostart link.148 if useRestartDir() {
149 if err := os.Remove(restartSymlink(name)); err != nil {149 // Remove the autostart link.
150 logger.Errorf("failed to remove restart symlink: %v", err)150 if err := os.Remove(restartSymlink(name)); err != nil {
151 return err151 logger.Errorf("failed to remove restart symlink: %v", err)
152 return err
153 }
152 }154 }
153 if err := lxcContainer.Destroy(); err != nil {155 if err := lxcContainer.Destroy(); err != nil {
154 logger.Errorf("failed to destroy lxc container: %v", err)156 logger.Errorf("failed to destroy lxc container: %v", err)
@@ -236,3 +238,18 @@
236 }238 }
237 return configFilename, nil239 return configFilename, nil
238}240}
241
242// useRestartDir is used to determine whether or not to use a symlink to the
243// container config as the restart mechanism. Older versions of LXC had the
244// /etc/lxc/auto directory that would indicate that a container shoud auto-
245// restart when the machine boots by having a symlink to the lxc.conf file.
246// Newer versions don't do this, but instead have a config value inside the
247// lxc.conf file.
248func useRestartDir() bool {
249 if _, err := os.Stat(LxcRestartDir); err != nil {
250 if os.IsNotExist(err) {
251 return false
252 }
253 }
254 return true
255}
239256
=== modified file 'container/lxc/lxc_test.go'
--- container/lxc/lxc_test.go 2014-01-28 04:58:43 +0000
+++ container/lxc/lxc_test.go 2014-01-30 00:52:25 +0000
@@ -215,6 +215,16 @@
215 c.Assert(autostartLink, jc.SymlinkDoesNotExist)215 c.Assert(autostartLink, jc.SymlinkDoesNotExist)
216}216}
217217
218func (s *LxcSuite) TestStopContainerNoRestartDir(c *gc.C) {
219 err := os.Remove(s.RestartDir)
220 c.Assert(err, gc.IsNil)
221
222 manager := lxc.NewContainerManager(container.ManagerConfig{})
223 instance := containertesting.StartContainer(c, manager, "1/lxc/0")
224 err = manager.StopContainer(instance)
225 c.Assert(err, gc.IsNil)
226}
227
218type NetworkSuite struct {228type NetworkSuite struct {
219 testbase.LoggingSuite229 testbase.LoggingSuite
220}230}
221231
=== removed file 'container/lxc/restart.go'
--- container/lxc/restart.go 2014-01-26 22:51:43 +0000
+++ container/lxc/restart.go 1970-01-01 00:00:00 +0000
@@ -1,16 +0,0 @@
1package lxc
2
3import (
4 "os"
5)
6
7//If restart dir exists, return true. Otherwise, return false.
8//TODO Should this test LXC version, not existence of restart dir?
9func useRestartDir() bool {
10 if _, err := os.Stat(LxcRestartDir); err != nil {
11 if os.IsNotExist(err) {
12 return false
13 }
14 }
15 return true
16}

Subscribers

People subscribed via source and target branches

to status/vote changes: