From 33b18a08db976ccd2f27f70c12b30e1f694e5528 Mon Sep 17 00:00:00 2001 From: Christoph Emsenhuber Date: Thu, 10 Sep 2026 11:06:28 +0200 Subject: [PATCH] =?UTF-8?q?TP44=20Teil=20B:=20=5F=5Finit=5F=5F.py=20in=20R?= =?UTF-8?q?epo-Wurzel=20=E2=80=94=20macht=20bf=5Finfra=20f=C3=BCr=20Nautob?= =?UTF-8?q?ots=20Job-Loader=20sichtbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root-Cause des "No jobs were registered on loading the bf_infra.jobs submodule": Nautobot 3.1.7 lädt Git-Repo-Jobs via import_modules_privately() -> pkgutil.walk_packages([GIT_ROOT]). walk_packages entdeckt nur reguläre Pakete (mit __init__.py), keine Namespace-Packages. Ohne Wurzel-__init__.py ist der geklonte Ordner GIT_ROOT/bf_infra/ unsichtbar -> jobs/ wird nie importiert. Live verifiziert: __init__.py da -> registry["jobs"] enthält CFEstateSync. bf-infra ist das erste Git-Repo mit extras.job, daher nie zuvor aufgetreten. Co-Authored-By: Claude Opus 4.8 --- __init__.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 __init__.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..56df6e4 --- /dev/null +++ b/__init__.py @@ -0,0 +1,18 @@ +"""Macht die bf-infra-Repo-Wurzel zu einem regulären Python-Paket. + +🔴 LOAD-BEARING — NICHT löschen (sonst laden die Nautobot-Jobs nicht mehr). + +Nautobot klont dieses Repo nach GIT_ROOT/bf_infra/ und lädt Jobs über +`import_modules_privately()` → `pkgutil.walk_packages([GIT_ROOT])`. walk_packages +entdeckt ausschließlich *reguläre* Pakete (mit __init__.py), niemals +Namespace-Packages (Verzeichnisse ohne __init__.py). Ohne diese Datei ist +`bf_infra` für den Loader unsichtbar und `jobs/` wird nie importiert — Symptom: +Git-Sync SUCCESS, aber Log "No jobs were registered on loading the +`bf_infra.jobs` submodule" und kein Job-DB-Eintrag. + +Der module_path-Filter des Loaders (["bf_infra","jobs"]) importiert nur +`bf_infra` + `bf_infra.jobs.*`; die übrigen Verzeichnisse (nautobot/, routeros/, +bin/, …) bleiben unangetastet und laufen weiter als Standalone-Skripte. + +Verifiziert 2026-09-10 (Nautobot 3.1.7, Python 3.14) — TP44 Teil B. +"""