-
Notifications
You must be signed in to change notification settings - Fork 0
/
time.py
57 lines (47 loc) · 1.74 KB
/
time.py
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
import os
import sys
from notion.client import NotionClient
TOKEN = os.getenv('TOKEN_V2')
URL = os.getenv('URL')
def generate_var_prefix(op, env):
'''Environment variable names are of the type <env>_<op>_<kind>. Generates
the first part of the name using the given op and env.'''
return f'{env.upper()}_{op.upper()}'
def get_timestamp_in_milliseconds(microseconds_as_string):
return int(microseconds_as_string) / 1000
def get_table_view():
client = NotionClient(token_v2=TOKEN)
table_view = client.get_collection_view(URL)
return table_view
def write_data(op, env, num_builds=None):
'''Write data to table. Table is set up as name (env), op, start_ms, end_ms'''
var_prefix = generate_var_prefix(op, env)
start_env_var = f'{var_prefix}_START'
end_env_var = f'{var_prefix}_END'
start_time_in_microseconds = os.getenv(f'{var_prefix}_START')
end_time_in_microseconds = os.getenv(f'{var_prefix}_END')
try:
start_time = get_timestamp_in_milliseconds(start_time_in_microseconds)
end_time = get_timestamp_in_milliseconds(end_time_in_microseconds)
except TypeError:
print(
'Missing required env var, aborting',
f'start: {start_time_in_microseconds}',
f'end: {end_time_in_microseconds}',
sep='\n'
)
return
else:
print('Writing data')
table_view = get_table_view()
row = table_view.collection.add_row()
row.name = env.lower()
row.op = op.lower()
row.start_ms = start_time
row.end_ms = end_time
if num_builds:
row.num_builds = int(num_builds)
return
if __name__ == '__main__':
op, env, num_builds = sys.argv[1:]
write_data(op, env, num_builds)