diff options
-rw-r--r-- | ipaclient/frontend.py | 10 | ||||
-rw-r--r-- | ipalib/frontend.py | 19 |
2 files changed, 21 insertions, 8 deletions
diff --git a/ipaclient/frontend.py b/ipaclient/frontend.py index a869e337a..94d694631 100644 --- a/ipaclient/frontend.py +++ b/ipaclient/frontend.py @@ -55,11 +55,17 @@ class CommandOverride(Command): class MethodOverride(CommandOverride, Method): @property def obj_name(self): - return self.next.obj_name + try: + return self.next.obj_name + except AttributeError: + return None @property def attr_name(self): - return self.next.attr_name + try: + return self.next.attr_name + except AttributeError: + return None @property def obj(self): diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 05d19e4f5..f324add29 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -1343,7 +1343,10 @@ class Attribute(Plugin): @property def obj_full_name(self): - return self.obj.full_name + if self.obj is not None: + return self.obj.full_name + else: + return None @property def attr_name(self): @@ -1353,7 +1356,10 @@ class Attribute(Plugin): @property def obj(self): - return self.api.Object[self.obj_name, self.obj_version] + if self.obj_name is not None and self.obj_version is not None: + return self.api.Object[self.obj_name, self.obj_version] + else: + return None class Method(Attribute, Command): @@ -1426,10 +1432,11 @@ class Method(Attribute, Command): extra_args_first = False def get_output_params(self): - for param in self.obj.params(): - if 'no_output' in param.flags: - continue - yield param + if self.obj is not None: + for param in self.obj.params(): + if 'no_output' in param.flags: + continue + yield param for param in super(Method, self).get_output_params(): yield param |