bin/pvl.hosts-dhcp
author Tero Marttila <tero.marttila@aalto.fi>
Fri, 27 Feb 2015 17:03:15 +0200
changeset 644 c51eb0151fec
parent 488 502ee5fcf91c
child 669 83e9bff09a0b
permissions -rwxr-xr-x
README pvl.dns-process and pvl.dns-zone
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
    
271
4dfa1a939153 pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
    hosts = pvl.hosts.apply(options, args)
4dfa1a939153 pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
4dfa1a939153 pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
    # process
482
41622bb9b95c pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents: 479
diff changeset
    24
    try:
488
502ee5fcf91c pvl.hosts.dhcp: drop unused options
Tero Marttila <tero.marttila@aalto.fi>
parents: 482
diff changeset
    25
        for line in pvl.hosts.dhcp.apply_hosts_dhcp(hosts):
482
41622bb9b95c pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents: 479
diff changeset
    26
            print line
41622bb9b95c pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents: 479
diff changeset
    27
    except pvl.hosts.HostError as error:
41622bb9b95c pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents: 479
diff changeset
    28
        log.error("%s", error)
41622bb9b95c pvl.hosts-dhcp: expect and log HostError
Tero Marttila <tero.marttila@aalto.fi>
parents: 479
diff changeset
    29
        return 3
271
4dfa1a939153 pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
4dfa1a939153 pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
if __name__ == '__main__':
4dfa1a939153 pvl.hosts-dhcp: generate dhcp hosts conf
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
    pvl.args.main(main)