diff options
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r-- | ipalib/frontend.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 71db84e3e..edea20866 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -1258,6 +1258,8 @@ class Object(HasParam): namespace = self.api[name] assert type(namespace) is APINameSpace for plugin in namespace(): # Equivalent to dict.itervalues() + if plugin is not namespace[plugin.name]: + continue if plugin.obj_name == self.name: yield plugin @@ -1328,11 +1330,17 @@ class Attribute(Plugin): In practice the `Attribute` class is not used directly, but rather is only the base class for the `Method` class. Also see the `Object` class. """ + obj_version = '1' + @property def obj_name(self): return self.name.partition('_')[0] @property + def obj_full_name(self): + return self.obj.full_name + + @property def attr_name(self): prefix = '{}_'.format(self.obj_name) assert self.name.startswith(prefix) @@ -1340,7 +1348,7 @@ class Attribute(Plugin): @property def obj(self): - return self.api.Object[self.obj_name] + return self.api.Object[self.obj_name, self.obj_version] class Method(Attribute, Command): |