-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlogin.py
More file actions
106 lines (83 loc) · 2.27 KB
/
login.py
File metadata and controls
106 lines (83 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import logging
from argparse import ArgumentParser
from sumo.wrapper import SumoClient
logger = logging.getLogger("sumo.wrapper")
logger.setLevel(level="CRITICAL")
modes = ["interactive", "devicecode", "silent"]
fmu_sumo_uploader_client_id = "a65dc4cc-3dec-43df-9599-e66d3abc4dca"
def get_parser() -> ArgumentParser:
parser = ArgumentParser(description="Login to Sumo on azure")
parser.add_argument(
"-e",
"--env",
dest="env",
action="store",
default="prod",
help="Environment to log into",
)
parser.add_argument(
"-v",
"--verbosity",
dest="verbosity",
default="CRITICAL",
help="Set the verbosity level",
)
parser.add_argument(
"-m",
"--mode",
dest="mode",
action="store",
default="interactive",
help=f"Valid modes: {', '.join(modes)}",
)
parser.add_argument(
"-p",
"--print",
dest="print_token",
action="store_true",
default=False,
help="Print access token",
)
parser.add_argument(
"-u",
"--uploader",
dest="client_id",
action="store_const",
const=fmu_sumo_uploader_client_id,
default=None,
help="Use fmu-sumo-uploader client registration",
)
return parser
def main():
args = get_parser().parse_args()
logger.setLevel(level=args.verbosity)
env = args.env
client_id = args.client_id
mode = args.mode
is_interactive = mode == "interactive"
is_devicecode = mode == "devicecode"
logger.debug("env is %s", env)
if mode not in modes:
print(f"Invalid mode: {mode}")
return 1
if mode != "silent":
print("Login to Sumo environment: " + env)
sumo = SumoClient(
env,
interactive=is_interactive,
devicecode=is_devicecode,
client_id=client_id,
)
token = sumo.authenticate()
if mode != "silent":
if args.print_token:
print(token)
if token is not None:
print("Successfully logged in to Sumo environment: " + env)
else:
print("Failed login to Sumo environment: " + env)
if token is None:
return 1
return 0
if __name__ == "__main__":
main()