blob: 46af539cf37bc26e3e3389bce8145bf6bc6b4527 [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):
Matt Harte7bddc02015-07-08 18:05:08 +010021 with open(filename) as stream:
22 jobdata = stream.read()
23 json_data = json.loads(jobdata)
24 return json_data
25
Matt Hartfe042212015-07-09 14:13:29 +010026
Matt Harte7bddc02015-07-08 18:05:08 +010027def drivername_from_hostname(hostname, pdus):
28 if hostname in pdus:
29 drivername = (pdus[hostname]["driver"])
30 else:
Matt Hartfe042212015-07-09 14:13:29 +010031 raise NotImplementedError("No configuration available for %s, "
32 "is there a section in the lavapdu.conf?" %
33 hostname)
Matt Harte7bddc02015-07-08 18:05:08 +010034 return drivername
Matt Hartd4a09982015-07-17 16:13:11 +010035
36
37def pdus_from_config(data):
38 output = []
39 for pdu in data["pdus"]:
40 output.append(pdu)
41 return output