summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index 7f1929f4..7dfcd176 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -227,6 +227,7 @@ class Command(plugable.Plugin):
'smart_option_order',
'Option',
'args',
+ 'options',
))
__Option = None
takes_options = tuple()
@@ -234,6 +235,7 @@ class Command(plugable.Plugin):
def __init__(self):
self.args = plugable.NameSpace(self.__check_args(), sort=False)
+ self.options = plugable.NameSpace(self.__check_options(), sort=False)
def get_args(self):
return self.takes_args
@@ -265,6 +267,16 @@ class Command(plugable.Plugin):
multivalue = True
yield arg
+ def __check_options(self):
+ for option in self.get_options():
+ if type(option) is str:
+ option = generate_argument(option)
+ elif not isinstance(option, Option):
+ raise TypeError(
+ 'option: need %r or %r; got %r' % (str, Option, option)
+ )
+ yield option
+
def __get_Option(self):
"""
Returns the NameSpace containing the Option instances.