Skip to content

Commit 2ba6d5a

Browse files
Logging levels (#62)
* Print device code request. * Catch failed token silent-get when writeback. * Invoke logging level in call. * Increment version.
1 parent 20b8650 commit 2ba6d5a

5 files changed

Lines changed: 56 additions & 14 deletions

File tree

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"Natural Language :: English",
1414
"Programming Language :: Python :: 3.7" "Programming Language :: Python :: 3.8",
1515
],
16-
version="0.1.5",
16+
version="0.1.6",
1717
author="Equinor ASA",
1818
install_requires=["requests", "msal", "PyYAML", "setuptools"],
1919
python_requires=">=3.4",

src/sumo/wrapper/_auth.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
datefmt="%Y-%m-%d %H:%M:%S",
1313
)
1414

15-
logger = logging.getLogger(__name__)
16-
logger.setLevel(level="DEBUG")
15+
logger = logging.getLogger("sumo.wrapper")
1716

1817
TENANT = "3aa4a235-b6e2-48d5-9195-7fcf05b459b0"
1918

@@ -30,6 +29,7 @@ def __init__(
3029
authority=AUTHORITY_URI,
3130
client_credentials=None,
3231
writeback=False,
32+
verbosity="CRITICAL",
3333
):
3434

3535
logger.debug("Initialize Auth")
@@ -62,13 +62,22 @@ def __init__(
6262
if self._cache_available():
6363
if not self.accounts:
6464
logger.debug("Token cache found but have no accounts")
65-
raise RuntimeError(
66-
"The locally stored token has no accounts. "
67-
"Please check your access or run 'sumo_login' to re-create your token."
68-
)
65+
if self.writeback:
66+
logger.debug("Writeback is True, running device_code")
67+
self._oauth_device_code()
68+
else:
69+
raise RuntimeError(
70+
"The locally stored token has no accounts. "
71+
"Please check your access or run 'sumo_login' to re-create your token."
72+
)
6973
else:
7074
logger.debug("There are accounts. Calling _oauth_get_token_silent()")
71-
self._oauth_get_token_silent()
75+
if not self._oauth_get_token_silent():
76+
logger.debug("self._oauth_get_token_silent returned False")
77+
if self.writeback:
78+
logger.debug("self.writeback is True, calling device_code")
79+
self._oauth_device_code()
80+
7281
else:
7382
logger.debug("No token cache found, reauthenticate")
7483
self._oauth_device_code()
@@ -117,8 +126,10 @@ def _oauth_get_token_silent(self):
117126
elif "error" in self.result:
118127
logger.info("Error getting access token")
119128
logger.debug(self.result["error"])
129+
return False
120130
else:
121131
logger.info("Failed getting access token")
132+
return False
122133

123134
self._set_expiring_date(int(self.result["expires_in"]))
124135

@@ -127,6 +138,8 @@ def _oauth_get_token_silent(self):
127138

128139
logger.debug("_oauth_get_token_silent() has finished")
129140

141+
return True
142+
130143
def _set_expiring_date(self, time_left, threshold=60):
131144
"""
132145
Defines the access token expiring date. Sets a threshold to update the token before it expires
@@ -163,7 +176,7 @@ def _oauth_device_code(self):
163176
"Fail to create device flow. Err: %s" % json.dumps(flow, indent=4)
164177
)
165178
else:
166-
logger.debug("flow[message] is %s", flow["message"])
179+
print(flow["message"])
167180

168181
self.result = self.app.acquire_token_by_device_flow(flow)
169182
try:

src/sumo/wrapper/_call_azure_api.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
from ._auth import Auth
55
from ._request_error import AuthenticationError, TransientError, PermanentError
66

7-
logger = logging.getLogger(__name__)
8-
logger.setLevel(level="DEBUG")
7+
logger = logging.getLogger("sumo.wrapper")
98

109

1110
def _raise_request_error_exception(code, message):
@@ -34,7 +33,17 @@ class CallAzureApi:
3433
Need to be an Azure resourceId
3534
"""
3635

37-
def __init__(self, resource_id, client_id, outside_token=False, writeback=False):
36+
def __init__(
37+
self,
38+
resource_id,
39+
client_id,
40+
outside_token=False,
41+
writeback=False,
42+
verbosity="CRITICAL",
43+
):
44+
45+
logger.setLevel(level=verbosity)
46+
3847
self.resource_id = resource_id
3948
self.client_id = client_id
4049
self.writeback = writeback

src/sumo/wrapper/_call_sumo_api.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
import logging
2+
13
from .config import APP_REGISTRATION
24
from ._call_azure_api import CallAzureApi
35

6+
logger = logging.getLogger("sumo.wrapper")
7+
48

59
class CallSumoApi:
610
"""
@@ -14,8 +18,12 @@ def __init__(
1418
client_id=None,
1519
outside_token=False,
1620
writeback=False,
21+
verbosity="CRITICAL",
1722
):
1823
"""Initialize the wrapper. Chooses among multiple environments."""
24+
25+
logger.setLevel(level=verbosity)
26+
1927
if env == "exp":
2028
self.base_url = (
2129
"https://main-sumo-experiment-dev.playground.radix.equinor.com/api/v1"

src/sumo/wrapper/login.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import os
22
import sys
3+
import logging
4+
35
from argparse import ArgumentParser
46
from sumo.wrapper import CallSumoApi
57

8+
logger = logging.getLogger("sumo.wrapper")
9+
logger.setLevel(level="CRITICAL")
10+
611

712
def get_parser() -> ArgumentParser:
813
parser = ArgumentParser(description="Login to Sumo on azure")
@@ -13,17 +18,24 @@ def get_parser() -> ArgumentParser:
1318
default="prod",
1419
help="Environment to log into",
1520
)
21+
parser.add_argument(
22+
"--verbosity",
23+
dest="verbosity",
24+
default="CRITICAL",
25+
help="Set the verbosity level",
26+
)
1627
return parser
1728

1829

1930
def main():
2031
args = get_parser().parse_args()
21-
32+
logger.setLevel(level=args.verbosity)
2233
env = args.env
34+
logger.debug("env is %s", env)
2335

2436
print("Login to Sumo environment: " + env)
2537

26-
CallSumoApi(env=env, writeback=True)
38+
CallSumoApi(env=env, writeback=True, verbosity=args.verbosity)
2739

2840

2941
if __name__ == "__main__":

0 commit comments

Comments
 (0)