]> git.llucax.com Git - software/pymin.git/blob - services/dhcp/host.py
c9f200f2d4d4d04a4d289e8713b2c6a2ab24d371
[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.seqtools import Sequence
7 from pymin.service.util import DictSubHandler
8
9 __all__ = ('HostHandler',)
10
11
12 class Host(Sequence):
13     r"""Host(name, ip, mac) -> Host instance :: Class representing a host.
14
15     name - Host name, should be a fully qualified name, but no checks are done.
16     ip - IP assigned to the hostname.
17     mac - MAC address to associate to the hostname.
18     """
19
20     def __init__(self, name, ip, mac):
21         r"Initialize Host object, see class documentation for details."
22         self.name = name
23         self.ip = ip
24         self.mac = mac
25
26     def as_tuple(self):
27         r"Return a tuple representing the host."
28         return (self.name, self.ip, self.mac)
29
30     def update(self, ip=None, mac=None):
31         if ip is not None:
32             self.ip = ip
33         if mac is not None:
34             self.mac = mac
35
36 class HostHandler(DictSubHandler):
37     r"""HostHandler(parent) -> HostHandler instance :: Handle a list of hosts.
38
39     This class is a helper for DhcpHandler to do all the work related to hosts
40     administration.
41     """
42
43     handler_help = u"Manage DHCP hosts"
44
45     _cont_subhandler_attr = 'hosts'
46     _cont_subhandler_class = Host
47