diff -r 57e8168ba8c4 -r 0f9cae2d7147 dhcp.py --- a/dhcp.py Sun Jul 12 00:43:36 2009 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -""" - Higher-level DHCP config structure model -""" - -import dhcp_conf as dhcpc - -class Config (dhcpc.ConfFile) : - """ - A full configuration file - """ - - def __init__ (self, name=dhcpc.ConfFile.DEFAULT_NAME, path=dhcpc.ConfFile.DEFAULT_PATH, - settings=None, options=None, shared_network=False, subnets=None, hosts=None, comment=None - ) : - """ - Create a full configuration file for the given settings: - - settings: a { name: value } mappping of general settings to set - options: a { opt_name: opt_value } mapping of options to set - shared_network: define the subnets as a shared network of the given name - subnets: an iterable of Subnet's to define - hosts: an iterable of Host's to define - - """ - - dhcpc.ConfFile.__init__(self, name, path, comment=comment) - - # define global settings - if settings : - self.add_params(dhcpc.Parameter(setting, value) for setting, value in settings.iteritems()) - - # define global options - if options : - self.add_params(dhcpc.Option(option, value) for option, value in options.iteritems()) - - # the shared-network section, or a series of subnets - if shared_network : - self.add_decl(dhcpc.SharedNetwork(shared_network, decls=subnets)) - - elif subnets : - self.add_decls(subnets) - - # hosts section - if hosts : - self.add_decls(hosts) - -class Subnet (dhcpc.Subnet) : - """ - A subnet declaration with a router, and optionally a dynamic address pool, and allow/deny unknown clients - """ - - def __init__ (self, subnet, router_idx=1, range=None, unknown_clients=None, comment=None) : - """ - @param subnet the addr.IP representing the subnet - @param router_idx the subnet[index] of the default gateway - @param range optional (from_idx, to_idx) to define a dhcp pool - @param unknown_clients optional 'allow'/'deny' to set a policy for unknown clients - """ - - # validate - if unknown_clients : - assert unknown_clients in ('allow', 'deny') - - super(Subnet, self).__init__(subnet, params=[ - dhcpc.Option("routers", subnet[router_idx]), - dhcpc.Parameter("range", subnet[range[0]], subnet[range[1]]) if range else None, - dhcpc.Parameter(unknown_clients, "unknown-clients") if unknown_clients else None, - ], comment=comment) - - -class Host (dhcpc.Host) : - """ - A host declaration with a hardware address and a IP address - """ - - def __init__ (self, hostname, mac_addr, ip_addr, comment=None) : - super(Host, self).__init__(hostname, params=[ - dhcpc.Parameter("hardware ethernet", mac_addr), - dhcpc.Parameter("fixed-address", ip_addr) - ], comment=comment) -