-import fba
-
-def fetch_instances(domain: str, origin: str, software: str):
- # NOISY-DEBUG: print("DEBUG: domain,origin,software:", domain, origin, software)
- if not fba.is_instance_registered(domain):
- # NOISY-DEBUG: print("DEBUG: Adding new domain:", domain, origin)
- fba.add_instance(domain, origin, sys.argv[0])
-
- # NOISY-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 domain in fba.nodeinfos["get_peers_url"]:
- # NOISY-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:
- # NOISY-DEBUG: print("DEBUG: BEFORE instance:", instance)
- instance = fba.tidyup(instance)
- # NOISY-DEBUG: print("DEBUG: AFTER instance:", instance)
-
- 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):
- # NOISY-DEBUG: print("DEBUG: instance is blacklisted:", instance)
- continue