Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit 74d3e2a

Browse files
authored
Merge pull request #352 from jumpstarter-dev/name-only
admin cli: print all names instead of only the first one on OutputMod…
2 parents 8410d19 + 6d13567 commit 74d3e2a

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

packages/jumpstarter-cli-admin/jumpstarter_cli_admin/get_test.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,10 @@ async def test_get_client(_load_kube_config_mock, get_client_mock: AsyncMock):
219219
220220
"""
221221

222+
CLIENTS_LIST_NAME = """client.jumpstarter.dev/test
223+
client.jumpstarter.dev/another
224+
"""
225+
222226
CLIENTS_LIST_EMPTY_YAML = """apiVersion: jumpstarter.dev/v1alpha1
223227
items: []
224228
kind: ClientList
@@ -259,7 +263,7 @@ async def test_get_clients(_load_kube_config_mock, list_clients_mock: AsyncMock)
259263
list_clients_mock.return_value = CLIENTS_LIST
260264
result = await runner.invoke(get, ["clients", "--output", "name"])
261265
assert result.exit_code == 0
262-
assert result.output == "client.jumpstarter.dev/test\n"
266+
assert result.output == CLIENTS_LIST_NAME
263267
list_clients_mock.reset_mock()
264268

265269
# No clients found
@@ -590,6 +594,10 @@ async def test_get_exporter_devices(_load_kube_config_mock, get_exporter_mock: A
590594
591595
"""
592596

597+
EXPORTERS_LIST_NAME = """exporter.jumpstarter.dev/test
598+
exporter.jumpstarter.dev/another
599+
"""
600+
593601

594602
@pytest.mark.anyio
595603
@patch.object(ExportersV1Alpha1Api, "list_exporters")
@@ -623,7 +631,7 @@ async def test_get_exporters(_load_kube_config_mock, list_exporters_mock: AsyncM
623631
list_exporters_mock.return_value = EXPORTERS_LIST
624632
result = await runner.invoke(get, ["exporters", "--output", "name"])
625633
assert result.exit_code == 0
626-
assert result.output == "exporter.jumpstarter.dev/test\n"
634+
assert result.output == EXPORTERS_LIST_NAME
627635
list_exporters_mock.reset_mock()
628636

629637
# No exporters found
@@ -754,6 +762,7 @@ async def test_get_exporters(_load_kube_config_mock, list_exporters_mock: AsyncM
754762
755763
"""
756764

765+
EXPORTERS_DEVICES_LIST_NAME = EXPORTERS_LIST_NAME
757766

758767
@pytest.mark.anyio
759768
@patch.object(ExportersV1Alpha1Api, "list_exporters")
@@ -790,7 +799,7 @@ async def test_get_exporters_devices(_load_kube_config_mock, list_exporters_mock
790799
list_exporters_mock.return_value = EXPORTER_DEVICES_LIST
791800
result = await runner.invoke(get, ["exporters", "--devices", "--output", "name"])
792801
assert result.exit_code == 0
793-
assert result.output == "exporter.jumpstarter.dev/test\n"
802+
assert result.output == EXPORTERS_DEVICES_LIST_NAME
794803
list_exporters_mock.reset_mock()
795804

796805
# No exporters found
@@ -1128,6 +1137,9 @@ async def test_get_lease(_load_kube_config_mock, get_lease_mock: AsyncMock):
11281137
11291138
"""
11301139

1140+
LEASES_LIST_NAME = """lease.jumpstarter.dev/82a8ac0d-d7ff-4009-8948-18a3c5c607b1
1141+
lease.jumpstarter.dev/82a8ac0d-d7ff-4009-8948-18a3c5c607b2
1142+
"""
11311143

11321144
@pytest.mark.anyio
11331145
@patch.object(LeasesV1Alpha1Api, "list_leases")
@@ -1172,7 +1184,7 @@ async def test_get_leases(_load_kube_config_mock, list_leases_mock: AsyncMock):
11721184
list_leases_mock.return_value = V1Alpha1LeaseList(items=[IN_PROGRESS_LEASE, FINISHED_LEASE])
11731185
result = await runner.invoke(get, ["leases", "--output", "name"])
11741186
assert result.exit_code == 0
1175-
assert result.output == "lease.jumpstarter.dev/82a8ac0d-d7ff-4009-8948-18a3c5c607b1\n"
1187+
assert result.output == LEASES_LIST_NAME
11761188
list_leases_mock.reset_mock()
11771189

11781190
# No leases found

packages/jumpstarter-cli-admin/jumpstarter_cli_admin/print.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ def print_clients(clients: V1Alpha1List[V1Alpha1Client], namespace: str, output:
4040
elif output == OutputMode.YAML:
4141
click.echo(clients.dump_yaml())
4242
elif output == OutputMode.NAME:
43-
if len(clients.items) > 0:
44-
click.echo(f"client.jumpstarter.dev/{clients.items[0].metadata.name}")
43+
for item in clients.items:
44+
click.echo(f"client.jumpstarter.dev/{item.metadata.name}")
4545
elif len(clients.items) == 0:
4646
raise click.ClickException(f'No resources found in "{namespace}" namespace')
4747
else:
@@ -104,8 +104,8 @@ def print_exporters(exporters: V1Alpha1List[V1Alpha1Exporter], namespace: str, d
104104
elif output == OutputMode.YAML:
105105
click.echo(exporters.dump_yaml())
106106
elif output == OutputMode.NAME:
107-
if len(exporters.items) > 0:
108-
click.echo(f"exporter.jumpstarter.dev/{exporters.items[0].metadata.name}")
107+
for item in exporters.items:
108+
click.echo(f"exporter.jumpstarter.dev/{item.metadata.name}")
109109
elif len(exporters.items) == 0:
110110
raise click.ClickException(f'No resources found in "{namespace}" namespace')
111111
elif devices:
@@ -168,8 +168,8 @@ def print_leases(leases: V1Alpha1List[V1Alpha1Lease], namespace: str, output: Ou
168168
elif output == OutputMode.YAML:
169169
click.echo(leases.dump_yaml())
170170
elif output == OutputMode.NAME:
171-
if len(leases.items) > 0:
172-
click.echo(f"lease.jumpstarter.dev/{leases.items[0].metadata.name}")
171+
for item in leases.items:
172+
click.echo(f"lease.jumpstarter.dev/{item.metadata.name}")
173173
elif len(leases.items) == 0:
174174
raise click.ClickException(f'No resources found in "{namespace}" namespace')
175175
else:

0 commit comments

Comments
 (0)