From c78a7f83f3f36b9729e2db78d662b594a6354c7d Mon Sep 17 00:00:00 2001 From: octodog Date: Wed, 4 Sep 2024 23:56:31 +0900 Subject: [PATCH] fix: Omit null parameter when call usage per period API (#2777) (#2779) Co-authored-by: Sanghun Lee Co-authored-by: Kyujin Cho --- changes/2777.fix.md | 1 + src/ai/backend/client/func/resource.py | 14 ++++++++------ src/ai/backend/manager/api/resource.py | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 changes/2777.fix.md diff --git a/changes/2777.fix.md b/changes/2777.fix.md new file mode 100644 index 0000000000..bdce49f346 --- /dev/null +++ b/changes/2777.fix.md @@ -0,0 +1 @@ +Omit null parameter when call `usage-per-period` API. diff --git a/src/ai/backend/client/func/resource.py b/src/ai/backend/client/func/resource.py index 0da83e0d5d..013839a0bd 100644 --- a/src/ai/backend/client/func/resource.py +++ b/src/ai/backend/client/func/resource.py @@ -61,7 +61,7 @@ async def usage_per_month(cls, month: str, group_ids: Sequence[str]): @api_function @classmethod - async def usage_per_period(cls, group_id: str, start_date: str, end_date: str): + async def usage_per_period(cls, group_id: str | None, start_date: str, end_date: str): """ Get usage statistics for a group specified by `group_id` for time between `start_date` and `end_date`. @@ -70,14 +70,16 @@ async def usage_per_period(cls, group_id: str, start_date: str, end_date: str): :param end_date: end date in string format (yyyymmdd). :param group_id: Groups ID to list usage statistics. """ + params = { + "start_date": start_date, + "end_date": end_date, + } + if group_id is not None: + params["group_id"] = group_id rqst = Request( "GET", "/resource/usage/period", - params={ - "group_id": group_id, - "start_date": start_date, - "end_date": end_date, - }, + params=params, ) async with rqst.fetch() as resp: return await resp.json() diff --git a/src/ai/backend/manager/api/resource.py b/src/ai/backend/manager/api/resource.py index 5abb0b986f..18fcbc09eb 100644 --- a/src/ai/backend/manager/api/resource.py +++ b/src/ai/backend/manager/api/resource.py @@ -517,7 +517,7 @@ async def usage_per_month(request: web.Request, params: Any) -> web.Response: @superadmin_required @check_api_params( t.Dict({ - t.Key("group_id"): t.String | t.Null, + tx.AliasedKey(["project_id", "group_id"], default=None): t.Null | t.String, t.Key("start_date"): t.Regexp(r"^\d{8}$", re.ASCII), t.Key("end_date"): t.Regexp(r"^\d{8}$", re.ASCII), }),