Optimized API call to not return non project groups
authorFuad Muhic <muhic.fuad@gmail.com>
Thu, 12 Apr 2018 09:49:32 +0000 (11:49 +0200)
committerFuad Muhic <muhic.fuad@gmail.com>
Thu, 12 Apr 2018 09:49:32 +0000 (11:49 +0200)
Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic@capeannenterprises.com>

services/fuse/arvados_fuse/fusedir.py

index 91539850aa71be59c5df6be8004fb434713dd2de..769771e7beb52cafd5fa11033921973de501e54c 100644 (file)
@@ -648,12 +648,12 @@ and the directory will appear if it exists.
             e = None
 
             if group_uuid_pattern.match(k):
-                project_object = self.api.groups().get(
-                    uuid=k).execute(num_retries=self.num_retries)
-                if project_object[u'group_class'] != "project":
+                project = self.api.groups().list(
+                    filters=[['group_class', '=', 'project'], ["uuid", "=", k]]).execute(num_retries=self.num_retries)
+                if project[u'items_available'] == 0:
                     return False
                 e = self.inodes.add_entry(ProjectDirectory(
-                    self.inode, self.inodes, self.api, self.num_retries, project_object))
+                    self.inode, self.inodes, self.api, self.num_retries, project[u'items'][0]))
             else:
                 e = self.inodes.add_entry(CollectionDirectory(
                         self.inode, self.inodes, self.api, self.num_retries, k))