bin/pvl.hosts-dns
author Tero Marttila <terom@paivola.fi>
Mon, 16 Dec 2013 20:21:30 +0200
changeset 278 2db1a5323f92
parent 273 c8deaa9a2746
child 283 951e4b70bad4
permissions -rwxr-xr-x
pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#!/usr/bin/env python
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
import pvl.args
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
     4
import pvl.hosts
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
import pvl.dns.zone
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
import ipaddr
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
import logging; log = logging.getLogger('pvl.hosts-dns')
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
import optparse
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
273
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    11
def process_hosts_names (options, hosts, domain) :
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
    """
273
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    13
        Yield ZoneRecords for the given domain's hosts.
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
    """
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    16
    for host in hosts :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    17
        if options.forward_zone and host.domain != domain :
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
            continue
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
        
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    20
        if host.ip :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    21
            yield pvl.dns.zone.ZoneRecord.A(host, host.ip)
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
        
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    23
        for alias in host.alias :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    24
            yield pvl.dns.zone.ZoneRecord.CNAME(alias, host)
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
273
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    26
def process_hosts_forward (options, hosts, domain) :
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    27
    """
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    28
        Generate DNS ZoneRecords for the given domain's zone for hosts.
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    29
    """
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    30
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    31
    by_name = dict()
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    32
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    33
    for rr in process_hosts_names(options, hosts, domain) :
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    34
        if rr.name in by_name :
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    35
            raise ValueError("%s: duplicate name: %s: %s" % (rr.name, rr, by_name[rr.name]))
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    36
        else :
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    37
            by_name[rr.name] = rr
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    38
        
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    39
        # preserve ordering
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    40
        yield rr
c8deaa9a2746 pvl.hosts-dns: --forward--zone duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 272
diff changeset
    41
272
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    42
def process_hosts_ips (options, hosts, prefix) :
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
    """
272
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    44
        Yield (ip, fqnd) for hosts within given prefix.
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
    """
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    47
    for host in hosts :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    48
        if not host.ip :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    49
            continue
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    51
        if host.ip not in prefix :
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
            continue
272
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    53
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    54
        yield host.ip, pvl.dns.zone.fqdn(host, host.domain)
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    55
 
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    56
def process_hosts_reverse (options, hosts, prefix) :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    57
    """
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    58
        Generate DNS ZoneRecords within the given prefix's reverse-dns zone for hosts.
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    59
    """
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    60
    
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    61
    # collect data for records
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    62
    by_ip = dict()
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    63
    for ip, fqdn in process_hosts_ips(options, hosts, prefix) :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    64
        if ip in by_ip :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    65
            raise ValueError("%s: duplicate ip: %s: %s" % (fqdn, ip, by_ip[ip]))
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    66
        else :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    67
            by_ip[ip] = fqdn
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    68
278
2db1a5323f92 pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
Tero Marttila <terom@paivola.fi>
parents: 273
diff changeset
    69
    if options.unknown_host :
2db1a5323f92 pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
Tero Marttila <terom@paivola.fi>
parents: 273
diff changeset
    70
        # enumerate all of them
2db1a5323f92 pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
Tero Marttila <terom@paivola.fi>
parents: 273
diff changeset
    71
        iter_ips = prefix.iterhosts()
2db1a5323f92 pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
Tero Marttila <terom@paivola.fi>
parents: 273
diff changeset
    72
    else :
2db1a5323f92 pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
Tero Marttila <terom@paivola.fi>
parents: 273
diff changeset
    73
        iter_ips = sorted(by_ip)
2db1a5323f92 pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
Tero Marttila <terom@paivola.fi>
parents: 273
diff changeset
    74
2db1a5323f92 pvl.hosts-dns: do not enumerate the entire prefix space unless using --unknown-host
Tero Marttila <terom@paivola.fi>
parents: 273
diff changeset
    75
    for ip in iter_ips :
272
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    76
        if ip in by_ip :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    77
            fqdn = by_ip[ip]
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    78
        elif options.unknown_host :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    79
            fqdn = pvl.dns.zone.fqdn(options.unknown_host, options.hosts_domain)
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    80
        else :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    81
            fqdn = None
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    82
        
272
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    83
        if fqdn :
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    84
            # reverse against the reverse-dns zone origin
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
    85
            yield pvl.dns.zone.ZoneRecord.PTR(pvl.dns.zone.reverse_label(prefix, ip), fqdn)
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    86
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    87
def apply_zone (options, zone) :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    88
    """
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    89
        Output given ZoneRecord's
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    90
    """
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    91
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    92
    for record in zone :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
    93
        print unicode(record)
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    94
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    95
def main (argv) :
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    96
    """
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    97
        Generate bind zonefiles from host definitions.
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    98
    """
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    99
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   100
    parser = optparse.OptionParser(main.__doc__)
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   101
    parser.add_option_group(pvl.args.parser(parser))
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   102
    parser.add_option_group(pvl.hosts.optparser(parser))
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   103
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   104
    parser.add_option('--forward-zone',         metavar='DOMAIN',
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   105
            help="Generate forward zone for domain")
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   106
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   107
    parser.add_option('--reverse-zone',         metavar='PREFIX',
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   108
            help="Generate reverse zone for prefx")
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   109
272
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
   110
    parser.add_option('--unknown-host',         metavar='NAME',
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
   111
            help="Generate records for unused IPs")
5755f9c54135 pvl.hosts-dns: enumerate --reverse-zone with support for --unknown-host and duplicate checking
Tero Marttila <terom@paivola.fi>
parents: 270
diff changeset
   112
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   113
    options, args = parser.parse_args(argv[1:])
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   114
    pvl.args.apply(options)
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   115
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   116
    # input
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   117
    hosts = pvl.hosts.apply(options, args)
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   118
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   119
    # process
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   120
    if options.forward_zone :
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   121
        apply_zone(options, 
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   122
                process_hosts_forward(options, hosts, options.forward_zone),
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   123
        )
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   124
    
270
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   125
    if options.reverse_zone :
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   126
        apply_zone(options, 
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   127
                process_hosts_reverse(options, hosts, ipaddr.IPNetwork(options.reverse_zone)),
bafcda3a3c0d pvl.hosts-dns: split to pvl.dns.host, using Host class
Tero Marttila <terom@paivola.fi>
parents: 269
diff changeset
   128
        )
269
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   129
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   130
if __name__ == '__main__':
713d0495288e pvl.hosts-dns: generate --forward-zone=paivola.fi and --reverse-zone=194.197.235.0/24
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   131
    pvl.args.main(main)