summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/crud.py15
-rw-r--r--ipalib/plugins/baseldap.py30
2 files changed, 21 insertions, 24 deletions
diff --git a/ipalib/crud.py b/ipalib/crud.py
index d54b91fd7..72ea142da 100644
--- a/ipalib/crud.py
+++ b/ipalib/crud.py
@@ -120,7 +120,10 @@ Note that the above are all equal.
"""
from frontend import Method, Object
-import backend, frontend, parameters, output
+import backend
+import parameters
+import output
+from ipalib.text import _
class Create(Method):
@@ -133,6 +136,8 @@ class Create(Method):
def get_args(self):
if self.obj.primary_key:
yield self.obj.primary_key.clone(attribute=True)
+ for arg in super(Create, self).get_args():
+ yield arg
def get_options(self):
if self.extra_options_first:
@@ -164,6 +169,8 @@ class PKQuery(Method):
# Don't enforce rules on the primary key so we can reference
# any stored entry, legal or not
yield self.obj.primary_key.clone(attribute=True, query=True)
+ for arg in super(PKQuery, self).get_args():
+ yield arg
class Retrieve(PKQuery):
@@ -230,7 +237,11 @@ class Search(Method):
has_output = output.standard_list_of_entries
def get_args(self):
- yield parameters.Str('criteria?', noextrawhitespace=False)
+ yield parameters.Str(
+ 'criteria?', noextrawhitespace=False,
+ doc=_('A string searched in all relevant object attributes'))
+ for arg in super(Search, self).get_args():
+ yield arg
def get_options(self):
if self.extra_options_first:
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 4a7950270..6d734d025 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -991,12 +991,9 @@ class LDAPCreate(BaseLDAPCommand, crud.Create):
takes_options = (BaseLDAPCommand.setattr_option, BaseLDAPCommand.addattr_option)
def get_args(self):
- #pylint: disable=E1003
for key in self.obj.get_ancestor_primary_keys():
yield key
- if self.obj.primary_key:
- yield self.obj.primary_key.clone(attribute=True)
- for arg in super(crud.Create, self).get_args():
+ for arg in super(LDAPCreate, self).get_args():
yield arg
has_output_params = global_output_params
@@ -1135,12 +1132,9 @@ class LDAPQuery(BaseLDAPCommand, crud.PKQuery):
Base class for commands that need to retrieve an existing entry.
"""
def get_args(self):
- #pylint: disable=E1003
for key in self.obj.get_ancestor_primary_keys():
yield key
- if self.obj.primary_key:
- yield self.obj.primary_key.clone(attribute=True, query=True)
- for arg in super(crud.PKQuery, self).get_args():
+ for arg in super(LDAPQuery, self).get_args():
yield arg
# list of attributes we want exported to JSON
@@ -1167,15 +1161,11 @@ class LDAPMultiQuery(LDAPQuery):
)
def get_args(self):
- #pylint: disable=E1003
- for key in self.obj.get_ancestor_primary_keys():
- yield key
- if self.obj.primary_key:
- yield self.obj.primary_key.clone(
- attribute=True, query=True, multivalue=True
- )
- for arg in super(crud.PKQuery, self).get_args():
- yield arg
+ for arg in super(LDAPMultiQuery, self).get_args():
+ if self.obj.primary_key and arg.name == self.obj.primary_key.name:
+ yield arg.clone(multivalue=True)
+ else:
+ yield arg
class LDAPRetrieve(LDAPQuery):
@@ -1758,13 +1748,9 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
)
def get_args(self):
- #pylint: disable=E1003
for key in self.obj.get_ancestor_primary_keys():
yield key
- yield Str('criteria?',
- noextrawhitespace=False,
- doc=_('A string searched in all relevant object attributes'))
- for arg in super(crud.Search, self).get_args():
+ for arg in super(LDAPSearch, self).get_args():
yield arg
def get_member_options(self, attr):