@@ -24,28 +24,26 @@ def make_client_row(client: V1Alpha1Client):
2424
2525
2626def print_client (client : V1Alpha1Client , output : OutputType ):
27- if output == OutputMode .JSON :
28- click .echo (client .dump_json ())
29- elif output == OutputMode .YAML :
30- click .echo (client .dump_yaml ())
31- elif output == OutputMode .NAME :
32- click .echo (f"client.jumpstarter.dev/{ client .metadata .name } " )
33- else :
34- click .echo (make_table (CLIENT_COLUMNS , [make_client_row (client )]))
27+ match output :
28+ case OutputMode .JSON | OutputMode .YAML :
29+ click .echo (client .dump (output ))
30+ case OutputMode .NAME :
31+ click .echo (f"client.jumpstarter.dev/{ client .metadata .name } " )
32+ case _:
33+ click .echo (make_table (CLIENT_COLUMNS , [make_client_row (client )]))
3534
3635
3736def print_clients (clients : V1Alpha1List [V1Alpha1Client ], namespace : str , output : OutputType ):
38- if output == OutputMode .JSON :
39- click .echo (clients .dump_json ())
40- elif output == OutputMode .YAML :
41- click .echo (clients .dump_yaml ())
42- elif output == OutputMode .NAME :
43- for item in clients .items :
44- click .echo (f"client.jumpstarter.dev/{ item .metadata .name } " )
45- elif len (clients .items ) == 0 :
46- raise click .ClickException (f'No resources found in "{ namespace } " namespace' )
47- else :
48- click .echo (make_table (CLIENT_COLUMNS , list (map (make_client_row , clients .items ))))
37+ match output :
38+ case OutputMode .JSON | OutputMode .YAML :
39+ click .echo (clients .dump (output ))
40+ case OutputMode .NAME :
41+ for item in clients .items :
42+ click .echo (f"client.jumpstarter.dev/{ item .metadata .name } " )
43+ case _:
44+ if len (clients .items ) == 0 :
45+ raise click .ClickException (f'No resources found in "{ namespace } " namespace' )
46+ click .echo (make_table (CLIENT_COLUMNS , list (map (make_client_row , clients .items ))))
4947
5048
5149EXPORTER_COLUMNS = ["NAME" , "ENDPOINT" , "DEVICES" , "AGE" ]
@@ -85,33 +83,33 @@ def get_device_rows(exporters: list[V1Alpha1Exporter]):
8583
8684
8785def print_exporter (exporter : V1Alpha1Exporter , devices : bool , output : OutputType ):
88- if output == OutputMode . JSON :
89- click . echo ( exporter . dump_json ())
90- elif output == OutputMode . YAML :
91- click . echo ( exporter . dump_yaml ())
92- elif output == OutputMode . NAME :
93- click . echo ( f"exporter.jumpstarter.dev/ { exporter . metadata . name } " )
94- elif devices :
95- # Print the devices for the exporter
96- click .echo (make_table (DEVICE_COLUMNS , get_device_rows ([exporter ])))
97- else :
98- click .echo (make_table (EXPORTER_COLUMNS , [make_exporter_row (exporter )]))
86+ match output :
87+ case OutputMode . JSON | OutputMode . YAML :
88+ click . echo ( exporter . dump ( output ))
89+ case OutputMode . NAME :
90+ click . echo ( f"exporter.jumpstarter.dev/ { exporter . metadata . name } " )
91+ case _:
92+ if devices :
93+ # Print the devices for the exporter
94+ click .echo (make_table (DEVICE_COLUMNS , get_device_rows ([exporter ])))
95+ else :
96+ click .echo (make_table (EXPORTER_COLUMNS , [make_exporter_row (exporter )]))
9997
10098
10199def print_exporters (exporters : V1Alpha1List [V1Alpha1Exporter ], namespace : str , devices : bool , output : OutputType ):
102- if output == OutputMode . JSON :
103- click . echo ( exporters . dump_json ())
104- elif output == OutputMode . YAML :
105- click . echo ( exporters . dump_yaml ())
106- elif output == OutputMode . NAME :
107- for item in exporters . items :
108- click . echo ( f"exporter.jumpstarter.dev/ { item . metadata . name } " )
109- elif len (exporters .items ) == 0 :
110- raise click .ClickException (f'No resources found in "{ namespace } " namespace' )
111- elif devices :
112- click .echo (make_table (DEVICE_COLUMNS , get_device_rows (exporters .items )))
113- else :
114- click .echo (make_table (EXPORTER_COLUMNS , list (map (make_exporter_row , exporters .items ))))
100+ match output :
101+ case OutputMode . JSON | OutputMode . YAML :
102+ click . echo ( exporters . dump ( output ))
103+ case OutputMode . NAME :
104+ for item in exporters . items :
105+ click . echo ( f"exporter.jumpstarter.dev/ { item . metadata . name } " )
106+ case _:
107+ if len (exporters .items ) == 0 :
108+ raise click .ClickException (f'No resources found in "{ namespace } " namespace' )
109+ if devices :
110+ click .echo (make_table (DEVICE_COLUMNS , get_device_rows (exporters .items )))
111+ else :
112+ click .echo (make_table (EXPORTER_COLUMNS , list (map (make_exporter_row , exporters .items ))))
115113
116114
117115LEASE_COLUMNS = ["NAME" , "CLIENT" , "SELECTOR" , "EXPORTER" , "STATUS" , "REASON" , "BEGIN" , "END" , "DURATION" , "AGE" ]
@@ -154,25 +152,23 @@ def make_lease_row(lease: V1Alpha1Lease):
154152
155153
156154def print_lease (lease : V1Alpha1Lease , output : OutputType ):
157- if output == OutputMode .JSON :
158- click .echo (lease .dump_json ())
159- elif output == OutputMode .YAML :
160- click .echo (lease .dump_yaml ())
161- elif output == OutputMode .NAME :
162- click .echo (f"lease.jumpstarter.dev/{ lease .metadata .name } " )
163- else :
164- click .echo (make_table (LEASE_COLUMNS , [make_lease_row (lease )]))
155+ match output :
156+ case OutputMode .JSON | OutputMode .YAML :
157+ click .echo (lease .dump (output ))
158+ case OutputMode .NAME :
159+ click .echo (f"lease.jumpstarter.dev/{ lease .metadata .name } " )
160+ case _:
161+ click .echo (make_table (LEASE_COLUMNS , [make_lease_row (lease )]))
165162
166163
167164def print_leases (leases : V1Alpha1List [V1Alpha1Lease ], namespace : str , output : OutputType ):
168- if output == OutputMode .JSON :
169- click .echo (leases .dump_json ())
170- elif output == OutputMode .YAML :
171- click .echo (leases .dump_yaml ())
172- elif output == OutputMode .NAME :
173- for item in leases .items :
174- click .echo (f"lease.jumpstarter.dev/{ item .metadata .name } " )
175- elif len (leases .items ) == 0 :
176- raise click .ClickException (f'No resources found in "{ namespace } " namespace' )
177- else :
178- click .echo (make_table (LEASE_COLUMNS , list (map (make_lease_row , leases .items ))))
165+ match output :
166+ case OutputMode .JSON | OutputMode .YAML :
167+ click .echo (leases .dump (output ))
168+ case OutputMode .NAME :
169+ for item in leases .items :
170+ click .echo (f"lease.jumpstarter.dev/{ item .metadata .name } " )
171+ case _:
172+ if len (leases .items ) == 0 :
173+ raise click .ClickException (f'No resources found in "{ namespace } " namespace' )
174+ click .echo (make_table (LEASE_COLUMNS , list (map (make_lease_row , leases .items ))))
0 commit comments