allow only one "type" to be requested by mntner
This commit is contained in:
parent
1dc6efe560
commit
c9e595ab99
1 changed files with 18 additions and 14 deletions
32
__main__.py
32
__main__.py
|
@ -122,18 +122,19 @@ class Registry(object):
|
|||
return True, self.index[objectType][objectFile]
|
||||
return False, "not found"
|
||||
|
||||
def get_all_by_mntner(self, mntner: str) -> tuple[bool, dict or str]:
|
||||
|
||||
def get_all_by_mntner(self, mntner: str, requestedType:str = None) -> tuple[bool, dict or str]:
|
||||
"requestedType: string of type, if None returns all"
|
||||
def _load_by_mntner(mntner: str) -> dict:
|
||||
ret = {}
|
||||
for objectType in self.index:
|
||||
for objectFile in self.index[objectType]:
|
||||
if mntner in self.index[objectType][objectFile]["mnt-by"]:
|
||||
if objectType in ret:
|
||||
ret[objectType][objectFile] = self.index[objectType][objectFile]
|
||||
else:
|
||||
ret[objectType] = {
|
||||
objectFile: self.index[objectType][objectFile]}
|
||||
if requestedType == None or objectType == requestedType:
|
||||
for objectFile in self.index[objectType]:
|
||||
if mntner in self.index[objectType][objectFile]["mnt-by"]:
|
||||
if objectType in ret:
|
||||
ret[objectType][objectFile] = self.index[objectType][objectFile]
|
||||
else:
|
||||
ret[objectType] = {
|
||||
objectFile: self.index[objectType][objectFile]}
|
||||
return ret
|
||||
|
||||
# check if index is not yet initialized
|
||||
|
@ -141,22 +142,25 @@ class Registry(object):
|
|||
print("INFO: requested get_object, but index not yet created")
|
||||
self._build_index()
|
||||
|
||||
if mntner in self._cache["mntner-objects"]:
|
||||
if mntner in self._cache["mntner-objects"] and ("None" in self._cache["mntner-objects"][mntner].keys() or requestedType in self._cache["mntner-objects"][mntner].keys()):
|
||||
if self._cache["expired"]:
|
||||
# if the cache is expired: clear cache and reset "expired"
|
||||
self._cache["mntner-objects"] = {}
|
||||
self._cache["expired"] = False
|
||||
|
||||
ret = _load_by_mntner(mntner)
|
||||
self._cache["mntner-objects"][mntner] = ret
|
||||
self._cache["mntner-objects"][mntner] = {}
|
||||
self._cache["mntner-objects"][mntner]["None" if requestedType == None else requestedType] = ret
|
||||
if ret == {}:
|
||||
return False, f"no objects found for {mntner}"
|
||||
return True, ret
|
||||
|
||||
else:
|
||||
return True, self._cache["mntner-objects"][mntner]
|
||||
return True, self._cache["mntner-objects"][mntner]["None" if requestedType == None else requestedType]
|
||||
else:
|
||||
ret = _load_by_mntner(mntner)
|
||||
if requestedType is not None and mntner in self._cache["mntner-objects"] and "None" in self._cache["mntner-objects"][mntner]:
|
||||
ret = {requestedType: self._cache["mntner-objects"]}
|
||||
else:
|
||||
ret = _load_by_mntner(mntner)
|
||||
self._cache["mntner-objects"][mntner] = ret
|
||||
if ret == {}:
|
||||
return False, f"no objects found for {mntner}"
|
||||
|
|
Loading…
Add table
Reference in a new issue