Fix dict.keys() compatibility for python 3
In Python 2, dict.keys() will return a list. But in Python 3, it will return an iterator. So we need to fix all the places that assuming dict.keys() is a list. Change-Id: I8d1cc536377b3e5c644cfaa0892e40d0bd7c11b1 Closes-Bug: #1556350
This commit is contained in:
		| @@ -56,4 +56,4 @@ class CommandManager(cliff.commandmanager.CommandManager): | |||||||
|                 ) |                 ) | ||||||
|                 group_list.append(cmd_name) |                 group_list.append(cmd_name) | ||||||
|             return group_list |             return group_list | ||||||
|         return self.commands.keys() |         return list(self.commands.keys()) | ||||||
|   | |||||||
| @@ -122,7 +122,7 @@ def from_response(response, body): | |||||||
|     cls = _code_map.get(response.status, ClientException) |     cls = _code_map.get(response.status, ClientException) | ||||||
|     if body: |     if body: | ||||||
|         if hasattr(body, 'keys'): |         if hasattr(body, 'keys'): | ||||||
|             error = body[body.keys()[0]] |             error = body[list(body.keys())[0]] | ||||||
|             message = error.get('message') |             message = error.get('message') | ||||||
|             details = error.get('details') |             details = error.get('details') | ||||||
|         else: |         else: | ||||||
|   | |||||||
| @@ -281,7 +281,7 @@ def get_client_class(api_name, version, version_map): | |||||||
|         client_path = version_map[str(version)] |         client_path = version_map[str(version)] | ||||||
|     except (KeyError, ValueError): |     except (KeyError, ValueError): | ||||||
|         msg = "Invalid %s client version '%s'. must be one of: %s" % ( |         msg = "Invalid %s client version '%s'. must be one of: %s" % ( | ||||||
|               (api_name, version, ', '.join(version_map.keys()))) |               (api_name, version, ', '.join(list(version_map.keys())))) | ||||||
|         raise exceptions.UnsupportedVersion(msg) |         raise exceptions.UnsupportedVersion(msg) | ||||||
|  |  | ||||||
|     return importutils.import_class(client_path) |     return importutils.import_class(client_path) | ||||||
|   | |||||||
| @@ -355,7 +355,7 @@ class OpenStackShell(app.App): | |||||||
|                         self.log.warning( |                         self.log.warning( | ||||||
|                             "%s version %s is not in supported versions %s" |                             "%s version %s is not in supported versions %s" | ||||||
|                             % (api, version_opt, |                             % (api, version_opt, | ||||||
|                                ', '.join(mod.API_VERSIONS.keys()))) |                                ', '.join(list(mod.API_VERSIONS.keys())))) | ||||||
|  |  | ||||||
|                 # Command groups deal only with major versions |                 # Command groups deal only with major versions | ||||||
|                 version = '.v' + version_opt.replace('.', '_').split('_')[0] |                 version = '.v' + version_opt.replace('.', '_').split('_')[0] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Tang Chen
					Tang Chen