feat: add skip_reason to Plugin; improve PluginLoader init messaging

This commit is contained in:
2026-04-25 16:08:07 +02:00
parent 77b337e4dd
commit aeb78dcb8e
2 changed files with 93 additions and 4 deletions
+10 -4
View File
@@ -39,13 +39,14 @@ class Plugin(ABC):
def __init__(self, config: Optional[Dict[str, Any]] = None):
"""Initialize plugin with optional configuration.
Args:
config: Plugin-specific configuration from YAML (e.g., thresholds, paths)
"""
self.config = config or {}
self.logger = logging.getLogger(f"plugin.{self.name}")
self._initialized = False
self.skip_reason: Optional[str] = None
@abstractmethod
async def initialize(self) -> bool:
@@ -369,9 +370,14 @@ class PluginLoader:
try:
initialized = await plugin.initialize()
if not initialized:
self.logger.warning(
f"Plugin {plugin.name} failed initialization, skipping"
)
if plugin.skip_reason:
self.logger.info(
f"Plugin {plugin.name} skipped: {plugin.skip_reason}"
)
else:
self.logger.warning(
f"Plugin {plugin.name} failed initialization, skipping"
)
continue
except Exception as e:
self.logger.error(