From 39313ebe2c42774aed4f7c530cb4d2d400a86713 Mon Sep 17 00:00:00 2001 From: Eduardo Olivares Date: Thu, 4 Aug 2022 10:47:47 +0200 Subject: [PATCH] Raise NoSuchKeystoneCredentials when credentials files are not found The exception raised when the credentials files were not found was InvalidRCFile instead of NoSuchKeystoneCredentials All shiftstack tests failed due to this on environments where shiftstack was not deployed - with this patch, they are skipped instead Change-Id: I4fc2c40ce03f36705eec6336bc2f9639bb49b79f --- tobiko/tripleo/_undercloud.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tobiko/tripleo/_undercloud.py b/tobiko/tripleo/_undercloud.py index 7dead4bc8..ab901479e 100644 --- a/tobiko/tripleo/_undercloud.py +++ b/tobiko/tripleo/_undercloud.py @@ -63,7 +63,7 @@ def fetch_os_env(rcfile: str, *rcfiles: str) -> typing.Dict[str, str]: except sh.ShellCommandFailed as ex: LOG.debug(f"Unable to get overcloud RC file '{rcfile}' content " f"({ex})") - errors.append(tobiko.exc_info) + errors.append(ex) else: LOG.debug(f'Parsing environment variables from: {rcfile}...') env = {} @@ -75,9 +75,10 @@ def fetch_os_env(rcfile: str, *rcfiles: str) -> typing.Dict[str, str]: LOG.debug(f'Environment variables read from: {rcfile}:\n' f'{env_dump}') return env - for error in errors: - LOG.exception(f"Unable to get overcloud RC file '{rcfile}' " - "content", exc_info=error) + if errors and all("No such file or directory" in error.stderr + for error in errors): + LOG.warning('None of the credentials files were found') + raise keystone.NoSuchKeystoneCredentials() raise InvalidRCFile(rcfile=", ".join(rcfiles))