Map both persistent and volatile journald logs (#2765)

* Map both persistent and volatile journald logs

* Code comment tweak
This commit is contained in:
Franck Nijhof 2021-03-29 11:46:47 +02:00 committed by GitHub
parent c43acd50f4
commit 816e0d503a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 30 deletions

View File

@ -417,17 +417,16 @@ class DockerAddon(DockerInterface):
# System Journal access
if self.addon.with_journald:
# Systemd uses volatile by default, unless persistent location exists.
journal = SYSTEMD_JOURNAL_VOLATILE
if SYSTEMD_JOURNAL_PERSISTENT.exists():
journal = SYSTEMD_JOURNAL_PERSISTENT
volumes.update(
{
str(journal): {
str(SYSTEMD_JOURNAL_PERSISTENT): {
"bind": str(SYSTEMD_JOURNAL_PERSISTENT),
"mode": "ro",
}
},
str(SYSTEMD_JOURNAL_VOLATILE): {
"bind": str(SYSTEMD_JOURNAL_VOLATILE),
"mode": "ro",
},
}
)

View File

@ -97,36 +97,23 @@ def test_addon_map_folder_defaults(
assert str(docker_addon.sys_config.path_extern_share) not in volumes
def test_journald_addon_volatile(coresys: CoreSys, addonsdata_system: Dict[str, Data]):
"""Validate volume for journald option, with volatile logs."""
with patch("pathlib.Path.exists", return_value=False):
docker_addon = get_docker_addon(
coresys, addonsdata_system, "journald-addon-config.json"
)
volumes = docker_addon.volumes
assert str(SYSTEMD_JOURNAL_VOLATILE) in volumes
assert volumes.get(str(SYSTEMD_JOURNAL_VOLATILE)).get("bind") == str(
SYSTEMD_JOURNAL_PERSISTENT
def test_journald_addon(coresys: CoreSys, addonsdata_system: Dict[str, Data]):
"""Validate volume for journald option."""
docker_addon = get_docker_addon(
coresys, addonsdata_system, "journald-addon-config.json"
)
assert volumes.get(str(SYSTEMD_JOURNAL_VOLATILE)).get("mode") == "ro"
def test_journald_addon_persistent(
coresys: CoreSys, addonsdata_system: Dict[str, Data]
):
"""Validate volume for journald option, with persistent logs."""
with patch("pathlib.Path.exists", return_value=True):
docker_addon = get_docker_addon(
coresys, addonsdata_system, "journald-addon-config.json"
)
volumes = docker_addon.volumes
volumes = docker_addon.volumes
assert str(SYSTEMD_JOURNAL_PERSISTENT) in volumes
assert volumes.get(str(SYSTEMD_JOURNAL_PERSISTENT)).get("bind") == str(
SYSTEMD_JOURNAL_PERSISTENT
)
assert volumes.get(str(SYSTEMD_JOURNAL_PERSISTENT)).get("mode") == "ro"
assert str(SYSTEMD_JOURNAL_VOLATILE) in volumes
assert volumes.get(str(SYSTEMD_JOURNAL_VOLATILE)).get("bind") == str(
SYSTEMD_JOURNAL_VOLATILE
)
assert volumes.get(str(SYSTEMD_JOURNAL_VOLATILE)).get("mode") == "ro"
def test_not_journald_addon(coresys: CoreSys, addonsdata_system: Dict[str, Data]):