summaryrefslogtreecommitdiff
path: root/source4/scripting
diff options
context:
space:
mode:
Diffstat (limited to 'source4/scripting')
-rwxr-xr-xsource4/scripting/bin/samba_dnsupdate38
1 files changed, 17 insertions, 21 deletions
diff --git a/source4/scripting/bin/samba_dnsupdate b/source4/scripting/bin/samba_dnsupdate
index 86af6d859f..fee1a08f4f 100755
--- a/source4/scripting/bin/samba_dnsupdate
+++ b/source4/scripting/bin/samba_dnsupdate
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+# vim: expandtab
#
# update our DNS names using TSIG-GSS
#
@@ -104,9 +105,9 @@ for i in IPs:
if opts.verbose:
print "IPs: %s" % IPs
-########################################################
-# get credentials if we haven't got them already
+
def get_credentials(lp):
+ """# get credentials if we haven't got them already."""
from samba import credentials
global ccachename, creds
if creds is not None:
@@ -119,9 +120,9 @@ def get_credentials(lp):
creds.get_named_ccache(lp, ccachename)
-#############################################
-# an object to hold a parsed DNS line
class dnsobj(object):
+ """an object to hold a parsed DNS line"""
+
def __init__(self, string_form):
list = string_form.split()
self.dest = None
@@ -152,9 +153,8 @@ class dnsobj(object):
if d.type == "NS": return "%s %s %s" % (self.type, self.name, self.dest)
-################################################
-# parse a DNS line from
def parse_dns_line(line, sub_vars):
+ """parse a DNS line from."""
if line.startswith("SRV _ldap._tcp.pdc._msdcs.") and not samdb.am_pdc():
if opts.verbose:
print "Skipping PDC entry (%s) as we are not a PDC" % line
@@ -163,27 +163,26 @@ def parse_dns_line(line, sub_vars):
d = dnsobj(subline)
return d
-############################################
-# see if two hostnames match
+
def hostname_match(h1, h2):
+ """see if two hostnames match."""
h1 = str(h1)
h2 = str(h2)
return h1.lower().rstrip('.') == h2.lower().rstrip('.')
-############################################
-# check that a DNS entry exists
def check_dns_name(d):
+ """check that a DNS entry exists."""
normalised_name = d.name.rstrip('.') + '.'
if opts.verbose:
print "Looking for DNS entry %s as %s" % (d, normalised_name)
-
+
if opts.use_file is not None:
try:
dns_file = open(opts.use_file, "r")
except IOError:
return False
-
+
for line in dns_file:
line = line.strip()
if line == '' or line[0] == "#":
@@ -226,15 +225,15 @@ def check_dns_name(d):
for rdata in ans:
if str(rdata) == str(d.ip):
return True
- if d.type == 'CNAME':
+ elif d.type == 'CNAME':
for i in range(len(ans)):
if hostname_match(ans[i].target, d.dest):
return True
- if d.type == 'NS':
+ elif d.type == 'NS':
for i in range(len(ans)):
if hostname_match(ans[i].target, d.dest):
return True
- if d.type == 'SRV':
+ elif d.type == 'SRV':
for rdata in ans:
if opts.verbose:
print "Checking %s against %s" % (rdata, d)
@@ -251,9 +250,8 @@ def check_dns_name(d):
return False
-###########################################
-# get the list of substitution vars
def get_subst_vars(samdb):
+ """get the list of substitution vars."""
global lp, am_rodc
vars = {}
@@ -270,9 +268,8 @@ def get_subst_vars(samdb):
return vars
-############################################
-# call nsupdate for an entry
def call_nsupdate(d):
+ """call nsupdate for an entry."""
global ccachename, nsupdate_cmd
if opts.verbose:
@@ -426,8 +423,7 @@ os.environ['KRB5_CONFIG'] = krb5conf
file = open(dns_update_list, "r")
-samdb = SamDB(url=lp.samdb_url(), session_info=system_session(),
- lp=lp)
+samdb = SamDB(url=lp.samdb_url(), session_info=system_session(), lp=lp)
# get the substitution dictionary
sub_vars = get_subst_vars(samdb)