Skip to content

Instantly share code, notes, and snippets.

@brent-hoover
Last active August 29, 2015 14:05
Show Gist options
  • Select an option

  • Save brent-hoover/bdd641a4ab86e8713dc8 to your computer and use it in GitHub Desktop.

Select an option

Save brent-hoover/bdd641a4ab86e8713dc8 to your computer and use it in GitHub Desktop.
Base Cron Object
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from optparse import OptionParser
import logging
from cron.utils.nagios import nagios_success, nagios_failure, nagios_warning
from reservation.provider.base import BaseProvider
shandler = logging.StreamHandler()
logger = logging.getLogger(__name__)
logger.addHandler(shandler)
dated_formatter = logging.Formatter('%(asctime)s - %(filename)s: %(funcName)s %(message)s')
shandler.setFormatter(dated_formatter)
logger.setLevel(logging.INFO)
class PeriodicUpdateJob(object):
identifer = 'ProviderUpdateJob'
@staticmethod
def run(cmd=None, args=None, opts=None):
for provider in BaseProvider.__subclasses__():
logger.info('running provider: %s' % provider)
provider.fetch_rates(num_days_out=31)
if opts.nagios_host:
nagios_success(opts.nagios_host, cls.identifier, 'SUCCESS')
if __name__ == '__main__':
parser = OptionParser()
parser.add_option("-n", "--nagios-host", dest="nagios_host",
default=None, help="the name of the nagios nsca host")
(options, args) = parser.parse_args()
if len(args):
cmd = args.pop(0)
else:
cmd = ''
job = PeriodicUpdateJob()
job.run(cmd, args, options)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment