diff --git a/novaclient/openstack/common/apiclient/exceptions.py b/novaclient/openstack/common/apiclient/exceptions.py index ada1344f5..68f49c0ce 100644 --- a/novaclient/openstack/common/apiclient/exceptions.py +++ b/novaclient/openstack/common/apiclient/exceptions.py @@ -55,6 +55,11 @@ class CommandError(ClientException): pass +class ResourceNotFound(ClientException): + """Error in getting the resource.""" + pass + + class AuthorizationFailure(ClientException): """Cannot authorize API client.""" pass diff --git a/novaclient/tests/test_utils.py b/novaclient/tests/test_utils.py index ba6801198..87c8c208f 100644 --- a/novaclient/tests/test_utils.py +++ b/novaclient/tests/test_utils.py @@ -89,15 +89,15 @@ class FindResourceTestCase(test_utils.TestCase): def test_find_none(self): """Test a few non-valid inputs.""" - self.assertRaises(exceptions.CommandError, + self.assertRaises(exceptions.ResourceNotFound, utils.find_resource, self.manager, 'asdf') - self.assertRaises(exceptions.CommandError, + self.assertRaises(exceptions.ResourceNotFound, utils.find_resource, self.manager, None) - self.assertRaises(exceptions.CommandError, + self.assertRaises(exceptions.ResourceNotFound, utils.find_resource, self.manager, {}) diff --git a/novaclient/tests/v1_1/test_shell.py b/novaclient/tests/v1_1/test_shell.py index 8af3a16ca..42d087fa3 100644 --- a/novaclient/tests/v1_1/test_shell.py +++ b/novaclient/tests/v1_1/test_shell.py @@ -953,7 +953,7 @@ class ShellTest(utils.TestCase): self.assert_called('GET', '/flavors/1', pos=-1) def test_show_bad_id(self): - self.assertRaises(exceptions.CommandError, + self.assertRaises(exceptions.ResourceNotFound, self.run_command, 'show xxx') @mock.patch('novaclient.v1_1.shell.utils.print_dict') diff --git a/novaclient/utils.py b/novaclient/utils.py index 36e732038..def966992 100644 --- a/novaclient/utils.py +++ b/novaclient/utils.py @@ -241,7 +241,7 @@ def find_resource(manager, name_or_id, **find_args): msg = _("No %(class)s with a name or ID of '%(name)s' exists.") % \ {'class': manager.resource_class.__name__.lower(), 'name': name_or_id} - raise exceptions.CommandError(msg) + raise exceptions.ResourceNotFound(msg) except exceptions.NoUniqueMatch: msg = (_("Multiple %(class)s matches found for '%(name)s', use an ID " "to be more specific.") %