Completed
Push — master ( aa9a3d...5e72be )
by Daniel
01:05
created

ServerManagerApplication.__init__()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
1
from groundwork.util import gw_get
2
3
4
class ServerManagerPlugin():
5
6
    def __init__(self, plugin):
7
        self.plugin = plugin
8
        self.log = plugin.log
9
        self.app = plugin.app
10
11
    def register(self, name, function, description):
12
        return self.app.web.servers.register(name, function, description, self.plugin)
13
14
    def get(self, name=None):
15
        """
16
        Returns servers, which can be filtered by name.
17
18
        :param name: name of the server
19
        :type name: str
20
        :return: None, single server or dict of servers
21
        """
22
        return self.app.web.servers.get(name, self.plugin)
23
24
25
class ServerManagerApplication:
26
    def __init__(self, app):
27
        self._servers = {}
28
        self.app = app
29
30
    def register(self, name, function, description, plugin):
31
        if name not in self._servers.keys():
32
            self._servers[name] = Server(name, function, description, plugin)
33
34
    def get(self, name=None, plugin=None):
35
        """
36
        Returns servers, which can be filtered by name or plugin.
37
38
        :param name: name of the server
39
        :type name: str
40
        :param plugin: plugin name, which registers the servers
41
        :return: None, single server or dict of servers
42
        """
43
        return gw_get(self._servers, name, plugin)
44
45
46
class Server():
47
    def __init__(self, name, function, description, plugin):
48
        self.name = name
49
        self.function = function
50
        self.description = description
51
        self.plugin = plugin
52