Example #1
0
 def read(self):
     """Read data lines from a file.
     """
     for line in files.yield_lines(self.file_name):
         line = line.strip()
         marker = line[:1] # Can't use [0] on empty lines, so use [:1]
         fields = line[1:].split(':')
         cls = MARKER_CLASSES[marker]
         self.records.append(cls.create(marker, fields))
Example #2
0
 def __init__(self, file_name):
     self.leases = []
     current_lease = None
     for line in files.yield_lines(file_name):
         line = line.strip()
         if line.startswith('#') or line == '':
             continue
         elif line.startswith('lease ') and current_lease == None:
             current_lease = Lease(line)
         elif line.startswith('}') and current_lease != None:
             self.leases.append(current_lease)
             current_lease = None
         elif current_lease != None:
             current_lease.add_line(line)
         else:
             continue
     self.leases.sort()
     self.leases.reverse()
Example #3
0
    ttl = max(ttl, 60)
    ttl = min(ttl, 86400)
    return str(ttl)

dynamics = tinydns.data.Section()
msg = '%s DHCP-Leased records for the %s domain %s' % (
    '#' * 18,
    options.domain,
    '#' * 19
    )
dynamics.add(tinydns.data.Comment(msg))
leases = tinydns.dhcpd.Leases(options.leases)

mac_host_names = []
if options.macfile:
    for line in files.yield_lines(options.macfile):
        mac, host_name = line.split()
        mac = mac.strip()
        host_name.strip()
        mac_host_names.append(host_name)
        try:
            lease = leases[mac]
        except KeyError:
            continue
        domain_name = '%s.%s' % (host_name, options.domain)
        dynamics.add(tinydns.data.Alias(domain_name, lease.ip, ttl=calc_ttl(lease)))

for lease in leases.yield_unique():
    if lease.host_name != None and \
            lease.host_name not in mac_host_names:
        domain_name = '%s.%s' % (lease.host_name, options.domain)