From b94ed73e1717e47558acbc46416fee087a86762d Mon Sep 17 00:00:00 2001 From: Johannes Findeisen Date: Wed, 5 Jun 2013 07:26:53 +0200 Subject: [PATCH] renamed filters to tasks... members.py needs some fixes now. think it is a good style to manage post processing. --- lib/__init__.py | 2 +- lib/config/config.py | 6 ++-- lib/config/filters.py | 17 --------- lib/config/tasks.py | 16 +++++++++ lib/filters/email.py | 3 -- lib/{filters => tasks}/__init__.py | 0 lib/tasks/email.py | 3 ++ linspector.json | 56 +++++++++++++++++------------- 8 files changed, 55 insertions(+), 48 deletions(-) delete mode 100644 lib/config/filters.py create mode 100644 lib/config/tasks.py delete mode 100644 lib/filters/email.py rename lib/{filters => tasks}/__init__.py (100%) create mode 100644 lib/tasks/email.py diff --git a/lib/__init__.py b/lib/__init__.py index c14c0bd..758045d 100644 --- a/lib/__init__.py +++ b/lib/__init__.py @@ -1,5 +1,5 @@ from config import * from core import * -from filters import * +from tasks import * from parser import * from service import * \ No newline at end of file diff --git a/lib/config/config.py b/lib/config/config.py index 4ad862f..dfb91dc 100644 --- a/lib/config/config.py +++ b/lib/config/config.py @@ -1,5 +1,5 @@ import json -from filters import parseFilterList +from tasks import parseTaskList from members import parseMemberList from periods import parsePeriodList #from hostgroups import parseHostGroupList @@ -15,8 +15,8 @@ class Config: self.dict = json.loads(self.config) - self.filters = parseFilterList(self.dict['filters']) - self.members = parseMemberList(self.dict['members'], self.filters, log) + self.tasks = parseTaskList(self.dict['tasks']) + self.members = parseMemberList(self.dict['members'], self.tasks, log) self.periods = parsePeriodList(self.dict['periods'], log) #self.hostgroups = parseHostGroupList(self.dict['hostgroups'], # self.members, diff --git a/lib/config/filters.py b/lib/config/filters.py deleted file mode 100644 index 06fa5a2..0000000 --- a/lib/config/filters.py +++ /dev/null @@ -1,17 +0,0 @@ -class Filter: - def __init__(self, name="", command="", priority=0, comment=""): - self.name = name - self.command = command - self.priority = priority - self.comment = comment - - def __str__(self): - return "Filter('Name: " + self.name + "', 'Command: " + self.command + "', 'Priority: " + str( - self.priority) + "')" - - def clone(self): - return Filter(self.name, self.command, self.priority, self.comment) - - -def parseFilterList(filters): - return [Filter(name, **values) for name, values in filters.items()] \ No newline at end of file diff --git a/lib/config/tasks.py b/lib/config/tasks.py new file mode 100644 index 0000000..1907563 --- /dev/null +++ b/lib/config/tasks.py @@ -0,0 +1,16 @@ +class Task: + def __init__(self, name="", command="", priority=0, comment=""): + self.name = name + self.command = command + self.priority = priority + self.comment = comment + + def __str__(self): + return "Task('Name: " + self.name + "', 'Command: " + self.command + "', 'Priority: " + str(self.priority) + "')" + + def clone(self): + return Task(self.name, self.command, self.priority, self.comment) + + +def parseTaskList(tasks): + return [Task(name, **values) for name, values in tasks.items()] \ No newline at end of file diff --git a/lib/filters/email.py b/lib/filters/email.py deleted file mode 100644 index a625f1a..0000000 --- a/lib/filters/email.py +++ /dev/null @@ -1,3 +0,0 @@ -""" -The email filter in pure Python. -""" \ No newline at end of file diff --git a/lib/filters/__init__.py b/lib/tasks/__init__.py similarity index 100% rename from lib/filters/__init__.py rename to lib/tasks/__init__.py diff --git a/lib/tasks/email.py b/lib/tasks/email.py new file mode 100644 index 0000000..d38e620 --- /dev/null +++ b/lib/tasks/email.py @@ -0,0 +1,3 @@ +""" +The email task. +""" \ No newline at end of file diff --git a/linspector.json b/linspector.json index 2031f78..2f1d877 100644 --- a/linspector.json +++ b/linspector.json @@ -1,42 +1,50 @@ { - "filters":{ + "tasks":{ "email":{ - "command":"email @member @+message", - "comment":"Sends an E-Mail to the member.", - "priority":1 + "command": "email @member @+message", + "comment": "Sends an E-Mail to a member.", + "priority": 2 + }, + "sms":{ + "command": "sms @member @+message", + "comment": "Sends a SMS to a member.", + "priority": 1 + }, + "mongodb":{ + "command": "mongodb @host @user @password @+rawdata", + "comment": "Stores the rawdata in a MongoDB database.", + "priority": 1000 } }, "members":{ "hanez":{ - "name":"Johannes Findeisen", - "comment":"Just a nerd doing admin stuff...", + "name": "Johannes Findeisen", + "comment": "Just a nerd doing admin stuff.", "parent": "darth", - "filters":{ "email":"you@hanez.org" } + "tasks":[{ "class": "email", "args": { "rcpt": "you@hanez.org" }}, + { "class": "sms","args": { "rcpt": "+49110"}}] }, "darth":{ - "name":"Darth Vader", - "comment":"The father", - "filters":{ "email":"darth.vader@hanez.org" } + "name": "Darth Vader", + "comment": "The father", + "tasks":{ "class": "email", "args": { "rcpt": "darth.vader@hanez.org" }} + }, + "mongodb":{ + "name": "MongoDB", + "comment": "The writer to a MongoDB", + "tasks":{ "class": "mongodb", "args": { "host": "localhost", "user": "root", "password": "root" }} } }, "periods":{ - "short":{ - "seconds":5, - "comment":"Interval job; every 10 seconds" - }, - "middle":{ - "seconds":60, - "comment":"Interval job; every 60 seconds" - }, - "long":{ - "minutes":2, - "comment":"Interval job; every 2 minutes" - } + "short":{ "seconds": 5, "comment": "Interval job; every 10 seconds" }, + "middle":{ "seconds": 60,"comment": "Interval job; every 60 seconds" }, + "long":{ "minutes": 2,"comment": "Interval job; every 2 minutes" }, + "christmas2013":{ "date": "2013-12-24 20:00:00", "comment": "Date Job; just one day at 8PM" } }, "hostgroups":{ "group1":{ - "members":[ "hanez" ], - "hosts":[ "a.systemchaos.org", "b.systemchaos.org" ], + "members": [ "hanez", "mongodb" ], + "hosts": [ "a.systemchaos.org", "b.systemchaos.org" ], "parents": [ "network" ], "services":[ {