X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/d678eca2d9738772ed0a0b82db1792dac6730393..3eefa8b40b56992b0c96cf085ef9a6059b7c7fc4:/pymin/services/proxy/__init__.py diff --git a/pymin/services/proxy/__init__.py b/pymin/services/proxy/__init__.py index 5e8460e..2aa521d 100644 --- a/pymin/services/proxy/__init__.py +++ b/pymin/services/proxy/__init__.py @@ -21,13 +21,7 @@ class Error(HandlerError): 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""" @@ -38,7 +32,7 @@ class HostError(Error, KeyError): 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""" @@ -49,7 +43,7 @@ class HostAlreadyExistsError(HostError): 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""" @@ -61,7 +55,7 @@ class HostNotFoundError(HostError): 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): @@ -74,48 +68,54 @@ class Host(Sequence): class HostHandler(Handler): - def __init__(self, hosts): - self.hosts = hosts + handler_help = u"Manage proxy hosts" + + def __init__(self, parent): + self.parent = parent @handler(u'Adds a host') def add(self, ip): - if ip in self.hosts: + if ip in self.parent.hosts: raise HostAlreadyExistsError(ip) - self.hosts[ip] = Host(ip) + self.parent.hosts[ip] = Host(ip) @handler(u'Deletes a host') def delete(self, ip): - if not ip in self.hosts: + if not ip in self.parent.hosts: raise HostNotFoundError(ip) - del self.hosts[ip] + del self.parent.hosts[ip] @handler(u'Shows all hosts') def list(self): - return self.hosts.keys() + return self.parent.hosts.keys() @handler(u'Get information about all hosts') def show(self): - return self.hosts.items() + return self.parent.hosts.items() class UserHandler(Handler): - def __init__(self, users): - self.users = users - + def __init__(self, parent): + self.parent = parent + + @handler('Adds a user') def add(self, user, password): - if user in self.users: + if user in self.parent.users: raise UserAlreadyExistsError(user) - self.users[user] = crypt.crypt(password,'BA') - + self.parent.users[user] = crypt.crypt(password,'BA') + + @handler('Deletes a user') def delete(self, user): - if not user in self.users: + if not user in self.parent.users: raise UserNotFound(user) - del self.users[user] + del self.parent.users[user] class ProxyHandler(Restorable, ConfigWriter, InitdHandler, TransactionalHandler, ParametersHandler): + handler_help = u"Manage proxy service" + _initd_name = 'squid' _persistent_attrs = ('params', 'hosts', 'users') @@ -138,8 +138,8 @@ class ProxyHandler(Restorable, ConfigWriter, InitdHandler, self._config_writer_cfg_dir = config_dir self._config_build_templates() self._restore() - self.host = HostHandler(self.hosts) - self.user = UserHandler(self.users) + self.host = HostHandler(self) + self.user = UserHandler(self) def _get_config_vars(self, config_file): if config_file == 'squid.conf': @@ -158,4 +158,4 @@ if __name__ == '__main__': px.host.delete('192.168.0.25.27') px.user.add('lala','soronga') px.user.add('culo','sarasa') - px.commit() \ No newline at end of file + px.commit()