Skip to content

Commit bebad95

Browse files
committed
Add parsed login_time to server.Users fact.
1 parent 28f80d9 commit bebad95

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

pyinfra/facts/server.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,10 +455,15 @@ def process(self, output):
455455
if group_name and group_name != group:
456456
groups.append(group_name)
457457

458+
raw_login_time = None
459+
login_time = None
460+
458461
# Parse lastlog info
459462
# lastlog output varies, which is why I use regex to match login time
460463
login = re.search(rex, lastlog)
461-
login_time = login.group() if login else None
464+
if login:
465+
raw_login_time = login.group()
466+
login_time = parse_date(raw_login_time)
462467

463468
users[entries[0]] = {
464469
'home': entries[5] or None,
@@ -468,7 +473,8 @@ def process(self, output):
468473
'groups': groups,
469474
'uid': int(entries[2]),
470475
'gid': int(entries[3]),
471-
'lastlog': login_time,
476+
'lastlog': raw_login_time,
477+
'login_time': login_time,
472478
}
473479

474480
return users

tests/facts/server.Users/mixed.json

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
],
2424
"uid": 0,
2525
"gid": 0,
26-
"lastlog": "Sat Jun 5 12:03:23 -0600 2021"
26+
"lastlog": "Sat Jun 5 12:03:23 -0600 2021",
27+
"login_time": "2021-06-05T12:03:23-06:00"
2728
},
2829
"_tesTy.test": {
2930
"home": "/home/_tesTy.test",
@@ -35,7 +36,8 @@
3536
],
3637
"uid": 1004,
3738
"gid": 1004,
38-
"lastlog": "Sat Jun 12 13:43:42 -0600 2021"
39+
"lastlog": "Sat Jun 12 13:43:42 -0600 2021",
40+
"login_time": "2021-06-12T13:43:42-06:00"
3941
},
4042
"test.testy": {
4143
"home": "/home/test.testy",
@@ -45,7 +47,8 @@
4547
"groups": [],
4648
"uid": 1003,
4749
"gid": 1003,
48-
"lastlog": "Fri Jun 11 22:26:04 -0600 2021"
50+
"lastlog": "Fri Jun 11 22:26:04 -0600 2021",
51+
"login_time": "2021-06-11T22:26:04-06:00"
4952
},
5053
"noshell": {
5154
"home": "/home/noshell",
@@ -55,7 +58,8 @@
5558
"groups": [],
5659
"uid": 1002,
5760
"gid": 1002,
58-
"lastlog": null
61+
"lastlog": null,
62+
"login_time": null
5963
},
6064
"nohome": {
6165
"home": null,
@@ -65,7 +69,8 @@
6569
"groups": [],
6670
"uid": 1002,
6771
"gid": 1002,
68-
"lastlog": null
72+
"lastlog": null,
73+
"login_time": null
6974
}
7075
}
7176
}

words.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ keyid
185185
keyring
186186
keyscan
187187
keyserver
188+
lastlog
188189
Launchd
189190
launchd
190191
levelno

0 commit comments

Comments
 (0)