diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-26 02:43:11 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-26 02:43:11 +0000 |
commit | aa45ec616a0c49a9cedd32fb24aa4a56f69a6586 (patch) | |
tree | 6b5f88eb33029b6d040c0e34ade351e31b85b128 /ipalib/frontend.py | |
parent | 433d2e2e11a11bfe08599cd2314570d164448afa (diff) | |
download | freeipa.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.py | 12 |
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: |