From dc7e4fc15d80eed5a814f0b87e1860f0cd86c2ee Mon Sep 17 00:00:00 2001 From: Tang Chen Date: Sat, 12 Mar 2016 10:58:28 +0800 Subject: 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 --- openstackclient/common/commandmanager.py | 2 +- openstackclient/common/exceptions.py | 2 +- openstackclient/common/utils.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'openstackclient/common') diff --git a/openstackclient/common/commandmanager.py b/openstackclient/common/commandmanager.py index b809d63a..c190e33e 100644 --- a/openstackclient/common/commandmanager.py +++ b/openstackclient/common/commandmanager.py @@ -56,4 +56,4 @@ class CommandManager(cliff.commandmanager.CommandManager): ) group_list.append(cmd_name) return group_list - return self.commands.keys() + return list(self.commands.keys()) diff --git a/openstackclient/common/exceptions.py b/openstackclient/common/exceptions.py index 5f5f5ab1..ee0f7a11 100644 --- a/openstackclient/common/exceptions.py +++ b/openstackclient/common/exceptions.py @@ -122,7 +122,7 @@ def from_response(response, body): cls = _code_map.get(response.status, ClientException) if body: if hasattr(body, 'keys'): - error = body[body.keys()[0]] + error = body[list(body.keys())[0]] message = error.get('message') details = error.get('details') else: diff --git a/openstackclient/common/utils.py b/openstackclient/common/utils.py index 840da402..c6ed6a71 100644 --- a/openstackclient/common/utils.py +++ b/openstackclient/common/utils.py @@ -281,7 +281,7 @@ def get_client_class(api_name, version, version_map): client_path = version_map[str(version)] except (KeyError, ValueError): 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) return importutils.import_class(client_path) -- cgit v1.2.1