diff --git a/__init__.py b/__init__.py index 4230117..e69de29 100644 --- a/__init__.py +++ b/__init__.py @@ -1 +0,0 @@ -from lib import * diff --git a/lib/__init__.py b/lib/__init__.py index 7301f66..e69de29 100644 --- a/lib/__init__.py +++ b/lib/__init__.py @@ -1,6 +0,0 @@ -from config import * -from core import * -from tasks import * -from parsers import * -from processors import * -from services import * \ No newline at end of file diff --git a/lib/config/members.py b/lib/config/members.py index 1491e78..f028c96 100644 --- a/lib/config/members.py +++ b/lib/config/members.py @@ -2,14 +2,12 @@ import re class Member: - def __init__(self, nameid, name="", phone="", comment="", parent="", tasks=None): - self.id = nameid + def __init__(self, id, name="", comment="", tasks=None): + self.id = id self.name = name - self.phone = phone self.tasks = [] self.add_task(tasks) self.comment = comment - self.parent = parent def get_id(self): return self.id diff --git a/lib/core/job.py b/lib/core/job.py index 80ea35a..202a445 100644 --- a/lib/core/job.py +++ b/lib/core/job.py @@ -32,6 +32,7 @@ class JobInfo: self.log.d("handle call") self.log.d(self.service) try: + self.service._execute() except Exception, e: self.log.d(e) \ No newline at end of file diff --git a/lib/tasks/task.py b/lib/tasks/task.py index a81597e..b4c7db8 100644 --- a/lib/tasks/task.py +++ b/lib/tasks/task.py @@ -7,48 +7,15 @@ class Task: """ Base class for all built-in Tasks. """ - + def set_task_type(self, taskType): - """ - sets the type of this task. - - Be aware! this method can only get called once! - - :param taskType: the type of this task - """ - if hasattr(self, "_taskType"): - raise Exception("taskType is only allowed to set once!") - self.taskType = taskType - + self._taskType = taskType + def get_task_type(self): """ :return: the type set by set_type_task """ return self._taskType - - def execute_task(self, msg): - """ - this is the method tasks usually override. - It gets called anytime the task should get executed - - default does nothing - - :param msg: the msg for this task - """ - pass - - def _execute(self, taskType, msg): - """ - internal method which gets called for any member in a hostgroup. - It determines if it has an appropriate type by comparing taskType with get_task_type(). - Calls execute_task() if the type matches - - :param taskType: the type of the fail which is compared with get_task_type() - :param msg: the error message - - :return: True if execute_task() is called succesfully, else False - """ - if self.get_task_type() == taskType: - self.execute_task(msg) - return True - return False \ No newline at end of file + + def some_other_irrelevant_methods(self): + pass \ No newline at end of file diff --git a/linspector b/linspector index 4ac2e78..2980569 100755 --- a/linspector +++ b/linspector @@ -90,7 +90,6 @@ def main(): jobInfo.set_job(job) jobInfo.set_logger(log) jobs.append(jobInfo) - application = tornado.web.Application([ (r"/", MainHandler), (r"/jobs", JoblistHandler, dict(jobs=scheduler.get_jobs())) diff --git a/minimal.json b/minimal.json index 9df0aa6..9099341 100644 --- a/minimal.json +++ b/minimal.json @@ -3,8 +3,10 @@ "homer":{ "name": "Homer Simpson", "comment": "Security Inspector", - "tasks": [{"class":"email", "type": "donut", "args": {"rcpt": "homer_j_simpson@burnscorp.sp"}}, - {"class":"email", "type": "donut", "args": {"rcpt": "homer_j_simpson@burnscorp.sp"}}] + "tasks": [ + {"class":"email", "type": "donut", "args": {"rcpt": "homer_j_simpson@burnscorp.sp"}}, + {"class":"email", "type": "do", "args": {"rcpt": "homer_j_simpson@burnscorp.sp"}} + ] } }, "periods": { diff --git a/test/__init__.py b/test/__init__.py index f399501..e69de29 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -1 +0,0 @@ -__author__ = 'rafael' diff --git a/test/lib/__init__.py b/test/lib/__init__.py deleted file mode 100644 index f399501..0000000 --- a/test/lib/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__author__ = 'rafael' diff --git a/test/lib/dummy.py b/test/lib/dummy.py deleted file mode 100644 index 75fc3aa..0000000 --- a/test/lib/dummy.py +++ /dev/null @@ -1,9 +0,0 @@ -__author__ = 'rafael' - - -class Dummy(object): - def __init__(self, **kwargs): - self.args = kwargs - -def create(args): - return Dummy(**args) diff --git a/test/parsertest.py b/test/parsertest.py deleted file mode 100755 index 8a2b226..0000000 --- a/test/parsertest.py +++ /dev/null @@ -1,93 +0,0 @@ -import json -import imp -import os.path as path - -class DummyParent(object): - def __init__(self, name=None, argsToReplace=None): - self.name = name - self.argsToReplace = argsToReplace - - def get_args_to_replace(self): - return self.argsToReplace - - -def _create_raw_Object(jsonDict, msgName, creator): - """ - creates an Main object from the configuration, but just parses raw data and hands it to the object - - :param jsonDict: the configuration file part as dict - :param msgName: name of object for error message - :param creator: function pointer which is taking two arguments: identifier of the object and arguments. - :should return an object - :return: a list of objects returned by creator - """ - items = [] - for key, val in jsonDict.items(): - try: - item = creator(key, val) - items.append(item) - except Exception, e: - print "ignoring " + msgName + ": " + key + "! reason:" - print e - return items - - -def replace_with_import(objList, items_func): - """ - replaces configuration dicts with their objects by importing and creating it in the first step. - In the second step the original list of json config dicts gets replaced by the loaded objects - - :param objList: the list of objects which is iterated on - :param modPart: the folder from the module (i.e tasks, parsers) - :param items_func: function to get a pointer on the list of json-config-objects to replace. Takes one argument and - should return a list of - :param class_check: currently unsupported - """ - for obj in objList: - repl = [] - items = items_func(obj) - for clazzItem in items: - try: - - clazz = clazzItem["class"] - p = path.join("lib", clazz + ".py") - mod = imp.load_source(clazz, p) - item = mod.create(clazzItem) - repl.append(item) - except ImportError, err: - print "could not import " + clazz + ": " + str(clazzItem) + "! reason" - print str(err) - except KeyError, k: - print "Key " + str(k) + " not in classItem " + str(clazzItem) - except Exception, e: - print "Error while replacing class ( " + clazz + " ):" + str(e) - - del items[:] - items.extend(repl) - -jsonFile = ''' -{ - "tests": { - "someDummy": { - "argsToReplace": - [ - {"class": "dummy", "args": {"someargs":"ok"}}, - {"class": "dummy", "args": {"someargs":"blah"}} - ] - } - } -} -''' - -jsonDict = json.loads(jsonFile) - - -creator = lambda name, values: DummyParent(name, **values) -dummys = _create_raw_Object(jsonDict["tests"], "DummyParent", creator) - -items_func = lambda dummy: dummy.get_args_to_replace() -replace_with_import(dummys, items_func) - -for d in dummys: - print d.__dict__ -