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