653
by Aaron Bentley
Add assess-bootstrap. |
1 |
#!/usr/bin/env python
|
2 |
from __future__ import print_function |
|
3 |
||
4 |
from argparse import ArgumentParser |
|
1091.4.1
by James Tunnicliffe
Merged upstream |
5 |
import logging |
653
by Aaron Bentley
Add assess-bootstrap. |
6 |
import os.path |
1211.2.6
by Aaron Bentley
Handle LoggedException in quickstart_deploy, assess_bootstrap. |
7 |
import sys |
653
by Aaron Bentley
Add assess-bootstrap. |
8 |
|
1162.2.15
by Aaron Bentley
Use BootstrapManager for assess_bootstrap. |
9 |
from deploy_stack import ( |
10 |
BootstrapManager, |
|
11 |
tear_down, |
|
12 |
)
|
|
653
by Aaron Bentley
Add assess-bootstrap. |
13 |
from jujupy import ( |
1080.1.1
by Aaron Bentley
Stop using Environment in assess_bootstrap. |
14 |
EnvJujuClient, |
15 |
SimpleEnvironment, |
|
653
by Aaron Bentley
Add assess-bootstrap. |
16 |
)
|
1091.4.1
by James Tunnicliffe
Merged upstream |
17 |
from utility import ( |
18 |
configure_logging, |
|
1211.2.6
by Aaron Bentley
Handle LoggedException in quickstart_deploy, assess_bootstrap. |
19 |
LoggedException, |
1091.4.1
by James Tunnicliffe
Merged upstream |
20 |
scoped_environ, |
1162.2.15
by Aaron Bentley
Use BootstrapManager for assess_bootstrap. |
21 |
temp_dir, |
1091.4.1
by James Tunnicliffe
Merged upstream |
22 |
)
|
23 |
||
24 |
||
25 |
log = logging.getLogger("assess_bootstrap") |
|
26 |
||
27 |
||
1102.2.5
by Aaron Bentley
assess_bootstrap supports temp_env_name. |
28 |
def assess_bootstrap(juju, env, debug, region, temp_env_name): |
653
by Aaron Bentley
Add assess-bootstrap. |
29 |
with scoped_environ(): |
657
by Aaron Bentley
Fix assess-bootstrap. |
30 |
juju_bin = os.path.dirname(os.path.abspath(juju)) |
653
by Aaron Bentley
Add assess-bootstrap. |
31 |
os.environ['PATH'] = '{}:{}'.format(juju_bin, os.environ['PATH']) |
1080.1.1
by Aaron Bentley
Stop using Environment in assess_bootstrap. |
32 |
client = EnvJujuClient.by_version(SimpleEnvironment.from_config(env), |
33 |
juju, debug) |
|
1162.2.15
by Aaron Bentley
Use BootstrapManager for assess_bootstrap. |
34 |
jes_enabled = client.is_jes_enabled() |
1102.2.5
by Aaron Bentley
assess_bootstrap supports temp_env_name. |
35 |
if temp_env_name is None: |
36 |
temp_env_name = client.env.environment |
|
1162.2.15
by Aaron Bentley
Use BootstrapManager for assess_bootstrap. |
37 |
with temp_dir() as log_dir: |
38 |
bs_manager = BootstrapManager( |
|
1162.2.24
by Aaron Bentley
Use tear_down_client for teardown. |
39 |
temp_env_name, client, client, region=region, |
40 |
permanent=jes_enabled, jes_enabled=jes_enabled, log_dir=log_dir, |
|
41 |
bootstrap_host=None, machines=[], series=None, agent_url=None, |
|
42 |
agent_stream=None, keep_env=False) |
|
1173.2.5
by Aaron Bentley
top_context doesn't yield bootstrap_host. |
43 |
with bs_manager.top_context() as machines: |
1173.2.4
by Aaron Bentley
bootstrap_context doesn't accept bootstrap_host. |
44 |
with bs_manager.bootstrap_context(machines): |
1162.2.15
by Aaron Bentley
Use BootstrapManager for assess_bootstrap. |
45 |
tear_down(client, jes_enabled) |
46 |
client.bootstrap() |
|
1173.2.3
by Aaron Bentley
runtime_context doesn't take bootstrap_host as a parameter. |
47 |
with bs_manager.runtime_context(machines): |
1162.2.15
by Aaron Bentley
Use BootstrapManager for assess_bootstrap. |
48 |
client.get_status(1) |
49 |
log.info('Environment successfully bootstrapped.') |
|
653
by Aaron Bentley
Add assess-bootstrap. |
50 |
|
51 |
||
817.1.1
by Aaron Bentley
Put assess-bootstrap under test, add --debug flag. |
52 |
def parse_args(argv=None): |
653
by Aaron Bentley
Add assess-bootstrap. |
53 |
parser = ArgumentParser() |
54 |
parser.add_argument('juju', help="The Juju client to use.") |
|
55 |
parser.add_argument('env', help="The environment to test with.") |
|
1102.2.5
by Aaron Bentley
assess_bootstrap supports temp_env_name. |
56 |
parser.add_argument('temp_env_name', nargs='?', |
57 |
help="Temporary environment name to use.") |
|
817.1.1
by Aaron Bentley
Put assess-bootstrap under test, add --debug flag. |
58 |
parser.add_argument('--debug', action="store_true", default=False, |
59 |
help='Use --debug juju logging.') |
|
1102.2.4
by Aaron Bentley
Support --region in assess_bootstrap. |
60 |
parser.add_argument('--region', help='Override environment region.') |
817.1.1
by Aaron Bentley
Put assess-bootstrap under test, add --debug flag. |
61 |
return parser.parse_args(argv) |
62 |
||
63 |
||
64 |
def main(): |
|
65 |
args = parse_args() |
|
1091.4.1
by James Tunnicliffe
Merged upstream |
66 |
configure_logging(logging.INFO) |
1211.2.6
by Aaron Bentley
Handle LoggedException in quickstart_deploy, assess_bootstrap. |
67 |
try: |
68 |
assess_bootstrap(**args.__dict__) |
|
69 |
except LoggedException: |
|
70 |
sys.exit(1) |
|
653
by Aaron Bentley
Add assess-bootstrap. |
71 |
|
72 |
||
73 |
if __name__ == '__main__': |
|
74 |
main() |