diff options
author | Alexander Bokovoy <abokovoy@redhat.com> | 2011-08-17 15:46:41 +0300 |
---|---|---|
committer | Alexander Bokovoy <abokovoy@redhat.com> | 2011-08-17 15:46:41 +0300 |
commit | d11e876f59da5275e1d8d0afece7adbc7535dedb (patch) | |
tree | 5034da6195b90ce8d5d43ea77094f6755ee2325e | |
parent | bc8ea3ae4e21bc38648a093615f0a4872915a374 (diff) | |
download | freeipa-ticket-1549.tar.gz freeipa-ticket-1549.tar.xz freeipa-ticket-1549.zip |
Propagate environment when it is required.ticket-1549
https://fedorahosted.org/freeipa/ticket/1549
https://fedorahosted.org/freeipa/ticket/1550
-rw-r--r-- | ipalib/frontend.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 35343105c..1f9f172e1 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -344,6 +344,13 @@ class HasParam(Plugin): for spec in get(): param = create_param(spec) if env is None or param.use_in_context(env): + if env is not None and not hasattr(param, 'env'): + # Force specified environment. The way it is done is violation of ReadOnly promise. + # Unfortunately, all alternatives are worse from both performance and code complexity + # points of view. See following threads on freeipa-devel@ for references: + # https://www.redhat.com/archives/freeipa-devel/2011-August/msg00000.html + # https://www.redhat.com/archives/freeipa-devel/2011-August/msg00011.html + object.__setattr__(param, 'env', env) yield param def _create_param_namespace(self, name, env=None): |