summaryrefslogtreecommitdiffstats
path: root/ipalib/frontend.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-09-26 02:43:11 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-09-26 02:43:11 +0000
commitaa45ec616a0c49a9cedd32fb24aa4a56f69a6586 (patch)
tree6b5f88eb33029b6d040c0e34ade351e31b85b128 /ipalib/frontend.py
parent433d2e2e11a11bfe08599cd2314570d164448afa (diff)
downloadfreeipa.git-aa45ec616a0c49a9cedd32fb24aa4a56f69a6586.tar.gz
freeipa.git-aa45ec616a0c49a9cedd32fb24aa4a56f69a6586.tar.xz
freeipa.git-aa45ec616a0c49a9cedd32fb24aa4a56f69a6586.zip
369: Added Object.backend attribute used to associated it with a particular backend component
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r--ipalib/frontend.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py
index c95397aa..da04cd7a 100644
--- a/ipalib/frontend.py
+++ b/ipalib/frontend.py
@@ -511,17 +511,22 @@ class Command(plugable.Plugin):
class Object(plugable.Plugin):
__public__ = frozenset((
+ 'backend',
'methods',
'properties',
'params',
'primary_key',
'params_minus_pk',
))
+ backend = None
methods = None
properties = None
params = None
primary_key = None
params_minus_pk = None
+
+ # Can override in subclasses:
+ backend_name = None
takes_params = tuple()
def set_api(self, api):
@@ -549,8 +554,13 @@ class Object(plugable.Plugin):
filter(lambda p: not p.primary_key, self.params()), sort=False
)
+ if 'Backend' in self.api and self.backend_name in self.api.Backend:
+ self.backend = self.api.Backend[self.backend_name]
+
def __get_attrs(self, name):
- namespace = getattr(self.api, name)
+ if name not in self.api:
+ return
+ namespace = self.api[name]
assert type(namespace) is plugable.NameSpace
for proxy in namespace(): # Equivalent to dict.itervalues()
if proxy.obj_name == self.name: