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))
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()
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)