-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript1.py
39 lines (37 loc) · 1.38 KB
/
script1.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
def get_event_date(event):
return event.date
def current_user(events):
events.sort(key=get_event_date)
machines = {}
for event in events:
if event.machine not in machines:
machines[event.machine]=set()
if event.type =="login":
machines[event.machine].add(event.user)
elif event.type == "logout":
machines[event.machine].remove(event.user)
return machines
def generate_report(machines):
for machine,users in machines.items():
if len(users) > 0:
user_list = ", ".join(users)
print("{}: {}".format(machine,user_list))
# .........class..........
class Event:
def __init__(self,event_date,event_type,machine_name,user):
self.date = event_date
self.type = event_type
self.machine = machine_name
self.user = user
# .......list of Events.....
events = [
Event('2020-01-21 12:45:56', 'login', 'myworkstation.local', 'jordan'),
Event('2020-01-22 15:53:42', 'logout', 'webserver.local', 'jordan'),
Event('2020-01-21 18:53:21', 'login', 'webserver.local', 'lane'),
Event('2020-01-22 10:25:34', 'logout', 'myworkstation.local', 'jordan'),
Event('2020-01-21 08:20:01', 'login', 'webserver.local', 'jordan'),
Event('2020-01-23 11:24:35', 'login', 'mailserver.local', 'chris'),
]
users = current_user(events)
# print(users)
generate_report(users)