diff options
-rw-r--r-- | ipalib/__init__.py | 7 | ||||
-rw-r--r-- | ipalib/backend.py | 14 | ||||
-rw-r--r-- | ipalib/plugable.py | 23 | ||||
-rw-r--r-- | ipaserver/plugins/b_ldap.py | 13 | ||||
-rw-r--r-- | tests/test_ipalib/test_backend.py | 18 |
5 files changed, 3 insertions, 72 deletions
diff --git a/ipalib/__init__.py b/ipalib/__init__.py index 7fd886cbc..7754c4282 100644 --- a/ipalib/__init__.py +++ b/ipalib/__init__.py @@ -871,7 +871,7 @@ freeIPA.org: ''' import plugable -from backend import Backend, Context +from backend import Backend from frontend import Command, LocalOrRemote, Application from frontend import Object, Method, Property from crud import Create, Retrieve, Update, Delete, Search @@ -902,12 +902,9 @@ def create_api(mode='dummy'): - `frontend.Application` - `backend.Backend` - - - `backend.Context` """ api = plugable.API( - Command, Object, Method, Property, Application, - Backend, Context, + Command, Object, Method, Property, Application, Backend ) if mode is not None: api.env.mode = mode diff --git a/ipalib/backend.py b/ipalib/backend.py index 827067f47..e286c5079 100644 --- a/ipalib/backend.py +++ b/ipalib/backend.py @@ -95,17 +95,3 @@ class Executioner(Backend): return result assert isinstance(error, PublicError) raise error - - - -class Context(plugable.Plugin): - """ - Base class for plugable context components. - """ - - __proxy__ = False # Backend plugins are not wrapped in a PluginProxy - - def get_value(self): - raise NotImplementedError( - '%s.get_value()' % self.__class__.__name__ - ) diff --git a/ipalib/plugable.py b/ipalib/plugable.py index 1370d7f54..bc55c8082 100644 --- a/ipalib/plugable.py +++ b/ipalib/plugable.py @@ -506,28 +506,6 @@ class Registrar(DictProxy): self.__registered.add(klass) -class LazyContext(object): - """ - On-demand creation of thread-local context attributes. - """ - - def __init__(self, api): - self.__api = api - self.__context = threading.local() - - def __getattr__(self, name): - if name not in self.__context.__dict__: - if name not in self.__api.Context: - raise AttributeError('no Context plugin for %r' % name) - value = self.__api.Context[name].get_value() - self.__context.__dict__[name] = value - return self.__context.__dict__[name] - - def __getitem__(self, key): - return self.__getattr__(key) - - - class API(DictProxy): """ Dynamic API object through which `Plugin` instances are accessed. @@ -538,7 +516,6 @@ class API(DictProxy): self.__done = set() self.register = Registrar(*allowed) self.env = Env() - self.context = LazyContext(self) super(API, self).__init__(self.__d) def __doing(self, name): diff --git a/ipaserver/plugins/b_ldap.py b/ipaserver/plugins/b_ldap.py index 9e06ce51b..54766bbb7 100644 --- a/ipaserver/plugins/b_ldap.py +++ b/ipaserver/plugins/b_ldap.py @@ -25,24 +25,13 @@ This wraps the python-ldap bindings. """ import ldap as _ldap -from ipalib import api, Context +from ipalib import api from ipalib import errors from ipalib.crud import CrudBackend from ipaserver import servercore from ipaserver import ipaldap -class conn(Context): - """ - Thread-local LDAP connection. - """ - - def get_value(self): - return 'it worked' - -api.register(conn) - - class ldap(CrudBackend): """ LDAP backend plugin. diff --git a/tests/test_ipalib/test_backend.py b/tests/test_ipalib/test_backend.py index e9e17b92e..b7a9765dc 100644 --- a/tests/test_ipalib/test_backend.py +++ b/tests/test_ipalib/test_backend.py @@ -210,21 +210,3 @@ class test_Executioner(ClassChecker): e = raises(errors2.InternalError, o.execute, 'bad') assert conn.closed is True # Make sure destroy_context() was called assert context.__dict__.keys() == [] - - -class test_Context(ClassChecker): - """ - Test the `ipalib.backend.Context` class. - """ - - _cls = backend.Context - - def test_get_value(self): - """ - Test the `ipalib.backend.Context.get_value` method. - """ - class Subclass(self.cls): - pass - o = Subclass() - e = raises(NotImplementedError, o.get_value) - assert str(e) == 'Subclass.get_value()' |