44
55from .config import APP_REGISTRATION , TENANT_ID
66from ._new_auth import NewAuth
7- from ._request_error import AuthenticationError , TransientError , PermanentError
7+ from ._request_error import raise_request_error_exception
8+ from ._blob_client import BlobClient
89
910class SumoClient :
1011 def __init__ (
@@ -19,6 +20,7 @@ def __init__(
1920 self .access_token = None
2021 self .access_token_expires = None
2122 self .refresh_token = None
23+ self ._blob_client = BlobClient ()
2224
2325 if token :
2426 payload = self .__decode_token (token )
@@ -43,6 +45,11 @@ def __init__(
4345 self .base_url = f"https://main-sumo-{ env } .radix.equinor.com/api/v1"
4446
4547
48+ @property
49+ def blob_client (self ):
50+ return self ._blob_client
51+
52+
4653 def __decode_token (self , token ):
4754 try :
4855 payload = jwt .decode (token , options = {"verify_signature" : False })
@@ -85,7 +92,7 @@ def get(self, path, **params):
8592 )
8693
8794 if not response .ok :
88- self . _raise_request_error_exception (
95+ raise_request_error_exception (
8996 response .status_code , response .text )
9097
9198 if "/blob" in path :
@@ -116,10 +123,10 @@ def post(self, path, blob=None, json=None):
116123 headers = headers
117124 )
118125 except requests .exceptions .ProxyError as err :
119- self . _raise_request_error_exception (503 , err )
126+ raise_request_error_exception (503 , err )
120127
121128 if not response .ok :
122- self . _raise_request_error_exception (
129+ raise_request_error_exception (
123130 response .status_code , response .text )
124131
125132 return response
@@ -147,10 +154,10 @@ def put(self, path, blob=None, json=None):
147154 headers = headers
148155 )
149156 except requests .exceptions .ProxyError as err :
150- self . _raise_request_error_exception (503 , err )
157+ raise_request_error_exception (503 , err )
151158
152159 if not response .ok :
153- self . _raise_request_error_exception (
160+ raise_request_error_exception (
154161 response .status_code , response .text )
155162
156163 return response
@@ -166,19 +173,7 @@ def delete(self, path):
166173 response = requests .delete (f'{ self .base_url } { path } ' , headers = headers )
167174
168175 if not response .ok :
169- self . _raise_request_error_exception (
176+ raise_request_error_exception (
170177 response .status_code , response .text )
171178
172179 return response .json ()
173-
174- def _raise_request_error_exception (self , code , message ):
175- """
176- Raise the proper authentication error according to the code received from sumo.
177- """
178-
179- if 503 <= code <= 504 or code == 404 or code == 500 :
180- raise TransientError (code , message )
181- elif 401 <= code <= 403 :
182- raise AuthenticationError (code , message )
183- else :
184- raise PermanentError (code , message )
0 commit comments