]> git.llucax.com Git - software/pymin.git/blob - services/dhcp/host.py
Add GPL v3 license to the project
[software/pymin.git] / services / dhcp / host.py
1 # vim: set encoding=utf-8 et sw=4 sts=4 :
2
3 from os import path
4 import logging ; log = logging.getLogger('pymin.services.dhcp')
5
6 from pymin.validation import Item, Field, Any, IPAddress, MACAddress, \
7                              HostName, FullyQualifiedHostName
8 from pymin.service.util import DictSubHandler
9
10 __all__ = ('HostHandler',)
11
12
13 class Host(Item):
14     r"""Host(name, ip, mac) -> Host instance :: Class representing a host.
15
16     name - Host name, should be a fully qualified name, but no checks are done.
17     ip - IP assigned to the hostname.
18     mac - MAC address to associate to the hostname.
19     """
20     name = Field(Any(HostName(not_empty=True),
21                      FullyQualifiedHostName(not_empty=True)))
22     ip = Field(IPAddress(not_empty=True))
23     mac = Field(MACAddress(add_colons=True, not_empty=True))
24
25 class HostHandler(DictSubHandler):
26     r"""HostHandler(parent) -> HostHandler instance :: Handle a list of hosts.
27
28     This class is a helper for DhcpHandler to do all the work related to hosts
29     administration.
30     """
31
32     handler_help = u"Manage DHCP hosts"
33
34     _cont_subhandler_attr = 'hosts'
35     _cont_subhandler_class = Host
36