Merge lp:~gz/juju-ci-tools/assess_jes_dump_logs into lp:juju-ci-tools

Proposed by Martin Packman
Status: Merged
Merged at revision: 1283
Proposed branch: lp:~gz/juju-ci-tools/assess_jes_dump_logs
Merge into: lp:juju-ci-tools
Diff against target: 105 lines (+14/-10)
2 files modified
assess_jes_deploy.py (+10/-6)
tests/test_assess_jes_deploy.py (+4/-4)
To merge this branch: bzr merge lp:~gz/juju-ci-tools/assess_jes_dump_logs
Reviewer Review Type Date Requested Status
Curtis Hovey (community) code Approve
Review via email: mp+286540@code.launchpad.net

Description of the change

Better logging for functional jes testing

Collects logs from hosted environments, and prints status before exiting.

To post a comment you must log in.
Revision history for this message
Curtis Hovey (sinzui) wrote :

Thank you.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'assess_jes_deploy.py'
--- assess_jes_deploy.py 2016-01-25 19:37:47 +0000
+++ assess_jes_deploy.py 2016-02-18 17:39:50 +0000
@@ -5,6 +5,7 @@
5import logging5import logging
6import sys6import sys
7from tempfile import NamedTemporaryFile7from tempfile import NamedTemporaryFile
8import os
89
9import yaml10import yaml
1011
@@ -13,7 +14,9 @@
13 check_token,14 check_token,
14 configure_logging,15 configure_logging,
15 deploy_dummy_stack,16 deploy_dummy_stack,
17 dump_env_logs,
16 get_random_string,18 get_random_string,
19 safe_print_status,
17 )20 )
18from jujupy import (21from jujupy import (
19 EnvJujuClient,22 EnvJujuClient,
@@ -34,15 +37,15 @@
34 return hosted_env_client37 return hosted_env_client
3538
3639
37def test_jes_deploy(client, charm_prefix, base_env):40def test_jes_deploy(client, charm_prefix, log_dir, base_env):
38 """Deploy the dummy stack in two hosted environments."""41 """Deploy the dummy stack in two hosted environments."""
39 # deploy into system env42 # deploy into system env
40 deploy_dummy_stack(client, charm_prefix)43 deploy_dummy_stack(client, charm_prefix)
4144
42 # deploy into hosted envs45 # deploy into hosted envs
43 with hosted_environment(client, 'env1') as env1_client:46 with hosted_environment(client, log_dir, 'env1') as env1_client:
44 deploy_dummy_stack(env1_client, charm_prefix)47 deploy_dummy_stack(env1_client, charm_prefix)
45 with hosted_environment(client, 'env2') as env2_client:48 with hosted_environment(client, log_dir, 'env2') as env2_client:
46 deploy_dummy_stack(env2_client, charm_prefix)49 deploy_dummy_stack(env2_client, charm_prefix)
47 # check all the services can talk50 # check all the services can talk
48 check_services(client)51 check_services(client)
@@ -89,7 +92,7 @@
8992
9093
91@contextmanager94@contextmanager
92def hosted_environment(system_client, suffix):95def hosted_environment(system_client, log_dir, suffix):
93 client = make_hosted_env_client(system_client, suffix)96 client = make_hosted_env_client(system_client, suffix)
94 try:97 try:
95 with NamedTemporaryFile() as config_file:98 with NamedTemporaryFile() as config_file:
@@ -104,7 +107,8 @@
104 client.env.environment))107 client.env.environment))
105 sys.exit(1)108 sys.exit(1)
106 finally:109 finally:
107 # TODO(gz): May want to gather logs from hosted env here.110 safe_print_status(client)
111 dump_env_logs(client, None, os.path.join(log_dir, suffix))
108 client.destroy_model()112 client.destroy_model()
109113
110114
@@ -120,7 +124,7 @@
120 add_basic_testing_arguments(parser, using_jes=True)124 add_basic_testing_arguments(parser, using_jes=True)
121 args = parser.parse_args()125 args = parser.parse_args()
122 with jes_setup(args) as (client, charm_prefix, base_env):126 with jes_setup(args) as (client, charm_prefix, base_env):
123 test_jes_deploy(client, charm_prefix, base_env)127 test_jes_deploy(client, charm_prefix, args.logs, base_env)
124128
125129
126if __name__ == '__main__':130if __name__ == '__main__':
127131
=== modified file 'tests/test_assess_jes_deploy.py'
--- tests/test_assess_jes_deploy.py 2016-02-13 03:28:48 +0000
+++ tests/test_assess_jes_deploy.py 2016-02-18 17:39:50 +0000
@@ -1,5 +1,4 @@
1from argparse import Namespace1from argparse import Namespace
2import unittest
3from mock import (2from mock import (
4 patch,3 patch,
5 )4 )
@@ -17,10 +16,11 @@
17 JUJU_DEV_FEATURE_FLAGS,16 JUJU_DEV_FEATURE_FLAGS,
18 SimpleEnvironment,17 SimpleEnvironment,
19)18)
19import tests
20from tests.test_jujupy import FakeJujuClient20from tests.test_jujupy import FakeJujuClient
2121
2222
23class TestJES(unittest.TestCase):23class TestJES(tests.FakeHomeTestCase):
2424
25 client_class = EnvJujuClient2525 client_class = EnvJujuClient25
2626
@@ -154,11 +154,11 @@
154 self.assertNotIn('jes', new_client.feature_flags)154 self.assertNotIn('jes', new_client.feature_flags)
155155
156156
157class TestHostedEnvironment(unittest.TestCase):157class TestHostedEnvironment(tests.FakeHomeTestCase):
158158
159 def test_hosted_environment(self):159 def test_hosted_environment(self):
160 hosting_client = FakeJujuClient()160 hosting_client = FakeJujuClient()
161 with hosted_environment(hosting_client, 'bar') as client:161 with hosted_environment(hosting_client, '/log', 'bar') as client:
162 model_state = client._backing_state162 model_state = client._backing_state
163 self.assertEqual({'name-bar': model_state},163 self.assertEqual({'name-bar': model_state},
164 hosting_client._backing_state.models)164 hosting_client._backing_state.models)

Subscribers

People subscribed via source and target branches