]> git.mxchange.org Git - fba.git/blobdiff - fetch_instances.py
Continued:
[fba.git] / fetch_instances.py
index fd217efcf7ffd9f24641ed9da4ccbfde15029a0d..08b49e84d0b36e3581c18c35e0760ce07eaf8a2c 100755 (executable)
@@ -22,57 +22,14 @@ import sys
 import json
 import time
 import validators
-import fba
+from fba import *
 
-def fetch_instances(domain: str, origin: str, software: str, path: str = None):
-    # DEBUG: print("DEBUG: domain,origin,software,path:", domain, origin, software, path)
-    if not fba.is_instance_registered(domain):
-        # DEBUG: print("DEBUG: Adding new domain:", domain, origin)
-        fba.add_instance(domain, origin, sys.argv[0], path)
-
-    # DEBUG: print("DEBUG: Fetching instances for domain:", domain, software)
-    peerlist = fba.get_peers(domain, software)
-
-    if (peerlist is None):
-        print("ERROR: Cannot fetch peers:", domain)
-        return
-    elif fba.has_pending_nodeinfos(domain):
-        # DEBUG: print(f"DEBUG: domain='{domain}' has pending nodeinfo data, flushing ...")
-        fba.update_nodeinfos(domain)
-
-    print(f"INFO: Checking {len(peerlist)} instances from {domain} ...")
-    for instance in peerlist:
-        if peerlist == None:
-            # Skip "None" types as tidup() cannot parse them
-            continue
-
-        # DEBUG: print(f"DEBUG: instance[{type(instance}]={instance} - BEFORE")
-        instance = fba.tidyup(instance)
-        # DEBUG: print(f"DEBUG: instance[{type(instance}]={instance} - AFTER")
-
-        if instance == "":
-            print("WARNING: Empty instance after tidyup(), domain:", domain)
-            continue
-        elif not validators.domain(instance.split("/")[0]):
-            print(f"WARNING: Bad instance='{instance}' from domain='{domain}',origin='{origin}',software='{software}'")
-            continue
-        elif fba.is_blacklisted(instance):
-            # DEBUG: print("DEBUG: instance is blacklisted:", instance)
-            continue
-
-        # DEBUG: print("DEBUG: Handling instance:", instance)
-        try:
-            if not fba.is_instance_registered(instance):
-                # DEBUG: print("DEBUG: Adding new instance:", instance, domain)
-                fba.add_instance(instance, domain, sys.argv[0])
-        except BaseException as e:
-            print(f"ERROR: instance='{instance}',exception[{type(e)}]:'{str(e)}'")
-            continue
+boot.acquire_lock()
 
 instance = sys.argv[1]
 
 # Initial fetch
-fetch_instances(instance, None, None)
+fba.fetch_instances(instance, None, None, sys.argv[0])
 
 # Loop through some instances
 fba.cursor.execute(
@@ -87,7 +44,7 @@ for row in rows:
         print("WARNING: domain is blacklisted:", row[0])
         continue
 
-    print(f"INFO: Fetching instances for instance '{row[0]}' ('{row[2]}') of origin '{row[1]}',nodeinfo_url='{row[3]}'")
-    fetch_instances(row[0], row[1], row[2], row[3])
+    print(f"INFO: Fetching instances for instance '{row[0]}' ('{row[2]}') of origin='{row[1]}',nodeinfo_url='{row[3]}'")
+    fba.fetch_instances(row[0], row[1], row[2], sys.argv[0], row[3])
 
-fba.connection.close()
+boot.shutdown()