Skip to content

Commit 26edffc

Browse files
committed
Fixes exception handling in webserver session
1 parent d009566 commit 26edffc

File tree

1 file changed

+16
-4
lines changed
  • services/api-server/src/simcore_service_api_server/services

1 file changed

+16
-4
lines changed

services/api-server/src/simcore_service_api_server/services/webserver.py

+16-4
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def create(cls, app: FastAPI, session_cookies: Dict):
7979
)
8080

8181
def _url(self, path: str) -> str:
82-
return f"/{self.vtag}/{path.ltrip('/')}"
82+
return f"/{self.vtag}/{path.lstrip('/')}"
8383

8484
@classmethod
8585
def _process(cls, resp: Response) -> Optional[Dict]:
@@ -107,14 +107,26 @@ def _process(cls, resp: Response) -> Optional[Dict]:
107107
return data
108108

109109
# OPERATIONS
110-
# TODO: automate conversion
110+
# TODO: refactor and code below
111+
# TODO: policy to retry if NetworkError/timeout?
112+
# TODO: add ping to healthcheck
111113

112114
async def get(self, path: str) -> Optional[Dict]:
113115
url = self._url(path)
114-
resp = await self.client.get(url, cookies=self.session_cookies)
116+
try:
117+
resp = await self.client.get(url, cookies=self.session_cookies)
118+
except Exception:
119+
logger.exception("Failed to get %s", url)
120+
raise HTTPException(status.HTTP_503_SERVICE_UNAVAILABLE)
121+
115122
return self._process(resp)
116123

117124
async def put(self, path: str, body: Dict) -> Optional[Dict]:
118125
url = self._url(path)
119-
resp = await self.client.put(url, json=body, cookies=self.session_cookies)
126+
try:
127+
resp = await self.client.put(url, json=body, cookies=self.session_cookies)
128+
except Exception:
129+
logger.exception("Failed to put %s", url)
130+
raise HTTPException(status.HTTP_503_SERVICE_UNAVAILABLE)
131+
120132
return self._process(resp)

0 commit comments

Comments
 (0)