"software" : {},
}
-# "Cached" configuration values
+# "Cached" configuration values to avoid get() invocations (relatively
+# "expensive")
_config = {
"recheck_block" : config.get("recheck_block"),
"recheck_instance": config.get("recheck_instance"),
"write_error_log" : config.get("write_error_log"),
}
-def _set_data(key: str, domain: str, value: any) -> None:
+def _set_pending_data(key: str, domain: str, value: any) -> None:
logger.debug("key='%s',domain='%s',value[]='%s' - CALLED!", key, domain, type(value))
domain_helper.raise_on(domain)
domain_helper.raise_on(domain)
logger.debug("Updating last_nodeinfo for domain='%s'", domain)
- _set_data("last_nodeinfo", domain, time.time())
+ _set_pending_data("last_nodeinfo", domain, time.time())
logger.debug("EXIT!")
if isinstance(error, str):
logger.debug("Setting last_error_details='%s' (str)", error)
- _set_data("last_status_code" , domain, 999)
- _set_data("last_error_details", domain, error if error != "" else None)
+ _set_pending_data("last_status_code" , domain, 999)
+ _set_pending_data("last_error_details", domain, error if error != "" else None)
elif isinstance(error, requests.models.Response):
logger.debug("Setting last_error_details='%s' (Response)", error.reason)
- _set_data("last_status_code" , domain, error.status_code)
- _set_data("last_error_details", domain, error.reason if error.reason != "" else None)
+ _set_pending_data("last_status_code" , domain, error.status_code)
+ _set_pending_data("last_error_details", domain, error.reason if error.reason != "" else None)
elif not isinstance(error, dict):
raise TypeError(f"Cannot handle keys in error[{type(error)}]='{error}'")
elif "status_code" in error and "error_message" in error:
logger.debug("Setting last_error_details='%s' (error_message)", error['error_message'])
- _set_data("last_status_code" , domain, error["status_code"])
- _set_data("last_error_details", domain, error["error_message"] if error["error_message"] != "" else None)
+ _set_pending_data("last_status_code" , domain, error["status_code"])
+ _set_pending_data("last_error_details", domain, error["error_message"] if error["error_message"] != "" else None)
elif "json" in error and "error" in error["json"] and "msg" in error["json"]:
logger.debug("Setting last_error_details='%s' (json,error)", error["json"]["msg"])
- _set_data("last_status_code" , domain, error["status_code"])
- _set_data("last_error_details", domain, error["json"]["msg"] if error["json"]["msg"] != "" else None)
+ _set_pending_data("last_status_code" , domain, error["status_code"])
+ _set_pending_data("last_error_details", domain, error["json"]["msg"] if error["json"]["msg"] != "" else None)
elif "json" in error and "error" in error["json"] and "error_message" in error["json"]:
logger.debug("Setting last_error_details='%s' (json,error)", error["json"]["error_message"])
- _set_data("last_status_code" , domain, error["status_code"])
- _set_data("last_error_details", domain, error["json"]["error_message"] if error["json"]["error_message"] != "" else None)
+ _set_pending_data("last_status_code" , domain, error["status_code"])
+ _set_pending_data("last_error_details", domain, error["json"]["error_message"] if error["json"]["error_message"] != "" else None)
elif "json" in error and "error" in error["json"] and isinstance(error["json"]["error"], dict) and "message" in error["json"]["error"]:
logger.debug("Setting last_error_details='%s' (json,error)", error["json"]["error"]["message"])
- _set_data("last_status_code" , domain, error["status_code"])
- _set_data("last_error_details", domain, error["json"]["error"]["message"] if error["json"]["error"]["message"] != "" else None)
+ _set_pending_data("last_status_code" , domain, error["status_code"])
+ _set_pending_data("last_error_details", domain, error["json"]["error"]["message"] if error["json"]["error"]["message"] != "" else None)
elif "json" in error and "error" in error["json"]:
logger.debug("Setting last_error_details='%s' (json,error)", error["json"]["error"])
- _set_data("last_status_code" , domain, error["status_code"])
- _set_data("last_error_details", domain, error["json"]["error"] if error["json"]["error"] != "" else None)
+ _set_pending_data("last_status_code" , domain, error["status_code"])
+ _set_pending_data("last_error_details", domain, error["json"]["error"] if error["json"]["error"] != "" else None)
if _config["write_error_log"]:
logger.debug("Invoking error_log.add(domain='%s',error[]='%s'", domain, type(error))
domain_helper.raise_on(domain)
# Set both to success
- _set_data("last_status_code" , domain, 200)
- _set_data("last_error_details", domain, None)
+ _set_pending_data("last_status_code" , domain, 200)
+ _set_pending_data("last_error_details", domain, None)
logger.debug("EXIT!")
domain_helper.raise_on(domain)
# Set timestamp
- _set_data("last_blocked", domain, time.time())
+ _set_pending_data("last_blocked", domain, time.time())
logger.debug("EXIT!")
def set_last_instance_fetch(domain: str) -> None:
domain_helper.raise_on(domain)
# Set timestamp
- _set_data("last_instance_fetch", domain, time.time())
+ _set_pending_data("last_instance_fetch", domain, time.time())
logger.debug("EXIT!")
def set_last_response_time(domain: str, response_time: float) -> None:
raise ValueError(f"response_time={response_time} is below zero")
# Set timestamp
- _set_data("last_response_time", domain, response_time)
+ _set_pending_data("last_response_time", domain, response_time)
logger.debug("EXIT!")
def set_last_requested_path(domain: str, path: float) -> None:
raise ValueError(f"path='{path}' does not start with '/'")
# Set timestamp
- _set_data("last_requested_path", domain, path)
+ _set_pending_data("last_requested_path", domain, path)
logger.debug("EXIT!")
def set_total_peers(domain: str, peers: list) -> None:
raise TypeError(f"Parameter peers[]='{type(peers)}' has not expected type 'list'")
# Set timestamp
- _set_data("total_peers", domain, len(peers))
+ _set_pending_data("total_peers", domain, len(peers))
logger.debug("EXIT!")
def set_total_blocks(domain: str, blocks: list) -> None:
raise TypeError(f"Parameter blocks[]='{type(blocks)}' has not expected type 'list'")
# Set timestamp
- _set_data("total_blocks", domain, len(blocks))
+ _set_pending_data("total_blocks", domain, len(blocks))
logger.debug("EXIT!")
def set_obfuscated_blocks(domain: str, obfuscated: int) -> None:
raise ValueError(f"Parameter obfuscated={obfuscated} is not valid")
# Set timestamp
- _set_data("obfuscated_blocks", domain, obfuscated)
+ _set_pending_data("obfuscated_blocks", domain, obfuscated)
logger.debug("EXIT!")
def set_nodeinfo_url(domain: str, url: str) -> None:
raise ValueError(f"Parameter url='{url}' is not a valid URL")
# Set timestamp
- _set_data("nodeinfo_url", domain, url)
+ _set_pending_data("nodeinfo_url", domain, url)
logger.debug("EXIT!")
def set_detection_mode(domain: str, mode: str) -> None:
raise ValueError("Parameter 'mode' is empty")
# Set timestamp
- _set_data("detection_mode", domain, mode)
+ _set_pending_data("detection_mode", domain, mode)
logger.debug("EXIT!")
def set_has_obfuscation(domain: str, has_obfuscation: bool) -> None:
raise TypeError(f"Parameter has_obfuscation[]='{type(has_obfuscation)}' has not expected type 'bool'")
# Set timestamp
- _set_data("has_obfuscation", domain, has_obfuscation)
+ _set_pending_data("has_obfuscation", domain, has_obfuscation)
logger.debug("EXIT!")
def set_original_software(domain: str, software: str) -> None:
raise ValueError("Parameter 'software' is empty")
# Set original software
- _set_data("original_software", domain, software)
+ _set_pending_data("original_software", domain, software)
logger.debug("EXIT!")
def set_software(domain: str, software: str) -> None:
raise ValueError("Parameter 'software' is empty")
# Set software (maybe aliased to generic name)
- _set_data("software", domain, software)
+ _set_pending_data("software", domain, software)
logger.debug("EXIT!")
def valid(value: str, column: str) -> bool: