summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorsongwenping <songwenping@inspur.com>2020-10-06 14:26:27 +0800
committerroot <songwenping@inspur.com>2020-10-07 02:15:25 +0000
commitc2df9215e19752714e83fcad82c8ae3708f85d7a (patch)
treecfcf7e7041dcb4e4532a645d087140053bc5deca /openstackclient
parent098a3fe2dea70eb16f13b717d62f51a4c890891d (diff)
downloadpython-openstackclient-c2df9215e19752714e83fcad82c8ae3708f85d7a.tar.gz
Remove usage of six
With python3.x, classes can use 'metaclass=' instead of 'six.add_metaclass', 'six.iteritems' and 'six.iterkeys' can be replaced by 'items' and 'keys', 'six.moves.urllib.parse' can be replaced by 'urllib.parse', 'six.StringIO' and 'six.moves.cStringIO' can be replaced by 'io.StringIO', 'six.text_type' and 'six.string_type' are just 'str'. Change-Id: I84848c0bf8ab3c36dd821141191e2725e4e3b58b
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/api/object_store_v1.py2
-rw-r--r--openstackclient/common/sdk_utils.py4
-rw-r--r--openstackclient/compute/v2/server.py5
-rw-r--r--openstackclient/identity/v3/access_rule.py3
-rw-r--r--openstackclient/network/common.py22
-rw-r--r--openstackclient/shell.py8
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py15
-rw-r--r--openstackclient/tests/unit/compute/v2/test_service.py5
-rw-r--r--openstackclient/tests/unit/fakes.py3
-rw-r--r--openstackclient/tests/unit/object/v1/fakes.py3
-rw-r--r--openstackclient/tests/unit/object/v1/test_object_all.py6
-rw-r--r--openstackclient/tests/unit/utils.py2
12 files changed, 30 insertions, 48 deletions
diff --git a/openstackclient/api/object_store_v1.py b/openstackclient/api/object_store_v1.py
index 8092abd0..67c79230 100644
--- a/openstackclient/api/object_store_v1.py
+++ b/openstackclient/api/object_store_v1.py
@@ -17,9 +17,9 @@ import io
import logging
import os
import sys
+import urllib
from osc_lib import utils
-from six.moves import urllib
from openstackclient.api import api
diff --git a/openstackclient/common/sdk_utils.py b/openstackclient/common/sdk_utils.py
index 9f085617..af9c74f9 100644
--- a/openstackclient/common/sdk_utils.py
+++ b/openstackclient/common/sdk_utils.py
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-import six
-
def get_osc_show_columns_for_sdk_resource(
sdk_resource,
@@ -44,7 +42,7 @@ def get_osc_show_columns_for_sdk_resource(
for col_name in invisible_columns:
if col_name in display_columns:
display_columns.remove(col_name)
- for sdk_attr, osc_attr in six.iteritems(osc_column_map):
+ for sdk_attr, osc_attr in osc_column_map.items():
if sdk_attr in display_columns:
attr_map[osc_attr] = sdk_attr
display_columns.remove(sdk_attr)
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 1d1fc741..756903f7 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -30,7 +30,6 @@ from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils
from oslo_utils import timeutils
-import six
from openstackclient.i18n import _
from openstackclient.identity import common as identity_common
@@ -97,7 +96,7 @@ def _get_ip_address(addresses, address_type, ip_address_family):
for network in addresses:
for addy in addresses[network]:
# Case where it is list of strings
- if isinstance(addy, six.string_types):
+ if isinstance(addy, str):
if new_address_type == 'fixed':
return addresses[network][0]
else:
@@ -876,7 +875,7 @@ class CreateServer(command.ShowOne):
boot_args = [parsed_args.server_name, image, flavor]
# Handle block device by device name order, like: vdb -> vdc -> vdd
- for dev_name in sorted(six.iterkeys(parsed_args.block_device_mapping)):
+ for dev_name in sorted(parsed_args.block_device_mapping):
dev_map = parsed_args.block_device_mapping[dev_name]
dev_map = dev_map.split(':')
if dev_map[0]:
diff --git a/openstackclient/identity/v3/access_rule.py b/openstackclient/identity/v3/access_rule.py
index 65e78be1..ffda04f9 100644
--- a/openstackclient/identity/v3/access_rule.py
+++ b/openstackclient/identity/v3/access_rule.py
@@ -20,7 +20,6 @@ import logging
from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils
-import six
from openstackclient.i18n import _
from openstackclient.identity import common
@@ -115,4 +114,4 @@ class ShowAccessRule(command.ShowOne):
access_rule._info.pop('links', None)
- return zip(*sorted(six.iteritems(access_rule._info)))
+ return zip(*sorted(access_rule._info.items()))
diff --git a/openstackclient/network/common.py b/openstackclient/network/common.py
index e68628b3..47ffbe77 100644
--- a/openstackclient/network/common.py
+++ b/openstackclient/network/common.py
@@ -18,7 +18,6 @@ import logging
import openstack.exceptions
from osc_lib.command import command
from osc_lib import exceptions
-import six
from openstackclient.i18n import _
@@ -54,8 +53,7 @@ def check_missing_extension_if_error(client_manager, attrs):
raise
-@six.add_metaclass(abc.ABCMeta)
-class NetDetectionMixin(object):
+class NetDetectionMixin(metaclass=abc.ABCMeta):
"""Convenience methods for nova-network vs. neutron decisions.
A live environment detects which network type it is running and creates its
@@ -166,8 +164,8 @@ class NetDetectionMixin(object):
pass
-@six.add_metaclass(abc.ABCMeta)
-class NetworkAndComputeCommand(NetDetectionMixin, command.Command):
+class NetworkAndComputeCommand(NetDetectionMixin, command.Command,
+ metaclass=abc.ABCMeta):
"""Network and Compute Command
Command class for commands that support implementation via
@@ -178,8 +176,8 @@ class NetworkAndComputeCommand(NetDetectionMixin, command.Command):
pass
-@six.add_metaclass(abc.ABCMeta)
-class NetworkAndComputeDelete(NetworkAndComputeCommand):
+class NetworkAndComputeDelete(NetworkAndComputeCommand,
+ metaclass=abc.ABCMeta):
"""Network and Compute Delete
Delete class for commands that support implementation via
@@ -222,8 +220,8 @@ class NetworkAndComputeDelete(NetworkAndComputeCommand):
raise exceptions.CommandError(msg)
-@six.add_metaclass(abc.ABCMeta)
-class NetworkAndComputeLister(NetDetectionMixin, command.Lister):
+class NetworkAndComputeLister(NetDetectionMixin, command.Lister,
+ metaclass=abc.ABCMeta):
"""Network and Compute Lister
Lister class for commands that support implementation via
@@ -234,8 +232,8 @@ class NetworkAndComputeLister(NetDetectionMixin, command.Lister):
pass
-@six.add_metaclass(abc.ABCMeta)
-class NetworkAndComputeShowOne(NetDetectionMixin, command.ShowOne):
+class NetworkAndComputeShowOne(NetDetectionMixin, command.ShowOne,
+ metaclass=abc.ABCMeta):
"""Network and Compute ShowOne
ShowOne class for commands that support implementation via
@@ -255,5 +253,5 @@ class NetworkAndComputeShowOne(NetDetectionMixin, command.ShowOne):
except openstack.exceptions.HttpException as exc:
msg = _("Error while executing command: %s") % exc.message
if exc.details:
- msg += ", " + six.text_type(exc.details)
+ msg += ", " + str(exc.details)
raise exceptions.CommandError(msg)
diff --git a/openstackclient/shell.py b/openstackclient/shell.py
index 755af24d..bc88e1f1 100644
--- a/openstackclient/shell.py
+++ b/openstackclient/shell.py
@@ -16,13 +16,11 @@
"""Command-line interface to the OpenStack APIs"""
-import locale
import sys
from osc_lib.api import auth
from osc_lib.command import commandmanager
from osc_lib import shell
-import six
import openstackclient
from openstackclient.common import clientmanager
@@ -143,12 +141,6 @@ class OpenStackShell(shell.OpenStackShell):
def main(argv=None):
if argv is None:
argv = sys.argv[1:]
- if six.PY2:
- # Emulate Py3, decode argv into Unicode based on locale so that
- # commands always see arguments as text instead of binary data
- encoding = locale.getpreferredencoding()
- if encoding:
- argv = map(lambda arg: arg.decode(encoding), argv)
return OpenStackShell().run(argv)
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 02bb406c..2445e143 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -24,7 +24,6 @@ from openstack import exceptions as sdk_exceptions
from osc_lib import exceptions
from osc_lib import utils as common_utils
from oslo_utils import timeutils
-import six
from openstackclient.compute.v2 import server
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
@@ -1907,7 +1906,7 @@ class TestServerCreate(TestServer):
self.cmd.take_action, parsed_args)
# Assert it is the error we expect.
self.assertIn('--volume is not allowed with --boot-from-volume',
- six.text_type(ex))
+ str(ex))
def test_server_create_image_property(self):
arglist = [
@@ -3288,7 +3287,7 @@ class TestServerMigrate(TestServer):
# Make sure it's the error we expect.
self.assertIn('--os-compute-api-version 2.56 or greater is required '
'to use --host without --live-migration.',
- six.text_type(ex))
+ str(ex))
self.servers_mock.get.assert_called_with(self.server.id)
self.assertNotCalled(self.servers_mock.live_migrate)
@@ -3323,7 +3322,7 @@ class TestServerMigrate(TestServer):
# A warning should have been logged for using --live.
mock_warning.assert_called_once()
self.assertIn('The --live option has been deprecated.',
- six.text_type(mock_warning.call_args[0][0]))
+ str(mock_warning.call_args[0][0]))
def test_server_live_migrate_host_pre_2_30(self):
# Tests that the --host option is not supported for --live-migration
@@ -3346,7 +3345,7 @@ class TestServerMigrate(TestServer):
# Make sure it's the error we expect.
self.assertIn('--os-compute-api-version 2.30 or greater is required '
- 'when using --host', six.text_type(ex))
+ 'when using --host', str(ex))
self.servers_mock.get.assert_called_with(self.server.id)
self.assertNotCalled(self.servers_mock.live_migrate)
@@ -3436,7 +3435,7 @@ class TestServerMigrate(TestServer):
# A warning should have been logged for using --live.
mock_warning.assert_called_once()
self.assertIn('The --live option has been deprecated.',
- six.text_type(mock_warning.call_args[0][0]))
+ str(mock_warning.call_args[0][0]))
def test_server_live_migrate_live_and_host_mutex(self):
# Tests specifying both the --live and --host options which are in a
@@ -4352,7 +4351,7 @@ class TestServerResize(TestServer):
# A warning should have been logged for using --confirm.
mock_warning.assert_called_once()
self.assertIn('The --confirm option has been deprecated.',
- six.text_type(mock_warning.call_args[0][0]))
+ str(mock_warning.call_args[0][0]))
def test_server_resize_revert(self):
arglist = [
@@ -4377,7 +4376,7 @@ class TestServerResize(TestServer):
# A warning should have been logged for using --revert.
mock_warning.assert_called_once()
self.assertIn('The --revert option has been deprecated.',
- six.text_type(mock_warning.call_args[0][0]))
+ str(mock_warning.call_args[0][0]))
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
def test_server_resize_with_wait_ok(self, mock_wait_for_status):
diff --git a/openstackclient/tests/unit/compute/v2/test_service.py b/openstackclient/tests/unit/compute/v2/test_service.py
index 7a036833..87e54747 100644
--- a/openstackclient/tests/unit/compute/v2/test_service.py
+++ b/openstackclient/tests/unit/compute/v2/test_service.py
@@ -18,7 +18,6 @@ from unittest.mock import call
from novaclient import api_versions
from osc_lib import exceptions
-import six
from openstackclient.compute.v2 import service
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
@@ -502,7 +501,7 @@ class TestServiceSet(TestService):
self.cmd._find_service_by_host_and_binary,
self.service_mock, 'fake-host', 'nova-compute')
self.assertIn('Compute service for host "fake-host" and binary '
- '"nova-compute" not found.', six.text_type(ex))
+ '"nova-compute" not found.', str(ex))
def test_service_set_find_service_by_host_and_binary_many_results(self):
# Tests that more than one compute service is found by host and binary.
@@ -512,4 +511,4 @@ class TestServiceSet(TestService):
self.service_mock, 'fake-host', 'nova-compute')
self.assertIn('Multiple compute services found for host "fake-host" '
'and binary "nova-compute". Unable to proceed.',
- six.text_type(ex))
+ str(ex))
diff --git a/openstackclient/tests/unit/fakes.py b/openstackclient/tests/unit/fakes.py
index e5476f06..00e0c129 100644
--- a/openstackclient/tests/unit/fakes.py
+++ b/openstackclient/tests/unit/fakes.py
@@ -19,7 +19,6 @@ from unittest import mock
from keystoneauth1 import fixture
import requests
-import six
AUTH_TOKEN = "foobar"
@@ -253,7 +252,7 @@ class FakeResponse(requests.Response):
self.headers.update(headers)
self._content = json.dumps(data)
- if not isinstance(self._content, six.binary_type):
+ if not isinstance(self._content, bytes):
self._content = self._content.encode()
diff --git a/openstackclient/tests/unit/object/v1/fakes.py b/openstackclient/tests/unit/object/v1/fakes.py
index 0ed791a5..1808d5b7 100644
--- a/openstackclient/tests/unit/object/v1/fakes.py
+++ b/openstackclient/tests/unit/object/v1/fakes.py
@@ -14,7 +14,6 @@
#
from keystoneauth1 import session
-import six
from openstackclient.api import object_store_v1 as object_store
from openstackclient.tests.unit import utils
@@ -68,7 +67,7 @@ OBJECT = {
'last_modified': object_modified_1,
}
-object_1_content = six.b('object 1 content')
+object_1_content = b'object 1 content'
OBJECT_2 = {
'name': object_name_2,
diff --git a/openstackclient/tests/unit/object/v1/test_object_all.py b/openstackclient/tests/unit/object/v1/test_object_all.py
index dd587142..7e88409f 100644
--- a/openstackclient/tests/unit/object/v1/test_object_all.py
+++ b/openstackclient/tests/unit/object/v1/test_object_all.py
@@ -12,11 +12,11 @@
#
import copy
+import io
from unittest import mock
from osc_lib import exceptions
from requests_mock.contrib import fixture
-import six
from openstackclient.object.v1 import object as object_cmds
from openstackclient.tests.unit.object.v1 import fakes as object_fakes
@@ -241,9 +241,9 @@ class TestObjectSave(TestObjectAll):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- class FakeStdout(six.BytesIO):
+ class FakeStdout(io.BytesIO):
def __init__(self):
- six.BytesIO.__init__(self)
+ io.BytesIO.__init__(self)
self.context_manager_calls = []
def __enter__(self):
diff --git a/openstackclient/tests/unit/utils.py b/openstackclient/tests/unit/utils.py
index 4f1bc46a..4130f18e 100644
--- a/openstackclient/tests/unit/utils.py
+++ b/openstackclient/tests/unit/utils.py
@@ -14,11 +14,11 @@
# under the License.
#
+from io import StringIO
import os
from cliff import columns as cliff_columns
import fixtures
-from six.moves import StringIO
import testtools
from openstackclient.tests.unit import fakes