def main(): options, args = get_args() if options.debug: log.setLevel(logging.DEBUG) elif options.verbose: log.setLevel(logging.INFO) elif options.quite: log.setLevel(logging.ERROR) else: log.setLevel(logging.WARN) #Pull from the yaml file def_file = open(args[0], 'r') dns_def = yaml.load(def_file) zones = dns_def['zones'] #Get the connection conn = boto.connect_route53(dns_def['access_id'], dns_def['secret_key']) if options.dry_run: log.warn("Doing a dry-run, only reporting actions.") for name, zone_file in zones.iteritems(): r53zone = Zone(conn, name) if r53zone.exists(): if options.terminate: r53zone.remove(options.dry_run) elif options.show: print str(r53zone) else: r53zone.update(zone_file, options.dry_run) elif options.show or options.terminate: log.warn('Zone %s does not exist' % (name)) else: r53zone.create(zone_file, options.dry_run)