99from jumpstarter_protocol import client_pb2 , client_pb2_grpc , kubernetes_pb2
1010from pydantic import BaseModel , ConfigDict , Field , field_serializer
1111
12+ from jumpstarter .common .grpc import translate_grpc_exceptions
13+
1214
1315def parse_identifier (identifier : str , kind : str ) -> (str , str ):
1416 segments = identifier .split ("/" )
@@ -143,11 +145,12 @@ def __post_init__(self):
143145 self .stub = client_pb2_grpc .ClientServiceStub (channel = self .channel )
144146
145147 async def GetExporter (self , * , name : str ):
146- exporter = await self .stub .GetExporter (
147- client_pb2 .GetExporterRequest (
148- name = "namespaces/{}/exporters/{}" .format (self .namespace , name ),
148+ with translate_grpc_exceptions ():
149+ exporter = await self .stub .GetExporter (
150+ client_pb2 .GetExporterRequest (
151+ name = "namespaces/{}/exporters/{}" .format (self .namespace , name ),
152+ )
149153 )
150- )
151154 return Exporter .from_protobuf (exporter )
152155
153156 async def ListExporters (
@@ -157,22 +160,24 @@ async def ListExporters(
157160 page_token : str | None = None ,
158161 filter : str | None = None ,
159162 ):
160- exporters = await self .stub .ListExporters (
161- client_pb2 .ListExportersRequest (
162- parent = "namespaces/{}" .format (self .namespace ),
163- page_size = page_size ,
164- page_token = page_token ,
165- filter = filter ,
163+ with translate_grpc_exceptions ():
164+ exporters = await self .stub .ListExporters (
165+ client_pb2 .ListExportersRequest (
166+ parent = "namespaces/{}" .format (self .namespace ),
167+ page_size = page_size ,
168+ page_token = page_token ,
169+ filter = filter ,
170+ )
166171 )
167- )
168172 return ExporterList .from_protobuf (exporters )
169173
170174 async def GetLease (self , * , name : str ):
171- lease = await self .stub .GetLease (
172- client_pb2 .GetLeaseRequest (
173- name = "namespaces/{}/leases/{}" .format (self .namespace , name ),
175+ with translate_grpc_exceptions ():
176+ lease = await self .stub .GetLease (
177+ client_pb2 .GetLeaseRequest (
178+ name = "namespaces/{}/leases/{}" .format (self .namespace , name ),
179+ )
174180 )
175- )
176181 return Lease .from_protobuf (lease )
177182
178183 async def ListLeases (
@@ -182,14 +187,15 @@ async def ListLeases(
182187 page_token : str | None = None ,
183188 filter : str | None = None ,
184189 ):
185- leases = await self .stub .ListLeases (
186- client_pb2 .ListLeasesRequest (
187- parent = "namespaces/{}" .format (self .namespace ),
188- page_size = page_size ,
189- page_token = page_token ,
190- filter = filter ,
190+ with translate_grpc_exceptions ():
191+ leases = await self .stub .ListLeases (
192+ client_pb2 .ListLeasesRequest (
193+ parent = "namespaces/{}" .format (self .namespace ),
194+ page_size = page_size ,
195+ page_token = page_token ,
196+ filter = filter ,
197+ )
191198 )
192- )
193199 return LeaseList .from_protobuf (leases )
194200
195201 async def CreateLease (
@@ -201,15 +207,16 @@ async def CreateLease(
201207 duration_pb = duration_pb2 .Duration ()
202208 duration_pb .FromTimedelta (duration )
203209
204- lease = await self .stub .CreateLease (
205- client_pb2 .CreateLeaseRequest (
206- parent = "namespaces/{}" .format (self .namespace ),
207- lease = client_pb2 .Lease (
208- duration = duration_pb ,
209- selector = selector ,
210- ),
210+ with translate_grpc_exceptions ():
211+ lease = await self .stub .CreateLease (
212+ client_pb2 .CreateLeaseRequest (
213+ parent = "namespaces/{}" .format (self .namespace ),
214+ lease = client_pb2 .Lease (
215+ duration = duration_pb ,
216+ selector = selector ,
217+ ),
218+ )
211219 )
212- )
213220 return Lease .from_protobuf (lease )
214221
215222 async def UpdateLease (
@@ -224,20 +231,22 @@ async def UpdateLease(
224231 update_mask = field_mask_pb2 .FieldMask ()
225232 update_mask .FromJsonString ("duration" )
226233
227- lease = await self .stub .UpdateLease (
228- client_pb2 .UpdateLeaseRequest (
229- lease = client_pb2 .Lease (
230- name = "namespaces/{}/leases/{}" .format (self .namespace , name ),
231- duration = duration_pb ,
232- ),
233- update_mask = update_mask ,
234+ with translate_grpc_exceptions ():
235+ lease = await self .stub .UpdateLease (
236+ client_pb2 .UpdateLeaseRequest (
237+ lease = client_pb2 .Lease (
238+ name = "namespaces/{}/leases/{}" .format (self .namespace , name ),
239+ duration = duration_pb ,
240+ ),
241+ update_mask = update_mask ,
242+ )
234243 )
235- )
236244 return Lease .from_protobuf (lease )
237245
238246 async def DeleteLease (self , * , name : str ):
239- await self .stub .DeleteLease (
240- client_pb2 .DeleteLeaseRequest (
241- name = "namespaces/{}/leases/{}" .format (self .namespace , name ),
247+ with translate_grpc_exceptions ():
248+ await self .stub .DeleteLease (
249+ client_pb2 .DeleteLeaseRequest (
250+ name = "namespaces/{}/leases/{}" .format (self .namespace , name ),
251+ )
242252 )
243- )
0 commit comments