X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/66d2cd3777f93c9c81f7e379fd24f73c4a6fad91..cd525caf3bc818b54382abff396517ad0ddcc8fb:/pymin/services/firewall/__init__.py diff --git a/pymin/services/firewall/__init__.py b/pymin/services/firewall/__init__.py index b0784bf..8809235 100644 --- a/pymin/services/firewall/__init__.py +++ b/pymin/services/firewall/__init__.py @@ -4,24 +4,14 @@ # of using script templates. from os import path +import logging ; log = logging.getLogger('pymin.services.firewall') from pymin.seqtools import Sequence from pymin.dispatcher import Handler, handler, HandlerError from pymin.services.util import Restorable, ConfigWriter, ServiceHandler, \ TransactionalHandler, ListSubHandler -__ALL__ = ('FirewallHandler', 'Error') - -class Error(HandlerError): - r""" - Error(command) -> Error instance :: Base FirewallHandler exception class. - - All exceptions raised by the FirewallHandler inherits from this one, so you can - easily catch any FirewallHandler exception. - - message - A descriptive error message. - """ - pass +__ALL__ = ('FirewallHandler',) class Rule(Sequence): r"""Rule(chain, target[, src[, dst[, ...]]]) -> Rule instance. @@ -61,10 +51,6 @@ class Rule(Sequence): if src_port is not None: self.src_port = src_port if dst_port is not None: self.dst_port = dst_port - def __cmp__(self, other): - r"Compares two Rule objects." - return cmp(self.as_tuple(), other.as_tuple()) - def as_tuple(self): r"Return a tuple representing the rule." return (self.chain, self.target, self.src, self.dst, self.protocol, @@ -81,8 +67,8 @@ class RuleHandler(ListSubHandler): handler_help = u"Manage firewall rules" - _list_subhandler_attr = 'rules' - _list_subhandler_class = Rule + _cont_subhandler_attr = 'rules' + _cont_subhandler_class = Rule class FirewallHandler(Restorable, ConfigWriter, ServiceHandler, TransactionalHandler): @@ -99,7 +85,7 @@ class FirewallHandler(Restorable, ConfigWriter, ServiceHandler, handler_help = u"Manage firewall service" - _persistent_attrs = 'rules' + _persistent_attrs = ['rules'] _restorable_defaults = dict(rules=list()) @@ -108,6 +94,7 @@ class FirewallHandler(Restorable, ConfigWriter, ServiceHandler, def __init__(self, pickle_dir='.', config_dir='.'): r"Initialize the object, see class documentation for details." + log.debug(u'FirewallHandler(%r, %r)', pickle_dir, config_dir) self._persistent_dir = pickle_dir self._config_writer_cfg_dir = config_dir self._service_start = ('sh', path.join(self._config_writer_cfg_dir, @@ -116,7 +103,7 @@ class FirewallHandler(Restorable, ConfigWriter, ServiceHandler, self._service_restart = self._service_start self._service_reload = self._service_start self._config_build_templates() - self._restore() + ServiceHandler.__init__(self) self.rule = RuleHandler(self) def _get_config_vars(self, config_file): @@ -125,6 +112,12 @@ class FirewallHandler(Restorable, ConfigWriter, ServiceHandler, if __name__ == '__main__': + logging.basicConfig( + level = logging.DEBUG, + format = '%(asctime)s %(levelname)-8s %(message)s', + datefmt = '%H:%M:%S', + ) + import os fw_handler = FirewallHandler()