optionally store names taken from the configuration file to ease debugging

master
Yves G 2018-01-31 12:58:26 +01:00
parent f58781adad
commit 91b65d8e1e
3 changed files with 9 additions and 2 deletions

1
.gitignore vendored Normal file
View File

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

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__()

View File

@ -1,10 +1,11 @@
# pyruse is intended as a replacement to both fail2ban and epylog
# Copyright © 20172018 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)