2 - def __init__(self, name, members="", hosts="", services="", threshold="", parent="", comment=""):
11
13 ret = "HostGroup: " + self.name + " threshold: " + str(self.threshold) + " parent: " + self.parent + "\n"
14 ret += "members: {\n"
15 for itm in self.members:
16 ret += str(itm) + "\n"
17 ret += "}\n"
18 ret += "hosts: {\n"
19 for itm in self.hosts:
20 ret += str(itm) + "\n"
21 ret += "}\n"
22 ret += "services: {\n"
23 for itm in self.services:
24 ret += str(itm) + "\n"
25 ret += "}\n"
26 return ret
27
28
33
35 return "HostgroupService { " + str(self.service) + ", " + str(self.periods) + "}"
36
37
39 parsedHostGroups = []
40 for hgname, hgValues in hostgroups.items():
41 hostGroup = HostGroup(hgname)
42 hostGroup.members = filter(lambda m: m.nameid in hgValues['members'], members)
43 hostGroup.hosts = filter(lambda h: h.name in hgValues['hosts'], hosts)
44 hostGroup.threshold = hgValues['threshold']
45 if 'parent' in hgValues:
46 hostGroup.parent = hgValues['parent']
47 hostGroup.services = []
48 for serviceName, servicePeriods in hgValues['services'].items():
49 service = filter(lambda s: s.name in serviceName, services)
50 if len(service) == 0:
51 log.w("Service " + serviceName + " is not defined for Hostgroup " + hgname)
52 continue
53 service = service[0]
54 hostGroupPeriods = filter(lambda p: p.name in servicePeriods, periods)
55 hostGroup.services.append(HostGroupService(service, hostGroupPeriods))
56 parsedHostGroups.append(hostGroup)
57 return parsedHostGroups
58