bin/pvl.hosts-dhcp
author Tero Marttila <terom@paivola.fi>
Mon, 02 Mar 2015 01:29:56 +0200
changeset 682 60dbd952a15e
parent 670 b95ad8c8bb4e
permissions -rwxr-xr-x
pvl.dhcp.config: fix block stack to have .load() actually return the top-level block
#!/usr/bin/env python

import logging; log = logging.getLogger('pvl.hosts-dhcp')
import optparse
import pvl.args
import pvl.hosts
import pvl.hosts.dhcp

def main (argv):
    """
        Generate DHCP host configs from host definitions.
    """

    parser = optparse.OptionParser(main.__doc__)
    parser.add_option_group(pvl.args.parser(parser))
    parser.add_option_group(pvl.hosts.config.optparser(parser))

    # input
    options, args = pvl.args.parse(parser, argv)
    
    if not args:
        log.fatal("no hosts given as input")
        return 1
    
    hosts = pvl.hosts.apply(options, args)

    # process
    try:
        for block in pvl.hosts.dhcp.dhcp_hosts(hosts):
            for line in pvl.dhcp.config.build_block(block):
                print line
            
            print ''

    except pvl.hosts.HostError as error:
        log.error("%s", error)
        return 3

if __name__ == '__main__':
    pvl.args.main(main)