Added check if update necessary

This commit is contained in:
2004-01-16 22:33:42 +00:00
parent 1cd5b63efd
commit a9d9569470
2 changed files with 18 additions and 4 deletions

View File

@@ -30,7 +30,7 @@ def getparams(msg):
from optparse import OptionParser
import sys
# Define option parameters
usage = "usage: %prog [-n] hostname [-i] ip adress [OPTIONS]"
usage = "usage: %prog [OPTIONS]"
parser = OptionParser(usage)
parser.add_option("-c", "--config",
type="string",
@@ -142,7 +142,7 @@ def validate(msg):
import re
import string
# Verify all required data is present and sanity check incoming data
req_vals = ['domain', 'hostname', 'ipaddress', 'keyname', 'keysecret']
req_vals = ['domain', 'hostname', 'ipaddress', 'keyname', 'keysecret', 'ttl']
for value in req_vals:
if not msg.has_key(value):
msg['error'].append('Missing "%s" parameter' % value)
@@ -158,6 +158,19 @@ def validate(msg):
return msg
def verify_ip(msg):
import dns.resolver
try:
ans = dns.resolver.query(msg['hostname'] + "." + msg['domain'], 'A')
for res in ans:
ip = res.to_text()
except:
ip = ""
if ip == msg['ipaddress']:
msg['error'].append("Nameserver already up to date")
return msg
if __name__=="__main__":
msg = {}
@@ -165,6 +178,7 @@ if __name__=="__main__":
getparams(msg)
validate(msg)
verify_ip(msg)
err = checkerror(msg)
if err == 0:
update(msg)