From 4b58dba3aa08a3c387b82d6f077256640d362471 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Fri, 14 Jun 2019 12:51:22 +0000
Subject: [PATCH] SW-699: getOtdbIdsFoundOnDisk

---
 SAS/DataManagement/StorageQueryService/cache.py   | 8 +++++---
 SAS/DataManagement/StorageQueryService/rpc.py     | 3 +++
 SAS/DataManagement/StorageQueryService/service.py | 1 +
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/SAS/DataManagement/StorageQueryService/cache.py b/SAS/DataManagement/StorageQueryService/cache.py
index 4b1747b8f35..687efb4b078 100644
--- a/SAS/DataManagement/StorageQueryService/cache.py
+++ b/SAS/DataManagement/StorageQueryService/cache.py
@@ -191,11 +191,13 @@ class CacheManager:
             if path in path_cache:
                 path_cache[path]['needs_update'] = True
 
-    def getDiskUsagesForAllOtdbIds(self, force_update=False):
-        otdb_ids = []
+    def getOtdbIdsFoundOnDisk(self):
         with self._cacheLock:
             otdb_id2path_cache = self._cache['otdb_id2path']
-            otdb_ids = list(otdb_id2path_cache.keys())
+            return sorted(list(otdb_id2path_cache.keys()))
+
+    def getDiskUsagesForAllOtdbIds(self, force_update=False):
+        otdb_ids = self.getOtdbIdsFoundOnDisk()
 
         result = {}
         for otdb_id in otdb_ids:
diff --git a/SAS/DataManagement/StorageQueryService/rpc.py b/SAS/DataManagement/StorageQueryService/rpc.py
index 03d0afcee46..8cf9eb91c01 100644
--- a/SAS/DataManagement/StorageQueryService/rpc.py
+++ b/SAS/DataManagement/StorageQueryService/rpc.py
@@ -52,6 +52,9 @@ class StorageQueryRPC(RPCClientContextManagerMixin):
     def getDiskUsagesForAllOtdbIds(self, force_update=False):
         return self._rpc_client.execute('GetDiskUsagesForAllOtdbIds', force_update=force_update)
 
+    def getOtdbIdsFoundOnDisk(self):
+        return self._rpc_client.execute('GetOtdbIdsFoundOnDisk')
+
 def main():
     from pprint import pprint
     import sys
diff --git a/SAS/DataManagement/StorageQueryService/service.py b/SAS/DataManagement/StorageQueryService/service.py
index b318191be7b..04faa44478a 100644
--- a/SAS/DataManagement/StorageQueryService/service.py
+++ b/SAS/DataManagement/StorageQueryService/service.py
@@ -34,6 +34,7 @@ class StorageQueryHandler(ServiceMessageHandler):
         self.register_service_method('GetDiskUsageForProjectsDirAndSubDirectories', self.cache.getDiskUsageForProjectsDirAndSubDirectories)
         self.register_service_method('GetDiskUsageForPath', self.cache.getDiskUsageForPath)
         self.register_service_method('GetDiskUsagesForAllOtdbIds', self.cache.getDiskUsagesForAllOtdbIds)
+        self.register_service_method('GetOtdbIdsFoundOnDisk', self.cache.getOtdbIdsFoundOnDisk)
 
 def createService(exchange=DEFAULT_BUSNAME, broker=DEFAULT_BROKER,
                   mountpoint=CEP4_DATA_MOUNTPOINT, cache_manager=None):
-- 
GitLab