summaryrefslogtreecommitdiff
path: root/kvmd
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2020-05-17 15:24:29 +0300
committerDevaev Maxim <[email protected]>2020-05-17 16:09:58 +0300
commit1fd33bc8ed29c3aaeb6c9971e5879c04113246a3 (patch)
treedb022c9c291fdd2495ddd02aa89b532ce4d011cc /kvmd
parent1251b8d705c5a48a78290b2d25cd4de048245035 (diff)
refactoring
Diffstat (limited to 'kvmd')
-rw-r--r--kvmd/__init__.py5
-rw-r--r--kvmd/apps/ipmi/server.py4
-rw-r--r--kvmd/apps/kvmd/streamer.py4
-rw-r--r--kvmd/apps/vnc/__init__.py12
-rw-r--r--kvmd/apps/vnc/server.py12
-rw-r--r--kvmd/clients/__init__.py20
-rw-r--r--kvmd/clients/kvmd.py (renamed from kvmd/apps/vnc/kvmd.py)4
-rw-r--r--kvmd/clients/streamer.py (renamed from kvmd/apps/vnc/streamer.py)6
-rw-r--r--kvmd/plugins/auth/http.py4
9 files changed, 51 insertions, 20 deletions
diff --git a/kvmd/__init__.py b/kvmd/__init__.py
index f8f6240a..ff113b33 100644
--- a/kvmd/__init__.py
+++ b/kvmd/__init__.py
@@ -21,3 +21,8 @@
__version__ = "1.59"
+
+
+# =====
+def make_user_agent(app: str) -> str:
+ return f"{app}/{__version__}"
diff --git a/kvmd/apps/ipmi/server.py b/kvmd/apps/ipmi/server.py
index 0201214f..c53d3ddc 100644
--- a/kvmd/apps/ipmi/server.py
+++ b/kvmd/apps/ipmi/server.py
@@ -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:
diff --git a/kvmd/apps/kvmd/streamer.py b/kvmd/apps/kvmd/streamer.py
index f5bd6b1f..b31f369f 100644
--- a/kvmd/apps/kvmd/streamer.py
+++ b/kvmd/apps/kvmd/streamer.py
@@ -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()
diff --git a/kvmd/apps/vnc/__init__.py b/kvmd/apps/vnc/__init__.py
index 8bd9be63..9bcc9d27 100644
--- a/kvmd/apps/vnc/__init__.py
+++ b/kvmd/apps/vnc/__init__.py
@@ -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()
diff --git a/kvmd/apps/vnc/server.py b/kvmd/apps/vnc/server.py
index baec8d36..b860b261 100644
--- a/kvmd/apps/vnc/server.py
+++ b/kvmd/apps/vnc/server.py
@@ -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
diff --git a/kvmd/clients/__init__.py b/kvmd/clients/__init__.py
new file mode 100644
index 00000000..1e91f7fa
--- /dev/null
+++ b/kvmd/clients/__init__.py
@@ -0,0 +1,20 @@
+# ========================================================================== #
+# #
+# KVMD - The main Pi-KVM daemon. #
+# #
+# Copyright (C) 2018 Maxim Devaev <[email protected]> #
+# #
+# 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/>. #
+# #
+# ========================================================================== #
diff --git a/kvmd/apps/vnc/kvmd.py b/kvmd/clients/kvmd.py
index ebea5554..1e756ae9 100644
--- a/kvmd/apps/vnc/kvmd.py
+++ b/kvmd/clients/kvmd.py
@@ -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:
diff --git a/kvmd/apps/vnc/streamer.py b/kvmd/clients/streamer.py
index 094f5081..5e068425 100644
--- a/kvmd/apps/vnc/streamer.py
+++ b/kvmd/clients/streamer.py
@@ -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)
diff --git a/kvmd/plugins/auth/http.py b/kvmd/plugins/auth/http.py
index 4cba34fe..2daf5540 100644
--- a/kvmd/plugins/auth/http.py
+++ b/kvmd/plugins/auth/http.py
@@ -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: