Merge lp:~rogpeppe/juju-core/548-destroy-environment-fix into lp:~go-bot/juju-core/trunk

Proposed by Roger Peppe
Status: Merged
Approved by: Roger Peppe
Approved revision: no longer in the source branch.
Merged at revision: 2632
Proposed branch: lp:~rogpeppe/juju-core/548-destroy-environment-fix
Merge into: lp:~go-bot/juju-core/trunk
Diff against target: 104 lines (+29/-31)
2 files modified
cmd/juju/destroyenvironment.go (+28/-30)
cmd/juju/status.go (+1/-1)
To merge this branch: bzr merge lp:~rogpeppe/juju-core/548-destroy-environment-fix
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+215697@code.launchpad.net

Commit message

cmd/juju: destroy-environment api connect fix

destroy-environment was not using the .jenv file
information to connect, which meant that it failed
when destroying a HA environment, because we
are not currently updating the environment-storage
instance ids.

https://codereview.appspot.com/87560044/

Description of the change

cmd/juju: destroy-environment api connect fix

destroy-environment was not using the .jenv file
information to connect, which meant that it failed
when destroying a HA environment, because we
are not currently updating the environment-storage
instance ids.

https://codereview.appspot.com/87560044/

To post a comment you must log in.
Revision history for this message
Roger Peppe (rogpeppe) wrote :
Download full text (4.1 KiB)

Reviewers: mp+215697_code.launchpad.net,

Message:
Please take a look.

Description:
cmd/juju: destroy-environment api connect fix

destroy-environment was not using the .jenv file
information to connect, which meant that it failed
when destroying a HA environment, because we
are not currently updating the environment-storage
instance ids.

https://code.launchpad.net/~rogpeppe/juju-core/548-destroy-environment-fix/+merge/215697

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/87560044/

Affected files (+31, -31 lines):
   A [revision details]
   M cmd/juju/destroyenvironment.go
   M cmd/juju/status.go

Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: tarmac-20140414112125-eouvcipf4rmjrahn
+New revision: <email address hidden>

Index: cmd/juju/destroyenvironment.go
=== modified file 'cmd/juju/destroyenvironment.go'
--- cmd/juju/destroyenvironment.go 2014-03-26 22:21:59 +0000
+++ cmd/juju/destroyenvironment.go 2014-04-14 15:47:12 +0000
@@ -16,7 +16,6 @@
   "launchpad.net/juju-core/environs"
   "launchpad.net/juju-core/environs/configstore"
   "launchpad.net/juju-core/juju"
- "launchpad.net/juju-core/state/api"
   "launchpad.net/juju-core/state/api/params"
  )

@@ -47,6 +46,30 @@
   f.StringVar(&c.envName, "environment", "", "juju environment to operate
in")
  }

