fix: use relative imports in traefik plugin to prevent double-registration; resolve PLUGIN_DIR path

This commit is contained in:
2026-03-18 18:46:02 -04:00
parent 2164ea28f2
commit 4cc83c8a19
4 changed files with 7 additions and 7 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ def create_app(
# Run migrations (core + plugin) synchronously before event loop starts # Run migrations (core + plugin) synchronously before event loop starts
if not testing: if not testing:
from .core.migration_runner import run_migrations, get_plugin_migration_dirs from .core.migration_runner import run_migrations, get_plugin_migration_dirs
_plugin_dir = Path(app.config["PLUGIN_DIR"]) _plugin_dir = Path(app.config["PLUGIN_DIR"]).resolve()
_plugin_migration_dirs = get_plugin_migration_dirs( _plugin_migration_dirs = get_plugin_migration_dirs(
_plugin_dir, app.config["PLUGINS"] _plugin_dir, app.config["PLUGINS"]
) )
+3 -3
View File
@@ -12,14 +12,14 @@ def setup(app: "Quart") -> None:
global _app global _app
_app = app _app = app
# Import model to register with SQLAlchemy metadata # Import model to register with SQLAlchemy metadata
from plugins.traefik.models import TraefikMetric # noqa: F401 from .models import TraefikMetric # noqa: F401
def get_scheduled_tasks() -> list: def get_scheduled_tasks() -> list:
from plugins.traefik.scheduler import make_scrape_task from .scheduler import make_scrape_task
return [make_scrape_task(_app)] return [make_scrape_task(_app)]
def get_blueprint(): def get_blueprint():
from plugins.traefik.routes import traefik_bp from .routes import traefik_bp
return traefik_bp return traefik_bp
+1 -1
View File
@@ -5,7 +5,7 @@ from sqlalchemy import select
from fablednetmon.auth.middleware import require_role from fablednetmon.auth.middleware import require_role
from fablednetmon.models.users import UserRole from fablednetmon.models.users import UserRole
from plugins.traefik.models import TraefikMetric from .models import TraefikMetric
traefik_bp = Blueprint("traefik", __name__, template_folder="templates") traefik_bp = Blueprint("traefik", __name__, template_folder="templates")
+2 -2
View File
@@ -36,8 +36,8 @@ async def _do_scrape(app: "Quart") -> None:
global _prev_metrics, _prev_time global _prev_metrics, _prev_time
from datetime import datetime, timezone from datetime import datetime, timezone
from plugins.traefik.models import TraefikMetric from .models import TraefikMetric
from plugins.traefik.scraper import fetch_metrics, compute_router_metrics from .scraper import fetch_metrics, compute_router_metrics
from fablednetmon.core.alerts import record_metric from fablednetmon.core.alerts import record_metric
metrics_url: str = app.config["PLUGINS"]["traefik"]["metrics_url"] metrics_url: str = app.config["PLUGINS"]["traefik"]["metrics_url"]