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);