Skip to content
Snippets Groups Projects
Commit 8b03e6e0 authored by Anael Beutot's avatar Anael Beutot
Browse files

Back to old configuration format.

parent 77e62252
No related branches found
No related tags found
No related merge requests found
import logging
import logging.config
from ConfigParser import SafeConfigParser
from StringIO import StringIO
logger = logging.getLogger(__name__)
......@@ -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))
......@@ -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
......@@ -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
......@@ -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')
[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
[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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment