Skip to content

Commit f7ea0e7

Browse files
committed
feat/delete shared key if not valid
1 parent 446013f commit f7ea0e7

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

src/sumo/wrapper/_decorators.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
# For sphinx:
22
from functools import wraps
3+
from sumo.wrapper._auth_provider import AuthProviderSumoToken
34

45

56
def raise_for_status(func):
67
@wraps(func)
7-
def wrapper(*args, **kwargs):
8+
def wrapper(self, *args, **kwargs):
89
# FIXME: in newer versions of httpx, raise_for_status() is chainable,
910
# so we could simply write
1011
# return func(*args, **kwargs).raise_for_status()
11-
response = func(*args, **kwargs)
12+
response = func(self, *args, **kwargs)
13+
if response.status_code == 401 and isinstance(
14+
self.auth, AuthProviderSumoToken
15+
):
16+
self._handle_invalid_shared_key()
1217
response.raise_for_status()
1318
return response
1419

@@ -17,11 +22,15 @@ def wrapper(*args, **kwargs):
1722

1823
def raise_for_status_async(func):
1924
@wraps(func)
20-
async def wrapper(*args, **kwargs):
25+
async def wrapper(self, *args, **kwargs):
2126
# FIXME: in newer versions of httpx, raise_for_status() is chainable,
2227
# so we could simply write
2328
# return func(*args, **kwargs).raise_for_status()
24-
response = await func(*args, **kwargs)
29+
response = await func(self, *args, **kwargs)
30+
if response.status_code == 401 and isinstance(
31+
self.auth, AuthProviderSumoToken
32+
):
33+
self._handle_invalid_shared_key()
2534
response.raise_for_status()
2635
return response
2736

src/sumo/wrapper/sumo_client.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,16 @@ def blob_client(self) -> BlobClient:
208208
self._retry_strategy,
209209
)
210210

211+
def _handle_invalid_shared_key(self):
212+
"""Handle the invalid shared key by deleting it."""
213+
self.auth.delete_token()
214+
logger.error(
215+
"Invalid shared key detected and deleted, run again to reset automatically"
216+
)
217+
print(
218+
"Invalid shared key detected and deleted, run again to reset automatically"
219+
)
220+
211221
@raise_for_status
212222
def get(self, path: str, params: Optional[Dict] = None) -> httpx.Response:
213223
"""Performs a GET-request to the Sumo API.

0 commit comments

Comments
 (0)