print("Processed up to change_id %d"%processed[-1])
defprocess_all():
globalconnection
txn=connection.transaction()
fordinDomains.select(connection=txn):
print_domain(d.id,txn=txn)
txn.commit()
defread_config_file(filename):
globalconfig
withopen(filename,'r')asf:
fcontent='[DEFAULT]\n'+f.read()
config.read_string(fcontent)
defmain():
globalstorage
globalknotc_socket
globalsoa_serial
globalfix_absolute
globalconnection
globalslave_mode
globalconf_txn_open
globalknotc_zone_reload
globalknotc_timeout
argp=argparse.ArgumentParser(prog='dns_sql2zf',description="Export DNS records from Mysql or Postgres DB into zonefile.",epilog="(C) CZ.NIC, GPLv3")
argp.add_argument(dest='domains',metavar='zone',nargs='*',help='Zone to be exported.')
argp.add_argument('--db',dest='dburi',metavar='DB_URI',nargs=1,required=True,help='URI of database to export from (example: mysql://user:password@127.0.0.1/powerdns_db).')
argp.add_argument('--storage',dest='storage',metavar='path',nargs=1,help='Storage for the generated zonefile (otherwise current dir).')
argp.add_argument('--all',dest='all',action='store_true',help="Export all zones.")
argp.add_argument('--confile',dest='confile',metavar='file',nargs=1,help='PowerDNS configfile to obtain SOA parameters (otherwise defaults).')
argp.add_argument('--serial',dest='soa_serial',type=int,metavar='uint32',nargs=1,help='SOA serial number (otherwise UNIX timestamp).')
argp.add_argument('--absolute-names',dest='fix_absolute',action='store_true',help="Interpret names in records' contents (e.g. CNAME, NS...) as absolute even if w/o trailing dot.")
argp.add_argument('--from-changes',dest='from_changes',metavar="from_id",nargs='?',const=0,help="Export zones listed in extra 'changes' table.")
argp.add_argument('--knotc',dest='knotc_socket',metavar='knot_socket',nargs=1,help="Notify Knot DNS about changes (requires: $PATH/knotc).")
argp.add_argument('--knotc-timeout',dest='knotc_timeout',type=int,metavar='uint32',nargs=1,help='Timeout for knotc commands (default 10).')
argp.add_argument('--slave',dest='slave',action='store_true',help="Don't generate zonefiles, use 'knotc zone-refresh' instead of zone-reload.")