Mini Shell

Direktori : /opt/cloudlinux/venv/lib64/python3.11/site-packages/lvestats/core/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/lvestats/core/plugin.py

# coding=utf-8
#
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

__author__ = 'shaman'


class LveStatsPluginTerminated(Exception):
    def __init__(self, *args, **kwargs):
        Exception.__init__(self, *args, **kwargs)


class LveStatsPlugin(object):
    """
    Skeleton of the plugin. User plugins are not required to depend on the code of the project
    and have this class as a parent, but they should have methods set_config(config) and execute(lve_data)

    Additional attributes you may define in the plugin:

        * order : int : order of plugin execution.

        * period : int : time between executions of execute() method. Default period is
        set in config.

       * timeout : float or int : time to wait (in seconds) for plugin execution, until it is marked as
        halted and killed. Default missing or None for system plugins.

    Additional object (instance level) attributes set by system:

        * now: current moment of time (see time.time()) Updated by the system each time execute() is
        invoked.

    Additional class level attributes set by system

        * __is_user_plugin__ : True or False, determines is the current plugin loaded from user folder
    """
    # this value will be replaces with plugins runner
    # before runnin execute(), but new pylint complaints
    # that we might get None where not expect
    # so I just changed it to 0
    now = 0
    engine = None

    def set_config(self, config):
        """
        :type config: dict
        """

    def set_db_engine(self, engine):
        """
        :type engine: sqlalchemy.engine.base.Engine
        """
        self.engine = engine

    def execute(self, lve_data):
        """
        Should be overriden in the implementation.
        :param lve_data: lve_data is shared between instances of plugins, so that modify it
        carefully.
        :type lve_data: dict
        """

Zerion Mini Shell 1.0