From 57d91aad584fa3c94034ac602e725f2b4c6fba5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Engl=C3=B6f=20Ytterstr=C3=B6m?= Date: Sat, 22 Nov 2025 17:57:08 +0100 Subject: [PATCH] Add leif --- 2025.leif | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 2025.leif diff --git a/2025.leif b/2025.leif new file mode 100755 index 0000000..3f826cb --- /dev/null +++ b/2025.leif @@ -0,0 +1,64 @@ +#!/usr/bin/python3 +import argparse +import subprocess +import textwrap + +def act(cmd, dry_run=True, verbose=True): + if dry_run: + print(f"will execute: {cmd}") + return + if verbose: + print(cmd) + subprocess.run(cmd.split()) + +parser = argparse.ArgumentParser( + prog='leif', + formatter_class=argparse.RawTextHelpFormatter, + description=textwrap.dedent(''' + Verktygslåda för att hantera och monitorera API Gateway-tjänstens systemd-tjänst och container. + '''), + epilog=textwrap.dedent(''' + Kontakt: Integration, Team Flex + + För dokumentation, se wiki: + - wiki.trafikverket.local/IKC + ''')) +parser.add_argument('-v', '--verbose', + help="Utökad utskrift vid körning", + action='store_true') +parser.add_argument('-d', '--dry-run', + help="Simulera åtgärd istället", + action='store_true') +subparsers = parser.add_subparsers(dest="action") + +subparsers.add_parser("inspect", help="inspektera den körande containern") +logs_parser = subparsers.add_parser("logs", help="skriv ut containerns logg") +logs_parser.add_argument("-f", "--follow", action="store_true", help="svansa och följ loggen") +subparsers.add_parser("restart", help="starta om systemd-tjänsten") +subparsers.add_parser("shell", help="initiera ett bash-skal inuti den körande containern") +subparsers.add_parser("start", help="starta systemd-tjänsten") +subparsers.add_parser("status", help="skriv ut container-ID och upptid för den körande containern") +subparsers.add_parser("stop", help="stoppa systemd-tjänsten") +subparsers.add_parser("whoami", help="skriv ut containeravbildens ProGet-ID") + + +if __name__ == "__main__": + args = parser.parse_args() + match args.action: + case "inspect": + act("podman inspect api_gateway", args.dry_run, args.verbose) + case "restart": + act("systemcl --user restart container-api-gateway", args.dry_run, args.verbose) + case "shell": + act("podman exec -it api_gateway /bin/bash", args.dry_run, args.verbose) + case "start": + act("systemcl --user start container-api-gateway", args.dry_run, args.verbose) + case "status": + act("podman ps --format '{{.ID}}'", args.dry_run, args.verbose) + case "stop": + act("systemcl --user stop container-api-gateway", args.dry_run, args.verbose) + case "whoami": + act("podman inspect api_gateway | grep Image", args.dry_run, args.verbose) + case "logs": + flags = "-f --tail 1 " if args.follow else "" + act(f"podman logs {flags}api_gateway", args.dry_run, args.verbose)