From d83d6306c94c45469f86b7ae08089b8b77514be4 Mon Sep 17 00:00:00 2001 From: Karol Duleba Date: Wed, 12 Aug 2015 23:16:42 +0100 Subject: [PATCH] Use custom container name in logs. Fixes #1851 Signed-off-by: Karol Duleba --- compose/container.py | 8 +++++++- tests/unit/container_test.py | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/compose/container.py b/compose/container.py index f2d8a403e..51b625890 100644 --- a/compose/container.py +++ b/compose/container.py @@ -6,6 +6,7 @@ from functools import reduce import six from .const import LABEL_CONTAINER_NUMBER +from .const import LABEL_PROJECT from .const import LABEL_SERVICE @@ -70,7 +71,12 @@ class Container(object): @property def name_without_project(self): - return '{0}_{1}'.format(self.service, self.number) + project = self.labels.get(LABEL_PROJECT) + + if self.name.startswith('{0}_{1}'.format(project, self.service)): + return '{0}_{1}'.format(self.service, self.number) + else: + return self.name @property def number(self): diff --git a/tests/unit/container_test.py b/tests/unit/container_test.py index 5637330cd..5f7bf1ea7 100644 --- a/tests/unit/container_test.py +++ b/tests/unit/container_test.py @@ -83,9 +83,15 @@ class ContainerTest(unittest.TestCase): self.assertEqual(container.name, "composetest_db_1") def test_name_without_project(self): + self.container_dict['Name'] = "/composetest_web_7" container = Container(None, self.container_dict, has_been_inspected=True) self.assertEqual(container.name_without_project, "web_7") + def test_name_without_project_custom_container_name(self): + self.container_dict['Name'] = "/custom_name_of_container" + container = Container(None, self.container_dict, has_been_inspected=True) + self.assertEqual(container.name_without_project, "custom_name_of_container") + def test_inspect_if_not_inspected(self): mock_client = mock.create_autospec(docker.Client) container = Container(mock_client, dict(Id="the_id"))