Page MenuHomeDevCentral

D1290.id3313.diff
No OneTemporary

D1290.id3313.diff

diff --git a/utils/next-uid.py b/utils/next-uid.py
new file mode 100755
--- /dev/null
+++ b/utils/next-uid.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+#
+# Guesses a free sequential user ID for a new account.
+#
+# To do so, reads from pillar/core/users.sls (USERS_DATASOURCE) the last users
+# uid # and offers the next one available.
+#
+# ID > 5000 (USERS_CUT) are ignored.
+
+import yaml
+
+
+USERS_DATASOURCE = 'pillar/core/users.sls'
+USERS_DATASOURCE_KEY = 'shellusers'
+USERS_CUT = 5000
+
+
+def get_shellusers(filename, key):
+ with open(filename) as stream:
+ data = yaml.load(stream)
+ return data['shellusers']
+
+
+def get_uids(users, threshold):
+ return [users[username]['uid']
+ for username in users
+ if users[username]['uid'] < threshold]
+
+
+users = get_shellusers(USERS_DATASOURCE, USERS_DATASOURCE_KEY)
+uids = get_uids(users, USERS_CUT)
+print(max(uids) + 1)

File Metadata

Mime Type
text/plain
Expires
Tue, Jun 10, 14:09 (12 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2719797
Default Alt Text
D1290.id3313.diff (927 B)

Event Timeline