bin/pvl.hosts-dhcp
author Tero Marttila <terom@paivola.fi>
Mon, 09 Mar 2015 21:17:06 +0200
changeset 736 75938aa0390b
parent 670 b95ad8c8bb4e
permissions -rwxr-xr-x
pvl.hosts.interfaces: remove junos-specifics
#!/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)