pi_portal/config.py

 1"""Core configuration settings."""
 2
 3import os
 4
 5PI_PORTAL_INSTALL_LOCATION = os.getenv(
 6    "PI_PORTAL_INSTALL_LOCATION",
 7    "/opt/venvs/pi_portal",
 8)
 9
10PI_PORTAL_TASK_MANAGER_CONCURRENCY_LIMIT = 10
11PI_PORTAL_TASK_MANAGER_SOCKET = os.path.join(
12    PI_PORTAL_INSTALL_LOCATION,
13    "socket",
14    "uvicorn.sock",
15)
16
17CRON_INTERVAL_DISK_SPACE = 60 * 10
18CRON_INTERVAL_LOGS_UPLOAD = 60 * 60
19CRON_INTERVAL_MANIFEST_METRICS = 60 * 10
20CRON_INTERVAL_QUEUE_MAINTENANCE = 60 * 60 * 24
21CRON_INTERVAL_QUEUE_METRICS = 60 * 10
22CRON_INTERVAL_SYSTEM_METRICS = 60
23CRON_INTERVAL_VIDEO_UPLOAD = 60 * 10
24
25LOG_FILE_BASE_FOLDER = "/var/log/pi_portal"
26LOG_FILE_CAMERA = f"{LOG_FILE_BASE_FOLDER}/pi_portal.camera.log"
27LOG_FILE_CHAT_BOT = f"{LOG_FILE_BASE_FOLDER}/pi_portal.chat_bot.log"
28LOG_FILE_CHAT_CLIENT = f"{LOG_FILE_BASE_FOLDER}/pi_portal.chat_client.log"
29LOG_FILE_CONTACT_SWITCH_MONITOR = (
30    f"{LOG_FILE_BASE_FOLDER}/pi_portal.contact_switch.log"
31)
32LOG_FILE_METRICS = f"{LOG_FILE_BASE_FOLDER}/pi_portal.metrics.log"
33LOG_FILE_TASK_SCHEDULER = f"{LOG_FILE_BASE_FOLDER}/pi_portal.tasks.log"
34LOG_FILE_TEMPERATURE_MONITOR = (
35    f"{LOG_FILE_BASE_FOLDER}/pi_portal.temperature.log"
36)
37
38LOG_PREFIX_SUPERVISOR = "/var/log/supervisor/supervisor"
39
40PATH_ARCHIVAL_QUEUE_LOG_UPLOAD = os.path.join(
41    PI_PORTAL_INSTALL_LOCATION,
42    "queue_logs",
43)
44PATH_ARCHIVAL_QUEUE_VIDEO_UPLOAD = os.path.join(
45    PI_PORTAL_INSTALL_LOCATION,
46    "queue_videos",
47)
48PATH_CAMERA_BINARY = "/usr/bin/motion"
49PATH_CAMERA_CONFIG = "/etc/motion/motion.conf"
50PATH_CAMERA_CONTENT = "/var/lib/motion"
51PATH_CAMERA_RUN = "/var/run/motion"
52PATH_FILEBEAT_BINARY = os.getenv(
53    "PI_PORTAL_FILEBEAT_LOCATION",
54    "/usr/bin/filebeat",
55)
56PATH_FILEBEAT_CONFIG = "/etc/filebeat/filebeat.yml"
57PATH_FILEBEAT_CONTENT = "/var/lib/filebeat"
58PATH_SUPERVISOR_CONFIG = "/etc/supervisor/supervisord.conf"
59PATH_SUPERVISOR_SOCKET = "/var/run/supervisor.sock"
60PATH_TASKS_SERVICE_DATABASES = os.path.join(
61    PI_PORTAL_INSTALL_LOCATION,
62    "db",
63)
64PATH_USER_CONFIG = "/etc/pi_portal/config.json"
65
66PID_FILE_MOTION = os.path.join(
67    PATH_CAMERA_RUN,
68    "motion.pid",
69)
70PID_FILE_SUPERVISORD = '/var/run/supervisord.pid'
71
72PI_PORTAL_SHIM = "/usr/bin/portal"
73PI_PORTAL_USER = "pi_portal"