Loading cloudcontrol/node/config.py +70 −5 Original line number Diff line number Diff line import logging import logging.config from ConfigParser import SafeConfigParser from StringIO import StringIO logger = logging.getLogger(__name__) Loading @@ -11,9 +13,72 @@ class NodeConfigParser(object): config = SafeConfigParser() config.read(file_path) config = dict(config.items('node')) # ccserver settings self.server_host = config.get('ccserver', 'host') self.server_port = config.getint('ccserver', 'port') self.server_user = config.get('ccserver', 'user') self.server_passwd = config.get('ccserver', 'password') # TODO complete 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] keys=syslog # keys=consoleHandler [formatters] keys=simpleFormatter [logger_root] level=ERROR handlers=syslog # handlers=consoleHandler [logger_ccnode] level=%s handlers= qualname=cloudcontrol.node [logger_sjrpc] level=ERROR handlers= qualname=sjrpc [handler_syslog] class=handlers.SysLogHandler formatter=simpleFormatter 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)) cloudcontrol/node/node.py +7 −4 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ from sjrpc.core import RpcConnection, RpcError from sjrpc.utils import ConnectionProxy, RpcHandler, threadless from cloudcontrol.node import __version__ from cloudcontrol.node.config import NodeConfigParser from cloudcontrol.node.config import NodeConfigParser, configure_logging from cloudcontrol.node.tags import Tag, get_tags, RootTagDB from cloudcontrol.node.jobs import JobManager from cloudcontrol.node.exc import PluginError Loading Loading @@ -211,7 +211,7 @@ class MainLoop(object): self.config = NodeConfigParser(self.config_path) # configure logging logging.config.fileConfig(self.config_path) configure_logging(self.config.logging_level) # rpc connection self.rpc_con = None Loading Loading @@ -360,5 +360,8 @@ class MainLoop(object): self.evloop.stop() def reload(self, watcher=None, revents=None): logger.info(u'Reloading logging configuration...') logging.config.fileConfig(self.config_path) logger.info('Reloading logging configuration...') try: configure_logging(NodeConfigParser(self.config_path).logging_level) except: logger.exception('Invalid config file') etc/cc-node.conf +4 −35 Original line number Diff line number Diff line [ccserver] host=__CC_SERVER_HOST_ [node] address=__CC_SERVER_HOST_ port=1984 user=_CC_SERVER_LOGIN_ login=_CC_SERVER_LOGIN_ password=_CC_SERVER_PASSWD_ [loggers] keys=root,ccnode [handlers] keys=syslog [formatters] keys=simpleFormatter [logger_root] level=ERROR handlers=syslog # handlers=fileHandler [logger_ccnode] level=INFO handlers= qualname=cloudcontrol.node [handler_syslog] class=handlers.SysLogHandler formatter=simpleFormatter args=('/dev/log', handlers.SysLogHandler.LOG_DAEMON) # [handler_fileHandler] # class=FileHandler # formatter=simpleFormatter # args=('/var/log/cc-node.log',) [formatter_simpleFormatter] # format=%(asctime)s - %(name)s - %(levelname)s - %(message)s format=cc-node - %(asctime)s - %(name)s - %(levelname)s - %(message)s # verbosity = 0 examples/cc-node-debug.conf +4 −33 Original line number Diff line number Diff line [ccserver] host=__HOST__ [node] address=__HOST__ port=1984 user=__USER__ login=__USER__ password=__PASSWD__ # TODO virtualization = no command_execution = yes # END TODO [loggers] keys=root,ccnode [handlers] keys=consoleHandler [formatters] keys=simpleFormatter [logger_root] level=ERROR handlers=consoleHandler [logger_ccnode] level=DEBUG handlers= qualname=cloudcontrol.node [handler_consoleHandler] class=StreamHandler formatter=simpleFormatter args=(sys.stderr,) [formatter_simpleFormatter] format=cc-node - %(asctime)s - %(name)s - %(levelname)s - %(message)s verbosity=3 Loading
cloudcontrol/node/config.py +70 −5 Original line number Diff line number Diff line import logging import logging.config from ConfigParser import SafeConfigParser from StringIO import StringIO logger = logging.getLogger(__name__) Loading @@ -11,9 +13,72 @@ class NodeConfigParser(object): config = SafeConfigParser() config.read(file_path) config = dict(config.items('node')) # ccserver settings self.server_host = config.get('ccserver', 'host') self.server_port = config.getint('ccserver', 'port') self.server_user = config.get('ccserver', 'user') self.server_passwd = config.get('ccserver', 'password') # TODO complete 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] keys=syslog # keys=consoleHandler [formatters] keys=simpleFormatter [logger_root] level=ERROR handlers=syslog # handlers=consoleHandler [logger_ccnode] level=%s handlers= qualname=cloudcontrol.node [logger_sjrpc] level=ERROR handlers= qualname=sjrpc [handler_syslog] class=handlers.SysLogHandler formatter=simpleFormatter 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))
cloudcontrol/node/node.py +7 −4 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ from sjrpc.core import RpcConnection, RpcError from sjrpc.utils import ConnectionProxy, RpcHandler, threadless from cloudcontrol.node import __version__ from cloudcontrol.node.config import NodeConfigParser from cloudcontrol.node.config import NodeConfigParser, configure_logging from cloudcontrol.node.tags import Tag, get_tags, RootTagDB from cloudcontrol.node.jobs import JobManager from cloudcontrol.node.exc import PluginError Loading Loading @@ -211,7 +211,7 @@ class MainLoop(object): self.config = NodeConfigParser(self.config_path) # configure logging logging.config.fileConfig(self.config_path) configure_logging(self.config.logging_level) # rpc connection self.rpc_con = None Loading Loading @@ -360,5 +360,8 @@ class MainLoop(object): self.evloop.stop() def reload(self, watcher=None, revents=None): logger.info(u'Reloading logging configuration...') logging.config.fileConfig(self.config_path) logger.info('Reloading logging configuration...') try: configure_logging(NodeConfigParser(self.config_path).logging_level) except: logger.exception('Invalid config file')
etc/cc-node.conf +4 −35 Original line number Diff line number Diff line [ccserver] host=__CC_SERVER_HOST_ [node] address=__CC_SERVER_HOST_ port=1984 user=_CC_SERVER_LOGIN_ login=_CC_SERVER_LOGIN_ password=_CC_SERVER_PASSWD_ [loggers] keys=root,ccnode [handlers] keys=syslog [formatters] keys=simpleFormatter [logger_root] level=ERROR handlers=syslog # handlers=fileHandler [logger_ccnode] level=INFO handlers= qualname=cloudcontrol.node [handler_syslog] class=handlers.SysLogHandler formatter=simpleFormatter args=('/dev/log', handlers.SysLogHandler.LOG_DAEMON) # [handler_fileHandler] # class=FileHandler # formatter=simpleFormatter # args=('/var/log/cc-node.log',) [formatter_simpleFormatter] # format=%(asctime)s - %(name)s - %(levelname)s - %(message)s format=cc-node - %(asctime)s - %(name)s - %(levelname)s - %(message)s # verbosity = 0
examples/cc-node-debug.conf +4 −33 Original line number Diff line number Diff line [ccserver] host=__HOST__ [node] address=__HOST__ port=1984 user=__USER__ login=__USER__ password=__PASSWD__ # TODO virtualization = no command_execution = yes # END TODO [loggers] keys=root,ccnode [handlers] keys=consoleHandler [formatters] keys=simpleFormatter [logger_root] level=ERROR handlers=consoleHandler [logger_ccnode] level=DEBUG handlers= qualname=cloudcontrol.node [handler_consoleHandler] class=StreamHandler formatter=simpleFormatter args=(sys.stderr,) [formatter_simpleFormatter] format=cc-node - %(asctime)s - %(name)s - %(levelname)s - %(message)s verbosity=3