diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 02:52:19 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 02:52:19 +0000 |
commit | 19bbc48eb601bb942ed93776c05bf0c326970832 (patch) | |
tree | 55594bbec7966f10ad12ff7ec01b837e6c184084 /ipalib/frontend.py | |
parent | 4dbbf5656d4db96068ca6c936120827e52ba5ad8 (diff) | |
download | freeipa-19bbc48eb601bb942ed93776c05bf0c326970832.tar.gz freeipa-19bbc48eb601bb942ed93776c05bf0c326970832.tar.xz freeipa-19bbc48eb601bb942ed93776c05bf0c326970832.zip |
323: Added Command.run() method that dispatches to execute() or forward(); added corresponding unit tests
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r-- | ipalib/frontend.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 489b874c..11d05d5f 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -343,6 +343,11 @@ class Command(plugable.Plugin): print ' args =', args print ' kw =', kw + def forward(self, *args, **kw): + print '%s.execute():' % self.name + print ' args =', args + print ' kw =', kw + def __call__(self, *args, **kw): if len(args) > 0: arg_kw = self.args_to_kw(*args) @@ -353,7 +358,15 @@ class Command(plugable.Plugin): kw.update(self.get_default(**kw)) self.validate(**kw) args = tuple(kw.pop(name) for name in self.args) - self.execute(*args, **kw) + return self.run(*args, **kw) + + def run(self, *args, **kw): + if self.api.env.in_server_context: + target = self.execute + else: + target = self.forward + object.__setattr__(self, 'run', target) + return target(*args, **kw) def args_to_kw(self, *values): if self.max_args is not None and len(values) > self.max_args: |