Skip to content

Commit a2b4cdc

Browse files
committed
existence validation inside get_leaderboard_gpu_types
1 parent 8d4ac10 commit a2b4cdc

4 files changed

Lines changed: 18 additions & 15 deletions

File tree

src/discord-cluster-manager/api/main.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -437,11 +437,6 @@ async def get_gpus(leaderboard_name: str, db_context=Depends(get_db)) -> list[st
437437
await simple_rate_limit()
438438
try:
439439
with db_context as db:
440-
# Validate leaderboard exists first
441-
leaderboard_names = [x["name"] for x in db.get_leaderboards()]
442-
if leaderboard_name not in leaderboard_names:
443-
raise HTTPException(status_code=400, detail="Invalid leaderboard name")
444-
445440
return db.get_leaderboard_gpu_types(leaderboard_name)
446441

447442
except Exception as e:

src/discord-cluster-manager/cogs/leaderboard_cog.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,6 @@ async def _get_submissions_helper(
420420
try:
421421
submissions = {}
422422
with self.bot.leaderboard_db as db:
423-
leaderboard_id = db.get_leaderboard(leaderboard_name)["id"]
424423
gpus = db.get_leaderboard_gpu_types(leaderboard_name)
425424

426425
if len(gpus) == 1:

src/discord-cluster-manager/leaderboard_db.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -371,18 +371,26 @@ def get_leaderboards(self) -> list["LeaderboardItem"]:
371371
def get_leaderboard_gpu_types(self, leaderboard_name: str) -> List[str]:
372372
self.cursor.execute(
373373
"""
374-
SELECT *
375-
FROM leaderboard.gpu_type
376-
WHERE leaderboard_id = (
377-
SELECT id
378-
FROM leaderboard.leaderboard
379-
WHERE name = %s
380-
)
374+
SELECT id
375+
FROM leaderboard.leaderboard
376+
WHERE name = %s
381377
""",
382378
(leaderboard_name,),
383379
)
380+
lb_id = self.cursor.fetchone()
381+
if lb_id is None:
382+
raise LeaderboardDoesNotExist(leaderboard_name)
383+
384+
self.cursor.execute(
385+
"""
386+
SELECT gpu_type
387+
FROM leaderboard.gpu_type
388+
WHERE leaderboard_id = %s
389+
""",
390+
(lb_id[0],),
391+
)
384392

385-
return [x[1] for x in self.cursor.fetchall()]
393+
return [x[0] for x in self.cursor.fetchall()]
386394

387395
def get_leaderboard(self, leaderboard_name: str) -> "LeaderboardItem":
388396
self.cursor.execute(

src/discord-cluster-manager/submission.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ def handle_popcorn_directives(req: SubmissionRequest) -> SubmissionRequest:
112112
if info["leaderboard"] is not None:
113113
if req.leaderboard is not None and req.leaderboard != info["leaderboard"]:
114114
raise KernelBotError(
115-
f"Leaderboard name `{req.leaderboard}` specified in the command doesn't match the one "
115+
f"Leaderboard name `{req.leaderboard}` specified in the command"
116+
f" doesn't match the one "
116117
f"in the submission script header `{info['leaderboard']}`."
117118
)
118119
else:

0 commit comments

Comments
 (0)