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 <noreply@anthropic.com>
19 lines
958 B
Python
19 lines
958 B
Python
"""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.
|
|
"""
|