Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/cl_plus/collectors/collector_base.py
# coding=utf-8
#
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2020 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENCE.TXT
#

from cl_plus.consts import COLLECTORS_DEFAULT_INTERVAL


class CollectorBase(object):
    def __init__(self, _logger):
        self.name = 'base'
        self.collection_interval = COLLECTORS_DEFAULT_INTERVAL
        self._logger = _logger
        self._aggregated_data = None
        self._aggregated_data_count = 0

    def init(self):
        """
        Initialize collector
        :return: None
        """
        raise NotImplementedError()

    def aggregate_new_data(self):
        """
        Retrive and aggregate new data. Optional method
        :return: None
        """
        pass

    def get_averages(self):
        """
        Get collector's averages data
        :return: dict
        """
        raise NotImplementedError()

    def shutdown(self):
        """
        Shutdown collector. Optional method
        :return:
        """
        pass