Merge "Remove duplicate find request in find_resource"
This commit is contained in:
		| @@ -14,6 +14,7 @@ | |||||||
| import collections | import collections | ||||||
| import sys | import sys | ||||||
|  |  | ||||||
|  | import mock | ||||||
| from six import moves | from six import moves | ||||||
|  |  | ||||||
| from cinderclient import exceptions | from cinderclient import exceptions | ||||||
| @@ -66,10 +67,12 @@ class FindResourceTestCase(test_utils.TestCase): | |||||||
|         self.manager = FakeManager(None) |         self.manager = FakeManager(None) | ||||||
|  |  | ||||||
|     def test_find_none(self): |     def test_find_none(self): | ||||||
|  |         self.manager.find = mock.Mock(side_effect=self.manager.find) | ||||||
|         self.assertRaises(exceptions.CommandError, |         self.assertRaises(exceptions.CommandError, | ||||||
|                           utils.find_resource, |                           utils.find_resource, | ||||||
|                           self.manager, |                           self.manager, | ||||||
|                           'asdf') |                           'asdf') | ||||||
|  |         self.assertEqual(3, self.manager.find.call_count) | ||||||
|  |  | ||||||
|     def test_find_by_integer_id(self): |     def test_find_by_integer_id(self): | ||||||
|         output = utils.find_resource(self.manager, 1234) |         output = utils.find_resource(self.manager, 1234) | ||||||
|   | |||||||
| @@ -166,10 +166,7 @@ def find_resource(manager, name_or_id): | |||||||
|             return manager.get(int(name_or_id)) |             return manager.get(int(name_or_id)) | ||||||
|     except exceptions.NotFound: |     except exceptions.NotFound: | ||||||
|         pass |         pass | ||||||
|  |     else: | ||||||
|     if sys.version_info <= (3, 0): |  | ||||||
|         name_or_id = strutils.safe_decode(name_or_id) |  | ||||||
|  |  | ||||||
|         # now try to get entity as uuid |         # now try to get entity as uuid | ||||||
|         try: |         try: | ||||||
|             uuid.UUID(name_or_id) |             uuid.UUID(name_or_id) | ||||||
| @@ -177,6 +174,9 @@ def find_resource(manager, name_or_id): | |||||||
|         except (ValueError, exceptions.NotFound): |         except (ValueError, exceptions.NotFound): | ||||||
|             pass |             pass | ||||||
|  |  | ||||||
|  |     if sys.version_info <= (3, 0): | ||||||
|  |         name_or_id = strutils.safe_decode(name_or_id) | ||||||
|  |  | ||||||
|     try: |     try: | ||||||
|         try: |         try: | ||||||
|             return manager.find(human_id=name_or_id) |             return manager.find(human_id=name_or_id) | ||||||
| @@ -187,13 +187,12 @@ def find_resource(manager, name_or_id): | |||||||
|         try: |         try: | ||||||
|             return manager.find(name=name_or_id) |             return manager.find(name=name_or_id) | ||||||
|         except exceptions.NotFound: |         except exceptions.NotFound: | ||||||
|  |             pass | ||||||
|  |  | ||||||
|  |         # Volumes don't have name, but display_name | ||||||
|         try: |         try: | ||||||
|             return manager.find(display_name=name_or_id) |             return manager.find(display_name=name_or_id) | ||||||
|         except (UnicodeDecodeError, exceptions.NotFound): |         except (UnicodeDecodeError, exceptions.NotFound): | ||||||
|                 try: |  | ||||||
|                     # Volumes does not have name, but display_name |  | ||||||
|                     return manager.find(display_name=name_or_id) |  | ||||||
|                 except exceptions.NotFound: |  | ||||||
|             msg = "No %s with a name or ID of '%s' exists." % \ |             msg = "No %s with a name or ID of '%s' exists." % \ | ||||||
|                 (manager.resource_class.__name__.lower(), name_or_id) |                 (manager.resource_class.__name__.lower(), name_or_id) | ||||||
|             raise exceptions.CommandError(msg) |             raise exceptions.CommandError(msg) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jenkins
					Jenkins