Merge lp:~jjo/juju-deployer/implement-series-cli-override into lp:juju-deployer

Proposed by JuanJo Ciarlante
Status: Rejected
Rejected by: JuanJo Ciarlante
Proposed branch: lp:~jjo/juju-deployer/implement-series-cli-override
Merge into: lp:juju-deployer
Diff against target: 93 lines (+22/-5)
5 files modified
deployer/action/importer.py (+2/-1)
deployer/cli.py (+4/-0)
deployer/deployment.py (+6/-3)
deployer/tests/test_deployment.py (+9/-1)
deployer/tests/test_guiserver.py (+1/-0)
To merge this branch: bzr merge lp:~jjo/juju-deployer/implement-series-cli-override
Reviewer Review Type Date Requested Status
Kapil Thangavelu Needs Fixing
Review via email: mp+202778@code.launchpad.net

Commit message

[jjo,r=] implement --series= cli override

TESTS ok.

To post a comment you must log in.
85. By Kapil Thangavelu

merge branch mthaddon doc-updates re inheriteance

86. By Kapil Thangavelu

merge jjo branch for offline build server testing on precise

87. By Kapil Thangavelu

merge support for JUJU_REPOSITORY, variant of jjo support-JUJU_REPOSITORY-env_var branch

88. By Martin Packman

merge gz branch for juju binary check and helpful err msg if missing

Revision history for this message
Kapil Thangavelu (hazmat) wrote :

lgtm, although i'd like to drop the shorthand -i and just keep long form --series.

review: Approve
Revision history for this message
JuanJo Ciarlante (jjo) wrote :

> lgtm, although i'd like to drop the shorthand -i and just keep long form
> --series.

Ack, done.

Revision history for this message
Kapil Thangavelu (hazmat) wrote :

there's something a bit strange here which the tests note as part of their workaround, namely the deployment is using the value prior to its override, which makes this feels a bit icky/nondeterministic ie. runtime value changing while being used. the cleaner way would be to override this as the deployment is being constructed in configstack.

review: Needs Fixing
89. By JuanJo Ciarlante

merge jjo diff usability fixes

90. By JuanJo Ciarlante

merge branch jjo diff tests

91. By Kapil Thangavelu

merge hazmat rework error handling to use feedback object to collect sets of validation errors

92. By Brad Crittenden

merge bac parse-constraints, normalize constraints for use with api deploys

93. By JuanJo Ciarlante

implement --series cli override, also fix wiki.yaml parsing

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'deployer/action/importer.py'
2--- deployer/action/importer.py 2013-11-12 04:54:58 +0000
3+++ deployer/action/importer.py 2014-01-23 11:46:28 +0000
4@@ -64,7 +64,8 @@
5
6 # Load config overrides/includes and verify rels after we can
7 # validate them.
8- self.deployment.resolve(self.options.overrides or ())
9+ self.deployment.resolve(self.options.overrides or (),
10+ self.options.series)
11
12 def deploy_services(self):
13 self.log.info("Deploying services...")
14
15=== modified file 'deployer/cli.py'
16--- deployer/cli.py 2013-12-18 09:51:54 +0000
17+++ deployer/cli.py 2014-01-23 11:46:28 +0000
18@@ -88,6 +88,10 @@
19 'across all services. Input as key=value.'),
20 dest='overrides', default=None)
21 parser.add_argument(
22+ '--series', type=str,
23+ help=('Override distro series in config file'),
24+ dest='series', default=None)
25+ parser.add_argument(
26 '-v', '--verbose', action='store_true', default=False,
27 dest="verbose", help='Verbose output')
28 parser.add_argument(
29
30=== modified file 'deployer/deployment.py'
31--- deployer/deployment.py 2013-10-31 19:19:36 +0000
32+++ deployer/deployment.py 2014-01-23 11:46:28 +0000
33@@ -177,19 +177,22 @@
34 continue
35 charm.fetch()
36
37- def resolve(self, cli_overides=()):
38+ def resolve(self, cli_overides=(), cli_series=None):
39 # Once we have charms definitions available, we can do verification
40 # of config options.
41- self.load_overrides(cli_overides)
42+ self.load_overrides(cli_overides, cli_series)
43 self.resolve_config()
44 self.validate_relations()
45 self.validate_placement()
46
47- def load_overrides(self, cli_overrides=()):
48+ def load_overrides(self, cli_overrides=(), cli_series=None):
49 """Load overrides."""
50 overrides = {}
51 overrides.update(self.data.get('overrides', {}))
52
53+ if cli_series:
54+ self.data['series'] = cli_series
55+
56 for o in cli_overrides:
57 key, value = o.split('=', 1)
58 overrides[key] = value
59
60=== modified file 'deployer/tests/test_deployment.py'
61--- deployer/tests/test_deployment.py 2014-01-23 09:50:55 +0000
62+++ deployer/tests/test_deployment.py 2014-01-23 11:46:28 +0000
63@@ -43,9 +43,17 @@
64 d.fetch_charms()
65
66 # Load up overrides and resolves
67- d.load_overrides(["key=abc"])
68+ # kludge: because this test actually expects series' charms
69+ # to be downloadable, override it (back) to 'precise' by
70+ # previously patching it to some other value.
71+ d.data['series'] = 'zeriez'
72+ self.assertEqual(d.series, 'zeriez')
73+
74+ d.load_overrides(["key=abc"], 'precise')
75 d.resolve_config()
76
77+ # Verify series override
78+ self.assertEqual(d.series, 'precise')
79 # Verify include-base64
80 self.assertEqual(d.get_service('newrelic').config, {'key': 'abc'})
81 self.assertEqual(
82
83=== modified file 'deployer/tests/test_guiserver.py'
84--- deployer/tests/test_guiserver.py 2014-01-23 09:50:55 +0000
85+++ deployer/tests/test_guiserver.py 2014-01-23 11:46:28 +0000
86@@ -225,6 +225,7 @@
87 overrides=None,
88 rel_wait=60,
89 retry_count=0,
90+ series=None,
91 terminate_machines=False,
92 timeout=2700,
93 update_charms=False,

Subscribers

People subscribed via source and target branches