Skip to content

Commit af8705d

Browse files
fregataaclaude
andcommitted
refactor(BA-5040): Remove unused domain_name field and require user_uuid in scope actions
Remove dead domain_name field from SearchImagesAction and GetAllImagesAction. Make user_uuid required (no default) and update all callers to provide it explicitly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 143d97a commit af8705d

8 files changed

Lines changed: 15 additions & 15 deletions

File tree

src/ai/backend/manager/api/gql/data_loader/image/loader.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from collections.abc import Sequence
44

5+
from ai.backend.common.contexts.user import current_user
56
from ai.backend.common.types import ImageID
67
from ai.backend.manager.data.image.types import ImageData
78
from ai.backend.manager.repositories.base import BatchQuerier, NoPagination
@@ -31,8 +32,9 @@ async def load_images_by_ids(
3132
conditions=[ImageConditions.by_ids(image_ids)],
3233
)
3334

35+
user = current_user()
3436
action_result = await processor.search_images.wait_for_complete(
35-
SearchImagesAction(querier=querier)
37+
SearchImagesAction(querier=querier, user_uuid=str(user.user_id) if user else "")
3638
)
3739

3840
image_map: dict[ImageID, ImageData] = {ImageID(image.id): image for image in action_result.data}

src/ai/backend/manager/api/gql/image/fetcher.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import strawberry
1313
from strawberry import Info
1414

15+
from ai.backend.common.contexts.user import current_user
1516
from ai.backend.common.types import ImageID
1617
from ai.backend.manager.api.gql.adapter import PaginationOptions, PaginationSpec
1718
from ai.backend.manager.api.gql.base import encode_cursor
@@ -84,8 +85,9 @@ async def fetch_images(
8485
base_conditions=base_conditions,
8586
)
8687

88+
user = current_user()
8789
action_result = await info.context.processors.image.search_images.wait_for_complete(
88-
SearchImagesAction(querier=querier)
90+
SearchImagesAction(querier=querier, user_uuid=str(user.user_id) if user else "")
8991
)
9092

9193
edges = []

src/ai/backend/manager/api/gql_legacy/image.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,6 @@ async def load_all(
311311
GetAllImagesAction(
312312
status_filter=filter_by_statuses,
313313
user_uuid=str(ctx.user["uuid"]),
314-
domain_name=ctx.user["domain_name"],
315314
)
316315
)
317316
all_items = [cls.from_image_with_agent_install_status(img) for img in result.data.values()]

src/ai/backend/manager/api/rest/image/handler.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ async def search(
5959
SearchImagesAction(
6060
querier=querier,
6161
user_uuid=str(ctx.user_uuid),
62-
domain_name=ctx.user_domain,
6362
)
6463
)
6564
resp = SearchImagesResponse(

src/ai/backend/manager/services/image/actions/get_all_images.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ class GetAllImagesAction(ImageScopeAction):
2323
"""
2424

2525
status_filter: list[ImageStatus] | None
26-
user_uuid: str = ""
27-
domain_name: str = ""
26+
user_uuid: str
2827

2928
@override
3029
@classmethod

src/ai/backend/manager/services/image/actions/search_images.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
@dataclass
1515
class SearchImagesAction(ImageScopeAction):
1616
querier: BatchQuerier
17-
user_uuid: str = ""
18-
domain_name: str = ""
17+
user_uuid: str
1918

2019
@override
2120
@classmethod

tests/unit/manager/api/image/test_handler.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ async def test_search_images_calls_processor(
428428
) -> None:
429429
"""Search handler should call search_images processor."""
430430
await mock_processors.image.search_images.wait_for_complete(
431-
SearchImagesAction(querier=MagicMock())
431+
SearchImagesAction(querier=MagicMock(), user_uuid="test-user")
432432
)
433433
mock_processors.image.search_images.wait_for_complete.assert_called_once()
434434

@@ -438,7 +438,7 @@ async def test_search_images_returns_correct_count(
438438
) -> None:
439439
"""Search result should have correct total count."""
440440
result = await mock_processors.image.search_images.wait_for_complete(
441-
SearchImagesAction(querier=MagicMock())
441+
SearchImagesAction(querier=MagicMock(), user_uuid="test-user")
442442
)
443443
assert result.total_count == 2
444444
assert len(result.data) == 2
@@ -449,7 +449,7 @@ async def test_search_images_converts_to_dto(
449449
) -> None:
450450
"""Search result data should be convertible to DTOs."""
451451
result = await mock_processors.image.search_images.wait_for_complete(
452-
SearchImagesAction(querier=MagicMock())
452+
SearchImagesAction(querier=MagicMock(), user_uuid="test-user")
453453
)
454454
adapter = ImageAdapter()
455455
items = [adapter.convert_to_dto(img) for img in result.data]
@@ -591,7 +591,7 @@ async def test_search_empty_result(self) -> None:
591591
processors.image.search_images.wait_for_complete = AsyncMock(return_value=result)
592592

593593
search_result = await processors.image.search_images.wait_for_complete(
594-
SearchImagesAction(querier=MagicMock())
594+
SearchImagesAction(querier=MagicMock(), user_uuid="test-user")
595595
)
596596
assert search_result.data == []
597597
assert search_result.total_count == 0

tests/unit/manager/services/image/test_image_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -903,7 +903,7 @@ async def test_search_images_success(
903903
conditions=[],
904904
orders=[],
905905
)
906-
action = SearchImagesAction(querier=querier)
906+
action = SearchImagesAction(querier=querier, user_uuid="test-user")
907907

908908
result = await processors.search_images.wait_for_complete(action)
909909

@@ -933,7 +933,7 @@ async def test_search_images_empty_result(
933933
conditions=[],
934934
orders=[],
935935
)
936-
action = SearchImagesAction(querier=querier)
936+
action = SearchImagesAction(querier=querier, user_uuid="test-user")
937937

938938
result = await processors.search_images.wait_for_complete(action)
939939

@@ -961,7 +961,7 @@ async def test_search_images_with_pagination(
961961
conditions=[],
962962
orders=[],
963963
)
964-
action = SearchImagesAction(querier=querier)
964+
action = SearchImagesAction(querier=querier, user_uuid="test-user")
965965

966966
result = await processors.search_images.wait_for_complete(action)
967967

0 commit comments

Comments
 (0)