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

Commit b799c40

Browse files
committed
Make namespace an attr of ClientService
1 parent 11dc64c commit b799c40

3 files changed

Lines changed: 20 additions & 28 deletions

File tree

packages/jumpstarter/jumpstarter/client/grpc.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -128,56 +128,55 @@ def dump_yaml(self):
128128
@dataclass(kw_only=True, slots=True)
129129
class ClientService:
130130
channel: Channel
131+
namespace: str
131132
stub: client_pb2_grpc.ClientServiceStub = field(init=False)
132133

133134
def __post_init__(self):
134135
self.stub = client_pb2_grpc.ClientServiceStub(channel=self.channel)
135136

136-
async def GetExporter(self, *, namespace: str, name: str):
137+
async def GetExporter(self, *, name: str):
137138
exporter = await self.stub.GetExporter(
138139
client_pb2.GetExporterRequest(
139-
name="namespaces/{}/exporters/{}".format(namespace, name),
140+
name="namespaces/{}/exporters/{}".format(self.namespace, name),
140141
)
141142
)
142143
return Exporter.from_protobuf(exporter)
143144

144145
async def ListExporters(
145146
self,
146147
*,
147-
namespace: str,
148148
page_size: int | None = None,
149149
page_token: str | None = None,
150150
filter: str | None = None,
151151
):
152152
exporters = await self.stub.ListExporters(
153153
client_pb2.ListExportersRequest(
154-
parent="namespaces/{}".format(namespace),
154+
parent="namespaces/{}".format(self.namespace),
155155
page_size=page_size,
156156
page_token=page_token,
157157
filter=filter,
158158
)
159159
)
160160
return ExporterList.from_protobuf(exporters)
161161

162-
async def GetLease(self, *, namespace: str, name: str):
162+
async def GetLease(self, *, name: str):
163163
lease = await self.stub.GetLease(
164164
client_pb2.GetLeaseRequest(
165-
name="namespaces/{}/leases/{}".format(namespace, name),
165+
name="namespaces/{}/leases/{}".format(self.namespace, name),
166166
)
167167
)
168168
return Lease.from_protobuf(lease)
169169

