mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-03 12:07:40 +03:00
Add migration for record config
This commit is contained in:
parent
55c598fc5a
commit
9b9aeacfa2
@ -13,7 +13,7 @@ from frigate.util.services import get_video_properties
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
CURRENT_CONFIG_VERSION = "0.16-0"
|
CURRENT_CONFIG_VERSION = "0.17-0"
|
||||||
DEFAULT_CONFIG_FILE = os.path.join(CONFIG_DIR, "config.yml")
|
DEFAULT_CONFIG_FILE = os.path.join(CONFIG_DIR, "config.yml")
|
||||||
|
|
||||||
|
|
||||||
@ -91,6 +91,13 @@ def migrate_frigate_config(config_file: str):
|
|||||||
yaml.dump(new_config, f)
|
yaml.dump(new_config, f)
|
||||||
previous_version = "0.16-0"
|
previous_version = "0.16-0"
|
||||||
|
|
||||||
|
if previous_version < "0.17-0":
|
||||||
|
logger.info(f"Migrating frigate config from {previous_version} to 0.17-0...")
|
||||||
|
new_config = migrate_017_0(config)
|
||||||
|
with open(config_file, "w") as f:
|
||||||
|
yaml.dump(new_config, f)
|
||||||
|
previous_version = "0.17-0"
|
||||||
|
|
||||||
logger.info("Finished frigate config migration...")
|
logger.info("Finished frigate config migration...")
|
||||||
|
|
||||||
|
|
||||||
@ -340,6 +347,55 @@ def migrate_016_0(config: dict[str, dict[str, Any]]) -> dict[str, dict[str, Any]
|
|||||||
return new_config
|
return new_config
|
||||||
|
|
||||||
|
|
||||||
|
def migrate_017_0(config: dict[str, dict[str, Any]]) -> dict[str, dict[str, Any]]:
|
||||||
|
"""Handle migrating frigate config to 0.16-0"""
|
||||||
|
new_config = config.copy()
|
||||||
|
|
||||||
|
# migrate global to new recording configuration
|
||||||
|
global_record_retain = config.get("record", {}).get("retain")
|
||||||
|
|
||||||
|
if global_record_retain:
|
||||||
|
continuous = {"days": 0}
|
||||||
|
motion = {"days": 0}
|
||||||
|
days = global_record_retain.get("days")
|
||||||
|
mode = global_record_retain.get("mode", "all")
|
||||||
|
|
||||||
|
if days:
|
||||||
|
if mode == "all":
|
||||||
|
continuous["days"] = days
|
||||||
|
else:
|
||||||
|
motion["days"] = days
|
||||||
|
|
||||||
|
new_config["record"]["continuous"] = continuous
|
||||||
|
new_config["record"]["motion"] = motion
|
||||||
|
del new_config["record"]["retain"]
|
||||||
|
|
||||||
|
for name, camera in config.get("cameras", {}).items():
|
||||||
|
camera_config: dict[str, dict[str, Any]] = camera.copy()
|
||||||
|
camera_record_retain = camera_config.get("record", {}).get("retain")
|
||||||
|
|
||||||
|
if global_record_retain:
|
||||||
|
continuous = {"days": 0}
|
||||||
|
motion = {"days": 0}
|
||||||
|
days = camera_record_retain.get("days")
|
||||||
|
mode = camera_record_retain.get("mode", "all")
|
||||||
|
|
||||||
|
if days:
|
||||||
|
if mode == "all":
|
||||||
|
continuous["days"] = days
|
||||||
|
else:
|
||||||
|
motion["days"] = days
|
||||||
|
|
||||||
|
camera_config["record"]["continuous"] = continuous
|
||||||
|
camera_config["record"]["motion"] = motion
|
||||||
|
del camera_config["record"]["retain"]
|
||||||
|
|
||||||
|
new_config["cameras"][name] = camera_config
|
||||||
|
|
||||||
|
new_config["version"] = "0.17-0"
|
||||||
|
return new_config
|
||||||
|
|
||||||
|
|
||||||
def get_relative_coordinates(
|
def get_relative_coordinates(
|
||||||
mask: Optional[Union[str, list]], frame_shape: tuple[int, int]
|
mask: Optional[Union[str, list]], frame_shape: tuple[int, int]
|
||||||
) -> Union[str, list]:
|
) -> Union[str, list]:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user