Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
72624c0e67
|
+24
-6
@@ -1543,14 +1543,32 @@ def purge_secrets(recipes: Tuple[str], secret:str, noninteractive: bool) -> None
|
||||
print_all_apps(instance_apps)
|
||||
domains = list(zip(*sum(instance_apps.values(), [])))[1]
|
||||
if noninteractive or input(f"Do you really want to purge the secret {secret} for these apps? Type YES: ") == "YES":
|
||||
purged, skipped, failed = [], [], []
|
||||
for domain in domains:
|
||||
logging.info(f'purge {domain}')
|
||||
if not secret:
|
||||
abra("app","secret" ,"rm", "-a", domain)
|
||||
print(f"Secrets for {domain} purged")
|
||||
else:
|
||||
abra("app","secret" ,"rm", domain, secret)
|
||||
print(f"Secret {secret} for {domain} purged")
|
||||
try:
|
||||
if not secret:
|
||||
abra("app", "secret", "rm", "-a", domain)
|
||||
else:
|
||||
abra("app", "secret", "rm", domain, secret)
|
||||
except RuntimeError as e:
|
||||
if "doesn't exist on server" in str(e):
|
||||
logging.info(f'secret {secret} not set at {domain}')
|
||||
skipped.append(domain)
|
||||
else:
|
||||
logging.warning(f'failed to purge secrets at {domain}: {e}')
|
||||
failed.append((domain, str(e).strip().splitlines()[-1]))
|
||||
continue
|
||||
purged.append(domain)
|
||||
what = f"secret {secret}" if secret else "all secrets"
|
||||
click.echo(f"✔ Purged {what} for {len(purged)}/{len(domains)} apps")
|
||||
if skipped:
|
||||
click.echo(f"⚠ Not set at {len(skipped)} apps: {', '.join(skipped)}")
|
||||
if failed:
|
||||
click.echo(f"✖ Failed at {len(failed)} apps:")
|
||||
for domain, msg in failed:
|
||||
click.echo(f" {domain}: {msg}")
|
||||
raise SystemExit(1)
|
||||
|
||||
@cli.command()
|
||||
@click.option('recipes', '-r', '--recipe', multiple=True, metavar='<RecipeName>', help='Filter for selcted recipes, this option can be specified multiple times.')
|
||||
|
||||
Reference in New Issue
Block a user