diff options
author | Devaev Maxim <[email protected]> | 2019-12-09 02:26:48 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2019-12-09 02:26:48 +0300 |
commit | 3048fc79233f1ece909dee0f100e72a2f3f5a639 (patch) | |
tree | 834e0ab68541ecf0f58a4100f90ca0836b6f9bf5 | |
parent | dd52a85cf6c21c5a7743acad152d8378f1ae0ef4 (diff) |
very common exceptions
-rw-r--r-- | kvmd/apps/kvmd/server.py | 15 | ||||
-rw-r--r-- | kvmd/apps/kvmd/wol.py | 4 | ||||
-rw-r--r-- | kvmd/errors.py | 28 | ||||
-rw-r--r-- | kvmd/plugins/atx/__init__.py | 7 | ||||
-rw-r--r-- | kvmd/plugins/msd/__init__.py | 15 | ||||
-rw-r--r-- | kvmd/plugins/msd/otg/__init__.py | 2 | ||||
-rw-r--r-- | kvmd/plugins/msd/relay.py | 2 |
7 files changed, 52 insertions, 21 deletions
diff --git a/kvmd/apps/kvmd/server.py b/kvmd/apps/kvmd/server.py index cd687918..70d02582 100644 --- a/kvmd/apps/kvmd/server.py +++ b/kvmd/apps/kvmd/server.py @@ -42,16 +42,13 @@ import setproctitle from ...logging import get_logger +from ...errors import OperationError +from ...errors import IsBusyError + from ...plugins import BasePlugin from ...plugins.hid import BaseHid - -from ...plugins.atx import AtxOperationError -from ...plugins.atx import AtxIsBusyError from ...plugins.atx import BaseAtx - -from ...plugins.msd import MsdOperationError -from ...plugins.msd import MsdIsBusyError from ...plugins.msd import BaseMsd from ...validators import ValidatorError @@ -71,8 +68,6 @@ from .auth import AuthManager from .info import InfoManager from .logreader import LogReader from .streamer import Streamer - -from .wol import WolDisabledError from .wol import WakeOnLan from .http import UnauthorizedError @@ -337,9 +332,9 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins return (await exposed.handler(request)) - except (AtxIsBusyError, MsdIsBusyError) as err: + except IsBusyError as err: return make_json_exception(err, 409) - except (ValidatorError, AtxOperationError, MsdOperationError, WolDisabledError) as err: + except (ValidatorError, OperationError) as err: return make_json_exception(err, 400) except UnauthorizedError as err: return make_json_exception(err, 401) diff --git a/kvmd/apps/kvmd/wol.py b/kvmd/apps/kvmd/wol.py index 40c40d1d..ea62aea1 100644 --- a/kvmd/apps/kvmd/wol.py +++ b/kvmd/apps/kvmd/wol.py @@ -27,11 +27,13 @@ from typing import Optional from ...logging import get_logger +from ...errors import OperationError + from ... import aiotools # ===== -class WolDisabledError(Exception): +class WolDisabledError(OperationError): def __init__(self) -> None: super().__init__("WoL is disabled") diff --git a/kvmd/errors.py b/kvmd/errors.py new file mode 100644 index 00000000..8103b16c --- /dev/null +++ b/kvmd/errors.py @@ -0,0 +1,28 @@ +# ========================================================================== # +# # +# 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/>. # +# # +# ========================================================================== # + + +class OperationError(Exception): + pass + + +class IsBusyError(Exception): + pass diff --git a/kvmd/plugins/atx/__init__.py b/kvmd/plugins/atx/__init__.py index a593929e..b536ef87 100644 --- a/kvmd/plugins/atx/__init__.py +++ b/kvmd/plugins/atx/__init__.py @@ -24,6 +24,9 @@ from typing import Dict from typing import AsyncGenerator from typing import Type +from ...errors import OperationError +from ...errors import IsBusyError + from .. import BasePlugin from .. import get_plugin_class @@ -33,11 +36,11 @@ class AtxError(Exception): pass -class AtxOperationError(AtxError): +class AtxOperationError(OperationError, AtxError): pass -class AtxIsBusyError(AtxOperationError): +class AtxIsBusyError(IsBusyError, AtxError): def __init__(self) -> None: super().__init__("Performing another ATX operation, please try again later") diff --git a/kvmd/plugins/msd/__init__.py b/kvmd/plugins/msd/__init__.py index f43a40c2..95c0f0d0 100644 --- a/kvmd/plugins/msd/__init__.py +++ b/kvmd/plugins/msd/__init__.py @@ -27,6 +27,9 @@ from typing import Type from typing import AsyncGenerator from typing import Optional +from ...errors import OperationError +from ...errors import IsBusyError + from .. import BasePlugin from .. import get_plugin_class @@ -36,10 +39,15 @@ class MsdError(Exception): pass -class MsdOperationError(MsdError): +class MsdOperationError(OperationError, MsdError): pass +class MsdIsBusyError(IsBusyError, MsdError): + def __init__(self) -> None: + super().__init__("Performing another MSD operation, please try again later") + + class MsdOfflineError(MsdOperationError): def __init__(self) -> None: super().__init__("MSD is not found") @@ -70,11 +78,6 @@ class MsdImageExistsError(MsdOperationError): super().__init__("This image is already exists") -class MsdIsBusyError(MsdOperationError): - def __init__(self) -> None: - super().__init__("Performing another MSD operation, please try again later") - - class MsdMultiNotSupported(MsdOperationError): def __init__(self) -> None: super().__init__("This MSD does not support storing multiple images") diff --git a/kvmd/plugins/msd/otg/__init__.py b/kvmd/plugins/msd/otg/__init__.py index d8a5e9b7..41e1653f 100644 --- a/kvmd/plugins/msd/otg/__init__.py +++ b/kvmd/plugins/msd/otg/__init__.py @@ -48,13 +48,13 @@ from .... import aiotools from .... import aioregion from .. import MsdError +from .. import MsdIsBusyError from .. import MsdOfflineError from .. import MsdConnectedError from .. import MsdDisconnectedError from .. import MsdImageNotSelected from .. import MsdUnknownImageError from .. import MsdImageExistsError -from .. import MsdIsBusyError from .. import BaseMsd from . import fs diff --git a/kvmd/plugins/msd/relay.py b/kvmd/plugins/msd/relay.py index 1bec7d48..4e621cc2 100644 --- a/kvmd/plugins/msd/relay.py +++ b/kvmd/plugins/msd/relay.py @@ -53,10 +53,10 @@ from ...validators.os import valid_abs_path from ...validators.hw import valid_gpio_pin from . import MsdError +from . import MsdIsBusyError from . import MsdOfflineError from . import MsdConnectedError from . import MsdDisconnectedError -from . import MsdIsBusyError from . import MsdMultiNotSupported from . import MsdCdromNotSupported from . import BaseMsd |