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
1=== modified file 'container/lxc/lxc.go'
2--- container/lxc/lxc.go 2014-01-28 04:58:43 +0000
3+++ container/lxc/lxc.go 2014-01-30 00:52:25 +0000
4@@ -145,10 +145,12 @@
5 func (manager *containerManager) StopContainer(instance instance.Instance) error {
6 name := string(instance.Id())
7 lxcContainer := LxcObjectFactory.New(name)
8- // Remove the autostart link.
9- if err := os.Remove(restartSymlink(name)); err != nil {
10- logger.Errorf("failed to remove restart symlink: %v", err)
11- return err
12+ if useRestartDir() {
13+ // Remove the autostart link.
14+ if err := os.Remove(restartSymlink(name)); err != nil {
15+ logger.Errorf("failed to remove restart symlink: %v", err)
16+ return err
17+ }
18 }
19 if err := lxcContainer.Destroy(); err != nil {
20 logger.Errorf("failed to destroy lxc container: %v", err)
21@@ -236,3 +238,18 @@
22 }
23 return configFilename, nil
24 }
25+
26+// useRestartDir is used to determine whether or not to use a symlink to the
27+// container config as the restart mechanism. Older versions of LXC had the
28+// /etc/lxc/auto directory that would indicate that a container shoud auto-
29+// restart when the machine boots by having a symlink to the lxc.conf file.
30+// Newer versions don't do this, but instead have a config value inside the
31+// lxc.conf file.
32+func useRestartDir() bool {
33+ if _, err := os.Stat(LxcRestartDir); err != nil {
34+ if os.IsNotExist(err) {
35+ return false
36+ }
37+ }
38+ return true
39+}
40
41=== modified file 'container/lxc/lxc_test.go'
42--- container/lxc/lxc_test.go 2014-01-28 04:58:43 +0000
43+++ container/lxc/lxc_test.go 2014-01-30 00:52:25 +0000
44@@ -215,6 +215,16 @@
45 c.Assert(autostartLink, jc.SymlinkDoesNotExist)
46 }
47
48+func (s *LxcSuite) TestStopContainerNoRestartDir(c *gc.C) {
49+ err := os.Remove(s.RestartDir)
50+ c.Assert(err, gc.IsNil)
51+
52+ manager := lxc.NewContainerManager(container.ManagerConfig{})
53+ instance := containertesting.StartContainer(c, manager, "1/lxc/0")
54+ err = manager.StopContainer(instance)
55+ c.Assert(err, gc.IsNil)
56+}
57+
58 type NetworkSuite struct {
59 testbase.LoggingSuite
60 }
61
62=== removed file 'container/lxc/restart.go'
63--- container/lxc/restart.go 2014-01-26 22:51:43 +0000
64+++ container/lxc/restart.go 1970-01-01 00:00:00 +0000
65@@ -1,16 +0,0 @@
66-package lxc
67-
68-import (
69- "os"
70-)
71-
72-//If restart dir exists, return true. Otherwise, return false.
73-//TODO Should this test LXC version, not existence of restart dir?
74-func useRestartDir() bool {
75- if _, err := os.Stat(LxcRestartDir); err != nil {
76- if os.IsNotExist(err) {
77- return false
78- }
79- }
80- return true
81-}

Subscribers

People subscribed via source and target branches

to status/vote changes: