Скрипт разработан для внутреннего использования в специфичных условиях в организации, связанной с видеонаблюдением. Он позволяет собирать наиболее важную информацию по камерам, переданных в аргументе при выполнении скрипта. До создания скрипта вся информация собиралась вручную с использованием прямых подключений к базам и работой с SQL-запросами.
Установка из данного репозитория не предусматривается и код опубликован лишь для демонстрации.
При запуске скрипта на вход передается одна или несколько камер через пробел. Примеры запуска:
python fetch_camera_info.py -c CAMERA_NAME
python fetch_camera_info.py --camera CAMERA_NAME
python fetch_camera_info.py -c CAMERA_NAME CAMERA_NAME_2
После запуска пользователю дается интерактивный выбор проекта из списка проектов, который заранее прописан в projects.json
Функция выбора проекта обуславливается внутриорганизационной структурой, так как базы данных с информацией по камерам для каждого проекта свои собственные.
Организация списка проектов в JSON была выбрана из-за, в первую очередь, локального хранения данных и отсутствия сетевой зависимости.
После выбора проекта пользователем скрипт парсит JSON список проектов и находит информацию для подключения к базам данных указанного проекта. Далее с полученными данными скрипт выполняет подключение к базам и находит информацию по камере.
В данном скрипте неоптимизированы подключения к базам, а конкретно скрипт работает по принципу '1 камера = 1 подключение', хотя с логической точки зрения все камеры принадлежат к одному проекту и было бы быстрее работать по принципу '1 камера = 1 запрос'. Я не стал исправлять данный недочет, так как применил решение в другом, связанном с таким функционалом, проекте.
После получения всех данных, скрипт выводит в терминал список камер и информацию по ним в удобном для вставки на Redmine виде.