From da2c1629fe9ddf3460d866946698c32aa0619ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Fri, 11 Aug 2023 16:27:01 +0200 Subject: [PATCH 1/3] cli: register update command --- pkgs/clan-cli/clan_cli/__init__.py | 7 ++++++- pkgs/clan-cli/clan_cli/update.py | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/__init__.py b/pkgs/clan-cli/clan_cli/__init__.py index 48fb292d..5ed5f935 100644 --- a/pkgs/clan-cli/clan_cli/__init__.py +++ b/pkgs/clan-cli/clan_cli/__init__.py @@ -1,7 +1,7 @@ import argparse import sys -from . import admin, config, secrets +from . import admin, config, secrets, update from .errors import ClanError from .ssh import cli as ssh_cli @@ -29,6 +29,11 @@ def main() -> None: parser_secrets = subparsers.add_parser("secrets", help="manage secrets") secrets.register_parser(parser_secrets) + parser_update = subparsers.add_parser( + "update", help="update the machines in the clan" + ) + update.register_parser(parser_update) + if has_argcomplete: argcomplete.autocomplete(parser) diff --git a/pkgs/clan-cli/clan_cli/update.py b/pkgs/clan-cli/clan_cli/update.py index 67c17539..661e9613 100644 --- a/pkgs/clan-cli/clan_cli/update.py +++ b/pkgs/clan-cli/clan_cli/update.py @@ -96,9 +96,9 @@ def update(args: argparse.Namespace) -> None: def register_parser(parser: argparse.ArgumentParser) -> None: parser.add_mutually_exclusive_group(required=True) # TODO pass all args we don't parse into ssh_args, currently it fails if arg starts with - - parser.add_argument("--flake-uri", type=str, default=".#", desc="nix flake uri") + parser.add_argument("--flake-uri", type=str, default=".#", help="nix flake uri") parser.add_argument( - "--flake-attr", type=str, description="nixos configuration in the flake" + "--flake-attr", type=str, help="nixos configuration in the flake" ) parser.add_argument("--user", type=str, default="root") parser.add_argument("host", type=str) From 8f858ca86ad05f6e9d19bdbd5a4d7a088d6c0673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Fri, 11 Aug 2023 16:27:41 +0200 Subject: [PATCH 2/3] cli: add missing help descriptions --- pkgs/clan-cli/clan_cli/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/__init__.py b/pkgs/clan-cli/clan_cli/__init__.py index 5ed5f935..62ece061 100644 --- a/pkgs/clan-cli/clan_cli/__init__.py +++ b/pkgs/clan-cli/clan_cli/__init__.py @@ -17,10 +17,10 @@ def main() -> None: parser = argparse.ArgumentParser(description="cLAN tool") subparsers = parser.add_subparsers() - parser_admin = subparsers.add_parser("admin") + parser_admin = subparsers.add_parser("admin", help="administrate a clan") admin.register_parser(parser_admin) - parser_config = subparsers.add_parser("config") + parser_config = subparsers.add_parser("config", help="set nixos configuration") config.register_parser(parser_config) parser_ssh = subparsers.add_parser("ssh", help="ssh to a remote machine") From c3a1c89efcd1b97e15e1d2e5604daa078cd1a23a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Fri, 11 Aug 2023 16:28:16 +0200 Subject: [PATCH 3/3] cli/admin: drop unused commands --- pkgs/clan-cli/clan_cli/admin.py | 51 --------------------------------- 1 file changed, 51 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/admin.py b/pkgs/clan-cli/clan_cli/admin.py index 91edc563..3a42dc36 100644 --- a/pkgs/clan-cli/clan_cli/admin.py +++ b/pkgs/clan-cli/clan_cli/admin.py @@ -18,32 +18,6 @@ def create(args: argparse.Namespace) -> None: ) -def rebuild(args: argparse.Namespace) -> None: - # TODO get clients from zerotier cli? - if args.host: - print(f"would redeploy {args.host} from clan {args.folder}") - else: - print(f"would redeploy all hosts from clan {args.folder}") - - -def destroy(args: argparse.Namespace) -> None: - # TODO get clan folder & hosts from somwhere (maybe ~/.config/clan/$name /) - # send some kind of kill signal, then remove the folder - if args.yes: - print(f"would remove {args.folder}") - else: - print( - "are you really sure? this is non reversible and destructive, add --yes to confirm" - ) - - -def backup(args: argparse.Namespace) -> None: - if args.host: - print(f"would backup {args.host} from clan {args.folder}") - else: - print(f"would backup all hosts from clan {args.folder}") - - def git(args: argparse.Namespace) -> None: subprocess.Popen( [ @@ -73,31 +47,6 @@ def register_parser(parser: argparse.ArgumentParser) -> None: parser_create = subparser.add_parser("create", help="create a new clan") parser_create.set_defaults(func=create) - parser_rebuild = subparser.add_parser( - "rebuild", help="build configuration of a clan and push it to the target" - ) - parser_rebuild.add_argument( - "--host", help="specify single host to rebuild", default=None - ) - parser_rebuild.set_defaults(func=rebuild) - - parser_destroy = subparser.add_parser( - "destroy", help="destroy a clan, including all the machines" - ) - parser_destroy.add_argument( - "--yes", help="specify single host to rebuild", action="store_true" - ) - parser_destroy.set_defaults(func=destroy) - - parser_backup = subparser.add_parser( - "backup", - help="backup all the state of all machines in a clan or just a single one", - ) - parser_backup.add_argument( - "--host", help="specify single host to rebuild", default=None - ) - parser_backup.set_defaults(func=backup) - parser_git = subparser.add_parser("git", help="control the clan repo via git") parser_git.add_argument("git_args", nargs="*") parser_git.set_defaults(func=git)