automatic choosing journald services

This commit is contained in:
Devaev Maxim 2018-11-17 11:20:10 +03:00
parent 0bf39f56e2
commit 43f161f9c4
5 changed files with 11 additions and 27 deletions

View File

@ -10,11 +10,6 @@ kvmd:
info: info:
meta: /etc/kvmd/meta.yaml meta: /etc/kvmd/meta.yaml
log:
services:
- kvmd.service
- kvmd-tc358743.service
hid: hid:
pinout: pinout:
reset: 4 reset: 4

View File

@ -10,11 +10,6 @@ kvmd:
info: info:
meta: /etc/kvmd/meta.yaml meta: /etc/kvmd/meta.yaml
log:
services:
- kvmd.service
- kvmd-tc358743.service
hid: hid:
pinout: pinout:
reset: 4 reset: 4

View File

@ -22,10 +22,7 @@ def main() -> None:
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
http_session = aiohttp.ClientSession(loop=loop) http_session = aiohttp.ClientSession(loop=loop)
log = Log( log = Log(loop)
services=list(config["log"]["services"]),
loop=loop,
)
hid = Hid( hid = Hid(
reset=int(config["hid"]["pinout"]["reset"]), reset=int(config["hid"]["pinout"]["reset"]),

View File

@ -1,9 +1,9 @@
import sys import sys
import re
import asyncio import asyncio
import logging import logging
import time import time
from typing import List
from typing import Dict from typing import Dict
from typing import AsyncGenerator from typing import AsyncGenerator
@ -24,13 +24,7 @@ def get_logger(depth: int=1) -> logging.Logger:
class Log: class Log:
def __init__( def __init__(self, loop: asyncio.AbstractEventLoop) -> None:
self,
services: List[str],
loop: asyncio.AbstractEventLoop,
) -> None:
self.__services = services
self.__loop = loop self.__loop = loop
async def poll_log(self, seek: int, follow: bool) -> AsyncGenerator[Dict, None]: async def poll_log(self, seek: int, follow: bool) -> AsyncGenerator[Dict, None]:
@ -38,7 +32,14 @@ class Log:
reader.this_boot() reader.this_boot()
reader.this_machine() reader.this_machine()
reader.log_level(systemd.journal.LOG_DEBUG) reader.log_level(systemd.journal.LOG_DEBUG)
for service in self.__services:
services = set(
service
for service in systemd.journal.Reader().query_unique("_SYSTEMD_UNIT")
if re.match(r"kvmd(-\w+)?\.service", service)
).union(["kvmd.service"])
for service in services:
reader.add_match(_SYSTEMD_UNIT=service) reader.add_match(_SYSTEMD_UNIT=service)
if seek > 0: if seek > 0:
reader.seek_realtime(float(time.time() - seek)) reader.seek_realtime(float(time.time() - seek))

View File

@ -7,10 +7,6 @@ kvmd:
info: info:
meta: /etc/kvmd/meta.yaml meta: /etc/kvmd/meta.yaml
log:
services:
- kvmd.service
hid: hid:
pinout: pinout:
reset: 4 reset: 4