diff options
-rw-r--r-- | ipalib/crud.py | 15 | ||||
-rw-r--r-- | ipalib/plugins/baseldap.py | 30 |
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): |