Skip to content

Commit b0a55dc

Browse files
committed
squashme: add saved cloud storage model
1 parent bb11753 commit b0a55dc

4 files changed

Lines changed: 14 additions & 10 deletions

File tree

components/renku_data_services/storage/blueprints.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ async def _get(
5555
validator: RCloneValidator,
5656
query: apispec.StorageParams,
5757
) -> JSONResponse:
58-
storage: list[models.CloudStorage]
5958
storage = await self.storage_repo.get_storage(user=user, project_id=query.project_id)
6059

6160
return json([dump_storage_with_sensitive_fields(s, validator) for s in storage])
@@ -202,7 +201,6 @@ async def _get(
202201
validator: RCloneValidator,
203202
query: apispec.StorageV2Params,
204203
) -> JSONResponse:
205-
storage: list[models.CloudStorage]
206204
storage = await self.storage_v2_repo.get_storage(
207205
user=user, include_secrets=True, project_id=query.project_id
208206
)

components/renku_data_services/storage/db.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ async def get_storage(
5656
name: str | None = None,
5757
include_secrets: bool = False,
5858
filter_by_access_level: bool = True,
59-
) -> list[models.CloudStorage]:
59+
) -> list[models.SavedCloudStorage]:
6060
"""Get a storage from the database."""
6161
async with self.session_maker() as session:
6262
if not project_id and not name and not id:
@@ -91,7 +91,7 @@ async def get_storage(
9191

9292
return [s.dump() for s in storage_orms if s.project_id in accessible_projects]
9393

94-
async def get_storage_by_id(self, storage_id: ULID, user: base_models.APIUser) -> models.CloudStorage:
94+
async def get_storage_by_id(self, storage_id: ULID, user: base_models.APIUser) -> models.SavedCloudStorage:
9595
"""Get a single storage by id."""
9696
storages = await self.get_storage(user, id=str(storage_id), include_secrets=True, filter_by_access_level=False)
9797

@@ -102,9 +102,7 @@ async def get_storage_by_id(self, storage_id: ULID, user: base_models.APIUser) -
102102

103103
return storages[0]
104104

105-
async def insert_storage(
106-
self, storage: models.UnsavedCloudStorage, user: base_models.APIUser
107-
) -> models.CloudStorage:
105+
async def insert_storage(self, storage: models.CloudStorage, user: base_models.APIUser) -> models.SavedCloudStorage:
108106
"""Insert a new cloud storage entry."""
109107
if not await self.filter_projects_by_access_level(user, [storage.project_id], authz_models.Role.OWNER):
110108
raise errors.ForbiddenError(message="User does not have access to this project")
@@ -118,7 +116,9 @@ async def insert_storage(
118116
session.add(orm)
119117
return orm.dump()
120118

121-
async def update_storage(self, storage_id: ULID, user: base_models.APIUser, **kwargs: dict) -> models.CloudStorage:
119+
async def update_storage(
120+
self, storage_id: ULID, user: base_models.APIUser, **kwargs: dict
121+
) -> models.SavedCloudStorage:
122122
"""Update a cloud storage entry."""
123123
async with self.session_maker() as session, session.begin():
124124
res = await session.execute(

components/renku_data_services/storage/models.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,3 +253,9 @@ class CloudStorageSecretUpsert(BaseModel):
253253

254254
name: str = Field()
255255
value: str = Field()
256+
257+
258+
class SavedCloudStorage(CloudStorage):
259+
"""A cloud storage that has been saved in the DB."""
260+
261+
storage_id: ULID

components/renku_data_services/storage/orm.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ def load(cls, storage: models.UnsavedCloudStorage) -> "CloudStorageORM":
8181
readonly=storage.readonly,
8282
)
8383

84-
def dump(self) -> models.CloudStorage:
84+
def dump(self) -> models.SavedCloudStorage:
8585
"""Create a cloud storage model from the ORM object."""
86-
return models.CloudStorage(
86+
return models.SavedCloudStorage(
8787
project_id=self.project_id,
8888
name=self.name,
8989
storage_type=self.storage_type,

0 commit comments

Comments
 (0)