From 71f27e27e0d9c4e833c9db730419ad042bd27fd4 Mon Sep 17 00:00:00 2001 From: Lyncoln Date: Wed, 28 Oct 2026 16:45:54 -0400 Subject: [PATCH] Housekeeping and migrated prints to logging --- core/apirequest/execute.py | 45 ++++----------------------------- core/execution/action/action.py | 1 - core/execution/monitor.py | 5 +++- core/runtime/applyconditions.py | 11 -------- core/runtime/firewall.py | 18 ++++++++----- core/runtime/savedata.py | 27 ++++++++++---------- core/server/server.py | 10 +++----- 7 files changed, 38 insertions(+), 79 deletions(-) diff --git a/core/apirequest/execute.py b/core/apirequest/execute.py index a5d0e2e..a2bc014 100644 --- a/core/apirequest/execute.py +++ b/core/apirequest/execute.py @@ -2,6 +2,8 @@ import requests import threading import os import time +import logging + from .request import buildRequest #session = requests.Session() @@ -48,48 +50,11 @@ def executeRequest(action, outputs, resolved): return response, outputs except (requests.Timeout, requests.ConnectionError) as error: - print(f"{type(error).__name__} during {action.name}: {error}") + #print(f"{type(error).__name__} during {action.name}: {error}") + logging.warning(f"{type(error).__name__} during {action.name}: {error}") session = getSession(reset=True) if attempt == 0: - print(f"Retrying {action.name}") + logging.warning(f"Retrying {action.name}") return None, outputs - -# try: -# request, outputs = buildRequest(action, outputs, resolved) -# -# response = session.request( -# method=request["method"], -# url=request["path"], -# json=request.get("object"), -# headers=request.get("headers"), -# data=request.get("data"), -# files=request.get("files"), -# timeout=(10, 30) -# ) -# -# except requests.ConnectionError as error: -# print(f"Request failed due to {error} during {action.name}") -# -# session = getSession(reset=True) -# -# print(f"Retrying {action.name}") -# -# response = session.request( -# method=request["method"], -# url=request["path"], -# json=request.get("object"), -# headers=request.get("headers"), -# data=request.get("data"), -# files=request.get("files"), -# timeout=(10, 30) -# ) -# -# return response, outputs -# -# except requests.Timeout as error: -# print(f"Request timed out during {action.name}: {error}") -# session = getSession(reset=True) -# -# return response, outputs diff --git a/core/execution/action/action.py b/core/execution/action/action.py index f08828e..d7cb350 100644 --- a/core/execution/action/action.py +++ b/core/execution/action/action.py @@ -22,7 +22,6 @@ def buildAction (action, outputs, process): if response is None: return outputs, None - #outputs["processes"][process.name][action.name]["response"] = response outputs, response = buildRuntimeAttr(action, outputs, resolved, response, process) if action_log: diff --git a/core/execution/monitor.py b/core/execution/monitor.py index 61bd435..6149920 100644 --- a/core/execution/monitor.py +++ b/core/execution/monitor.py @@ -1,3 +1,5 @@ +import logging + #from core.execution.executioncontract import executeContract from core.execution.action import buildAction from core.execution.operation import buildOperation @@ -25,9 +27,10 @@ def buildMonitor(monitor, outputs): match, filter = applyConditions(monitor, readitems, outputs) - outputs = buildOutput(response, monitor, outputs) + buildOutput(response, monitor, outputs) if match: + logging.info(filter.get("print")) module = filter["execute"] if module.kind == "action": diff --git a/core/runtime/applyconditions.py b/core/runtime/applyconditions.py index da1bbe5..6156a90 100644 --- a/core/runtime/applyconditions.py +++ b/core/runtime/applyconditions.py @@ -21,54 +21,43 @@ def applyConditions(definition, dictionary, outputs): if filter["operator"] == ">=": if int(resolvedvalue or 0) >= int(filtervalue): - print(filter["print"]) return True, filter if filter["operator"] == "<=": if int(resolvedvalue or 0) <= int(filtervalue): - print(filter["print"]) return True, filter if filter["operator"] == "==": if resolvedvalue == filtervalue: - print(filter["print"]) return True, filter if filter["operator"] == "!=": if resolvedvalue != filtervalue: - print(filter["print"]) return True, filter if filter["operator"] == ">": if int(resolvedvalue or 0) > int(filtervalue): - print(filter["print"]) return True, filter if filter["operator"] == "<": if int(resolvedvalue or 0) < int(filtervalue): - print(filter["print"]) return True, filter if filter["operator"] == "in": if filtervalue in dictionary: - print(filter["print"]) return True, filter if filter["operator"] == "is": if resolvedvalue is filtervalue: - print(filter["print"]) return True, filter if filter["operator"] == "is not": if resolvedvalue is not filtervalue: - print(filter["print"]) return True, filter except KeyError: print(f"Value not present in runtime for filtering during {definition.name}") - #print(filter) return True, filter - #continue #except TypeError: # print("TypeError") diff --git a/core/runtime/firewall.py b/core/runtime/firewall.py index 7758109..aadecd9 100644 --- a/core/runtime/firewall.py +++ b/core/runtime/firewall.py @@ -1,9 +1,11 @@ import os +import logging from core.runtime.applyconditions import applyConditions def buildFirewall(listener, outputs): - firewall_log = os.environ.get("LOGS_FIREWALL", "false").lower() == "true" + #firewall_log = os.environ.get("LOGS_FIREWALL", "false").lower() == "true" + firewall_log = True status_code = 200 outputs["firewall_allowed"] = [] @@ -13,20 +15,24 @@ def buildFirewall(listener, outputs): if match: status_code = filter.get("status_code", 200) + if firewall_log: + logging.info(filter.get("print")) + logging.info(f"Returning status_code: {status_code}") continue #This needs to be moved into definitions but until logic is put in place it lives here. if "com.loxthelion.rmass_message_id" in item.get("content", {}): status_code = 200 - print("Excluding previously imported items") - print(f"Returning status_code: {status_code}") + if firewall_log: + logging.info("Excluding previously imported items") + logging.info(f"Returning status_code: {status_code}") continue outputs["firewall_allowed"].append(item) - if outputs["firewall_allowed"]: - return True, outputs, status_code + if outputs["firewall_allowed"] != []: + return True, status_code #Needs to be present to prevent TypeError - return False, outputs, status_code \ No newline at end of file + return False, status_code \ No newline at end of file diff --git a/core/runtime/savedata.py b/core/runtime/savedata.py index e3f7df1..1fef481 100644 --- a/core/runtime/savedata.py +++ b/core/runtime/savedata.py @@ -1,5 +1,6 @@ import json import os +import logging def buildSave(action, outputs): savedata_log = os.environ.get("LOGS_SAVE_DATA_ACCESS", "false").lower() == "true" @@ -39,7 +40,7 @@ def buildSave(action, outputs): pass if savedata_log: - print(f"Data saved by {action.name} to {action.savepath}") + logging.info(f"Data saved by {action.name} to {action.savepath}") return outputs def loadSave(action, outputs): @@ -53,7 +54,7 @@ def loadSave(action, outputs): outputs[load_name] = load_data[load_name] if savedata_log: - print(f"Data loaded by {action.name} from {action.savepath}") + logging.info(f"Data loaded by {action.name} from {action.savepath}") return outputs def saveRow(action, outputs, resolved): @@ -87,8 +88,8 @@ def saveRow(action, outputs, resolved): elif "resolved" in item: value = resolved[item["resolved"]] except KeyError as error: - print(f"The save data for {error} was not located in its respective dictionary during {action.name}") - print("Bypassing database save") + logging.error(f"The save data for {error} was not located in its respective dictionary during {action.name}") + logging.error("Bypassing database save") return False values.append(value) @@ -137,7 +138,7 @@ def saveRow(action, outputs, resolved): database.execute(query, tuple(values)) except sqlite3.IntegrityError as error: - print(f"Unable to complete database write during {action.name}: {error}") + logging.error(f"Unable to complete database write during {action.name}: {error}") return False #database.execute( @@ -148,7 +149,7 @@ def saveRow(action, outputs, resolved): #database.commit() #database.close() - print(f"Successfully saved data to {table} during {action.name}") + logging.info(f"Successfully saved data to {table} during {action.name}") return True @@ -206,8 +207,8 @@ def readRow(action, resolved, outputs): """, (value,) ) - #print("DEBUG READROW TARGET ITEM") - #print(value) + logging.debug("DEBUG READROW TARGET ITEM") + logging.debug(value) result = cursor.fetchone() @@ -216,15 +217,13 @@ def readRow(action, resolved, outputs): for column_index, output_name in exports.items(): dbtarget = result[column_index] outputs[output_name] = dbtarget# result[column_index] - #print("DEBUGGING DATABASE LINE EXTRACTION IN READROW") - #print(outputs[output_name]) - #print(dbtarget) + logging.debug("DEBUGGING DATABASE LINE EXTRACTION IN READROW") + logging.debug(outputs[output_name]) + logging.debug(dbtarget) return resolved, outputs else: - print(f"Search target {value} not found in database table {table}") + logging.info(f"Search target {value} not found in database table {table}") return resolved, outputs - #print("READROW SEARCH RESULT") - #print(target) return resolved, outputs \ No newline at end of file diff --git a/core/server/server.py b/core/server/server.py index b470a12..bfdda28 100644 --- a/core/server/server.py +++ b/core/server/server.py @@ -1,16 +1,14 @@ import os import json +import logging + from http.server import HTTPServer, BaseHTTPRequestHandler from .dispatcher import dispatchRequest from .createresponse import buildResponse -from core.runtime.outputs import buildOutput -from core.runtime.resolver import resolveItem from plugins.rmass.listeners import synapselistener -from plugins.rmass.operations import rmassmessagepush -from core.execution.action import buildAction from core.server.createlistener import buildListener -from plugins.rmass.actions import pingsynapse +#from plugins.rmass.actions import pingsynapse port = int(os.environ.get("SERVER_PORT", 19001)) @@ -104,7 +102,7 @@ class RequestHandler(BaseHTTPRequestHandler): def startServer(): server = HTTPServer(("0.0.0.0", port), RequestHandler) - print(f"Server listening on port {port}") + logging.info(f"Server listening on port {port}") #outputs = {} #outputs, response = buildAction(pingsynapse, outputs)