diff --git a/SAS/DataManagement/StorageQueryService/cache.py b/SAS/DataManagement/StorageQueryService/cache.py index 4b1747b8f355afec8b6b198d82501d6042ea6236..687efb4b0786df8a84f46eefb970296719be1158 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 03d0afcee46a8bc9c32f3be7fe1519fc91d64f47..8cf9eb91c01afa4c652d6a1059d7f96f246af7b2 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 b318191be7bdea79007479ba59dd3230bd081a18..04faa44478a3a0c8cb7024437329e2aeb7f7499d 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):