+func (c *DestroyEnvironmentCommand) Init(args []string) error {
+ if c.envName != "" {
+ logger.Warningf("-e/--environment flag is deprecated in 1.18, " +
+ "please supply environment as a positional parameter")
+ // They supplied the -e flag
+ if len(args) == 0 {
+ // We're happy, we have enough information
+ return nil
+ }
+ // You can't supply -e ENV and ENV as a positional argument
+ return DoubleEnvironmentError
+ }
+ // No -e flag means they must supply the environment positionally
+ switch len(args) {
+ case 0:
+ return NoEnvironmentError
+ case 1:
+ c.envName = args[0]
+ return nil
+ default:
+ return cmd.CheckEmpty(args[1:])
+ }
+}
+
  func (c *DestroyEnvironmentCommand) Run(ctx *cmd.Context) (result error) {
   store, err := configstore.Default()
   if err != nil {
@@ -95,12 +118,12 @@

  `, c.envName)
    }()
- conn, err := juju.NewAPIConn(environ, api.DefaultDialOpts())
+ apiclient, err := juju.NewAPIClientFromName(c.envName)
    if err != nil {
- return err
+ return fmt.Errorf("cannot connect to API: %v", err)
    }
- defer conn.Close()
- err = conn.State.Client().DestroyEnvironment()
+ defer apiclient.Close()
+ err = apiclient.DestroyEnvironment()
    if err != nil && !params.IsCodeNotImplemented(err) {
     return fmt.Errorf("destroying environment: %v", err)
    }
@@ -108,31 +131,6 @@
   return environs.Destroy(environ, store)
  }

-func (c *DestroyEnvironmentCommand) Init(args []string) error {
- if c.envName != "" {
- logger.Warningf("-e/--environment flag is deprecated in 1.18, " +
- "please supply environment as a positional parameter")
- // They supplied the -e flag
- if len(args) == 0 {
- // We're hap...

Read more...

Revision history for this message
Dimiter Naydenov (dimitern) wrote :

LGTM

https://codereview.appspot.com/87560044/diff/20001/cmd/juju/destroyenvironment.go
File cmd/juju/destroyenvironment.go (right):

https://codereview.appspot.com/87560044/diff/20001/cmd/juju/destroyenvironment.go#newcode123
cmd/juju/destroyenvironment.go:123: return fmt.Errorf("cannot connect to
API: %v", err)
s/API/API server/ ?

https://codereview.appspot.com/87560044/

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

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

ok launchpad.net/juju-core 0.014s
ok launchpad.net/juju-core/agent 1.652s
ok launchpad.net/juju-core/agent/mongo 0.932s
ok launchpad.net/juju-core/agent/tools 0.203s
ok launchpad.net/juju-core/bzr 5.058s
ok launchpad.net/juju-core/cert 2.561s
ok launchpad.net/juju-core/charm 0.428s
? 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.031s
ok launchpad.net/juju-core/cloudinit/sshinit 0.929s
ok launchpad.net/juju-core/cmd 0.169s
ok launchpad.net/juju-core/cmd/charm-admin 0.736s
? launchpad.net/juju-core/cmd/charmd [no test files]
? launchpad.net/juju-core/cmd/charmload [no test files]
ok launchpad.net/juju-core/cmd/envcmd 0.186s
ok launchpad.net/juju-core/cmd/juju 225.861s
ok launchpad.net/juju-core/cmd/jujud 68.660s
ok launchpad.net/juju-core/cmd/plugins/juju-metadata 7.641s
? launchpad.net/juju-core/cmd/plugins/juju-restore [no test files]
ok launchpad.net/juju-core/cmd/plugins/local 0.236s
? launchpad.net/juju-core/cmd/plugins/local/juju-local [no test files]
ok launchpad.net/juju-core/constraints 0.021s
ok launchpad.net/juju-core/container 0.035s
ok launchpad.net/juju-core/container/factory 0.036s
ok launchpad.net/juju-core/container/kvm 0.192s
ok launchpad.net/juju-core/container/kvm/mock 0.046s
? launchpad.net/juju-core/container/kvm/testing [no test files]
ok launchpad.net/juju-core/container/lxc 4.331s
? 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.221s
ok launchpad.net/juju-core/environs 2.316s
ok launchpad.net/juju-core/environs/bootstrap 12.095s
ok launchpad.net/juju-core/environs/cloudinit 0.531s
ok launchpad.net/juju-core/environs/config 2.210s
ok launchpad.net/juju-core/environs/configstore 0.031s
ok launchpad.net/juju-core/environs/filestorage 0.031s
ok launchpad.net/juju-core/environs/httpstorage 0.650s
ok launchpad.net/juju-core/environs/imagemetadata 0.495s
? launchpad.net/juju-core/environs/imagemetadata/testing [no test files]
ok launchpad.net/juju-core/environs/instances 0.043s
ok launchpad.net/juju-core/environs/jujutest 0.185s
ok launchpad.net/juju-core/environs/manual 10.754s
ok launchpad.net/juju-core/environs/simplestreams 0.233s
? launchpad.net/juju-core/environs/simplestreams/testing [no test files]
ok launchpad.net/juju-core/environs/sshstorage 0.967s
ok launchpad.net/juju-core/environs/storage 0.861s
ok launchpad.net/juju-core/environs/sync 50.498s
ok launchpad.net/juju-core/environs/testing 0.140s
ok launchpad.net/juju-core/environs/tools 4.924s
? launchpad.net/juju-core/environs/tools/testing [no test files]
ok launchpad.net/juju-core/errors 0.013s
ok launchpad.net/juju-core/instance 0.021s
? launchpad.net/juju-core/instance/testing [no test files]
ok launchpad.net/juju-core/juju...

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

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

ok launchpad.net/juju-core 0.014s
ok launchpad.net/juju-core/agent 1.671s
ok launchpad.net/juju-core/agent/mongo 2.218s
ok launchpad.net/juju-core/agent/tools 0.233s
ok launchpad.net/juju-core/bzr 5.145s
ok launchpad.net/juju-core/cert 2.523s
ok launchpad.net/juju-core/charm 0.443s
? 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.030s
ok launchpad.net/juju-core/cloudinit/sshinit 0.767s
ok launchpad.net/juju-core/cmd 0.153s
ok launchpad.net/juju-core/cmd/charm-admin 0.747s
? launchpad.net/juju-core/cmd/charmd [no test files]
? launchpad.net/juju-core/cmd/charmload [no test files]
ok launchpad.net/juju-core/cmd/envcmd 0.199s
ok launchpad.net/juju-core/cmd/juju 221.017s
ok launchpad.net/juju-core/cmd/jujud 81.514s
ok launchpad.net/juju-core/cmd/plugins/juju-metadata 6.779s
? launchpad.net/juju-core/cmd/plugins/juju-restore [no test files]
ok launchpad.net/juju-core/cmd/plugins/local 0.180s
? launchpad.net/juju-core/cmd/plugins/local/juju-local [no test files]
ok launchpad.net/juju-core/constraints 0.027s
ok launchpad.net/juju-core/container 0.043s
ok launchpad.net/juju-core/container/factory 0.047s
ok launchpad.net/juju-core/container/kvm 0.221s
ok launchpad.net/juju-core/container/kvm/mock 0.044s
? launchpad.net/juju-core/container/kvm/testing [no test files]
ok launchpad.net/juju-core/container/lxc 4.354s
? 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.218s
ok launchpad.net/juju-core/environs 2.324s
ok launchpad.net/juju-core/environs/bootstrap 10.941s
ok launchpad.net/juju-core/environs/cloudinit 0.426s
ok launchpad.net/juju-core/environs/config 1.892s
ok launchpad.net/juju-core/environs/configstore 0.033s
ok launchpad.net/juju-core/environs/filestorage 0.026s
ok launchpad.net/juju-core/environs/httpstorage 0.631s
ok launchpad.net/juju-core/environs/imagemetadata 0.405s
? launchpad.net/juju-core/environs/imagemetadata/testing [no test files]
ok launchpad.net/juju-core/environs/instances 0.043s
ok launchpad.net/juju-core/environs/jujutest 0.179s
ok launchpad.net/juju-core/environs/manual 14.621s
ok launchpad.net/juju-core/environs/simplestreams 0.287s
? launchpad.net/juju-core/environs/simplestreams/testing [no test files]
ok launchpad.net/juju-core/environs/sshstorage 0.983s
ok launchpad.net/juju-core/environs/storage 0.858s
ok launchpad.net/juju-core/environs/sync 47.774s
ok launchpad.net/juju-core/environs/testing 0.182s
ok launchpad.net/juju-core/environs/tools 4.477s
? launchpad.net/juju-core/environs/tools/testing [no test files]
ok launchpad.net/juju-core/errors 0.011s
ok launchpad.net/juju-core/instance 0.018s
? launchpad.net/juju-core/instance/testing [no test files]
ok launchpad.net/juju-core/juju...

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

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

ok launchpad.net/juju-core 0.014s
ok launchpad.net/juju-core/agent 1.148s
ok launchpad.net/juju-core/agent/mongo 2.469s
ok launchpad.net/juju-core/agent/tools 0.217s
ok launchpad.net/juju-core/bzr 5.371s
ok launchpad.net/juju-core/cert 2.485s
ok launchpad.net/juju-core/charm 0.441s
? 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.030s
ok launchpad.net/juju-core/cloudinit/sshinit 0.766s
ok launchpad.net/juju-core/cmd 0.177s
ok launchpad.net/juju-core/cmd/charm-admin 0.727s
? launchpad.net/juju-core/cmd/charmd [no test files]
? launchpad.net/juju-core/cmd/charmload [no test files]
ok launchpad.net/juju-core/cmd/envcmd 0.181s
ok launchpad.net/juju-core/cmd/juju 226.477s
ok launchpad.net/juju-core/cmd/jujud 78.944s
ok launchpad.net/juju-core/cmd/plugins/juju-metadata 8.656s
? launchpad.net/juju-core/cmd/plugins/juju-restore [no test files]
ok launchpad.net/juju-core/cmd/plugins/local 0.245s
? launchpad.net/juju-core/cmd/plugins/local/juju-local [no test files]
ok launchpad.net/juju-core/constraints 0.023s
ok launchpad.net/juju-core/container 0.045s
ok launchpad.net/juju-core/container/factory 0.049s
ok launchpad.net/juju-core/container/kvm 0.194s
ok launchpad.net/juju-core/container/kvm/mock 0.036s
? launchpad.net/juju-core/container/kvm/testing [no test files]
ok launchpad.net/juju-core/container/lxc 4.268s
? 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.217s
ok launchpad.net/juju-core/environs 2.369s
ok launchpad.net/juju-core/environs/bootstrap 11.695s
ok launchpad.net/juju-core/environs/cloudinit 0.613s
ok launchpad.net/juju-core/environs/config 1.740s
ok launchpad.net/juju-core/environs/configstore 0.033s
ok launchpad.net/juju-core/environs/filestorage 0.026s
ok launchpad.net/juju-core/environs/httpstorage 0.612s
ok launchpad.net/juju-core/environs/imagemetadata 0.427s
? launchpad.net/juju-core/environs/imagemetadata/testing [no test files]
ok launchpad.net/juju-core/environs/instances 0.041s
ok launchpad.net/juju-core/environs/jujutest 0.161s
ok launchpad.net/juju-core/environs/manual 11.777s
ok launchpad.net/juju-core/environs/simplestreams 0.250s
? launchpad.net/juju-core/environs/simplestreams/testing [no test files]
ok launchpad.net/juju-core/environs/sshstorage 0.906s
ok launchpad.net/juju-core/environs/storage 0.823s
ok launchpad.net/juju-core/environs/sync 49.707s
ok launchpad.net/juju-core/environs/testing 0.177s
ok launchpad.net/juju-core/environs/tools 4.982s
? launchpad.net/juju-core/environs/tools/testing [no test files]
ok launchpad.net/juju-core/errors 0.011s
ok launchpad.net/juju-core/instance 0.017s
? launchpad.net/juju-core/instance/testing [no test files]
ok launchpad.net/juju-core/juju...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cmd/juju/destroyenvironment.go'
2--- cmd/juju/destroyenvironment.go 2014-03-26 22:21:59 +0000
3+++ cmd/juju/destroyenvironment.go 2014-04-14 15:56:25 +0000
4@@ -16,7 +16,6 @@
5 "launchpad.net/juju-core/environs"
6 "launchpad.net/juju-core/environs/configstore"
7 "launchpad.net/juju-core/juju"
8- "launchpad.net/juju-core/state/api"
9 "launchpad.net/juju-core/state/api/params"
10 )
11
12@@ -47,6 +46,30 @@
13 f.StringVar(&c.envName, "environment", "", "juju environment to operate in")
14 }
15
16+func (c *DestroyEnvironmentCommand) Init(args []string) error {
17+ if c.envName != "" {
18+ logger.Warningf("-e/--environment flag is deprecated in 1.18, " +
19+ "please supply environment as a positional parameter")
20+ // They supplied the -e flag
21+ if len(args) == 0 {
22+ // We're happy, we have enough information
23+ return nil
24+ }
25+ // You can't supply -e ENV and ENV as a positional argument
26+ return DoubleEnvironmentError
27+ }
28+ // No -e flag means they must supply the environment positionally
29+ switch len(args) {
30+ case 0:
31+ return NoEnvironmentError
32+ case 1:
33+ c.envName = args[0]
34+ return nil
35+ default:
36+ return cmd.CheckEmpty(args[1:])
37+ }
38+}
39+
40 func (c *DestroyEnvironmentCommand) Run(ctx *cmd.Context) (result error) {
41 store, err := configstore.Default()
42 if err != nil {
43@@ -95,12 +118,12 @@
44
45 `, c.envName)
46 }()
47- conn, err := juju.NewAPIConn(environ, api.DefaultDialOpts())
48+ apiclient, err := juju.NewAPIClientFromName(c.envName)
49 if err != nil {
50- return err
51+ return fmt.Errorf("cannot connect to API: %v", err)
52 }
53- defer conn.Close()
54- err = conn.State.Client().DestroyEnvironment()
55+ defer apiclient.Close()
56+ err = apiclient.DestroyEnvironment()
57 if err != nil && !params.IsCodeNotImplemented(err) {
58 return fmt.Errorf("destroying environment: %v", err)
59 }
60@@ -108,31 +131,6 @@
61 return environs.Destroy(environ, store)
62 }
63
64-func (c *DestroyEnvironmentCommand) Init(args []string) error {
65- if c.envName != "" {
66- logger.Warningf("-e/--environment flag is deprecated in 1.18, " +
67- "please supply environment as a positional parameter")
68- // They supplied the -e flag
69- if len(args) == 0 {
70- // We're happy, we have enough information
71- return nil
72- }
73- // You can't supply -e ENV and ENV as a positional argument
74- return DoubleEnvironmentError
75- } else {
76- // No -e flag means they must supply the environment positionally
77- switch len(args) {
78- case 0:
79- return NoEnvironmentError
80- case 1:
81- c.envName = args[0]
82- return nil
83- default:
84- return cmd.CheckEmpty(args[1:])
85- }
86- }
87-}
88-
89 var destroyEnvMsg = `
90 WARNING! this command will destroy the %q environment (type: %s)
91 This includes all machines, services, data and other resources.
92
93=== modified file 'cmd/juju/status.go'
94--- cmd/juju/status.go 2014-04-07 10:05:04 +0000
95+++ cmd/juju/status.go 2014-04-14 15:56:25 +0000
96@@ -61,7 +61,7 @@
97 return c.EnvCommandBase.Init()
98 }
99
100-var connectionError = `Unable to connect to environment "%s".
101+var connectionError = `Unable to connect to environment %q.
102 Please check your credentials or use 'juju bootstrap' to create a new environment.
103
104 Error details:

Subscribers

People subscribed via source and target branches

to status/vote changes: