Source code for mentat.daemon.base

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#-------------------------------------------------------------------------------
# This file is part of Mentat system (https://mentat.cesnet.cz/).
#
# Copyright (C) since 2011 CESNET, z.s.p.o (http://www.ces.net/)
# Use of this source is governed by the MIT license, see LICENSE file.
#-------------------------------------------------------------------------------


"""
This module provides base implementation of all Mentat daemons.
"""


__author__ = "Jan Mach <jan.mach@cesnet.cz>"
__credits__ = "Pavel Kácha <pavel.kacha@cesnet.cz>, Andrea Kropáčová <andrea.kropacova@cesnet.cz>"


#
# Custom libraries.
#
import pyzenkit.baseapp
import pyzenkit.zendaemon
import mentat.const


DEFAULT_EVENTS_SCHEDULED = [
    (mentat.const.DFLT_EVENT_START,)
]
DEFAULT_EVENTS_SCHEDULED_AFTER = [
    (mentat.const.DFLT_INTERVAL_STATISTICS, mentat.const.DFLT_EVENT_LOG_STATISTICS),
    (mentat.const.DFLT_INTERVAL_RUNLOG,     mentat.const.DFLT_EVENT_SAVE_RUNLOG)
]

[docs]class MentatBaseDaemon(pyzenkit.zendaemon.ZenDaemon): """ This module provides base implementation of generic *pipe-like* message processing daemon. """ def __init__(self, **kwargs): # # Configure required script paths. # kwargs.setdefault('path_cfg', mentat.const.PATH_CFG) kwargs.setdefault('path_var', mentat.const.PATH_VAR) kwargs.setdefault('path_log', mentat.const.PATH_LOG) kwargs.setdefault('path_run', mentat.const.PATH_RUN) kwargs.setdefault('path_tmp', mentat.const.PATH_TMP) # # Override default configurations. # kwargs.setdefault( 'default_config_dir', self.get_resource_path(mentat.const.PATH_CFG_CORE) ) kwargs.setdefault( 'default_stats_interval', mentat.const.DFLT_INTERVAL_STATISTICS ) kwargs.setdefault( 'default_runlog_interval', mentat.const.DFLT_INTERVAL_RUNLOG ) # # Schedule initial events. # kwargs.setdefault('schedule', DEFAULT_EVENTS_SCHEDULED) kwargs.setdefault('schedule_after', DEFAULT_EVENTS_SCHEDULED_AFTER) super().__init__(**kwargs)