Newer
Older
class NodeConfigParser(object):
"""ConfigParser for ccnode config file."""
def __init__(self, file_path):
config = SafeConfigParser()
config.read(file_path)
try:
self.server_host = config['address']
except KeyError:
logger.error('cc-server address not specified in config file')
raise
self.server_port = int(config.get('port', 1984))
try:
self.server_user = config['login']
except KeyError:
logger.error('cc-server login not specified in config file')
raise
try:
self.server_passwd = config['password']
except KeyError:
logger.error('cc-server password not specified in config file')
raise
self.logging_level = int(config.get('verbosity', 0))
def configure_logging(level):
level = {
0: 'ERROR', 1: 'WARNING',
2: 'INFO', 3: 'DEBUG',
}[level]
# create config parser for logging configuration
logging.config.fileConfig(StringIO("""
[loggers]
keys=root,ccnode,sjrpc
[handlers]
[formatters]
keys=simpleFormatter
[logger_root]
level=ERROR
[logger_ccnode]
level=%s
handlers=
qualname=cloudcontrol.node
[logger_sjrpc]
level=ERROR
handlers=
qualname=sjrpc
# [handler_syslog]
# class=handlers.SysLogHandler
# args=('/dev/log', handlers.SysLogHandler.LOG_DAEMON)
[handler_consoleHandler]
class=StreamHandler
formatter=simpleFormatter
args=(sys.stderr,)
[formatter_simpleFormatter]
format=cc-node - %%(asctime)s - %%(name)s - %%(levelname)s - %%(message)s
""" % level))