From fb2ca018063dc6d0a1497f490e6c366c69d8dfec Mon Sep 17 00:00:00 2001 From: Lyncoln Date: Mon, 26 Oct 2026 18:04:22 -0400 Subject: [PATCH] Added stopsignal module with checkDependency and addStopSignal definitions --- core/execution/action/action.py | 3 +-- core/execution/operation/operation.py | 17 +++++-------- core/execution/recursive.py | 20 +++++++--------- core/runtime/firewall.py | 0 core/runtime/runtimecontract.py | 14 +++++++---- core/runtime/stopsignals.py | 17 +++++++++++++ plugins/rmass/actions/rmassmessagepush.py | 1 + plugins/rmass/actions/synapsegetattachment.py | 1 + .../rmass/actions/synapsegetlastmessage.py | 24 +++++++++---------- plugins/rmass/operations/rmassmessagepush.py | 8 +------ tokens.json | 1 + 11 files changed, 58 insertions(+), 48 deletions(-) create mode 100644 core/runtime/firewall.py create mode 100644 core/runtime/stopsignals.py create mode 100644 tokens.json diff --git a/core/execution/action/action.py b/core/execution/action/action.py index 12d6130..d336b34 100644 --- a/core/execution/action/action.py +++ b/core/execution/action/action.py @@ -1,5 +1,6 @@ from core.apirequest import executeRequest from core.runtime.runtimecontract import buildRuntimeAttr, buildPreRuntimeAttr +from core.runtime.stopsignals import addStopSignal def buildAction (action, outputs): @@ -11,8 +12,6 @@ def buildAction (action, outputs): return outputs, None if match: - if hasattr(action, "depends"): - outputs["stopsignals"].append(action.alias) return outputs, None response, outputs = executeRequest(action, outputs, resolved) diff --git a/core/execution/operation/operation.py b/core/execution/operation/operation.py index 23fe6bf..c4f60f6 100644 --- a/core/execution/operation/operation.py +++ b/core/execution/operation/operation.py @@ -1,6 +1,7 @@ import logging from core.runtime.managefailure import manageFailure from core.execution.action.action import buildAction +from core.runtime.stopsignals import checkDependency #from core.runtime.skipstep import skipStep #from core.runtime.recursive import recursiveSet @@ -11,19 +12,13 @@ def buildOperation(definition, outputs): responses = [] outputs["stopsignals"] = [] for action in actions: - if hasattr(action, "depends"): - stop =any( - dependency in outputs["stopsignals"] - for dependency in action.depends - ) + stop = checkDependency(action, outputs) - #print(f"STOP SIGNAL DEBUGGING during {action.name}") - #print(outputs["stopsignals"]) - #stop = True - #break + #print(f"STOP SIGNAL DEBUGGING during {action.name}") + #print(outputs["stopsignals"]) - if stop: - continue + if stop: + continue outputs, response = executeContract(action, outputs) diff --git a/core/execution/recursive.py b/core/execution/recursive.py index 42a7fc6..bd815f8 100644 --- a/core/execution/recursive.py +++ b/core/execution/recursive.py @@ -2,6 +2,7 @@ from core.execution import action from core.execution.action.action import buildAction from core.runtime.runtimecontract import buildPreRuntimeAttr, buildRuntimeAttr from core.apirequest import executeRequest +from core.runtime.stopsignals import checkDependency def buildRecursive(definition, outputs): responses = [] @@ -29,19 +30,16 @@ def buildRecursive(definition, outputs): outputs["stopsignals"] = [] for job in recursiveset: - if hasattr(job, "depends"): - stop =any( - dependency in outputs["stopsignals"] - for dependency in job.depends - ) + stop = checkDependency(job, outputs) - #print(f"STOP SIGNAL DEBUGGING during {job.name}") - #print(outputs["stopsignals"]) + #print(f"STOP SIGNAL DEBUGGING during {job.name}") + #print(outputs["stopsignals"]) + #print(stop) - if stop: - #print("STOP SIGNAL DETECTED") - #print(f"Stopping {job.name} due to stop signal") - continue + if stop: + #print("STOP SIGNAL DETECTED") + #print(f"Stopping {job.name} due to stop signal") + continue #print(f"RECURSIVE DEBUG DURING {job.name}") #print(item) diff --git a/core/runtime/firewall.py b/core/runtime/firewall.py new file mode 100644 index 0000000..e69de29 diff --git a/core/runtime/runtimecontract.py b/core/runtime/runtimecontract.py index 9aa133e..4941d86 100644 --- a/core/runtime/runtimecontract.py +++ b/core/runtime/runtimecontract.py @@ -1,9 +1,11 @@ +from core.execution.action import action from core.runtime import buildSelect, buildOutput, buildSave, loadSave, saveRow, readRow, buildLog from core.runtime.image import buildImage #from core.runtime.select import buildSelect3 from core.runtime.resolver import resolveItem, extractItem from core.runtime.applyconditions import applyConditions from core.runtime.responsepolicy import responsePolicy +from core.runtime.stopsignals import addStopSignal def buildPreRuntimeAttr(action, outputs): outputs = loadSave(action, outputs) @@ -13,6 +15,9 @@ def buildPreRuntimeAttr(action, outputs): resolved, outputs = readRow(action, resolved, outputs) match, filter = applyConditions(action, resolved, outputs) + + if match: + outputs = addStopSignal(action, outputs) return outputs, resolved, match, filter @@ -20,13 +25,12 @@ def buildPreRuntimeAttr(action, outputs): def buildRuntimeAttr(action, outputs, resolved, response): outputs, resolved = responsePolicy(response, action, outputs, resolved) - if not response.ok: - if hasattr(action, "depends"): - outputs["stopsignals"].append(action.alias) - return outputs, response - outputs = buildOutput(response, action, outputs) + if not response.ok: + outputs = addStopSignal(action, outputs) + return outputs, response + resolved = extractItem(action, outputs, resolved) outputs = buildImage(response, action, outputs) diff --git a/core/runtime/stopsignals.py b/core/runtime/stopsignals.py new file mode 100644 index 0000000..00aea40 --- /dev/null +++ b/core/runtime/stopsignals.py @@ -0,0 +1,17 @@ +def checkDependency(action, outputs): + if hasattr(action, "depends"): + stop = any( + dependency in outputs["stopsignals"] + for dependency in action.depends + ) + + if stop: + return True + + return False + +def addStopSignal(action, outputs): + if hasattr(action, "depends"): + outputs["stopsignals"].append(action.alias) + + return outputs \ No newline at end of file diff --git a/plugins/rmass/actions/rmassmessagepush.py b/plugins/rmass/actions/rmassmessagepush.py index d2ee508..3d90226 100644 --- a/plugins/rmass/actions/rmassmessagepush.py +++ b/plugins/rmass/actions/rmassmessagepush.py @@ -8,6 +8,7 @@ alias = "rmassmessagepush" depends = [ "synapsegetroomalias", + "synapsegetlastmessage", ] kind = "action" diff --git a/plugins/rmass/actions/synapsegetattachment.py b/plugins/rmass/actions/synapsegetattachment.py index d5704d4..33af3ec 100644 --- a/plugins/rmass/actions/synapsegetattachment.py +++ b/plugins/rmass/actions/synapsegetattachment.py @@ -8,6 +8,7 @@ alias = "synapsegetattachment" depends = [ "synapsegetroomalias", + "synapsegetlastmessage", ] ## PRE-RUNTIME ACTIONS diff --git a/plugins/rmass/actions/synapsegetlastmessage.py b/plugins/rmass/actions/synapsegetlastmessage.py index b571eee..7d624fa 100644 --- a/plugins/rmass/actions/synapsegetlastmessage.py +++ b/plugins/rmass/actions/synapsegetlastmessage.py @@ -47,18 +47,18 @@ outputs = { } filters = [ - { - "filterkey": "rmass_sent_status", - "operator": "==", - "filtervalue": "fail", - "print": f"Failed to send message to RMASS. Bypassing save during {name}...", - }, - { - "filterkey": "rmass_sent_status", - "operator": "==", - "filtervalue": "error", - "print": f"Failed to send message to RMASS. Bypassing save during {name}...", - }, +# { +# "filterkey": "rmass_sent_status", +# "operator": "==", +# "filtervalue": "fail", +# "print": f"Failed to send message to RMASS. Bypassing {name}...", +# }, +# { +# "filterkey": "rmass_sent_status", +# "operator": "==", +# "filtervalue": "error", +# "print": f"Failed to send message to RMASS. Bypassing {name}...", +# }, { "filterkey": "event_id", "operator": "==", diff --git a/plugins/rmass/operations/rmassmessagepush.py b/plugins/rmass/operations/rmassmessagepush.py index 26faab8..d144683 100644 --- a/plugins/rmass/operations/rmassmessagepush.py +++ b/plugins/rmass/operations/rmassmessagepush.py @@ -11,15 +11,9 @@ recursiveset = { "outputlabel": "outmessageitem", "actions": [ synapsegetroomalias, - rmassmessagepush, synapsegetlastmessage, - #synapsegetattachment, - #getrmassattachmenturl, - #synapseattachmenttormass, - #getrmassattachmentid, - #rmassattachmentpush, + rmassmessagepush, rmassattachmentpushflow, - #synapsegetlastmessage, savermassmessageid, ], } diff --git a/tokens.json b/tokens.json new file mode 100644 index 0000000..4244dcd --- /dev/null +++ b/tokens.json @@ -0,0 +1 @@ +{"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTMwNTE5ODUsIm5iZiI6MTc5MzA1MTgwNSwic3ViIjoiMjM4MzAyIiwidXNlcm5hbWUiOiJYeHhvdGlxIiwidXNlclR5cGUiOjEsInN0YWdlTmFtZSI6Ilh4eG90aXEiLCJhcHByb3ZlZCI6MSwibG9jYXRpb25JZCI6NDcyLCJzZWFyY2hDaXR5IjoiYXRsYW50YSIsImNvdW50cnlTaG9ydCI6IlVTIiwic2Vzc2lvbkNvdW50cnlDb250aW5lbnQiOiJOQSIsImlzRnJvemVuIjowLCJsb2NhdGlvbkxhYmVsIjoiQXRsYW50YSwgR0EiLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MzA1MTg2NX0.pMPPsvgYfsRhTj7NJFc0hj3N-8gP1Th3oX9NQce9e2-NJw7ANxFv-7sdmeDE71_B71He7cych-kW5RFuJpc2ZA", "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3OTU2NDM4NjUsIm5iZiI6MTc5MzA1MTgwNSwianRpIjoiU1BJbnZpSXBmTE5WY1NVQ1ZOQ0VvRUdGUWEwOVIrN3dKOHJuNGZqYU5ZMD0iLCJpc3MiOiJodHRwczovL3JlbnRtYXNzZXVyLmNvbSIsImlhdCI6MTc5MzA1MTg2NSwic3ViIjoiMjM4MzAyIn0.2N1mzB9BYKgd5tMK10ZuBxW0zqNDDmhN8JtVoQAoeKHcm9JtNzdRa4LfsNPiJ1MOzkXBkTBuktmUI8AiDq78YQ"} \ No newline at end of file