blob: 39c281bc0b58a60a88609311098403baa0bd1ec8 [file] [log] [blame]
Matt Harte7bddc02015-07-08 18:05:08 +01001import logging
2import json
3from logging.handlers import WatchedFileHandler
4
5
Matt Hartfe042212015-07-09 14:13:29 +01006def get_daemon_logger(filepath, log_format=None, loglevel=logging.INFO):
Matt Harte7bddc02015-07-08 18:05:08 +01007 logger = logging.getLogger()
8 logger.setLevel(loglevel)
9 try:
Matt Hartfe042212015-07-09 14:13:29 +010010 watchedhandler = WatchedFileHandler(filepath)
11 except Exception as e: # pylint: disable=broad-except
Matt Harte7bddc02015-07-08 18:05:08 +010012 return e
13
Matt Hartfe042212015-07-09 14:13:29 +010014 watchedhandler.setFormatter(logging.Formatter(log_format
15 or '%(asctime)s %(msg)s'))
16 logger.addHandler(watchedhandler)
17 return logger, watchedhandler
Matt Harte7bddc02015-07-08 18:05:08 +010018
19
Matt Hartfe042212015-07-09 14:13:29 +010020def read_settings(filename):
21 logging.debug("Reading settings from %s", filename)
Matt Harte7bddc02015-07-08 18:05:08 +010022 with open(filename) as stream:
23 jobdata = stream.read()
24 json_data = json.loads(jobdata)
25 return json_data
26
Matt Hartfe042212015-07-09 14:13:29 +010027
Matt Harte7bddc02015-07-08 18:05:08 +010028def drivername_from_hostname(hostname, pdus):
29 if hostname in pdus:
30 drivername = (pdus[hostname]["driver"])
31 else:
Matt Hartfe042212015-07-09 14:13:29 +010032 raise NotImplementedError("No configuration available for %s, "
33 "is there a section in the lavapdu.conf?" %
34 hostname)
Matt Harte7bddc02015-07-08 18:05:08 +010035 return drivername