Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > site-packages > lvestats > core
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 218 bytes | May 30 2025 10:30:46. | |
plugin.py | File | 2042 bytes | May 30 2025 10:30:46. | |
plugin_context.py | File | 1075 bytes | May 30 2025 10:30:46. | |
plugin_loader.py | File | 2311 bytes | May 30 2025 10:30:46. |
# 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 import importlib.util import inspect import logging import os import sys from lvestats.core.plugin import LveStatsPlugin class PluginLoader(object): def check_incorrect_symlink(self, path): """ Check correcting symlink. If symlink incorrect return True :param str path: path to file or symlink :return bool: """ if os.path.islink(path) and not os.path.exists(os.path.realpath(path)): self.log.warning('Incorrect symlink %s', path) return True def __init__(self, plugins_folder): self.log = logging.getLogger(__name__) classes_loaded = [] if os.path.isdir(plugins_folder): file_names = (fn for fn in os.listdir(plugins_folder) if fn.endswith('.py')) for file_name in file_names: try: module_name, _ = os.path.splitext(file_name) full_path = os.path.join(plugins_folder, file_name) if self.check_incorrect_symlink(full_path): continue spec = importlib.util.spec_from_file_location(module_name, full_path) if spec is None: self.log.error('Unable to find spec for %s', file_name) continue module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) # Load only subclasses of LveStatsPlugin classes = [x for x in list(module.__dict__.values()) if inspect.isclass(x) and issubclass(x, LveStatsPlugin) and x is not LveStatsPlugin] if not classes: self.log.error('No classes to load found in %s', file_name) continue classes_loaded.extend(classes) sys.modules[module.__name__] = module except Exception as ex: self.log.exception('Unable to load %s due to exception %s', file_name, ex) self.plugins = classes_loaded
SILENT KILLER Tool