Package linspector :: Package lib :: Package config :: Module layouts
[hide private]
[frames] | no frames]

Source Code for Module linspector.lib.config.layouts

1 -class LayoutException(Exception):
2 - def __init__(self, msg):
3 self.msg = msg
4
5 - def __str__(self):
6 return repr(self.msg)
7 8
9 -class Layout:
10 - def __init__(self, name, enabled=False, hostgroups=None):
11 self._name = name 12 self._enabled = enabled 13 14 if hostgroups is None or len(hostgroups) <= 0: 15 raise LayoutException("Layout: " + self._name + " without hostgroups is useless") 16 else: 17 self._hostgroups = hostgroups
18
19 - def _to_config_dict(self, configDict):
20 me = {} 21 me["hostgroups"] = [hg.name for hg in self.get_hostgroups()] 22 me["enabled"] = self.is_enabled() 23 configDict["layouts"][self.get_name()] = me 24 for hostgroup in self.get_hostgroups(): 25 hostgroup._to_config_dict(configDict)
26
27 - def get_name(self):
28 return self._name
29
30 - def is_enabled(self):
31 return self._enabled
32
33 - def get_hostgroups(self):
34 return self._hostgroups
35
36 - def __str__(self):
37 ret = "Layout: 'Name:" + str(self.name) + "', 'Enabled: " + str(self.enabled) + " " 38 for group in self.hostgroups: 39 ret += str(group) 40 return ret
41 42
43 -class LayoutList:
44 - def __init__(self, layouts, hostgroups):
45 self.layouts = [] 46 self.dict = layouts 47 self.plugins = [] 48 for k, v in layouts.items(): 49 if k in ("plugins", "Plugins"): 50 self.plugins = v 51 continue 52 else: 53 l = Layout(k) 54 for k1, v1 in v.items(): 55 if k1 in ("enabled", "Enabled"): 56 l.enabled = v1 57 elif k1 in ("hostgroups", "Hostgroups"): 58 l.hostgroups = [] 59 for group in v1: 60 h = None 61 for hostg in hostgroups: 62 if hostg.name == group: 63 h = hostg 64 break 65 if h is not None: 66 l.hostgroups.append(h) 67 else: 68 # TODO: replace next line with new logging 69 #logger.logWarningConfig(file="hostgroups", missing=group) 70 pass 71 self.layouts.append(l)
72
73 - def __str__(self):
74 ret = "" 75 ret += "Plugins: " + str(self.plugins) + "\n" 76 for layout in self.layouts: 77 ret += str(layout) + "\n" 78 return ret
79