Merge lp:~peter-petrakis/juju-deployer/devel-bootstrap-sync into lp:~gandelman-a/juju-deployer/trunk

Proposed by Peter Petrakis
Status: Approved
Approved by: Adam Gandelman
Approved revision: 74
Proposed branch: lp:~peter-petrakis/juju-deployer/devel-bootstrap-sync
Merge into: lp:~gandelman-a/juju-deployer/trunk
Diff against target: 48 lines (+16/-0)
3 files modified
deployer/action/importer.py (+2/-0)
deployer/cli.py (+5/-0)
deployer/env/base.py (+9/-0)
To merge this branch: bzr merge lp:~peter-petrakis/juju-deployer/devel-bootstrap-sync
Reviewer Review Type Date Requested Status
Adam Gandelman Approve
Review via email: mp+185125@code.launchpad.net

Description of the change

Adds -B/--bootstrap

Will create target environment and block until it's ready to communicate

To post a comment you must log in.
Revision history for this message
Adam Gandelman (gandelman-a) wrote :

This looks good. Merging with a slightly modified help msg.

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

Modified to use get_cli_status() so that it works with go environments as well.

Unmerged revisions

74. By Peter Petrakis

Bootstrap sync feature

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-07-31 01:54:20 +0000
3+++ deployer/action/importer.py 2013-09-11 18:16:07 +0000
4@@ -133,6 +133,8 @@
5
6 def run(self):
7 self.start_time = time.time()
8+ if self.options.bootstrap:
9+ self.env.bootstrap()
10 self.env.connect()
11
12 # Get charms
13
14=== modified file 'deployer/cli.py'
15--- deployer/cli.py 2013-08-22 00:57:51 +0000
16+++ deployer/cli.py 2013-09-11 18:16:07 +0000
17@@ -66,6 +66,11 @@
18 help='Update vcs branches and exit.',
19 dest="branch_only")
20 parser.add_argument(
21+ '-B', '--bootstrap',
22+ help=('Bootstrap specified environment, blocks until ready'),
23+ dest="bootstrap", action="store_true",
24+ default=False)
25+ parser.add_argument(
26 '-s', '--deploy-delay', action='store', type=float,
27 help=("Time in seconds to sleep between 'deploy' commands, "
28 "to allow machine provider to process requests. On "
29
30=== modified file 'deployer/env/base.py'
31--- deployer/env/base.py 2013-07-30 23:39:51 +0000
32+++ deployer/env/base.py 2013-09-11 18:16:07 +0000
33@@ -64,6 +64,15 @@
34 units.append(uid)
35 return units
36
37+ def bootstrap(self):
38+ self.log.info("bootstraping, this might take a while...")
39+ params = self._named_env(["juju", "bootstrap"])
40+ self._check_call(
41+ params, self.log, "Failed to bootstrap")
42+
43+ status = self.status() # block until topology is returned
44+ self.log.info(" Bootstrap complete")
45+
46 def deploy(self, name, charm_url,
47 repo=None, config=None,
48 constraints=None, num_units=1, force_machine=None):

Subscribers

People subscribed via source and target branches