11import asyncclick as click
2- from jumpstarter_cli_common import OutputMode , OutputType , make_table , opt_config , opt_output_all
2+ from jumpstarter_cli_common import OutputType , make_table , opt_config , opt_output_auto
33from jumpstarter_cli_common .exceptions import handle_exceptions
44
55from .common import opt_selector
6+ from jumpstarter .client .grpc import ExporterList , LeaseList
67
78
89@click .group ()
@@ -15,7 +16,7 @@ def get():
1516@get .command (name = "exporters" )
1617@opt_config (exporter = False )
1718@opt_selector
18- @opt_output_all
19+ @opt_output_auto ( ExporterList )
1920@handle_exceptions
2021def get_exporters (config , selector : str | None , output : OutputType ):
2122 """
@@ -24,28 +25,24 @@ def get_exporters(config, selector: str | None, output: OutputType):
2425
2526 exporters = config .list_exporters (filter = selector )
2627
27- match output :
28- case OutputMode .JSON | OutputMode .YAML :
29- click .echo (exporters .dump (output ))
30- case OutputMode .NAME :
31- for exporter in exporters .exporters :
32- click .echo (exporter .name )
33- case _:
34- columns = ["NAME" , "LABELS" ]
35- rows = [
36- {
37- "NAME" : exporter .name ,
38- "LABELS" : "," .join (("{}={}" .format (i [0 ], i [1 ]) for i in exporter .labels .items ())),
39- }
40- for exporter in exporters .exporters
41- ]
42- click .echo (make_table (columns , rows ))
28+ if output :
29+ click .echo (exporters .dump (output ))
30+ else :
31+ columns = ["NAME" , "LABELS" ]
32+ rows = [
33+ {
34+ "NAME" : exporter .name ,
35+ "LABELS" : "," .join (("{}={}" .format (i [0 ], i [1 ]) for i in exporter .labels .items ())),
36+ }
37+ for exporter in exporters .exporters
38+ ]
39+ click .echo (make_table (columns , rows ))
4340
4441
4542@get .command (name = "leases" )
4643@opt_config (exporter = False )
4744@opt_selector
48- @opt_output_all
45+ @opt_output_auto ( LeaseList )
4946@handle_exceptions
5047def get_leases (config , selector : str | None , output : OutputType ):
5148 """
@@ -54,20 +51,16 @@ def get_leases(config, selector: str | None, output: OutputType):
5451
5552 leases = config .list_leases (filter = selector )
5653
57- match output :
58- case OutputMode .JSON | OutputMode .YAML :
59- click .echo (leases .dump (output ))
60- case OutputMode .NAME :
61- for lease in leases .leases :
62- click .echo (lease .name )
63- case _:
64- columns = ["NAME" , "CLIENT" , "EXPORTER" ]
65- rows = [
66- {
67- "NAME" : lease .name ,
68- "CLIENT" : lease .client ,
69- "EXPORTER" : lease .exporter ,
70- }
71- for lease in leases .leases
72- ]
73- click .echo (make_table (columns , rows ))
54+ if output :
55+ click .echo (leases .dump (output ))
56+ else :
57+ columns = ["NAME" , "CLIENT" , "EXPORTER" ]
58+ rows = [
59+ {
60+ "NAME" : lease .name ,
61+ "CLIENT" : lease .client ,
62+ "EXPORTER" : lease .exporter ,
63+ }
64+ for lease in leases .leases
65+ ]
66+ click .echo (make_table (columns , rows ))
0 commit comments