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 True, self.index[objectType][objectFile]
|
||||||
return False, "not found"
|
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:
|
def _load_by_mntner(mntner: str) -> dict:
|
||||||
ret = {}
|
ret = {}
|
||||||
for objectType in self.index:
|
for objectType in self.index:
|
||||||
for objectFile in self.index[objectType]:
|
if requestedType == None or objectType == requestedType:
|
||||||
if mntner in self.index[objectType][objectFile]["mnt-by"]:
|
for objectFile in self.index[objectType]:
|
||||||
if objectType in ret:
|
if mntner in self.index[objectType][objectFile]["mnt-by"]:
|
||||||
ret[objectType][objectFile] = self.index[objectType][objectFile]
|
if objectType in ret:
|
||||||
else:
|
ret[objectType][objectFile] = self.index[objectType][objectFile]
|
||||||
ret[objectType] = {
|
else:
|
||||||
objectFile: self.index[objectType][objectFile]}
|
ret[objectType] = {
|
||||||
|
objectFile: self.index[objectType][objectFile]}
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
# check if index is not yet initialized
|
# check if index is not yet initialized
|
||||||
|
@ -141,22 +142,25 @@ class Registry(object):
|
||||||
print("INFO: requested get_object, but index not yet created")
|
print("INFO: requested get_object, but index not yet created")
|
||||||
self._build_index()
|
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 self._cache["expired"]:
|
||||||
# if the cache is expired: clear cache and reset "expired"
|
# if the cache is expired: clear cache and reset "expired"
|
||||||
self._cache["mntner-objects"] = {}
|
self._cache["mntner-objects"] = {}
|
||||||
self._cache["expired"] = False
|
self._cache["expired"] = False
|
||||||
|
|
||||||
ret = _load_by_mntner(mntner)
|
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 == {}:
|
if ret == {}:
|
||||||
return False, f"no objects found for {mntner}"
|
return False, f"no objects found for {mntner}"
|
||||||
return True, ret
|
return True, ret
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return True, self._cache["mntner-objects"][mntner]
|
return True, self._cache["mntner-objects"][mntner]["None" if requestedType == None else requestedType]
|
||||||
else:
|
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
|
self._cache["mntner-objects"][mntner] = ret
|
||||||
if ret == {}:
|
if ret == {}:
|
||||||
return False, f"no objects found for {mntner}"
|
return False, f"no objects found for {mntner}"
|
||||||
|
|
Loading…
Add table
Reference in a new issue