3 # script to call a netlogon RODC DNS update
6 from optparse
import OptionParser
8 sys
.path
.insert(0, "bin/python")
11 import samba
.getopt
as options
12 from samba
.dcerpc
import netlogon
, winbind
14 ########### main code ###########
15 if __name__
== "__main__":
16 parser
= OptionParser("rodcdns [options]")
17 sambaopts
= options
.SambaOptions(parser
)
19 parser
.add_option("", "--weight", dest
="weight", help="record weight", default
=0, type='int')
20 parser
.add_option("", "--priority", dest
="priority", help="record priority", default
=100, type='int')
21 parser
.add_option("", "--port", dest
="port", help="port number", default
=389, type='int')
22 parser
.add_option("", "--type", dest
="type", help="record type", default
=netlogon
.NlDnsLdapAtSite
, type='int')
23 parser
.add_option("", "--site", dest
="site", help="site name", default
="Default-First-Site-Name")
25 (opts
, args
) = parser
.parse_args()
27 lp
= sambaopts
.get_loadparm()
29 w
= winbind
.winbind("irpc:winbind_server", lp
)
31 dns_names
= netlogon
.NL_DNS_NAME_INFO_ARRAY()
33 name
= netlogon
.NL_DNS_NAME_INFO()
35 name
.priority
= opts
.priority
36 name
.weight
= opts
.weight
38 name
.dns_register
= True
39 dns_names
.names
= [ name
]
40 site_name
= opts
.site
.decode('utf-8')
42 ret_names
= w
.DsrUpdateReadOnlyServerDnsRecords(site_name
, 600, dns_names
)
43 print("Status: %u" % ret_names
.names
[0].status
)