From 46585fb8e17a4b6cb5763f055ef00d0aa3d952c9 Mon Sep 17 00:00:00 2001 From: Joffrey F <joffrey@docker.com> Date: Fri, 8 Jan 2016 14:37:07 -0800 Subject: [PATCH] Support legacy logging options format Additional test for legacy compose file. Signed-off-by: Joffrey F <joffrey@docker.com> --- compose/config/config.py | 10 ++++++++++ tests/acceptance/cli_test.py | 14 ++++++++++++++ .../logging-composefile-legacy/docker-compose.yml | 10 ++++++++++ 3 files changed, 34 insertions(+) create mode 100644 tests/fixtures/logging-composefile-legacy/docker-compose.yml diff --git a/compose/config/config.py b/compose/config/config.py index 0e7942595..c59f384d6 100644 --- a/compose/config/config.py +++ b/compose/config/config.py @@ -504,6 +504,16 @@ def finalize_service(service_config): if 'restart' in service_dict: service_dict['restart'] = parse_restart_spec(service_dict['restart']) + if 'log_driver' in service_dict or 'log_opt' in service_dict: + if 'logging' not in service_dict: + service_dict['logging'] = {} + if 'log_driver' in service_dict: + service_dict['logging']['driver'] = service_dict['log_driver'] + del service_dict['log_driver'] + if 'log_opt' in service_dict: + service_dict['logging']['options'] = service_dict['log_opt'] + del service_dict['log_opt'] + return service_dict diff --git a/tests/acceptance/cli_test.py b/tests/acceptance/cli_test.py index c5df30793..8abdf7854 100644 --- a/tests/acceptance/cli_test.py +++ b/tests/acceptance/cli_test.py @@ -730,6 +730,20 @@ class CLITestCase(DockerClientTestCase): self.assertEqual(log_config.get('Type'), 'json-file') self.assertEqual(log_config.get('Config')['max-size'], '10m') + def test_up_logging_legacy(self): + self.base_dir = 'tests/fixtures/logging-composefile-legacy' + self.dispatch(['up', '-d']) + simple = self.project.get_service('simple').containers()[0] + log_config = simple.get('HostConfig.LogConfig') + self.assertTrue(log_config) + self.assertEqual(log_config.get('Type'), 'none') + + another = self.project.get_service('another').containers()[0] + log_config = another.get('HostConfig.LogConfig') + self.assertTrue(log_config) + self.assertEqual(log_config.get('Type'), 'json-file') + self.assertEqual(log_config.get('Config')['max-size'], '10m') + def test_up_logging_with_multiple_files(self): self.base_dir = 'tests/fixtures/logging-composefile' config_paths = [ diff --git a/tests/fixtures/logging-composefile-legacy/docker-compose.yml b/tests/fixtures/logging-composefile-legacy/docker-compose.yml new file mode 100644 index 000000000..ee9941079 --- /dev/null +++ b/tests/fixtures/logging-composefile-legacy/docker-compose.yml @@ -0,0 +1,10 @@ +simple: + image: busybox:latest + command: top + log_driver: "none" +another: + image: busybox:latest + command: top + log_driver: "json-file" + log_opt: + max-size: "10m"