fixed key-lookup in periods, slightly changed minimal.json

This commit is contained in:
Rafael.Timmerberg 2013-12-30 02:54:27 +01:00
commit e052708205
2 changed files with 34 additions and 8 deletions

View file

@ -2,26 +2,44 @@
"members":{
"root":{
"_name": "root",
"parent": "admin",
"tasks": [
{
"class": "storage/logger",
"type": [ "ok", "warning", "error" ],
"type": [ "ok" ],
"args": { "directory": "/tmp/", "file": "data.log" }
}
]
},
"admin":{
"_name": "admin",
"tasks": [
{
"class": "alert/mail",
"type": [ "ok", "warning", "error" ],
"args": { "host": "localhost",
"port": 25,
"sender": "linspector@linspector.org",
"username": "",
"password": "",
"rcpt": "hanez@linspector.org"
}
}
]
}
},
"periods": {
"fast": { "seconds": 15 },
"medium": { "seconds": 120 },
"slow": { "seconds": 480 }
"medium": { "seconds": 60 },
"slow": { "seconds": 480 },
"now": {"date": "2013-12-29 00:09:00"}
},
"hostgroups":{
"a":{
"members": ["root"],
"hosts": [ "a"],
"hosts": [ "151.217.0.0/16"],
"services":[
{ "class": "etc/dummy", "args": { "sleep": 1, "fail": true }, "periods": ["fast"], "threshold": 1 }
{ "class": "net/tcpconnect", "args":{ "port": 80 }, "periods": ["now"], "threshold": 1 }
]
}
},

View file

@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from logging import getLogger
from apscheduler.util import convert_to_datetime
logger = getLogger(__name__)
@ -48,7 +49,7 @@ class IntervalPeriod(Period):
def createJob(self, scheduler, jobInfo, func, **kwargs):
start_date = self.start_date
if kwargs["start_date"]:
if "start_date" in kwargs:
start_date = kwargs["start_date"]
return scheduler.add_interval_job(func, weeks=self.weeks, hours=self.hours, minutes=self.minutes,
@ -80,7 +81,8 @@ class CronPeriod(Period):
def createJob(self, scheduler, jobInfo, func, **kwargs):
start_date = self.start_date
if kwargs["start_date"]:
if "start_date" in kwargs:
start_date = kwargs["start_date"]
return scheduler.add_cron_job(func, year=self.year, month=self.month, day=self.day, week=self.week,
@ -100,6 +102,12 @@ class DatePeriod(Period):
def createJob(self, scheduler, jobInfo, func, **kwargs):
try:
if "start_date" in kwargs:
earliest = kwargs["start_date"]
date = convert_to_datetime(self.date)
if date < earliest:
self.date = earliest
return scheduler.add_date_job(func=func, date=self.date, args=[jobInfo])
except Exception, e:
return None
logger.error("exception while creating job out of DatePeriod!\n%s" % e)