Browse Source

optionally store names taken from the configuration file to ease debugging

tags/1.0
Yves G 1 year ago
parent
commit
91b65d8e1e
3 changed files with 9 additions and 2 deletions
  1. 1
    0
      .gitignore
  2. 3
    0
      pyruse/base.py
  3. 5
    2
      pyruse/workflow.py

+ 1
- 0
.gitignore View File

@@ -0,0 +1 @@
**/__pycache__/

+ 3
- 0
pyruse/base.py View File

@@ -15,6 +15,9 @@ class Step(abc.ABC):
def setNextStep(self, obj):
self.nextStep = obj

def setStepName(self, name):
self.stepName = name

class Filter(Step):
def __init__(self):
super().__init__()

+ 5
- 2
pyruse/workflow.py View File

@@ -1,10 +1,11 @@
# pyruse is intended as a replacement to both fail2ban and epylog
# Copyright © 2017–2018 Y. Gablin
# Full licensing information in the LICENSE file, or gnu.org/licences/gpl-3.0.txt if the file is missing.
from pyruse import log, module
from pyruse import config, log, module

class Workflow:
def __init__(self, actions):
self._withDebug = config.Config().asMap().get("debug", False)
seen = {}
dangling = []
firstStep = None
@@ -28,11 +29,13 @@ class Workflow:
firstStep = None
isPreviousDangling = False
isThenCalled = False
for step in actions[label]:
for stepNum, step in enumerate(actions[label]):
if isThenCalled:
break
mod = module.get(step)
obj = mod.module
if self._withDebug:
obj.setStepName(label + '[' + str(stepNum) + ']')
if mod.thenRun:
(seen, dangling) = \
self._branchToChain(obj.setNextStep, mod.thenRun, actions, seen, dangling)

Loading…
Cancel
Save