]> git.llucax.com Git - software/pymin.git/commitdiff
Merge ../pymin
authorFede <fedux@linux-kt9u.site>
Sat, 6 Oct 2007 13:04:02 +0000 (10:04 -0300)
committerFede <fedux@linux-kt9u.site>
Sat, 6 Oct 2007 13:04:02 +0000 (10:04 -0300)
1  2 
pymin/services/proxy/__init__.py

index 5e8460e21ac075fd5ae1f288cc16fd249fe44abd,399eba1bf341b5c9eb37bcad32d9738ff572dd48..2740cc8c8ab0f8d546cf6b8986d19bb37d825b17
@@@ -7,8 -7,6 +7,8 @@@ from pymin.dispatcher import Handler, h
  from pymin.services.util import Restorable, ConfigWriter, InitdHandler, \
                                  TransactionalHandler, ParametersHandler
  
 +import crypt
 +
  __ALL__ = ('ProxyHandler', 'Error', 'HostError', 'HostAlreadyExistsError',
              'HostNotFoundError')
  
@@@ -21,13 -19,7 +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 -30,7 +32,7 @@@
  
      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 -41,7 +43,7 @@@
  
      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 -53,7 +55,7 @@@
  
      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,6 -66,8 +68,8 @@@
  
  class HostHandler(Handler):
  
+     handler_help = u"Manage proxy hosts"
      def __init__(self, hosts):
          self.hosts = hosts
  
          return self.hosts.items()
  
  
 +class UserHandler(Handler):
 +
 +    def __init__(self, users):
 +        self.users = users
 +
 +    def add(self, user, password):
 +        if user in self.users:
 +            raise UserAlreadyExistsError(user)
 +        self.users[user] = crypt.crypt(password,'BA')
 +
 +    def delete(self, user):
 +        if not user in self.users:
 +            raise UserNotFound(user)
 +        del self.users[user]
 +
  class ProxyHandler(Restorable, ConfigWriter, InitdHandler,
                     TransactionalHandler, ParametersHandler):
  
+     handler_help = u"Manage proxy service"
      _initd_name = 'squid'
  
 -    _persistent_attrs = ('params', 'hosts')
 +    _persistent_attrs = ('params', 'hosts', 'users')
  
      _restorable_defaults = dict(
              hosts = dict(),
                  ip   = '192.168.0.1',
                  port = '8080',
              ),
 +            users = dict(),
      )
  
 -    _config_writer_files = 'squid.conf'
 +    _config_writer_files = ('squid.conf','users.conf')
      _config_writer_tpl_dir = path.join(path.dirname(__file__), 'templates')
  
      def __init__(self, pickle_dir='.', config_dir='.'):
          self._config_build_templates()
          self._restore()
          self.host = HostHandler(self.hosts)
 +        self.user = UserHandler(self.users)
  
      def _get_config_vars(self, config_file):
 -        return dict(hosts=self.hosts.values(), **self.params)
 +        if config_file == 'squid.conf':
 +            return dict(hosts=self.hosts.values(), **self.params)
 +        return dict(users=self.users)
  
  
  if __name__ == '__main__':
      px.host.add('192.168.0.25.26')
      px.host.add('192.168.0.25.27')
      px.host.delete('192.168.0.25.27')
 +    px.user.add('lala','soronga')
 +    px.user.add('culo','sarasa')
      px.commit()