mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-10 02:29:19 +03:00
wire ProfileManager into app startup and FastAPI
- Create ProfileManager after dispatcher init - Restore persisted profile on startup - Pass dispatcher and profile_manager to FastAPI app
This commit is contained in:
parent
76c65bbf6d
commit
26ec07985c
@ -69,6 +69,8 @@ def create_fastapi_app(
|
|||||||
event_metadata_updater: EventMetadataPublisher,
|
event_metadata_updater: EventMetadataPublisher,
|
||||||
config_publisher: CameraConfigUpdatePublisher,
|
config_publisher: CameraConfigUpdatePublisher,
|
||||||
replay_manager: DebugReplayManager,
|
replay_manager: DebugReplayManager,
|
||||||
|
dispatcher=None,
|
||||||
|
profile_manager=None,
|
||||||
enforce_default_admin: bool = True,
|
enforce_default_admin: bool = True,
|
||||||
):
|
):
|
||||||
logger.info("Starting FastAPI app")
|
logger.info("Starting FastAPI app")
|
||||||
@ -151,6 +153,8 @@ def create_fastapi_app(
|
|||||||
app.event_metadata_updater = event_metadata_updater
|
app.event_metadata_updater = event_metadata_updater
|
||||||
app.config_publisher = config_publisher
|
app.config_publisher = config_publisher
|
||||||
app.replay_manager = replay_manager
|
app.replay_manager = replay_manager
|
||||||
|
app.dispatcher = dispatcher
|
||||||
|
app.profile_manager = profile_manager
|
||||||
|
|
||||||
if frigate_config.auth.enabled:
|
if frigate_config.auth.enabled:
|
||||||
secret = get_jwt_secret()
|
secret = get_jwt_secret()
|
||||||
|
|||||||
@ -30,6 +30,7 @@ from frigate.comms.ws import WebSocketClient
|
|||||||
from frigate.comms.zmq_proxy import ZmqProxy
|
from frigate.comms.zmq_proxy import ZmqProxy
|
||||||
from frigate.config.camera.updater import CameraConfigUpdatePublisher
|
from frigate.config.camera.updater import CameraConfigUpdatePublisher
|
||||||
from frigate.config.config import FrigateConfig
|
from frigate.config.config import FrigateConfig
|
||||||
|
from frigate.config.profile_manager import ProfileManager
|
||||||
from frigate.const import (
|
from frigate.const import (
|
||||||
CACHE_DIR,
|
CACHE_DIR,
|
||||||
CLIPS_DIR,
|
CLIPS_DIR,
|
||||||
@ -349,6 +350,19 @@ class FrigateApp:
|
|||||||
comms,
|
comms,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def init_profile_manager(self) -> None:
|
||||||
|
self.profile_manager = ProfileManager(
|
||||||
|
self.config, self.inter_config_updater
|
||||||
|
)
|
||||||
|
self.dispatcher.profile_manager = self.profile_manager
|
||||||
|
|
||||||
|
persisted = ProfileManager.load_persisted_profile()
|
||||||
|
if persisted and any(
|
||||||
|
persisted in cam.profiles for cam in self.config.cameras.values()
|
||||||
|
):
|
||||||
|
logger.info("Restoring persisted profile '%s'", persisted)
|
||||||
|
self.profile_manager.activate_profile(persisted)
|
||||||
|
|
||||||
def start_detectors(self) -> None:
|
def start_detectors(self) -> None:
|
||||||
for name in self.config.cameras.keys():
|
for name in self.config.cameras.keys():
|
||||||
try:
|
try:
|
||||||
@ -557,6 +571,7 @@ class FrigateApp:
|
|||||||
self.init_inter_process_communicator()
|
self.init_inter_process_communicator()
|
||||||
self.start_detectors()
|
self.start_detectors()
|
||||||
self.init_dispatcher()
|
self.init_dispatcher()
|
||||||
|
self.init_profile_manager()
|
||||||
self.init_embeddings_client()
|
self.init_embeddings_client()
|
||||||
self.start_video_output_processor()
|
self.start_video_output_processor()
|
||||||
self.start_ptz_autotracker()
|
self.start_ptz_autotracker()
|
||||||
@ -586,6 +601,8 @@ class FrigateApp:
|
|||||||
self.event_metadata_updater,
|
self.event_metadata_updater,
|
||||||
self.inter_config_updater,
|
self.inter_config_updater,
|
||||||
self.replay_manager,
|
self.replay_manager,
|
||||||
|
self.dispatcher,
|
||||||
|
self.profile_manager,
|
||||||
),
|
),
|
||||||
host="127.0.0.1",
|
host="127.0.0.1",
|
||||||
port=5001,
|
port=5001,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user