From dbde74bc7bad96ce494809abc76cba0fc001c3d4 Mon Sep 17 00:00:00 2001 From: stefan Date: Tue, 22 Mar 2016 18:13:37 +0100 Subject: [PATCH] support for depends_on --- compose_plantuml/__init__.py | 12 ++++++++++++ features/link_graph.feature | 20 ++++++++++++++++++++ setup.py | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/compose_plantuml/__init__.py b/compose_plantuml/__init__.py index 7229999..b97b76b 100755 --- a/compose_plantuml/__init__.py +++ b/compose_plantuml/__init__.py @@ -17,6 +17,8 @@ def link_graph(self, compose): result += '[{0}]\n'.format(component) for source, destination in sorted(self.links(compose)): result += '[{0}] --> [{1}]\n'.format(source, destination) + for source, destination in sorted(self.dependencies(compose)): + result += '[{0}] ..> [{1}] : depends on\n'.format(source, destination) return result.strip() def boundaries(self, compose): @@ -60,6 +62,16 @@ def links(compose): result.append((component_name, link)) return result + @staticmethod + def dependencies(compose): + result = [] + components = compose if 'version' not in compose else compose.get('services', {}) + + for component_name, component in components.items(): + for dependency in component.get('depends_on', []): + result.append((component_name, dependency)) + return result + @staticmethod def ports(compose): result = [] diff --git a/features/link_graph.feature b/features/link_graph.feature index b4cc49e..ae9a78d 100644 --- a/features/link_graph.feature +++ b/features/link_graph.feature @@ -43,6 +43,26 @@ Feature: Link Graph """ + Scenario: Supports Dependencies + Given a file named "compose.yml" with: + """ + version: "2" + services: + first: + depends_on: + - second + second: {} + """ + When I run `bin/compose_plantuml --link-graph compose.yml` + Then it should pass with exactly: + """ + skinparam componentStyle uml2 + [first] + [second] + [first] ..> [second] : depends on + + """ + Scenario: Suppport for legacy docker-compose format Given a file named "compose.yml" with: """ diff --git a/setup.py b/setup.py index f2607bb..01f6c68 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ def readme(): setup( name='compose_plantuml', - version='0.0.5', + version='0.0.6', description='converts docker-compose into plantuml', long_description=readme(), url='http://github.com/funkwerk/compose_plantuml',