Clan_lib: add filtering by tag to list API

This commit is contained in:
Johannes Kirschbauer
2025-07-04 09:48:21 +02:00
parent 10fbae0c15
commit 6d85cc0ff2
4 changed files with 42 additions and 18 deletions

View File

@@ -3,7 +3,6 @@ import logging
from clan_lib.flake import Flake
from clan_lib.machines.actions import list_machines
from clan_lib.machines.list import query_machines_by_tags
from clan_cli.completions import add_dynamic_completer, complete_tags
@@ -13,12 +12,8 @@ log = logging.getLogger(__name__)
def list_command(args: argparse.Namespace) -> None:
flake: Flake = args.flake
if args.tags:
for name in query_machines_by_tags(flake, args.tags):
print(name)
else:
for name in list_machines(flake):
print(name)
for name in list_machines(flake, opts={"filter": {"tags": args.tags}}):
print(name)
def register_list_parser(parser: argparse.ArgumentParser) -> None:

View File

@@ -4,7 +4,7 @@ import sys
from clan_lib.async_run import AsyncContext, AsyncOpts, AsyncRuntime
from clan_lib.errors import ClanError
from clan_lib.machines.list import list_full_machines
from clan_lib.machines.list import list_full_machines, query_machines_by_tags
from clan_lib.machines.machines import Machine
from clan_lib.machines.suggestions import validate_machine_names
from clan_lib.machines.update import deploy_machine
@@ -16,7 +16,6 @@ from clan_cli.completions import (
complete_machines,
complete_tags,
)
from clan_cli.machines.list import query_machines_by_tags
log = logging.getLogger(__name__)