Commit 8b03e6e0 authored by Anael Beutot's avatar Anael Beutot
Browse files

Back to old configuration format.

parent 77e62252
Loading
Loading
Loading
Loading
+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__)
@@ -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))
+7 −4
Original line number Diff line number Diff line
@@ -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')
+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
+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