From 4da7d57e5ce3ce0dc65cd2e29eb66417388ae0be Mon Sep 17 00:00:00 2001 From: Lukas Pramuk Date: Wed, 18 Jan 2023 16:07:58 +0100 Subject: [PATCH] Fix handling of ProviderError during checkout --- broker/broker.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/broker/broker.py b/broker/broker.py index b8dd28ec..e6f2d6f7 100644 --- a/broker/broker.py +++ b/broker/broker.py @@ -136,8 +136,8 @@ def _checkout(self): host = self._act(provider, method, checkout=True) except exceptions.ProviderError as err: host = err + hosts.append(host) if host and not isinstance(host, exceptions.ProviderError): - hosts.append(host) logger.info(f"{host.__class__.__name__}: {host.hostname}") return hosts @@ -147,11 +147,9 @@ def checkout(self): :return: Host obj or list of Host objects """ hosts = self._checkout() - err, to_emit = None, [] - for host in hosts: - if not isinstance(host, exceptions.ProviderError): - to_emit.append(host.to_dict()) - else: + err = None + for host in hosts[:]: + if isinstance(host, exceptions.ProviderError): err = host hosts.remove(host) helpers.emit(hosts=[host.to_dict() for host in hosts])