18
21
from jujupy import (
21
26
from utility import (
22
27
add_basic_testing_arguments,
28
def test_jes_deploy(client, charm_series, log_dir, base_env):
32
def make_hosted_env_client(client, suffix):
33
env_name = '{}-{}'.format(client.env.environment, suffix)
34
hosted_environment = SimpleEnvironment(env_name, dict(client.env.config),
36
hosted_env_client = client.clone(hosted_environment)
37
return hosted_env_client
40
def test_jes_deploy(client, charm_prefix, log_dir, base_env):
29
41
"""Deploy the dummy stack in two hosted environments."""
30
42
# deploy into system env
31
deploy_dummy_stack(client, charm_series)
43
deploy_dummy_stack(client, charm_prefix)
33
45
# deploy into hosted envs
34
46
with hosted_environment(client, log_dir, 'env1') as env1_client:
35
deploy_dummy_stack(env1_client, charm_series)
47
deploy_dummy_stack(env1_client, charm_prefix)
36
48
with hosted_environment(client, log_dir, 'env2') as env2_client:
37
deploy_dummy_stack(env2_client, charm_series)
49
deploy_dummy_stack(env2_client, charm_prefix)
38
50
# check all the services can talk
39
51
check_services(client)
40
52
check_services(env1_client)
54
66
series = args.series
58
client = client_from_config(base_env, args.juju_bin, args.debug,
59
soft_deadline=args.deadline)
69
charm_prefix = 'local:{}/'.format(series)
70
client = EnvJujuClient.by_version(
71
SimpleEnvironment.from_config(base_env), args.juju_bin, args.debug,
60
73
if not client.is_jes_enabled():
61
74
client.enable_jes()
82
95
def hosted_environment(system_client, log_dir, suffix):
83
env_name = '{}-{}'.format(system_client.env.environment, suffix)
84
client = system_client.add_model(system_client.env.clone(env_name))
96
client = make_hosted_env_client(system_client, suffix)
98
with NamedTemporaryFile() as config_file:
99
config = make_safe_config(client)
100
yaml.dump(config, config_file)
102
client.create_environment(system_client, config_file.name)
88
105
logging.exception(
93
110
safe_print_status(client)
94
hosted_log_dir = os.path.join(log_dir, suffix)
95
ensure_dir(hosted_log_dir)
96
dump_env_logs(client, None, hosted_log_dir)
111
dump_env_logs(client, None, os.path.join(log_dir, suffix))
97
112
client.destroy_model()
108
123
parser = ArgumentParser()
109
add_basic_testing_arguments(parser, using_jes=True, deadline=True)
124
add_basic_testing_arguments(parser, using_jes=True)
110
125
args = parser.parse_args()
111
with jes_setup(args) as (client, charm_series, base_env):
112
test_jes_deploy(client, charm_series, args.logs, base_env)
126
with jes_setup(args) as (client, charm_prefix, base_env):
127
test_jes_deploy(client, charm_prefix, args.logs, base_env)
115
130
if __name__ == '__main__':