author | Tero Marttila <terom@paivola.fi> |
Mon, 09 Mar 2015 23:31:13 +0200 | |
changeset 738 | 3104fdf7ea26 |
parent 670 | b95ad8c8bb4e |
permissions | -rwxr-xr-x |
271
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
2 |
|
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
3 |
import logging; log = logging.getLogger('pvl.hosts-dhcp') |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
4 |
import optparse |
479
1e68e3a30b51
pvl.hosts.dhcp: split out of script, refactor using pvl.dhcp.config, and test
Tero Marttila <tero.marttila@aalto.fi>
parents:
455
diff
changeset
|
5 |
import pvl.args |
1e68e3a30b51
pvl.hosts.dhcp: split out of script, refactor using pvl.dhcp.config, and test
Tero Marttila <tero.marttila@aalto.fi>
parents:
455
diff
changeset
|
6 |
import pvl.hosts |
1e68e3a30b51
pvl.hosts.dhcp: split out of script, refactor using pvl.dhcp.config, and test
Tero Marttila <tero.marttila@aalto.fi>
parents:
455
diff
changeset
|
7 |
import pvl.hosts.dhcp |
271
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
8 |
|
479
1e68e3a30b51
pvl.hosts.dhcp: split out of script, refactor using pvl.dhcp.config, and test
Tero Marttila <tero.marttila@aalto.fi>
parents:
455
diff
changeset
|
9 |
def main (argv): |
271
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
10 |
""" |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
11 |
Generate DHCP host configs from host definitions. |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
12 |
""" |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
13 |
|
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
14 |
parser = optparse.OptionParser(main.__doc__) |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
15 |
parser.add_option_group(pvl.args.parser(parser)) |
479
1e68e3a30b51
pvl.hosts.dhcp: split out of script, refactor using pvl.dhcp.config, and test
Tero Marttila <tero.marttila@aalto.fi>
parents:
455
diff
changeset
|
16 |
parser.add_option_group(pvl.hosts.config.optparser(parser)) |
271
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
17 |
|
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
18 |
# input |
479
1e68e3a30b51
pvl.hosts.dhcp: split out of script, refactor using pvl.dhcp.config, and test
Tero Marttila <tero.marttila@aalto.fi>
parents:
455
diff
changeset
|
19 |
options, args = pvl.args.parse(parser, argv) |
1e68e3a30b51
pvl.hosts.dhcp: split out of script, refactor using pvl.dhcp.config, and test
Tero Marttila <tero.marttila@aalto.fi>
parents:
455
diff
changeset
|
20 |
|
670
b95ad8c8bb4e
pvl.hosts: fail if no hostfiles are given as input
Tero Marttila <terom@paivola.fi>
parents:
669
diff
changeset
|
21 |
if not args: |
b95ad8c8bb4e
pvl.hosts: fail if no hostfiles are given as input
Tero Marttila <terom@paivola.fi>
parents:
669
diff
changeset
|
22 |
log.fatal("no hosts given as input") |
b95ad8c8bb4e
pvl.hosts: fail if no hostfiles are given as input
Tero Marttila <terom@paivola.fi>
parents:
669
diff
changeset
|
23 |
return 1 |
b95ad8c8bb4e
pvl.hosts: fail if no hostfiles are given as input
Tero Marttila <terom@paivola.fi>
parents:
669
diff
changeset
|
24 |
|
271
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
25 |
hosts = pvl.hosts.apply(options, args) |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
26 |
|
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
27 |
# process |
482
41622bb9b95c
pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents:
479
diff
changeset
|
28 |
try: |
669
83e9bff09a0b
pvl.hosts.dhcp: update for pvl.dhcp.config
Tero Marttila <terom@paivola.fi>
parents:
488
diff
changeset
|
29 |
for block in pvl.hosts.dhcp.dhcp_hosts(hosts): |
83e9bff09a0b
pvl.hosts.dhcp: update for pvl.dhcp.config
Tero Marttila <terom@paivola.fi>
parents:
488
diff
changeset
|
30 |
for line in pvl.dhcp.config.build_block(block): |
83e9bff09a0b
pvl.hosts.dhcp: update for pvl.dhcp.config
Tero Marttila <terom@paivola.fi>
parents:
488
diff
changeset
|
31 |
print line |
83e9bff09a0b
pvl.hosts.dhcp: update for pvl.dhcp.config
Tero Marttila <terom@paivola.fi>
parents:
488
diff
changeset
|
32 |
|
83e9bff09a0b
pvl.hosts.dhcp: update for pvl.dhcp.config
Tero Marttila <terom@paivola.fi>
parents:
488
diff
changeset
|
33 |
print '' |
83e9bff09a0b
pvl.hosts.dhcp: update for pvl.dhcp.config
Tero Marttila <terom@paivola.fi>
parents:
488
diff
changeset
|
34 |
|
482
41622bb9b95c
pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents:
479
diff
changeset
|
35 |
except pvl.hosts.HostError as error: |
41622bb9b95c
pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents:
479
diff
changeset
|
36 |
log.error("%s", error) |
41622bb9b95c
pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents:
479
diff
changeset
|
37 |
return 3 |
271
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
38 |
|
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
39 |
if __name__ == '__main__': |
4dfa1a939153
pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
40 |
pvl.args.main(main) |