170170
async def ListLeases(
171171
self,
172172
*,
173-
namespace: str,
174173
page_size: int | None = None,
175174
page_token: str | None = None,
176175
filter: str | None = None,
177176
):
178177
leases = await self.stub.ListLeases(
179178
client_pb2.ListLeasesRequest(
180-
parent="namespaces/{}".format(namespace),
179+
parent="namespaces/{}".format(self.namespace),
181180
page_size=page_size,
182181
page_token=page_token,
183182
filter=filter,
@@ -188,7 +187,6 @@ async def ListLeases(
188187
async def CreateLease(
189188
self,
190189
*,
191-
namespace: str,
192190
selector: str,
193191
duration: timedelta,
194192
):
@@ -197,7 +195,7 @@ async def CreateLease(
197195

198196
lease = await self.stub.CreateLease(
199197
client_pb2.CreateLeaseRequest(
200-
parent="namespaces/{}".format(namespace),
198+
parent="namespaces/{}".format(self.namespace),
201199
lease=client_pb2.Lease(
202200
duration=duration_pb,
203201
selector=selector,
@@ -209,7 +207,6 @@ async def CreateLease(
209207
async def UpdateLease(
210208
self,
211209
*,
212-
namespace: str,
213210
name: str,
214211
duration: timedelta,
215212
):
@@ -222,17 +219,17 @@ async def UpdateLease(
222219
lease = await self.stub.UpdateLease(
223220
client_pb2.UpdateLeaseRequest(
224221
lease=client_pb2.Lease(
225-
name="namespaces/{}/leases/{}".format(namespace, name),
222+
name="namespaces/{}/leases/{}".format(self.namespace, name),
226223
duration=duration_pb,
227224
),
228225
update_mask=update_mask,
229226
)
230227
)
231228
return Lease.from_protobuf(lease)
232229

233-
async def DeleteLease(self, *, namespace: str, name: str):
230+
async def DeleteLease(self, *, name: str):
234231
await self.stub.DeleteLease(
235232
client_pb2.DeleteLeaseRequest(
236-
name="namespaces/{}/leases/{}".format(namespace, name),
233+
name="namespaces/{}/leases/{}".format(self.namespace, name),
237234
)
238235
)

packages/jumpstarter/jumpstarter/client/lease.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def __post_init__(self):
4545
super().__post_init__()
4646

4747
self.controller = jumpstarter_pb2_grpc.ControllerServiceStub(self.channel)
48-
self.svc = ClientService(channel=self.channel)
48+
self.svc = ClientService(channel=self.channel, namespace=self.namespace)
4949
self.manager = self.portal.wrap_async_context_manager(self)
5050

5151
async def _create(self):
@@ -56,7 +56,6 @@ async def _create(self):
5656
with translate_grpc_exceptions():
5757
self.name = (
5858
await self.svc.CreateLease(
59-
namespace=self.namespace,
6059
selector=selector,
6160
duration=timedelta(seconds=self.timeout),
6261
)
@@ -99,7 +98,6 @@ async def _acquire(self):
9998
logger.debug("Polling Lease %s", self.name)
10099
with translate_grpc_exceptions():
101100
result = await self.svc.GetLease(
102-
namespace=self.namespace,
103101
name=self.name,
104102
)
105103

@@ -136,7 +134,6 @@ async def __aexit__(self, exc_type, exc_value, traceback):
136134
if self.release:
137135
logger.info("Releasing Lease %s", self.name)
138136
await self.svc.DeleteLease(
139-
namespace=self.namespace,
140137
name=self.name,
141138
)
142139

packages/jumpstarter/jumpstarter/config/client.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,21 +91,19 @@ def release_lease(self, name):
9191
portal.call(self.release_lease_async, name)
9292

9393
async def get_exporter_async(self, name: str):
94-
svc = ClientService(channel=await self.channel())
94+
svc = ClientService(channel=await self.channel(), namespace=self.metadata.namespace)
9595
with translate_grpc_exceptions():
96-
return await svc.GetExporter(namespace=self.metadata.namespace, name=name)
96+
return await svc.GetExporter(name=name)
9797

9898
async def list_exporters_async(
9999
self,
100100
page_size: int | None = None,
101101
page_token: str | None = None,
102102
filter: str | None = None,
103103
):
104-
svc = ClientService(channel=await self.channel())
104+
svc = ClientService(channel=await self.channel(), namespace=self.metadata.namespace)
105105
with translate_grpc_exceptions():
106-
return await svc.ListExporters(
107-
namespace=self.metadata.namespace, page_size=page_size, page_token=page_token, filter=filter
108-
)
106+
return await svc.ListExporters(page_size=page_size, page_token=page_token, filter=filter)
109107

110108
async def request_lease_async(
111109
self,
@@ -129,15 +127,15 @@ async def request_lease_async(
129127
return await lease.request_async()
130128

131129
async def list_leases_async(self):
132-
svc = ClientService(channel=await self.channel())
130+
svc = ClientService(channel=await self.channel(), namespace=self.metadata.namespace)
133131
with translate_grpc_exceptions():
134-
result = await svc.ListLeases(namespace=self.metadata.namespace)
132+
result = await svc.ListLeases()
135133
return [lease.name for lease in result.leases]
136134

137135
async def release_lease_async(self, name):
138-
svc = ClientService(channel=await self.channel())
136+
svc = ClientService(channel=await self.channel(), namespace=self.metadata.namespace)
139137
with translate_grpc_exceptions():
140-
await svc.DeleteLease(namespace=self.metadata.namespace, name=name)
138+
await svc.DeleteLease(name=name)
141139

142140
@asynccontextmanager
143141
async def lease_async(

0 commit comments

Comments
 (0)