author | Tero Marttila <tero.marttila@aalto.fi> |
Wed, 25 Feb 2015 15:55:23 +0200 | |
changeset 475 | a76571e27c6f |
parent 458 | 600ad9eb6f25 |
child 487 | 920394061b6f |
permissions | -rwxr-xr-x |
458
600ad9eb6f25
pvl.hosts.zone: cleanup and split pvl.hosts-forward and pvl.hosts-reverse from pvl.hosts-dns
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
600ad9eb6f25
pvl.hosts.zone: cleanup and split pvl.hosts-forward and pvl.hosts-reverse from pvl.hosts-dns
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff
changeset
|
2 |
|
475
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
3 |
import logging; log = logging.getLogger('pvl.hosts-reverse') |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
4 |
import optparse |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
5 |
import pvl.args |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
6 |
import pvl.hosts |
458
600ad9eb6f25
pvl.hosts.zone: cleanup and split pvl.hosts-forward and pvl.hosts-reverse from pvl.hosts-dns
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff
changeset
|
7 |
import pvl.hosts.zone |
600ad9eb6f25
pvl.hosts.zone: cleanup and split pvl.hosts-forward and pvl.hosts-reverse from pvl.hosts-dns
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff
changeset
|
8 |
|
475
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
9 |
def main (argv): |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
10 |
""" |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
11 |
Generate bind zonefiles from host definitions. |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
12 |
""" |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
13 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
14 |
parser = optparse.OptionParser(main.__doc__) |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
15 |
parser.add_option_group(pvl.args.parser(parser)) |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
16 |
parser.add_option_group(pvl.hosts.config.optparser(parser)) |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
17 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
18 |
parser.add_option('--reverse-zone', metavar='PREFIX', |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
19 |
help="Generate reverse zone for prefix") |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
20 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
21 |
parser.add_option('--unknown-host', metavar='NAME', |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
22 |
help="Generate records for unused IPs") |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
23 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
24 |
# input |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
25 |
options, args = pvl.args.parse(parser, argv) |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
26 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
27 |
if not options.reverse_zone: |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
28 |
log.fatal("required --reverse-zone") |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
29 |
return 1 |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
30 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
31 |
hosts = pvl.hosts.apply(options, args) |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
32 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
33 |
# process |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
34 |
prefix = pvl.dns.parse_prefix(options.reverse_zone) |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
35 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
36 |
for rr in pvl.hosts.zone.apply_hosts_reverse(options, hosts, prefix): |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
37 |
print unicode(rr) |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
38 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
39 |
return 0 |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
40 |
|
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
41 |
if __name__ == '__main__': |
a76571e27c6f
pvl.dns.zone: move script main()'s back out to bin/
Tero Marttila <tero.marttila@aalto.fi>
parents:
458
diff
changeset
|
42 |
pvl.args.main(main) |