Esempio n. 1
0
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)