schema: Fix internal error in param-{find,show} with nonexistent object

Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
This commit is contained in:
David Kupka 2017-08-29 16:49:36 +02:00 committed by Tibor Dudlák
parent d87163c290
commit 7ab49dda6d

View File

@ -626,16 +626,25 @@ class param(BaseParam):
return obj return obj
def _retrieve(self, metaobjectfull_name, name, **kwargs): def _retrieve(self, metaobjectfull_name, name, **kwargs):
found = False
try: try:
metaobj = self.api.Command[metaobjectfull_name] metaobj = self.api.Command[metaobjectfull_name]
plugin = self.api.Object['command'] plugin = self.api.Object['command']
except KeyError: except KeyError:
metaobj = self.api.Object[metaobjectfull_name] try:
plugin = self.api.Object['class'] metaobj = self.api.Object[metaobjectfull_name]
plugin = self.api.Object['class']
except KeyError:
pass
else:
found = True
else:
found = True
for param in plugin._iter_params(metaobj): if found:
if param.name == name: for param in plugin._iter_params(metaobj):
return metaobj, param if param.name == name:
return metaobj, param
raise errors.NotFound( raise errors.NotFound(
reason=_("%(pkey)s: %(oname)s not found") % { reason=_("%(pkey)s: %(oname)s not found") % {
@ -648,8 +657,11 @@ class param(BaseParam):
metaobj = self.api.Command[metaobjectfull_name] metaobj = self.api.Command[metaobjectfull_name]
plugin = self.api.Object['command'] plugin = self.api.Object['command']
except KeyError: except KeyError:
metaobj = self.api.Object[metaobjectfull_name] try:
plugin = self.api.Object['class'] metaobj = self.api.Object[metaobjectfull_name]
plugin = self.api.Object['class']
except KeyError:
return tuple()
return ((metaobj, param) for param in plugin._iter_params(metaobj)) return ((metaobj, param) for param in plugin._iter_params(metaobj))