Merge "raise better exception for duplicate match"

This commit is contained in:
Jenkins 2013-07-18 04:56:26 +00:00 committed by Gerrit Code Review
commit 31e9374525
3 changed files with 8 additions and 6 deletions
neutronclient
common
neutron/v2_0
tests/unit

@ -167,3 +167,8 @@ class UnsupportedVersion(Exception):
class CommandError(Exception):
pass
class NeutronClientNoUniqueMatch(NeutronClientException):
message = _("Multiple %(resource)s matches found for name '%(name)s',"
" use an ID to be more specific.")

@ -52,11 +52,8 @@ def _find_resourceid_by_name(client, resource, name):
collection = resource + "s"
info = data[collection]
if len(info) > 1:
msg = (_("Multiple %(resource)s matches found for name '%(name)s',"
" use an ID to be more specific.") %
{'resource': resource, 'name': name})
raise exceptions.NeutronClientException(
message=msg)
raise exceptions.NeutronClientNoUniqueMatch(resource=resource,
name=name)
elif len(info) == 0:
not_found_message = (_("Unable to find %(resource)s with name "
"'%(name)s'") %

@ -109,7 +109,7 @@ class CLITestNameorID(testtools.TestCase):
try:
neutronV20.find_resourceid_by_name_or_id(
self.client, 'network', name)
except exceptions.NeutronClientException as ex:
except exceptions.NeutronClientNoUniqueMatch as ex:
self.assertTrue('Multiple' in ex.message)
def test_get_id_from_name_notfound(self):