mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
remove side effects from password substitution
This commit is contained in:
parent
8d01cc4807
commit
ab93cae4c0
@ -58,7 +58,7 @@ class MqttConfig(BaseModel):
|
||||
def validate_password(cls, v, values):
|
||||
if (v is None) != (values["user"] is None):
|
||||
raise ValueError("Password must be provided with username.")
|
||||
return v if v is None else v.format(**FRIGATE_ENV_VARS)
|
||||
return v
|
||||
|
||||
|
||||
class RetainConfig(BaseModel):
|
||||
@ -328,10 +328,6 @@ class CameraInput(BaseModel):
|
||||
default_factory=list, title="FFmpeg input arguments."
|
||||
)
|
||||
|
||||
@validator("path")
|
||||
def sub_env_vars(cls, v):
|
||||
return v.format(**FRIGATE_ENV_VARS)
|
||||
|
||||
|
||||
class CameraFfmpegConfig(FfmpegConfig):
|
||||
inputs: List[CameraInput] = Field(title="Camera inputs.")
|
||||
@ -665,6 +661,12 @@ class FrigateConfig(BaseModel):
|
||||
def runtime_config(self) -> FrigateConfig:
|
||||
"""Merge camera config with globals."""
|
||||
config = self.copy(deep=True)
|
||||
|
||||
# MQTT password substitution
|
||||
if config.mqtt.password:
|
||||
config.mqtt.password = config.mqtt.password.format(**FRIGATE_ENV_VARS)
|
||||
|
||||
# Global config to propegate down to camera level
|
||||
global_config = config.dict(
|
||||
include={
|
||||
"clips": {"retain"},
|
||||
@ -682,6 +684,10 @@ class FrigateConfig(BaseModel):
|
||||
merged_config = deep_merge(camera.dict(exclude_unset=True), global_config)
|
||||
camera_config = CameraConfig.parse_obj({"name": name, **merged_config})
|
||||
|
||||
# FFMPEG input substitution
|
||||
for input in camera_config.ffmpeg.inputs:
|
||||
input.path = input.path.format(**FRIGATE_ENV_VARS)
|
||||
|
||||
# Add default filters
|
||||
object_keys = camera_config.objects.track
|
||||
if camera_config.objects.filters is None:
|
||||
|
Loading…
Reference in New Issue
Block a user