7
8
10 - def __init__(self, missingArgument, hostgroupName):
12
13
44
46 me = {}
47 me["members"] = [member.nameid for member in self.get_members()]
48 me["hosts"] = self.hosts
49 me["parents"] = [hg.get_name() for hg in self.get_parents()]
50
51
52
53 configDict["hostgroups"][self.get_name()] = me
54
56 if isinstance(item, list):
57 l.extend(item)
58 else:
59 l.append(item)
60
63
66
69
72
75
78
81
84
87
90
93
95 ret = "HostGroup: " + self.name + " threshold: " + str(self.threshold) + " parent: " + self.parent + "\n"
96 ret += "members: {\n"
97 for itm in self.members:
98 ret += str(itm) + "\n"
99 ret += "}\n"
100 ret += "hosts: {\n"
101 for itm in self.hosts:
102 ret += str(itm) + "\n"
103 ret += "}\n"
104 ret += "services: {\n"
105 for itm in self.services:
106 ret += str(itm) + "\n"
107 ret += "}\n"
108 return ret
109
110
115
117 return "HostgroupService { " + str([str(s) for s in self.services]) + ", " + str([p.name for p in self.periods]) + "}"
118
119
121 parsedHostGroups = []
122 for hgname, hgValues in hostgroups.items():
123 hostGroup = HostGroup(hgname)
124 hostGroup.members = [m for m in members if m.nameid in hgValues['members']]
125 hostGroup.hosts = [h for h in hosts if h.name in hgValues['hosts']]
126 hostGroup.threshold = hgValues['threshold']
127 if 'parent' in hgValues:
128 hostGroup.parent = hgValues['parent']
129 hostGroup.services = []
130 for serviceName, servicePeriods in hgValues['services'].items():
131 services = []
132 for host in hosts:
133 service = host.getHostServiceByName(serviceName)
134 if service is not None:
135 services.append(service)
136 else:
137 log.w("could not find HostService(" + str(serviceName) + ") for host " + host.name)
138 hostGroupPeriods = [p for p in periods if p.name in servicePeriods]
139 hostGroup.services.append(HostGroupService(services, hostGroupPeriods))
140 parsedHostGroups.append(hostGroup)
141 return parsedHostGroups
142