Coverage for custom_components/remote_logger/syslog/const.py: 100%
12 statements
« prev ^ index » next coverage.py v7.10.6, created at 2026-02-18 22:41 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2026-02-18 22:41 +0000
1import voluptuous as vol
3from custom_components.remote_logger.const import (
4 CONF_APP_NAME,
5 CONF_BATCH_MAX_SIZE,
6 CONF_FACILITY,
7 CONF_HOST,
8 CONF_PORT,
9 CONF_PROTOCOL,
10 CONF_USE_TLS,
11 DEFAULT_BATCH_MAX_SIZE,
12 DEFAULT_USE_TLS,
13)
15# Syslog severity mapping: HA log level string -> RFC 5424 severity code
16SYSLOG_SEVERITY_MAP: dict[str, int] = {
17 "DEBUG": 7,
18 "INFO": 6,
19 "WARNING": 4,
20 "ERROR": 3,
21 "CRITICAL": 2,
22}
24DEFAULT_SYSLOG_SEVERITY = 6 # Informational
26# Syslog facility mapping: name -> numeric code
27SYSLOG_FACILITY_MAP: dict[str, int] = {
28 "kern": 0,
29 "user": 1,
30 "mail": 2,
31 "daemon": 3,
32 "auth": 4,
33 "syslog": 5,
34 "lpr": 6,
35 "news": 7,
36 "local0": 16,
37 "local1": 17,
38 "local2": 18,
39 "local3": 19,
40 "local4": 20,
41 "local5": 21,
42 "local6": 22,
43 "local7": 23,
44}
46# Syslog defaults
47DEFAULT_SYSLOG_PORT = 514
48PROTOCOL_UDP = "udp"
49PROTOCOL_TCP = "tcp"
50DEFAULT_PROTOCOL = PROTOCOL_UDP
51DEFAULT_APP_NAME = "homeassistant"
52DEFAULT_FACILITY = "local0"
54SYSLOG_DATA_SCHEMA = vol.Schema({
55 vol.Required(CONF_HOST): str,
56 vol.Optional(CONF_PORT, default=DEFAULT_SYSLOG_PORT): int,
57 vol.Optional(CONF_PROTOCOL, default=DEFAULT_PROTOCOL): vol.In([PROTOCOL_UDP, PROTOCOL_TCP]),
58 vol.Optional(CONF_USE_TLS, default=DEFAULT_USE_TLS): bool,
59 vol.Optional(CONF_APP_NAME, default=DEFAULT_APP_NAME): str,
60 vol.Optional(CONF_FACILITY, default=DEFAULT_FACILITY): vol.In(list(SYSLOG_FACILITY_MAP.keys())),
61 vol.Optional(CONF_BATCH_MAX_SIZE, default=DEFAULT_BATCH_MAX_SIZE): vol.All(int, vol.Range(min=1, max=10000)),
62})