diff --git a/neutron_tempest_plugin/api/admin/test_ports.py b/neutron_tempest_plugin/api/admin/test_ports.py index 9c943220d..6f51b1c68 100644 --- a/neutron_tempest_plugin/api/admin/test_ports.py +++ b/neutron_tempest_plugin/api/admin/test_ports.py @@ -14,7 +14,6 @@ # under the License. import netaddr -import six from neutron_lib import constants as const from tempest.common import utils @@ -123,8 +122,8 @@ class PortTestCasesResourceRequest(base.BaseAdminNetworkTest): self.assertIn('resource_request', port) vnic_trait = 'CUSTOM_VNIC_TYPE_%s' % vnic_type.upper() physnet_trait = 'CUSTOM_PHYSNET_%s' % self.physnet_name.upper() - six.assertCountEqual(self, [physnet_trait, vnic_trait], - port['resource_request']['required']) + self.assertCountEqual([physnet_trait, vnic_trait], + port['resource_request']['required']) self.assertEqual( {'NET_BW_EGR_KILOBIT_PER_SEC': self.EGRESS_KBPS, diff --git a/neutron_tempest_plugin/api/admin/test_quotas.py b/neutron_tempest_plugin/api/admin/test_quotas.py index ae773c8a4..0cf474e07 100644 --- a/neutron_tempest_plugin/api/admin/test_quotas.py +++ b/neutron_tempest_plugin/api/admin/test_quotas.py @@ -13,7 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. -import six from tempest.common import utils from tempest.lib import decorators from tempest.lib import exceptions as lib_exc @@ -145,7 +144,7 @@ class QuotasTest(QuotasTestBase): # as requested for tenant quota_set = self.admin_client.show_details_quota(tenant_id) quota_set = quota_set['quota'] - for key, value in six.iteritems(new_quotas): + for key, value in new_quotas.items(): self.assertEqual(new_quotas[key]['limit'], quota_set[key]['limit']) self.assertEqual(new_quotas[key]['reserved'], @@ -155,5 +154,5 @@ class QuotasTest(QuotasTestBase): # validate 'default' action for old extension quota_limit = self.admin_client.show_quotas(tenant_id)['quota'] - for key, value in six.iteritems(new_quotas): + for key, value in new_quotas.items(): self.assertEqual(new_quotas[key]['limit'], quota_limit[key]) diff --git a/neutron_tempest_plugin/common/ssh.py b/neutron_tempest_plugin/common/ssh.py index fa731d80b..c6204a43a 100644 --- a/neutron_tempest_plugin/common/ssh.py +++ b/neutron_tempest_plugin/common/ssh.py @@ -19,7 +19,6 @@ import time from oslo_log import log import paramiko -import six from tempest.lib.common import ssh from tempest.lib import exceptions import tenacity @@ -33,13 +32,7 @@ LOG = log.getLogger(__name__) RETRY_EXCEPTIONS = (exceptions.TimeoutException, paramiko.SSHException, - socket.error) -if six.PY2: - # NOTE(ralonsoh): TimeoutError was added in 3.3 and corresponds to - # OSError(errno.ETIMEDOUT) - RETRY_EXCEPTIONS += (OSError, ) -else: - RETRY_EXCEPTIONS += (TimeoutError, ) + socket.error, TimeoutError) class Client(ssh.Client): diff --git a/neutron_tempest_plugin/fwaas/api/test_fwaasv2_extensions.py b/neutron_tempest_plugin/fwaas/api/test_fwaasv2_extensions.py index f085e6d42..0dd18f121 100644 --- a/neutron_tempest_plugin/fwaas/api/test_fwaasv2_extensions.py +++ b/neutron_tempest_plugin/fwaas/api/test_fwaasv2_extensions.py @@ -13,7 +13,6 @@ # under the License. import netaddr -import six from tempest.common import utils from tempest import config @@ -212,7 +211,7 @@ class FWaaSv2ExtensionTestJSON(v2_base.BaseFWaaSTest): # show a created firewall rule fw_rule = self.firewall_rules_client.show_firewall_rule( self.fw_rule_1['id']) - for key, value in six.iteritems(fw_rule['firewall_rule']): + for key, value in fw_rule['firewall_rule'].items(): if key != 'firewall_policy_id': self.assertEqual(self.fw_rule_1[key], value) # This check is placed because we cannot modify policy during @@ -258,7 +257,7 @@ class FWaaSv2ExtensionTestJSON(v2_base.BaseFWaaSTest): fw_policy = self.firewall_policies_client.show_firewall_policy( self.fw_policy_1['id']) fw_policy = fw_policy['firewall_policy'] - for key, value in six.iteritems(fw_policy): + for key, value in fw_policy.items(): self.assertEqual(self.fw_policy_1[key], value) @decorators.idempotent_id('48dfcd75-3924-479d-bb65-b3ed33397663') @@ -283,7 +282,7 @@ class FWaaSv2ExtensionTestJSON(v2_base.BaseFWaaSTest): fwg_id) fwg = firewall_group['firewall_group'] - for key, value in six.iteritems(fwg): + for key, value in fwg.items(): if key == 'status': continue self.assertEqual(created_firewall_group[key], value) diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py index f75243636..b4be57b89 100644 --- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py +++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py @@ -19,7 +19,6 @@ import threading import time import netaddr -import six from os_ken.tests.integrated.common import docker_base as ctn_base from tempest.common import utils @@ -125,10 +124,10 @@ class BgpSpeakerScenarioTestJSONBase(base.BaseAdminNetworkTest): while True: with self.lock: try: - yield (i, str(six.next(subnet_gen))) + yield (i, str(next(subnet_gen))) except StopIteration: subnet_gen = netaddr.iter_iprange(start, end, step=step) - yield (i, str(six.next(subnet_gen))) + yield (i, str(next(subnet_gen))) i += 1 def net_resource_cleanup(self): diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base_test_proto.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base_test_proto.py index 1bcf5b179..643620f34 100644 --- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base_test_proto.py +++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base_test_proto.py @@ -14,7 +14,6 @@ # License for the specific language governing permissions and limitations # under the License. -import six from tempest import config from neutron_tempest_plugin.neutron_dynamic_routing.scenario import base @@ -28,7 +27,7 @@ class BgpSpeakerProtoTestBase(base.BgpSpeakerScenarioTestJSONBase): def _test_check_neighbor_established(self, ip_version): self.bgp_peer_args[0]['peer_ip'] = self.r_as_ip[0].split('/')[0] - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) @@ -47,7 +46,7 @@ class BgpSpeakerProtoTestBase(base.BgpSpeakerScenarioTestJSONBase): def _test_check_advertised_tenant_network(self, ip_version): self.bgp_peer_args[0]['peer_ip'] = self.r_as_ip[0].split('/')[0] - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) @@ -73,7 +72,7 @@ class BgpSpeakerProtoTestBase(base.BgpSpeakerScenarioTestJSONBase): tnets = [] tnets_cidr = [] for i in range(0, 3): - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) @@ -102,7 +101,7 @@ class BgpSpeakerProtoTestBase(base.BgpSpeakerScenarioTestJSONBase): for (bgp_peer_args, r_as_ip) in zip(self.bgp_peer_args, self.r_as_ip): bgp_peer_args['peer_ip'] = r_as_ip.split('/')[0] - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) @@ -124,7 +123,7 @@ class BgpSpeakerProtoTestBase(base.BgpSpeakerScenarioTestJSONBase): for (bgp_peer_args, r_as_ip) in zip(self.bgp_peer_args, self.r_as_ip): bgp_peer_args['peer_ip'] = r_as_ip.split('/')[0] - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_basic.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_basic.py index 1c680f9b8..90a681558 100644 --- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_basic.py +++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/basic/test_basic.py @@ -15,7 +15,6 @@ # under the License. from os_ken.tests.integrated.common import docker_base as ctn_base -import six from tempest import config from tempest.lib import decorators @@ -31,7 +30,7 @@ class BgpSpeakerBasicTest(base.BgpSpeakerBasicTestJSONBase): @decorators.idempotent_id('cc615252-c6cb-4d75-a70e-608fb2c3736a') def test_schedule_added_speaker(self): self.bgp_peer_args[0]['peer_ip'] = self.r_as_ip[0].split('/')[0] - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = s_base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) @@ -51,7 +50,7 @@ class BgpSpeakerBasicTest(base.BgpSpeakerBasicTestJSONBase): @decorators.idempotent_id('ce98c33c-0ffa-49ae-b365-da836406793b') def test_unschedule_deleted_speaker(self): self.bgp_peer_args[0]['peer_ip'] = self.r_as_ip[0].split('/')[0] - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = s_base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) @@ -77,7 +76,7 @@ class BgpSpeakerBasicTest(base.BgpSpeakerBasicTestJSONBase): @decorators.idempotent_id('aa6c565c-ded3-413b-8dc9-3928b3b0e38f') def test_remove_add_speaker_agent(self): self.bgp_peer_args[0]['peer_ip'] = self.r_as_ip[0].split('/')[0] - num, subnet = six.next(self.tnet_gen) + num, subnet = next(self.tnet_gen) mask = '/' + str(self.TPool.prefixlen) TNet = s_base.Net(name='', net=subnet, mask=self.TPool.prefixlen, cidr=subnet + mask, router=None) diff --git a/neutron_tempest_plugin/services/network/json/network_client.py b/neutron_tempest_plugin/services/network/json/network_client.py index 0b2544b8a..e733cd029 100644 --- a/neutron_tempest_plugin/services/network/json/network_client.py +++ b/neutron_tempest_plugin/services/network/json/network_client.py @@ -11,9 +11,9 @@ # under the License. import time +from urllib import parse as urlparse from oslo_serialization import jsonutils -from six.moves.urllib import parse as urlparse from tempest.lib.common import rest_client as service_client from tempest.lib import exceptions as lib_exc diff --git a/requirements.txt b/requirements.txt index 3edf7dcc1..47dd92330 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,6 @@ oslo.log>=3.36.0 # Apache-2.0 oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 oslo.utils>=3.33.0 # Apache-2.0 paramiko>=2.0.0 # LGPLv2.1+ -six>=1.10.0 # MIT tempest>=17.1.0 # Apache-2.0 tenacity>=3.2.1 # Apache-2.0 ddt>=1.0.1 # MIT