summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/__init__.py7
-rw-r--r--ipalib/backend.py14
-rw-r--r--ipalib/plugable.py23
-rw-r--r--ipaserver/plugins/b_ldap.py13
-rw-r--r--tests/test_ipalib/test_backend.py18
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()'