diff --git a/chaoslib/run.py b/chaoslib/run.py index 6a538af..f5ca14c 100644 --- a/chaoslib/run.py +++ b/chaoslib/run.py @@ -438,9 +438,30 @@ def _run(self, strategy: Strategy, schedule: Schedule, # noqa: C901 finally: event_registry.finish(journal) + # Parse journal and hide secrets + # Secrets can be on top level secrets block + if "secrets" in journal: + hide_secrets(journal['secrets']) + + # Or can be in experiment + if "secrets" in journal['experiment']: + hide_secrets(journal['experiment']['secrets']) + return journal +def hide_secrets(secrets: dict) -> dict: + for secret in secrets: + for sname in secrets[secret]: + # If secret is a env var of vault, no need to hide it + if type(secrets[secret][sname]) is dict: + if secrets[secret][sname].get('type') not in ('env', 'vault'): + for secretsubname in secrets[secret][sname]: + secrets[secret][sname][secretsubname] = '*****' + else: + secrets[secret][sname] = '*****' + + def should_run_before_method(strategy: Strategy) -> bool: return strategy in [ Strategy.BEFORE_METHOD, Strategy.DEFAULT, Strategy.CONTINOUS]