summaryrefslogtreecommitdiffstats
path: root/ipalib/frontend.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2009-01-29 00:38:16 -0700
committerRob Crittenden <rcritten@redhat.com>2009-02-03 15:29:05 -0500
commit92a150b4f11e18f29c9eb7719b9ff8a0d7759717 (patch)
tree46ac46d2580c377e6bdebca539a44863d22071ae /ipalib/frontend.py
parent0211c76cd0ce614b9c7510315dbadf5336667410 (diff)
downloadfreeipa-92a150b4f11e18f29c9eb7719b9ff8a0d7759717.tar.gz
freeipa-92a150b4f11e18f29c9eb7719b9ff8a0d7759717.tar.xz
freeipa-92a150b4f11e18f29c9eb7719b9ff8a0d7759717.zip
Some tweaks in user plugins, ported to new crud base classes
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r--ipalib/frontend.py21
1 files changed, 11 insertions, 10 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py
index fc436a7a..54f7c87a 100644
--- a/ipalib/frontend.py
+++ b/ipalib/frontend.py
@@ -345,6 +345,14 @@ class Command(plugable.Plugin):
)
super(Command, self).finalize()
+ def _get_takes(self, name):
+ attr = getattr(self, name)
+ if isinstance(attr, (Param, str)):
+ return (attr,)
+ if callable(attr):
+ return attr()
+ return attr
+
def get_args(self):
"""
Iterate through parameters for ``Command.args`` namespace.
@@ -353,11 +361,7 @@ class Command(plugable.Plugin):
are determined. For an example of why this can be useful,
see `ipalib.crud.Mod`.
"""
- if callable(self.takes_args):
- args = self.takes_args()
- else:
- args = self.takes_args
- for arg in args:
+ for arg in self._get_takes('takes_args'):
yield arg
def get_options(self):
@@ -368,11 +372,7 @@ class Command(plugable.Plugin):
are determined. For an example of why this can be useful,
see `ipalib.crud.Mod`.
"""
- if callable(self.takes_options):
- options = self.takes_options()
- else:
- options = self.takes_options
- for option in options:
+ for option in self._get_takes('takes_options'):
yield option
def __create_args(self):
@@ -437,6 +437,7 @@ class Object(plugable.Plugin):
'params',
'primary_key',
'params_minus_pk',
+ 'params_minus',
'get_dn',
))
backend = None