Skip to content

Commit

Permalink
fix: cloning vfolder bugs (#1400)
Browse files Browse the repository at this point in the history
Co-authored-by: Joongi Kim <joongi@lablup.com>
  • Loading branch information
pderer and achimnol authored Jul 24, 2023
1 parent 8cc7a68 commit 78586d6
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 17 deletions.
1 change: 1 addition & 0 deletions changes/1400.fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix redundant vfolder creation while cloning and avoid checking `max_vfolder_count` when the admin has requested cloning of project type vfolders
4 changes: 2 additions & 2 deletions src/ai/backend/manager/api/vfolder.py
Original file line number Diff line number Diff line change
Expand Up @@ -2446,7 +2446,7 @@ async def clone(request: web.Request, params: Any, row: VFolderRow) -> web.Respo
if resource_policy["max_vfolder_count"] > 0:
query = sa.select([sa.func.count()]).where(vfolders.c.user == user_uuid)
result = await conn.scalar(query)
if result >= resource_policy["max_vfolder_count"]:
if result >= resource_policy["max_vfolder_count"] and row["group"] is None:
raise InvalidAPIParameters("You cannot create more vfolders.")

# Prevent creation of vfolder with duplicated name on all hosts.
Expand Down Expand Up @@ -2475,9 +2475,9 @@ async def clone(request: web.Request, params: Any, row: VFolderRow) -> web.Respo
VFolderCloneInfo(
source_folder_id,
source_folder_host,
target_quota_scope_id,
params["target_name"],
target_folder_host,
target_quota_scope_id,
params["usage_mode"],
params["permission"],
request["user"]["email"],
Expand Down
15 changes: 0 additions & 15 deletions src/ai/backend/manager/models/vfolder.py
Original file line number Diff line number Diff line change
Expand Up @@ -834,21 +834,6 @@ async def _update_status() -> None:
target_folder_id = VFolderID(vfolder_info.source_vfolder_id.quota_scope_id, uuid.uuid4())

async def _clone(reporter: ProgressReporter) -> None:
try:
async with storage_manager.request(
target_proxy,
"POST",
"folder/create",
json={
"volume": target_volume,
"vfid": str(target_folder_id),
# 'options': {'quota': params['quota']},
},
):
pass
except aiohttp.ClientResponseError:
raise VFolderOperationFailed(extra_msg=str(target_folder_id.folder_id))

async def _insert_vfolder() -> None:
async with db_engine.begin_session() as db_session:
insert_values = {
Expand Down

0 comments on commit 78586d6

Please sign in to comment.