[ARVADOS] updated: 2.1.0-91-gb18afb9c2

Git user git at public.arvados.org
Tue Nov 17 22:47:18 UTC 2020


Summary of changes:
 tools/user-activity/arv-user-activity.py | 58 +++++++++++++++++++-------------
 1 file changed, 35 insertions(+), 23 deletions(-)

       via  b18afb9c26ff9d9e0ebc39577bdbd577ff9f3ee8 (commit)
      from  bfdb0fa84d6e748d74814c2337cf304fca3a3c03 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit b18afb9c26ff9d9e0ebc39577bdbd577ff9f3ee8
Author: Peter Amstutz <peter.amstutz at curii.com>
Date:   Tue Nov 17 17:46:42 2020 -0500

    17022: Specify time period in days on command line.
    
    Also print timestamps in local time zone.
    
    Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>

diff --git a/tools/user-activity/arv-user-activity.py b/tools/user-activity/arv-user-activity.py
index c8b5365b7..196133ddd 100755
--- a/tools/user-activity/arv-user-activity.py
+++ b/tools/user-activity/arv-user-activity.py
@@ -8,10 +8,12 @@ import sys
 
 import arvados
 import arvados.util
+import datetime
+import ciso8601
 
 def parse_arguments(arguments):
     arg_parser = argparse.ArgumentParser()
-    arg_parser.add_argument('--timespan', type=str)
+    arg_parser.add_argument('--days', type=int)
     args = arg_parser.parse_args(arguments)
     return args
 
@@ -32,7 +34,7 @@ def getowner(arv, uuid, owners):
 
 def getusername(arv, uuid):
     u = arv.users().get(uuid=uuid).execute()
-    return "%s %s (%s)" % (u["first_name"], u["last_name"], uuid)
+    return "%s %s <%s> (%s)" % (u["first_name"], u["last_name"], u["email"], uuid)
 
 def getname(u):
     return "\"%s\" (%s)" % (u["name"], u["uuid"])
@@ -42,7 +44,11 @@ def main(arguments):
 
     arv = arvados.api()
 
-    events = arvados.util.keyset_list_all(arv.logs().list, filters=[["created_at", ">=", "2020-10-01T14:51:42-05:00"]])
+    since = datetime.datetime.utcnow() - datetime.timedelta(days=args.days)
+
+    print("Activity since %s\n" % (datetime.datetime.now() - datetime.timedelta(days=args.days)).isoformat())
+
+    events = arvados.util.keyset_list_all(arv.logs().list, filters=[["created_at", ">=", since.isoformat()]])
 
     users = {}
     owners = {}
@@ -50,67 +56,73 @@ def main(arguments):
     for e in events:
         owner = getowner(arv, e["object_owner_uuid"], owners)
         users.setdefault(owner, [])
+        event_at = ciso8601.parse_datetime(e["event_at"]).astimezone().isoformat()
+        # loguuid = e["uuid"]
+        loguuid = ""
 
         if e["event_type"] == "create" and e["object_uuid"][6:11] == "tpzed":
             users.setdefault(e["object_uuid"], [])
-            users[e["object_uuid"]].append("%s User account created" % e["event_at"])
-        if e["event_type"] == "update" and e["object_uuid"][6:11] == "tpzed":
+            users[e["object_uuid"]].append("%s User account created" % event_at)
+
+        elif e["event_type"] == "update" and e["object_uuid"][6:11] == "tpzed":
             pass
-            #users.setdefault(e["object_uuid"], [])
-            #users[e["object_uuid"]].append("%s User account created" % e["event_at"])
+
         elif e["event_type"] == "create" and e["object_uuid"][6:11] == "xvhdp":
             if e["properties"]["new_attributes"]["requesting_container_uuid"] is None:
-                users[owner].append("%s Ran container %s %s" % (e["event_at"], getname(e["properties"]["new_attributes"]), e["uuid"]))
+                users[owner].append("%s Ran container %s %s" % (event_at, getname(e["properties"]["new_attributes"]), loguuid))
 
         elif e["event_type"] == "update" and e["object_uuid"][6:11] == "xvhdp":
             pass
 
         elif e["event_type"] == "create" and e["object_uuid"][6:11] == "j7d0g":
-            users[owner].append("%s Created project %s" %  (e["event_at"], getname(e["properties"]["new_attributes"])))
+            users[owner].append("%s Created project %s" %  (event_at, getname(e["properties"]["new_attributes"])))
 
         elif e["event_type"] == "delete" and e["object_uuid"][6:11] == "j7d0g":
-            users[owner].append("%s Deleted project %s" % (e["event_at"], getname(e["properties"]["old_attributes"])))
+            users[owner].append("%s Deleted project %s" % (event_at, getname(e["properties"]["old_attributes"])))
 
         elif e["event_type"] == "update" and e["object_uuid"][6:11] == "j7d0g":
