Merge lp:~cmars/juju-core/1.18-resolve-cs-series into lp:juju-core/1.18

Proposed by Casey Marshall on 2014-04-03
Status: Merged
Merged at revision: 2265
Proposed branch: lp:~cmars/juju-core/1.18-resolve-cs-series
Merge into: lp:juju-core/1.18
Diff against target: 73 lines (+20/-5)
3 files modified
cmd/juju/common.go (+8/-0)
cmd/juju/deploy.go (+8/-5)
provider/local/environprovider.go (+4/-0)
To merge this branch: bzr merge lp:~cmars/juju-core/1.18-resolve-cs-series
Reviewer Review Type Date Requested Status
Juju Engineering 2014-04-03 Pending
Review via email: mp+214097@code.launchpad.net

Commit message

Ported r2559 from trunk to 1.18

For the deploy and upgradecharm commands, when a series is not provided, and a
default-series is not set in the environment config, the client will resolve
the series with the charm store, through the state server. If the client is
working with a 1.16 state server, it will resolve the series directly with the
charm store.

Existing environments will have a default-series, so they should have no
change in series selection.

New environments will continue to support the default-series config setting,
but it can be omitted, and is not set by default.

Description of the change

Ported r2559 from trunk to 1.18

For the deploy and upgradecharm commands, when a series is not provided, and a
default-series is not set in the environment config, the client will resolve
the series with the charm store, through the state server. If the client is
working with a 1.16 state server, it will resolve the series directly with the
charm store.

Existing environments will have a default-series, so they should have no
change in series selection.

New environments will continue to support the default-series config setting,
but it can be omitted, and is not set by default.

https://codereview.appspot.com/84190043/

To post a comment you must log in.
Casey Marshall (cmars) wrote :

Reviewers: mp+214097_code.launchpad.net,

Message:
Please take a look.

Description:
Ported r2559 from trunk to 1.18

For the deploy and upgradecharm commands, when a series is not provided,
and a
default-series is not set in the environment config, the client will
resolve
the series with the charm store, through the state server. If the client
is
working with a 1.16 state server, it will resolve the series directly
with the
charm store.

Existing environments will have a default-series, so they should have no
change in series selection.

New environments will continue to support the default-series config
setting,
but it can be omitted, and is not set by default.

https://code.launchpad.net/~cmars/juju-core/1.18-resolve-cs-series/+merge/214097

(do not edit description out of merge proposal)

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

Affected files (+448, -150 lines):
   A [revision details]
   M charm/charm.go
   M charm/charm_test.go
   M charm/url.go
   M charm/url_test.go
   M cmd/juju/addmachine.go
   M cmd/juju/bootstrap_test.go
   M cmd/juju/common.go
   M cmd/juju/deploy.go
   M cmd/juju/environment_test.go
   M cmd/juju/publish.go
   M cmd/juju/upgradecharm.go
   M cmd/juju/upgradejuju_test.go
   M cmd/plugins/juju-metadata/imagemetadata.go
   M cmd/plugins/juju-metadata/imagemetadata_test.go
   M environs/bootstrap/bootstrap_test.go
   M environs/bootstrap/synctools.go
   M environs/config/config.go
   M environs/config/config_test.go
   M environs/jujutest/livetests.go
   M environs/testing/tools.go
   M juju/apiconn_test.go
   M juju/testing/conn.go
   M juju/testing/instance.go
   M provider/azure/environ_test.go
   M provider/common/bootstrap.go
   M provider/dummy/environs.go
   M provider/ec2/ec2.go
   M provider/ec2/live_test.go
   M provider/ec2/local_test.go
   M provider/joyent/environ.go
   M provider/openstack/provider.go
   M state/api/client.go
   M state/api/params/params.go
   M state/apiserver/client/client.go
   M state/apiserver/client/client_test.go
   M testing/environ.go
   M worker/provisioner/container_initialisation_test.go
   M worker/provisioner/kvm-broker_test.go
   M worker/provisioner/lxc-broker_test.go
   M worker/provisioner/provisioner_test.go

Casey Marshall (cmars) wrote :

This is a cherry-pick of r2559 from trunk.

Original trunk proposal, for context:
https://codereview.appspot.com/80280043/

PTAL & thanks,
-Casey

https://codereview.appspot.com/84190043/

Ian Booth (wallyworld) wrote :

Cherry pick looks ok.
Only reviewed for obvious backporting errors as original work was
approved.

https://codereview.appspot.com/84190043/

Casey Marshall (cmars) wrote :
Casey Marshall (cmars) wrote :

On 2014/04/09 22:49:16, cmars wrote:
> Please take a look.

lbox picked up the wrong branch here, please ignore.

https://codereview.appspot.com/84190043/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cmd/juju/common.go'
2--- cmd/juju/common.go 2014-04-03 19:11:11 +0000
3+++ cmd/juju/common.go 2014-04-09 22:48:20 +0000
4@@ -4,6 +4,8 @@
5 package main
6
7 import (
8+ "fmt"
9+
10 "launchpad.net/juju-core/charm"
11 "launchpad.net/juju-core/cmd"
12 "launchpad.net/juju-core/environs"
13@@ -65,6 +67,12 @@
14 }
15 // Otherwise, look up the best supported series for this charm
16 if series == "" {
17+ if ref.Schema == "local" {
18+ possibleUrl := &charm.URL{Reference: ref, Series: "precise"}
19+ logger.Errorf(`The series is not specified in the environment (default-series) or with the charm. Did you mean:
20+ %s`, possibleUrl.String())
21+ return nil, fmt.Errorf("cannot resolve series for charm: %q", ref)
22+ }
23 return client.ResolveCharm(ref)
24 }
25 return &charm.URL{Reference: ref, Series: series}, nil
26
27=== modified file 'cmd/juju/deploy.go'
28--- cmd/juju/deploy.go 2014-04-03 19:11:11 +0000
29+++ cmd/juju/deploy.go 2014-04-09 22:48:20 +0000
30@@ -34,8 +34,7 @@
31
32 const deployDoc = `
33 <charm name> can be a charm URL, or an unambiguously condensed form of it;
34-assuming a current default series of "precise", the following forms will be
35-accepted.
36+assuming a current series of "precise", the following forms will be accepted:
37
38 For cs:precise/mysql
39 mysql
40@@ -44,12 +43,16 @@
41 For cs:~user/precise/mysql
42 cs:~user/mysql
43
44-For local:precise/mysql
45- local:mysql
46+The current series is determined first by the default-series environment
47+setting, followed by the preferred series for the charm in the charm store.
48
49-In all cases, a versioned charm URL will be expanded as expected (for example,
50+In these cases, a versioned charm URL will be expanded as expected (for example,
51 mysql-33 becomes cs:precise/mysql-33).
52
53+However, for local charms, when the default-series is not specified in the
54+environment, one must specify the series. For example:
55+ local:precise/mysql
56+
57 <service name>, if omitted, will be derived from <charm name>.
58
59 Constraints can be specified when using deploy by specifying the --constraints
60
61=== modified file 'provider/local/environprovider.go'
62--- provider/local/environprovider.go 2014-04-01 21:11:50 +0000
63+++ provider/local/environprovider.go 2014-04-09 22:48:20 +0000
64@@ -256,6 +256,10 @@
65 #
66 # network-bridge: lxcbr0
67
68+ # The default series to deploy the state-server and charms on.
69+ #
70+ # default-series: precise
71+
72 `[1:]
73 }
74

Subscribers

People subscribed via source and target branches

to all changes: