def parse_config(conf,server_list):
"""Parse site config and create a list of Server objects"""
try:
xml_file = parse(conf)
except IOError, errno:
print >> sys.stderr, "Cannont open file for parsing", conf.name, errno.args
sys.exit(1)
for srv in xml_file.getElementsByTagName('server'):
# Get server attributes, and create Server object
try:
tmp_srv = Server(srv.getAttribute('name'))
tmp_srv.mail_after_error_percentage = srv.getAttribute('mail_after_error_percentage')
tmp_srv.sms_after_error_percentage = srv.getAttribute('sms_after_error_percentage')
except ValueError, errno:
print >> sys.stderr, "Bad values in config", errno.args
sys.exit(1)
# Step into websites now
for site in srv.getElementsByTagName('website'):
try:
tmp_site = Website(site.getAttribute('url'))
tmp_site.mail_after_errors = site.getAttribute('mail_after_errors')
tmp_site.sms_after_errors = site.getAttribute('sms_after_errors')
response = site.getAttribute('response')
if response != '':
tmp_site.response = int(response)
except ValueError, errno:
print >> sys.stderr, "Bad values in config", errno.args
sys.exit(1)
tmp_srv.websites.append(tmp_site)
server_list.append(tmp_srv);