renamed filters to tasks... members.py needs some fixes now. think it is a good style to manage post processing.
This commit is contained in:
parent
533cf02c10
commit
851069cc2a
8 changed files with 55 additions and 48 deletions
|
|
@ -1,5 +1,5 @@
|
|||
from config import *
|
||||
from core import *
|
||||
from filters import *
|
||||
from tasks import *
|
||||
from parser import *
|
||||
from service import *
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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()]
|
||||
16
lib/config/tasks.py
Normal file
16
lib/config/tasks.py
Normal file
|
|
@ -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()]
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
"""
|
||||
The email filter in pure Python.
|
||||
"""
|
||||
3
lib/tasks/email.py
Normal file
3
lib/tasks/email.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"""
|
||||
The email task.
|
||||
"""
|
||||
|
|
@ -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":[
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue