From 877b42522d91d6928c85852de5f6fab92b5296f0 Mon Sep 17 00:00:00 2001 From: vinicvaz Date: Mon, 8 Jan 2024 08:31:07 -0300 Subject: [PATCH] worker route for get pieces repositories --- rest/routers/piece_repository_router.py | 36 ++++++++++++++++++++-- src/domino/client/domino_backend_client.py | 10 +----- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/rest/routers/piece_repository_router.py b/rest/routers/piece_repository_router.py index 878bd868..056ded72 100644 --- a/rest/routers/piece_repository_router.py +++ b/rest/routers/piece_repository_router.py @@ -120,8 +120,7 @@ def get_piece_repository_release_data( status.HTTP_500_INTERNAL_SERVER_ERROR: {'model': SomethingWrongError}, status.HTTP_403_FORBIDDEN: {'model': ForbiddenError}, }, - # TODO - I commented this to make it easier to test, but we should solve the auth service - # dependencies=[Depends(auth_service.workspace_access_authorizer)] + dependencies=[Depends(auth_service.workspace_access_authorizer)] ) def get_pieces_repositories( workspace_id: int, @@ -142,6 +141,39 @@ def get_pieces_repositories( raise HTTPException(status_code=e.status_code, detail=e.message) +@router.get( + path="/worker", + status_code=status.HTTP_200_OK, + responses={ + status.HTTP_200_OK: {'model': GetWorkspaceRepositoriesResponse}, + status.HTTP_500_INTERNAL_SERVER_ERROR: {'model': SomethingWrongError}, + status.HTTP_403_FORBIDDEN: {'model': ForbiddenError}, + }, +) +def get_pieces_repositories_worker( + workspace_id: int, + page: Optional[int] = 0, + page_size: Optional[int] = 100, + filters: ListRepositoryFilters = Depends(), +) -> GetWorkspaceRepositoriesResponse: + """ + Get pieces repositories for workspace. + This endpoint is used by the worker to get the repositories to be processed. + Is the same endpoint as the one above, but without the auth service. + The authorization is done by our service mesh Authorization Policy. + """ + try: + response = piece_repository_service.get_pieces_repositories( + workspace_id=workspace_id, + page=page, + page_size=page_size, + filters=filters + ) + return response + except (BaseException, ForbiddenException) as e: + raise HTTPException(status_code=e.status_code, detail=e.message) + + @router.delete( path="/{piece_repository_id}", status_code=status.HTTP_204_NO_CONTENT, diff --git a/src/domino/client/domino_backend_client.py b/src/domino/client/domino_backend_client.py index b745c121..0551a355 100644 --- a/src/domino/client/domino_backend_client.py +++ b/src/domino/client/domino_backend_client.py @@ -38,16 +38,8 @@ def get_piece_secrets(self, piece_repository_id: int, piece_name: str) -> reques ) return response - def get_piece_repository(self, piece_repository_id: int) -> requests.Response: - resource = f"/pieces-repositories/{piece_repository_id}" - response = self.request( - method='get', - resource=resource - ) - return response - def get_piece_repositories_from_workspace_id(self, params: dict) -> requests.Response: - resource = "/pieces-repositories" + resource = "/pieces-repositories/worker" response = self.request( method='get', resource=resource,