cleaned linspector ,refactored command-line parsing, and fixed the Logger

This commit is contained in:
Rafael.Timmerberg 2013-05-24 02:50:10 +02:00
commit 5b09f02d68
8 changed files with 445 additions and 213 deletions

View file

@ -9,7 +9,7 @@ from hostgroups import parseHostGroupList
class Config:
def __init__(self, configFile):
def __init__(self, configFile, log):
self.configfile = configFile
f = open(configFile)
self.config = f.read()
@ -21,16 +21,16 @@ class Config:
self.filters = parseFilterList(self.dict['filters'])
self.members = parseMemberList(self.dict['members'], self.filters)
self.members = parseMemberList(self.dict['members'], self.filters, log)
self.periods = parsePeriodList(self.dict['periods'])
self.hosts = parseHostList(self.dict['hosts'], self.services)
self.hosts = parseHostList(self.dict['hosts'], self.services, log)
self.hostgroups = parseHostGroupList(self.dict['hostgroups'],
self.hosts,
self.members,
self.periods,
self.services)
self.services, log)
#self.layouts = LayoutList(self.dict['layouts'], self.hostgroups)

View file

@ -35,7 +35,7 @@ class HostGroupService:
return "HostgroupService { " + str(self.service) + ", " + str(self.periods) + "}"
def parseHostGroupList(hostgroups, hosts, members, periods, services):
def parseHostGroupList(hostgroups, hosts, members, periods, services, log):
parsedHostGroups = []
for hgname, hgValues in hostgroups.items():
hostGroup = HostGroup(hgname)
@ -47,8 +47,8 @@ def parseHostGroupList(hostgroups, hosts, members, periods, services):
hostGroup.services = []
for serviceName, servicePeriods in hgValues['services'].items():
service = filter(lambda s: s.name in serviceName, services)
if not service:
print "warning: Service " + serviceName + " is not defined for Hostgroup " + hgname
if len(service) == 0:
log.w("Service " + serviceName + " is not defined for Hostgroup " + hgname)
continue
service = service[0]
hostGroupPeriods = filter(lambda p: p.name in servicePeriods, periods)

View file

@ -41,7 +41,7 @@ class HostService:
return ret;
def parseHostList(hosts, services):
def parseHostList(hosts, services, log):
'''parse the HostList and replace any command as nessesary '''
#precompiled regexPattern which finds replacements in service strings
pattern = re.compile("@(\w+)")
@ -79,7 +79,7 @@ def parseHostList(hosts, services):
#any remainig parm should be a replacement
for parm in params:
if parm not in replacements:
print "warning: undefined parameter: " + parm + " in host " + host.name + " from service " + service.name
log.w("undefined parameter: " + parm + " in host " + host.name + " from service " + service.name)
continue
#replace our ServiceCommand with the parameter_value (search, replacement, string)
hostService.setCommand(re.sub('@' + parm, params[parm], hostService.getCommand()))
@ -91,14 +91,14 @@ def parseHostList(hosts, services):
#replacements should be empty now.
#If not we cannot use this command as some values are missing
if replacements:
print "warning: Hostservice " + servicename + " from host " + host.name + " is ignored because of missing replacements: " + str(
replacements)
log.w("Hostservice " + servicename + " from host " + host.name + " is ignored because of missing replacements: " + str(
replacements))
else:
#anything ok! add to our valid hostServices
hostServices.append(hostService)
#we could't find the service defined in this host. Service ignored!
if not found:
print "warning: Service " + servicename + " not defined in host " + host.name
log.w("Service " + servicename + " not defined in host " + host.name)
#replace host.service member by parsed HostService Objects
host.services = hostServices
return parsedHosts

View file

@ -26,7 +26,7 @@ class MemberFilter:
return "Filter:" + str(self.filter) + " Value:" + self.value
def parseMemberList(members, filters):
def parseMemberList(members, filters, log):
parsedMembers = [Member(nameid, **values) for nameid, values in members.items()]
for member in parsedMembers:
mFilter = []
@ -39,6 +39,6 @@ def parseMemberList(members, filters):
memberFilter.command = re.sub('@member', replacement, filt.command)
mFilter.append(memberFilter)
if not found:
print "warning: filter: " + filtername + " is not defined in member " + member.name
log.w("filter: " + filtername + " is not defined in member " + member.name)
member.filters = mFilter
return parsedMembers