def __init__(self, *args, **kwargs):
super(Gauge, self).__init__(*args, **kwargs)
self.config_file = os.getenv(
'GAUGE_CONFIG', '/etc/ryu/faucet/gauge.conf')
self.exc_logfile = os.getenv(
'GAUGE_EXCEPTION_LOG', '/var/log/ryu/faucet/gauge_exception.log')
self.logfile = os.getenv('GAUGE_LOG', '/var/log/ryu/faucet/gauge.log')
# Setup logging
self.logger = logging.getLogger(__name__)
logger_handler = TimedRotatingFileHandler(
self.logfile,
when='midnight')
log_fmt = '%(asctime)s %(name)-6s %(levelname)-8s %(message)s'
date_fmt = '%b %d %H:%M:%S'
default_formatter = logging.Formatter(log_fmt, date_fmt)
logger_handler.setFormatter(default_formatter)
self.logger.addHandler(logger_handler)
self.logger.propagate = 0
# Set up separate logging for exceptions
exc_logger = logging.getLogger(self.exc_logname)
exc_logger_handler = logging.FileHandler(self.exc_logfile)
exc_logger_handler.setFormatter(
logging.Formatter(log_fmt, date_fmt))
exc_logger.addHandler(exc_logger_handler)
exc_logger.propagate = 1
exc_logger.setLevel(logging.ERROR)
self.dps = {}
with open(self.config_file, 'r') as config_file:
for dp_conf_file in config_file:
# config_file should be a list of faucet config filenames
# separated by linebreaks
dp = DP.parser(dp_conf_file.strip(), self.logname)
try:
dp.sanity_check()
except AssertionError:
self.logger.exception(
"Error in config file {0}".format(dp_conf_file))
else:
self.dps[dp.dp_id] = dp
# Create dpset object for querying Ryu's DPSet application
self.dpset = kwargs['dpset']
# dict of polling threads:
# polling threads are indexed by dp_id and then by name
# eg: self.pollers[0x1]['port_stats']
self.pollers = {}
# dict of async event handlers
self.handlers = {}
评论列表
文章目录