From 1caac5a3730707e902818dda00b39ddf23013569 Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Fri, 22 Jan 2021 15:02:13 +0100 Subject: [PATCH 1/5] Draft: add errors to ProjectError message Signed-off-by: tobiasb Signed-off-by: sezanzeb --- compose/project.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/compose/project.py b/compose/project.py index 0f112c9c10..813b8115d4 100644 --- a/compose/project.py +++ b/compose/project.py @@ -65,6 +65,17 @@ def update_labels(cls, value, labels): raise ValueError("Invalid value for one_off: {}".format(repr(value))) +def raise_errors(errors): + """ + Raise multiple errors as ProjectError + """ + if len(errors): + combined_errors = '\n'.join([ + e.decode('utf-8') if isinstance(e, bytes) else e for e in errors.values() + ]) + raise ProjectError(combined_errors) + + class Project: """ A collection of services. @@ -510,11 +521,7 @@ def build_service(service): 'Building', limit=5, ) - if len(errors): - combined_errors = '\n'.join([ - e.decode('utf-8') if isinstance(e, bytes) else e for e in errors.values() - ]) - raise ProjectError(combined_errors) + raise_errors(errors) else: for service in services: @@ -707,10 +714,7 @@ def get_deps(service): None, get_deps, ) - if errors: - raise ProjectError( - 'Encountered errors while bringing up the project.' - ) + raise_errors(errors) return [ container From 0abc7923c254d0226340c3b49973d3aab9be6427 Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Fri, 22 Jan 2021 15:08:16 +0100 Subject: [PATCH 2/5] Update project.py Signed-off-by: tobiasb Signed-off-by: sezanzeb --- compose/project.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/compose/project.py b/compose/project.py index 813b8115d4..aefa1ab77b 100644 --- a/compose/project.py +++ b/compose/project.py @@ -521,6 +521,7 @@ def build_service(service): 'Building', limit=5, ) + raise_errors(errors) else: @@ -714,6 +715,7 @@ def get_deps(service): None, get_deps, ) + raise_errors(errors) return [ @@ -821,11 +823,8 @@ def pull_service(service): log.warning('Some service image(s) must be built from source by running:\n' ' docker-compose build {}' .format(' '.join(must_build))) - if len(errors): - combined_errors = '\n'.join([ - e.decode('utf-8') if isinstance(e, bytes) else e for e in errors.values() - ]) - raise ProjectError(combined_errors) + + raise_errors(errors) def push(self, service_names=None, ignore_push_failures=False): unique_images = set() From 75ad402de62ba6014f91926ff62f6b7dae4139f0 Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Fri, 22 Jan 2021 15:09:40 +0100 Subject: [PATCH 3/5] Update project.py Signed-off-by: tobiasb Signed-off-by: sezanzeb --- compose/project.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/project.py b/compose/project.py index aefa1ab77b..5af978a2a9 100644 --- a/compose/project.py +++ b/compose/project.py @@ -67,7 +67,7 @@ def update_labels(cls, value, labels): def raise_errors(errors): """ - Raise multiple errors as ProjectError + Raise multiple errors as ProjectError. """ if len(errors): combined_errors = '\n'.join([ From 5bb6cee745107554feaebbaf96ead4b7acc5ef5c Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Fri, 22 Jan 2021 15:10:17 +0100 Subject: [PATCH 4/5] Update project.py Signed-off-by: tobiasb Signed-off-by: sezanzeb --- compose/project.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/project.py b/compose/project.py index 5af978a2a9..7d03445789 100644 --- a/compose/project.py +++ b/compose/project.py @@ -67,7 +67,7 @@ def update_labels(cls, value, labels): def raise_errors(errors): """ - Raise multiple errors as ProjectError. + Raise a dict with error messages as values as a single ProjectError. """ if len(errors): combined_errors = '\n'.join([ From 35262982163e0bf81c71d994d6e128a541e868bb Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Sun, 24 Jan 2021 13:09:07 +0100 Subject: [PATCH 5/5] flake8 Signed-off-by: sezanzeb --- compose/project.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compose/project.py b/compose/project.py index 7d03445789..0187aef834 100644 --- a/compose/project.py +++ b/compose/project.py @@ -521,7 +521,7 @@ def build_service(service): 'Building', limit=5, ) - + raise_errors(errors) else: @@ -715,7 +715,7 @@ def get_deps(service): None, get_deps, ) - + raise_errors(errors) return [