8460: Tolerate None where dicts are expected in events.
authorTom Clegg <tom@curoverse.com>
Thu, 15 Dec 2016 17:16:22 +0000 (12:16 -0500)
committerTom Clegg <tom@curoverse.com>
Thu, 15 Dec 2016 17:16:22 +0000 (12:16 -0500)
services/fuse/arvados_fuse/__init__.py

index 4c1731f319e231a5ea26ddab2c8c1b0f6be5c38a..51b0a57a7fe11e573361e242eb80d324a540dfda 100644 (file)
@@ -377,7 +377,7 @@ class Operations(llfuse.Operations):
         if 'event_type' not in ev:
             return
         with llfuse.lock:
-            new_attrs = ev.get("properties", {}).get("new_attributes", {})
+            new_attrs = (ev.get("properties") or {}).get("new_attributes") or {}
             pdh = new_attrs.get("portable_data_hash")
             # new_attributes.modified_at currently lacks
             # subsecond precision (see #6347) so use event_at
@@ -391,7 +391,7 @@ class Operations(llfuse.Operations):
                 else:
                     item.update()
 
-            oldowner = ev.get("properties", {}).get("old_attributes", {}).get("owner_uuid")
+            oldowner = ((ev.get("properties") or {}).get("old_attributes") or {}).get("owner_uuid")
             newowner = ev.get("object_owner_uuid")
             for parent in (
                     self.inodes.inode_cache.find_by_uuid(oldowner) +