mv update command to machines update command

This commit is contained in:
Jörg Thalheim 2023-08-24 16:25:06 +02:00
parent 80d3349ce0
commit 56542ca5ef
4 changed files with 25 additions and 8 deletions

View File

@ -3,7 +3,7 @@ import sys
from types import ModuleType
from typing import Optional
from . import admin, secrets, update, webui
from . import admin, machines, secrets, webui
# from . import admin, config, secrets, update, webui
from .errors import ClanError
@ -34,10 +34,10 @@ 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"
parser_machine = subparsers.add_parser(
"machines", help="Manage machines and their configuration"
)
update.register_parser(parser_update)
machines.register_parser(parser_machine)
parser_webui = subparsers.add_parser("webui", help="start webui")
webui.register_parser(parser_webui)

View File

@ -0,0 +1,17 @@
# !/usr/bin/env python3
import argparse
from .update import register_update_parser
# takes a (sub)parser and configures it
def register_parser(parser: argparse.ArgumentParser) -> None:
subparser = parser.add_subparsers(
title="command",
description="the command to run",
help="the command to run",
required=True,
)
groups_parser = subparser.add_parser("update", help="Update a machine")
register_update_parser(groups_parser)

View File

@ -2,7 +2,7 @@ import argparse
import json
import subprocess
from .ssh import Host, HostGroup, HostKeyCheck
from ..ssh import Host, HostGroup, HostKeyCheck
def deploy_nixos(hosts: HostGroup) -> None:
@ -94,7 +94,7 @@ def update(args: argparse.Namespace) -> None:
deploy_nixos(HostGroup([Host(args.host, user=args.user, meta=meta)]))
def register_parser(parser: argparse.ArgumentParser) -> None:
def register_update_parser(parser: argparse.ArgumentParser) -> None:
# 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=".#", help="nix flake uri")
parser.add_argument(

View File

@ -8,12 +8,12 @@ import pytest
from environment import mock_env
from host_group import HostGroup
from clan_cli.update import deploy_nixos, register_parser
from clan_cli.machines.update import deploy_nixos, register_update_parser
def test_cli() -> None:
parser = argparse.ArgumentParser()
register_parser(parser)
register_update_parser(parser)
with pytest.raises(SystemExit):
parser.parse_args(["--help"])