mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
ensure zones dont have the same name as a camera
This commit is contained in:
parent
d62aec7287
commit
117569830d
@ -144,7 +144,14 @@ CAMERA_FFMPEG_SCHEMA = vol.Schema(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
CAMERAS_SCHEMA = vol.Schema(
|
def ensure_zones_and_cameras_have_different_names(cameras):
|
||||||
|
zones = [zone for camera in cameras.values() for zone in camera['zones'].keys()]
|
||||||
|
for zone in zones:
|
||||||
|
if zone in cameras.keys():
|
||||||
|
raise ValueError
|
||||||
|
return cameras
|
||||||
|
|
||||||
|
CAMERAS_SCHEMA = vol.Schema(vol.All(
|
||||||
{
|
{
|
||||||
str: {
|
str: {
|
||||||
vol.Required('ffmpeg'): CAMERA_FFMPEG_SCHEMA,
|
vol.Required('ffmpeg'): CAMERA_FFMPEG_SCHEMA,
|
||||||
@ -177,7 +184,7 @@ CAMERAS_SCHEMA = vol.Schema(
|
|||||||
},
|
},
|
||||||
'objects': OBJECTS_SCHEMA
|
'objects': OBJECTS_SCHEMA
|
||||||
}
|
}
|
||||||
}
|
}, vol.Msg(ensure_zones_and_cameras_have_different_names, msg='Zones cannot share names with cameras'))
|
||||||
)
|
)
|
||||||
|
|
||||||
FRIGATE_CONFIG_SCHEMA = vol.Schema(
|
FRIGATE_CONFIG_SCHEMA = vol.Schema(
|
||||||
|
@ -247,5 +247,37 @@ class TestConfig(TestCase):
|
|||||||
}
|
}
|
||||||
self.assertRaises(vol.MultipleInvalid, lambda: FrigateConfig(config=config))
|
self.assertRaises(vol.MultipleInvalid, lambda: FrigateConfig(config=config))
|
||||||
|
|
||||||
|
def test_zone_matching_camera_name_throws_error(self):
|
||||||
|
config = {
|
||||||
|
'mqtt': {
|
||||||
|
'host': 'mqtt'
|
||||||
|
},
|
||||||
|
'save_clips': {
|
||||||
|
'retain': {
|
||||||
|
'default': 20,
|
||||||
|
'objects': {
|
||||||
|
'person': 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'cameras': {
|
||||||
|
'back': {
|
||||||
|
'ffmpeg': {
|
||||||
|
'inputs': [
|
||||||
|
{ 'path': 'rtsp://10.0.0.1:554/video', 'roles': ['detect'] }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'height': 1080,
|
||||||
|
'width': 1920,
|
||||||
|
'zones': {
|
||||||
|
'back': {
|
||||||
|
'coordinates': '1,1,1,1,1,1'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.assertRaises(vol.MultipleInvalid, lambda: FrigateConfig(config=config))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main(verbosity=2)
|
main(verbosity=2)
|
||||||
|
Loading…
Reference in New Issue
Block a user