refactoring

This commit is contained in:
Devaev Maxim 2020-05-17 15:24:29 +03:00
parent 1251b8d705
commit 1fd33bc8ed
10 changed files with 52 additions and 20 deletions

View File

@ -21,3 +21,8 @@
__version__ = "1.59"
# =====
def make_user_agent(app: str) -> str:
return f"{app}/{__version__}"

View File

@ -36,7 +36,7 @@ from pyghmi.ipmi.private.serversession import ServerSession as IpmiServerSession
from ...logging import get_logger
from ... import __version__
from ... import make_user_agent
from .auth import IpmiAuthManager
@ -169,7 +169,7 @@ class IpmiServer(BaseIpmiServer): # pylint: disable=too-many-instance-attribute
headers={
"X-KVMD-User": credentials.kvmd_user,
"X-KVMD-Passwd": credentials.kvmd_passwd,
"User-Agent": f"KVMD-IPMI/{__version__}",
"User-Agent": make_user_agent("KVMD-IPMI"),
},
timeout=self.__kvmd_timeout,
) as response:

View File

@ -38,7 +38,7 @@ from ...logging import get_logger
from ... import aiotools
from ... import gpio
from ... import __version__
from ... import make_user_agent
# =====
@ -180,7 +180,7 @@ class Streamer: # pylint: disable=too-many-instance-attributes
try:
async with session.get(
url=f"http://{self.__host}:{self.__port}/state",
headers={"User-Agent": f"KVMD/{__version__}"},
headers={"User-Agent": make_user_agent("KVMD")},
timeout=self.__timeout,
) as response:
response.raise_for_status()

View File

@ -23,10 +23,13 @@
from typing import List
from typing import Optional
from ...clients.kvmd import KvmdClient
from ...clients.streamer import StreamerClient
from ... import make_user_agent
from .. import init
from .kvmd import KvmdClient
from .streamer import StreamerClient
from .vncauth import VncAuthManager
from .server import VncServer
from .keysym import build_symmap
@ -53,6 +56,9 @@ def main(argv: Optional[List[str]]=None) -> None:
symmap=build_symmap(config.keymap),
kvmd=KvmdClient(**config.kvmd._unpack()),
streamer=StreamerClient(**config.streamer._unpack()),
streamer=StreamerClient(
user_agent=make_user_agent("KVMD-VNC"),
**config.streamer._unpack(),
),
vnc_auth_manager=VncAuthManager(**config.auth.vncauth._unpack()),
).run()

View File

@ -34,6 +34,12 @@ import aiohttp
from ...logging import get_logger
from ...clients.kvmd import KvmdError
from ...clients.kvmd import KvmdClient
from ...clients.streamer import StreamerError
from ...clients.streamer import StreamerClient
from ... import aiotools
from .rfb import RfbClient
@ -44,12 +50,6 @@ from .rfb.errors import RfbError
from .vncauth import VncAuthKvmdCredentials
from .vncauth import VncAuthManager
from .kvmd import KvmdError
from .kvmd import KvmdClient
from .streamer import StreamerError
from .streamer import StreamerClient
from .render import make_text_jpeg

20
kvmd/clients/__init__.py Normal file
View File

@ -0,0 +1,20 @@
# ========================================================================== #
# #
# KVMD - The main Pi-KVM daemon. #
# #
# Copyright (C) 2018 Maxim Devaev <mdevaev@gmail.com> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
# #
# ========================================================================== #

View File

@ -27,7 +27,7 @@ from typing import AsyncGenerator
import aiohttp
from ... import __version__
from .. import make_user_agent
# =====
@ -106,7 +106,7 @@ class KvmdClient:
"headers": {
"X-KVMD-User": user,
"X-KVMD-Passwd": passwd,
"User-Agent": f"KVMD-VNC/{__version__}",
"User-Agent": make_user_agent("KVMD-VNC"),
},
}
if self.__unix_path:

View File

@ -26,8 +26,6 @@ from typing import AsyncGenerator
import aiohttp
from ... import __version__
# =====
class StreamerError(Exception):
@ -43,6 +41,7 @@ class StreamerClient:
port: int,
unix_path: str,
timeout: float,
user_agent: str,
) -> None:
assert port or unix_path
@ -50,6 +49,7 @@ class StreamerClient:
self.__port = port
self.__unix_path = unix_path
self.__timeout = timeout
self.__user_agent = user_agent
async def read(self) -> AsyncGenerator[Tuple[bool, int, int, bytes], None]:
try:
@ -57,7 +57,7 @@ class StreamerClient:
async with session.get(
url=f"http://{self.__host}:{self.__port}/stream",
params={"extra_headers": "1"},
headers={"User-Agent": f"KVMD-VNC/{__version__}"},
headers={"User-Agent": self.__user_agent},
) as response:
response.raise_for_status()
reader = aiohttp.MultipartReader.from_response(response)

View File

@ -33,7 +33,7 @@ from ...validators.basic import valid_float_f01
from ...logging import get_logger
from ... import __version__
from ... import make_user_agent
from . import BaseAuthService
@ -85,7 +85,7 @@ class Plugin(BaseAuthService):
"secret": self.__secret,
},
headers={
"User-Agent": f"KVMD/{__version__}",
"User-Agent": make_user_agent("KVMD"),
"X-KVMD-User": user,
},
) as response:

View File

@ -86,6 +86,7 @@ def main() -> None:
"kvmd.plugins.atx",
"kvmd.plugins.msd",
"kvmd.plugins.msd.otg",
"kvmd.clients",
"kvmd.apps",
"kvmd.apps.kvmd",
"kvmd.apps.kvmd.api",