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

Proposed by JuanJo Ciarlante
Status: Merged
Merged at revision: 95
Proposed branch: lp:~jjo/juju-deployer/implement-series-cli-override
Merge into: lp:juju-deployer
Diff against target: 110 lines (+26/-11)
5 files modified
configs/wiki.yaml (+9/-9)
deployer/cli.py (+5/-1)
deployer/config.py (+4/-1)
deployer/tests/test_config.py (+7/-0)
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 Approve
Review via email: mp+202878@code.launchpad.net

Commit message

[jjo,r=] implement --series cli override via ConfigStack initializaion,
also fix wiki.yaml parsing.

TESTS ok.

To post a comment you must log in.
Revision history for this message
Kapil Thangavelu (hazmat) wrote :

lgtm, thanks

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'configs/wiki.yaml'
--- configs/wiki.yaml 2013-07-12 12:52:59 +0000
+++ configs/wiki.yaml 2014-01-23 15:03:59 +0000
@@ -6,19 +6,19 @@
6 branch: lp:charms/precise/mediawiki6 branch: lp:charms/precise/mediawiki
7 constraints: mem=27 constraints: mem=2
8 num_units: 28 num_units: 2
9 db:9 db:
10 charm: mysql10 charm: mysql
11 branch: lp:charms/precise/mysql11 branch: lp:charms/precise/mysql
12 options:12 options:
13 tuning-level: fast13 tuning-level: fast
14 haproxy:14 haproxy:
15 branch: lp:charms/precise/haproxy15 branch: lp:charms/precise/haproxy
16 options:16 options:
17 request-limit: 3217 request-limit: 32
18 memcached:18 memcached:
19 branch: lp:charms/precise/memcached19 branch: lp:charms/precise/memcached
20 options:20 options:
21 request-limit: 3221 request-limit: 32
22 relations:22 relations:
23 - ["wiki:db", mysql]23 - ["wiki:db", mysql]
24 - [wiki, [haproxy, memcached]]24 - [wiki, [haproxy, memcached]]
2525
=== modified file 'deployer/cli.py'
--- deployer/cli.py 2013-12-18 09:51:54 +0000
+++ deployer/cli.py 2014-01-23 15:03:59 +0000
@@ -88,6 +88,10 @@
88 'across all services. Input as key=value.'),88 'across all services. Input as key=value.'),
89 dest='overrides', default=None)89 dest='overrides', default=None)
90 parser.add_argument(90 parser.add_argument(
91 '--series', type=str,
92 help=('Override distro series in config files'),
93 dest='series', default=None)
94 parser.add_argument(
91 '-v', '--verbose', action='store_true', default=False,95 '-v', '--verbose', action='store_true', default=False,
92 dest="verbose", help='Verbose output')96 dest="verbose", help='Verbose output')
93 parser.add_argument(97 parser.add_argument(
@@ -148,7 +152,7 @@
148 sys.exit(1)152 sys.exit(1)
149 log.debug('Using runtime %s', env.__class__.__name__)153 log.debug('Using runtime %s', env.__class__.__name__)
150154
151 config = ConfigStack(options.configs or [])155 config = ConfigStack(options.configs or [], options.series)
152156
153 # Destroy services and exit157 # Destroy services and exit
154 if options.destroy_services or options.terminate_machines:158 if options.destroy_services or options.terminate_machines:
155159
=== modified file 'deployer/config.py'
--- deployer/config.py 2014-01-23 10:37:30 +0000
+++ deployer/config.py 2014-01-23 15:03:59 +0000
@@ -16,8 +16,9 @@
1616
17 log = logging.getLogger("deployer.config")17 log = logging.getLogger("deployer.config")
1818
19 def __init__(self, config_files):19 def __init__(self, config_files, cli_series=None):
20 self.config_files = config_files20 self.config_files = config_files
21 self.cli_series = cli_series
21 self.data = {}22 self.data = {}
22 self.yaml = {}23 self.yaml = {}
23 self.include_dirs = []24 self.include_dirs = []
@@ -60,6 +61,8 @@
60 raise ErrorExit()61 raise ErrorExit()
61 deploy_data = self.data[key]62 deploy_data = self.data[key]
62 deploy_data = self._resolve_inherited(deploy_data)63 deploy_data = self._resolve_inherited(deploy_data)
64 if self.cli_series:
65 deploy_data['series'] = self.cli_series
63 return Deployment(66 return Deployment(
64 key, deploy_data, self.include_dirs,67 key, deploy_data, self.include_dirs,
65 repo_path=os.environ.get("JUJU_REPOSITORY", ""))68 repo_path=os.environ.get("JUJU_REPOSITORY", ""))
6669
=== modified file 'deployer/tests/test_config.py'
--- deployer/tests/test_config.py 2013-10-30 00:16:05 +0000
+++ deployer/tests/test_config.py 2014-01-23 15:03:59 +0000
@@ -126,6 +126,13 @@
126 ('nova-cloud-controller', 'mysql')]126 ('nova-cloud-controller', 'mysql')]
127 self.assertEquals(ex_rels, list(deployment.get_relations()))127 self.assertEquals(ex_rels, list(deployment.get_relations()))
128128
129 def test_config_series_override(self):
130 config = ConfigStack(['configs/wiki.yaml'], 'trusty')
131 config.load()
132 result = config.get("wiki")
133 self.assertTrue(isinstance(result, Deployment))
134 self.assertEquals(result.series, 'trusty')
135
129136
130class NetworkConfigFetchingTests(Base):137class NetworkConfigFetchingTests(Base):
131 """Configuration files can be specified via URL that is then fetched."""138 """Configuration files can be specified via URL that is then fetched."""
132139
=== modified file 'deployer/tests/test_guiserver.py'
--- deployer/tests/test_guiserver.py 2014-01-23 14:14:28 +0000
+++ deployer/tests/test_guiserver.py 2014-01-23 15:03:59 +0000
@@ -226,6 +226,7 @@
226 overrides=None,226 overrides=None,
227 rel_wait=60,227 rel_wait=60,
228 retry_count=0,228 retry_count=0,
229 series=None,
229 terminate_machines=False,230 terminate_machines=False,
230 timeout=2700,231 timeout=2700,
231 update_charms=False,232 update_charms=False,

Subscribers

People subscribed via source and target branches