]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Tue, 15 Aug 2023 19:12:43 +0000 (21:12 +0200)
committerRoland Häder <roland@mxchange.org>
Tue, 15 Aug 2023 19:12:43 +0000 (21:12 +0200)
- need to skip recently but unknown instances (software is None but nodeinfo
  has recently being updated

fba/http/federation.py

index 53dff1e66e49e4b95be6e2968a7ece9a225a68b0..af0064342fdfdce37b604682ff31c3e0f4bf6af8 100644 (file)
@@ -59,6 +59,10 @@ def fetch_instances(domain: str, origin: str, software: str, command: str, path:
         raise ValueError("Parameter 'command' is empty")
     elif command in ["fetch_blocks", "fetch_cs", "fetch_bkali", "fetch_relays", "fetch_fedipact", "fetch_joinmobilizon", "fetch_joinmisskey", "fetch_joinfediverse"] and origin is None:
         raise ValueError(f"Parameter command='{command}' but origin is None, please fix invoking this function.")
+    elif not isinstance(path, str) and path is not None:
+        raise ValueError(f"Parameter path[]='{type(path)}' is not of type 'str'")
+    elif instances.is_recent(domain, "last_instance_fetch"):
+        raise ValueError(f"domain='{domain}' has recently been fetched but function was invoked")
     elif software is None and not instances.is_recent(domain, "last_nodeinfo"):
         try:
             logger.debug("Software for domain='%s' is not set, determining ...", domain)
@@ -68,12 +72,10 @@ def fetch_instances(domain: str, origin: str, software: str, command: str, path:
             instances.set_last_error(domain, exception)
 
         logger.debug("Determined software='%s' for domain='%s'", software, domain)
+    elif software is None:
+        logger.debug("domain='%s' has unknown software or nodeinfo has recently being fetched", domain)
     elif not isinstance(software, str):
         raise ValueError(f"Parameter software[]='{type(software)}' is not of type 'str'")
-    elif not isinstance(path, str) and path is not None:
-        raise ValueError(f"Parameter path[]='{type(path)}' is not of type 'str'")
-    elif instances.is_recent(domain, "last_instance_fetch"):
-        raise ValueError(f"domain='{domain}' has recently been fetched but function was invoked")
 
     logger.debug("Checking if domain='%s' is registered ...", domain)
     if not instances.is_registered(domain):