message - A descriptive error message.
"""
-
- def __init__(self, message):
- r"Initialize the Error object. See class documentation for more info."
- self.message = message
-
- def __str__(self):
- return self.message
+ pass
class HostError(Error, KeyError):
r"""
def __init__(self, hostname):
r"Initialize the object. See class documentation for more info."
- self.message = 'Host error: "%s"' % hostname
+ self.message = u'Host error: "%s"' % hostname
class HostAlreadyExistsError(HostError):
r"""
def __init__(self, hostname):
r"Initialize the object. See class documentation for more info."
- self.message = 'Host already exists: "%s"' % hostname
+ self.message = u'Host already exists: "%s"' % hostname
class HostNotFoundError(HostError):
r"""
def __init__(self, hostname):
r"Initialize the object. See class documentation for more info."
- self.message = 'Host not found: "%s"' % hostname
+ self.message = u'Host not found: "%s"' % hostname
class Host(Sequence):
hosts - A dictionary with string keys (hostnames) and Host instances values.
"""
- def __init__(self, hosts):
+ handler_help = u"Manage DHCP hosts"
+
+ def __init__(self, parent):
r"Initialize HostHandler object, see class documentation for details."
- self.hosts = hosts
+ self.parent = parent
- @handler(u'Add a new host.')
+ @handler(u'Add a new host')
def add(self, name, ip, mac):
r"add(name, ip, mac) -> None :: Add a host to the hosts list."
- if name in self.hosts:
+ if name in self.parent.hosts:
raise HostAlreadyExistsError(name)
- self.hosts[name] = Host(name, ip, mac)
+ self.parent.hosts[name] = Host(name, ip, mac)
- @handler(u'Update a host.')
+ @handler(u'Update a host')
def update(self, name, ip=None, mac=None):
r"update(name[, ip[, mac]]) -> None :: Update a host of the hosts list."
- if not name in self.hosts:
+ if not name in self.parent.hosts:
raise HostNotFoundError(name)
if ip is not None:
- self.hosts[name].ip = ip
+ self.parent.hosts[name].ip = ip
if mac is not None:
- self.hosts[name].mac = mac
+ self.parent.hosts[name].mac = mac
- @handler(u'Delete a host.')
+ @handler(u'Delete a host')
def delete(self, name):
r"delete(name) -> None :: Delete a host of the hosts list."
- if not name in self.hosts:
+ if not name in self.parent.hosts:
raise HostNotFoundError(name)
- del self.hosts[name]
+ del self.parent.hosts[name]
- @handler(u'Get information about a host.')
+ @handler(u'Get information about a host')
def get(self, name):
r"get(name) -> Host :: List all the information of a host."
- if not name in self.hosts:
+ if not name in self.parent.hosts:
raise HostNotFoundError(name)
- return self.hosts[name]
+ return self.parent.hosts[name]
- @handler(u'List hosts.')
+ @handler(u'List hosts')
def list(self):
r"list() -> tuple :: List all the hostnames."
- return self.hosts.keys()
+ return self.parent.hosts.keys()
- @handler(u'Get information about all hosts.')
+ @handler(u'Get information about all hosts')
def show(self):
r"show() -> list of Hosts :: List all the complete hosts information."
- return self.hosts.values()
+ return self.parent.hosts.values()
class DhcpHandler(Restorable, ConfigWriter, InitdHandler, TransactionalHandler,
Both defaults to the current working directory.
"""
+ handler_help = u"Manage DHCP service"
+
_initd_name = 'dhcpd'
_persistent_attrs = ('params', 'hosts')
self._config_writer_cfg_dir = config_dir
self._config_build_templates()
self._restore()
- self.host = HostHandler(self.hosts)
+ self.host = HostHandler(self)
def _get_config_vars(self, config_file):
return dict(hosts=self.hosts.values(), **self.params)