-            users[owner].append("%s Updated project %s" % (e["event_at"], getname(e["properties"]["new_attributes"])))
+            users[owner].append("%s Updated project %s" % (event_at, getname(e["properties"]["new_attributes"])))
 
         elif e["event_type"] in ("create", "update") and e["object_uuid"][6:11] == "gj3su":
             if len(users[owner]) > 0 and users[owner][-1].endswith("activity"):
                 sp = users[owner][-1].split(" ")
-                users[owner][-1] = "%s to %s Account activity" % (sp[0], e["event_at"])
+                users[owner][-1] = "%s to %s Account activity" % (sp[0], event_at)
             else:
-                users[owner].append("%s Account activity" % (e["event_at"]))
+                users[owner].append("%s Account activity" % (event_at))
 
         elif e["event_type"] == "create" and e["object_uuid"][6:11] == "o0j2j":
             if e["properties"]["new_attributes"]["link_class"] == "tag":
-                users[owner].append("%s Tagged %s" % (e["event_at"], e["properties"]["new_attributes"]["head_uuid"]))
+                users[owner].append("%s Tagged %s" % (event_at, e["properties"]["new_attributes"]["head_uuid"]))
             elif e["properties"]["new_attributes"]["link_class"] == "permission":
-                users[owner].append("%s Shared %s with %s" % (e["event_at"], e["properties"]["new_attributes"]["tail_uuid"], e["properties"]["new_attributes"]["head_uuid"]))
+                users[owner].append("%s Shared %s with %s" % (event_at, e["properties"]["new_attributes"]["tail_uuid"], e["properties"]["new_attributes"]["head_uuid"]))
             else:
-                users[owner].append("%s %s %s %s" % (e["event_type"], e["object_kind"], e["object_uuid"], e["uuid"]))
+                users[owner].append("%s %s %s %s" % (e["event_type"], e["object_kind"], e["object_uuid"], loguuid))
 
         elif e["event_type"] == "delete" and e["object_uuid"][6:11] == "o0j2j":
             if e["properties"]["old_attributes"]["link_class"] == "tag":
-                users[owner].append("%s Untagged %s" % (e["event_at"], e["properties"]["old_attributes"]["head_uuid"]))
+                users[owner].append("%s Untagged %s" % (event_at, e["properties"]["old_attributes"]["head_uuid"]))
             elif e["properties"]["old_attributes"]["link_class"] == "permission":
-                users[owner].append("%s Unshared %s with %s" % (e["event_at"], e["properties"]["old_attributes"]["tail_uuid"], e["properties"]["old_attributes"]["head_uuid"]))
+                users[owner].append("%s Unshared %s with %s" % (event_at, e["properties"]["old_attributes"]["tail_uuid"], e["properties"]["old_attributes"]["head_uuid"]))
             else:
-                users[owner].append("%s %s %s %s" % (e["event_type"], e["object_kind"], e["object_uuid"], e["uuid"]))
+                users[owner].append("%s %s %s %s" % (e["event_type"], e["object_kind"], e["object_uuid"], loguuid))
 
         elif e["event_type"] == "create" and e["object_uuid"][6:11] == "4zz18":
             if e["properties"]["new_attributes"]["properties"].get("type") in ("log", "output", "intermediate"):
                 pass
             else:
-                users[owner].append("%s Created collection %s %s" % (e["event_at"], getname(e["properties"]["new_attributes"]), e["uuid"]))
+                users[owner].append("%s Created collection %s %s" % (event_at, getname(e["properties"]["new_attributes"]), loguuid))
 
         elif e["event_type"] == "update" and e["object_uuid"][6:11] == "4zz18":
-            users[owner].append("%s Updated collection %s %s" % (e["event_at"], getname(e["properties"]["new_attributes"]), e["uuid"]))
+            users[owner].append("%s Updated collection %s %s" % (event_at, getname(e["properties"]["new_attributes"]), loguuid))
 
         elif e["event_type"] == "delete" and e["object_uuid"][6:11] == "4zz18":
-            users[owner].append("%s Deleted collection %s %s" % (e["event_at"], getname(e["properties"]["old_attributes"]), e["uuid"]))
+            if e["properties"]["old_attributes"]["properties"].get("type") in ("log", "output", "intermediate"):
+                pass
+            else:
+                users[owner].append("%s Deleted collection %s %s" % (event_at, getname(e["properties"]["old_attributes"]), loguuid))
 
         else:
-            users[owner].append("%s %s %s %s" % (e["event_type"], e["object_kind"], e["object_uuid"], e["uuid"]))
+            users[owner].append("%s %s %s %s" % (e["event_type"], e["object_kind"], e["object_uuid"], loguuid))
 
     for k,v in users.items():
         if k is None or k.endswith("-tpzed-000000000000000"):

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list