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 RuleError(Error, KeyError):
r"""
def __init__(self, rule):
r"Initialize the object. See class documentation for more info."
- self.message = 'Rule error: "%s"' % rule
+ self.message = u'Rule error: "%s"' % rule
class RuleAlreadyExistsError(RuleError):
r"""
def __init__(self, rule):
r"Initialize the object. See class documentation for more info."
- self.message = 'Rule already exists: "%s"' % rule
+ self.message = u'Rule already exists: "%s"' % rule
class RuleNotFoundError(RuleError):
r"""
def __init__(self, rule):
r"Initialize the object. See class documentation for more info."
- self.message = 'Rule not found: "%s"' % rule
+ self.message = u'Rule not found: "%s"' % rule
class Rule(Sequence):
def as_tuple(self):
r"Return a tuple representing the rule."
return (self.chain, self.target, self.src, self.dst, self.protocol,
- self.src_port)
+ self.src_port, self.dst_port)
class RuleHandler(Handler):
r"""RuleHandler(rules) -> RuleHandler instance :: Handle a list of rules.
rules - A list of Rule objects.
"""
+ handler_help = u"Manage firewall rules"
+
def __init__(self, rules):
r"Initialize the object, see class documentation for details."
self.rules = rules
- @handler(u'Add a new rule.')
+ @handler(u'Add a new rule')
def add(self, *args, **kwargs):
r"add(rule) -> None :: Add a rule to the rules list (see Rule doc)."
rule = Rule(*args, **kwargs)
raise RuleAlreadyExistsError(rule)
self.rules.append(rule)
- @handler(u'Update a rule.')
+ @handler(u'Update a rule')
def update(self, index, *args, **kwargs):
r"update(index, rule) -> None :: Update a rule (see Rule doc)."
# TODO check if the modified rule is the same of an existing one
except IndexError:
raise RuleNotFoundError(index)
- @handler(u'Delete a rule.')
+ @handler(u'Delete a rule')
def delete(self, index):
r"delete(index) -> Rule :: Delete a rule from the list returning it."
index = int(index) # TODO validation
except IndexError:
raise RuleNotFoundError(index)
- @handler(u'Get information about a rule.')
+ @handler(u'Get information about a rule')
def get(self, index):
r"get(rule) -> Rule :: Get all the information about a rule."
index = int(index) # TODO validation
except IndexError:
raise RuleNotFoundError(index)
- @handler(u'Get information about all rules.')
+ @handler(u'Get information about all rules')
def show(self):
r"show() -> list of Rules :: List all the complete rules information."
return self.rules
Both defaults to the current working directory.
"""
+ handler_help = u"Manage firewall service"
+
_persistent_attrs = 'rules'
_restorable_defaults = dict(rules=list())
r"Initialize the object, see class documentation for details."
self._persistent_dir = pickle_dir
self._config_writer_cfg_dir = config_dir
- self._service_start = path.join(self._config_writer_cfg_dir,
- self._config_writer_files)
+ self._service_start = ('sh', path.join(self._config_writer_cfg_dir,
+ self._config_writer_files))
self._service_stop = ('iptables', '-t', 'filter', '-F')
self._service_restart = self._service_start
self._service_reload = self._service_start