summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/nfs/exception.py
blob: 6c6e3d9f35468578993fe119d439e8cb5df7ae0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import errno
from typing import Optional


class NFSException(Exception):
    def __init__(self, err_msg: str, errno: int = -1) -> None:
        super(NFSException, self).__init__(errno, err_msg)
        self.errno = errno
        self.err_msg = err_msg

    def __str__(self) -> str:
        return self.err_msg


class NFSInvalidOperation(NFSException):
    def __init__(self, err_msg: str) -> None:
        super(NFSInvalidOperation, self).__init__(err_msg, -errno.EINVAL)


class NFSObjectNotFound(NFSException):
    def __init__(self, err_msg: str) -> None:
        super(NFSObjectNotFound, self).__init__(err_msg, -errno.ENOENT)


class FSNotFound(NFSObjectNotFound):
    def __init__(self, fs_name: Optional[str]) -> None:
        super(FSNotFound, self).__init__(f'filesystem {fs_name} not found')


class ClusterNotFound(NFSObjectNotFound):
    def __init__(self) -> None:
        super(ClusterNotFound, self).__init__('cluster does not exist')