From e1f49722a6bacedd08bd352e23e94ed66b0107cf Mon Sep 17 00:00:00 2001 From: Evgeni Vakhonin Date: Thu, 27 Nov 2025 16:29:55 +0200 Subject: [PATCH 1/2] opt_selector enabled multiple labels --- packages/jumpstarter-cli/jumpstarter_cli/common.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/jumpstarter-cli/jumpstarter_cli/common.py b/packages/jumpstarter-cli/jumpstarter_cli/common.py index 5e9bbe719..5275293df 100644 --- a/packages/jumpstarter-cli/jumpstarter_cli/common.py +++ b/packages/jumpstarter-cli/jumpstarter_cli/common.py @@ -5,11 +5,17 @@ from pydantic import TypeAdapter, ValidationError from pytimeparse2 import parse as parse_duration + +def _opt_selector_callback(ctx, param, value): + return ",".join(value) if value else None + opt_selector = click.option( "-l", "--selector", + multiple=True, + callback=_opt_selector_callback, help="Selector (label query) to filter on, supports '=', '==', and '!=' (e.g. -l key1=value1,key2=value2)." - " Matching objects must satisfy all of the specified label constraints.", + " Matching objects must satisfy all of the specified label constraints. Can be specified multiple times.", ) From d2c7044625185449e3074f29f3808f430774cb59 Mon Sep 17 00:00:00 2001 From: Evgeni Vakhonin Date: Thu, 27 Nov 2025 17:50:36 +0200 Subject: [PATCH 2/2] addressing coderabbit review --- packages/jumpstarter-cli/jumpstarter_cli/common.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/jumpstarter-cli/jumpstarter_cli/common.py b/packages/jumpstarter-cli/jumpstarter_cli/common.py index 5275293df..ffa90bdff 100644 --- a/packages/jumpstarter-cli/jumpstarter_cli/common.py +++ b/packages/jumpstarter-cli/jumpstarter_cli/common.py @@ -6,7 +6,8 @@ from pytimeparse2 import parse as parse_duration -def _opt_selector_callback(ctx, param, value): +def _opt_selector_callback(_ctx, _param, value): + """Combine multiple selector values into a single comma-separated string.""" return ",".join(value) if value else None opt_selector = click.option(