From 77b8baea5d0562914096b9aac6daf9fe48e0da64 Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Fri, 8 Nov 2024 01:39:29 +0000 Subject: [PATCH] Update hacking This patch updates the version of hacking to be consistent with octavia. It is also required for flake8 to understand f-strings correctly. Along with this version update, the patch fixes issues in the code found by the new versions. This patch also removes O349 check for importing mock since flake8 has added H216 which does the same check. Change-Id: I8e49fc19faff59b2811a7ee09b7ccaa286f73d82 --- .../common/barbican_client_mgr.py | 4 +- octavia_tempest_plugin/hacking/checks.py | 19 +-- .../v2/test_active_standby.py | 2 +- .../v2/test_active_standby_iptables.py | 2 +- .../tests/api/v2/test_listener.py | 12 +- .../tests/api/v2/test_member.py | 1 + .../barbican_scenario/v2/test_tls_barbican.py | 20 ++-- .../tests/scenario/v2/test_traffic_ops.py | 8 +- .../spare_pool_scenario/v2/test_spare_pool.py | 2 +- octavia_tempest_plugin/tests/test_base.py | 110 +++++++++--------- octavia_tempest_plugin/tests/validators.py | 13 +-- octavia_tempest_plugin/tests/waiters.py | 16 +-- test-requirements.txt | 2 +- tox.ini | 1 - 14 files changed, 94 insertions(+), 118 deletions(-) diff --git a/octavia_tempest_plugin/common/barbican_client_mgr.py b/octavia_tempest_plugin/common/barbican_client_mgr.py index eba1715a..3bd28077 100644 --- a/octavia_tempest_plugin/common/barbican_client_mgr.py +++ b/octavia_tempest_plugin/common/barbican_client_mgr.py @@ -73,7 +73,7 @@ class BarbicanClientManager(object): p12_secret.name = data_utils.rand_name("lb_member_barbican") p12_secret.payload = secret secret_ref = p12_secret.store() - LOG.debug('Secret {0} has ref {1}'.format(p12_secret.name, secret_ref)) + LOG.debug('Secret %s has ref %s', p12_secret.name, secret_ref) return secret_ref def delete_secret(self, secret_ref): @@ -84,5 +84,5 @@ class BarbicanClientManager(object): users=[user_id], project_access=True) acl_ref = acl_entity.submit() - LOG.debug('Secret ACL {0} added user {1}'.format(acl_ref, user_id)) + LOG.debug('Secret ACL %s added user %s', acl_ref, user_id) return acl_ref diff --git a/octavia_tempest_plugin/hacking/checks.py b/octavia_tempest_plugin/hacking/checks.py index eec74760..70089940 100644 --- a/octavia_tempest_plugin/hacking/checks.py +++ b/octavia_tempest_plugin/hacking/checks.py @@ -66,8 +66,6 @@ untranslated_exception_re = re.compile(r"raise (?:\w*)\((.*)\)") no_eventlet_re = re.compile(r'(import|from)\s+[(]?eventlet') no_line_continuation_backslash_re = re.compile(r'.*(\\)\n') no_logging_re = re.compile(r'(import|from)\s+[(]?logging') -import_mock_re = re.compile(r"\bimport[\s]+mock\b") -import_from_mock_re = re.compile(r"\bfrom[\s]+mock[\s]+import\b") def _translation_checks_not_enforced(filename): @@ -147,7 +145,7 @@ def no_log_warn(logical_line): O339 """ if logical_line.startswith('LOG.warn('): - yield(0, "O339:Use LOG.warning() rather than LOG.warn()") + yield (0, "O339:Use LOG.warning() rather than LOG.warn()") @core.flake8ext @@ -260,18 +258,3 @@ def check_no_logging_imports(logical_line): if no_logging_re.match(logical_line): msg = 'O348 Usage of Python logging module not allowed, use oslo_log' yield logical_line.index('logging'), msg - - -@core.flake8ext -def check_no_import_mock(logical_line): - """O349 - Test code must not import mock library. - - :param logical_line: The logical line to check. - :returns: None if the logical line passes the check, otherwise a tuple - is yielded that contains the offending index in logical line - and a message describe the check validation failure. - """ - if (import_mock_re.match(logical_line) or - import_from_mock_re.match(logical_line)): - msg = 'O349 Test code must not import mock library, use unittest.mock' - yield 0, msg diff --git a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py index e3f6338a..66cb59b0 100644 --- a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py +++ b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py @@ -69,7 +69,7 @@ class ActiveStandbyScenarioTest(test_base.LoadBalancerBaseTestWithCompute): floating_network_id=CONF.network.public_network_id, port_id=port_id) floating_ip = result['floatingip'] - LOG.info('lb1_floating_ip: {}'.format(floating_ip)) + LOG.info('lb1_floating_ip: %s', floating_ip) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls.lb_mem_float_ip_client.delete_floatingip, diff --git a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py index e7dccb6e..ce2c94f0 100644 --- a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py +++ b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py @@ -76,7 +76,7 @@ class ActiveStandbyIptablesScenarioTest( floating_network_id=CONF.network.public_network_id, port_id=port_id) floating_ip = result['floatingip'] - LOG.info('lb1_floating_ip: {}'.format(floating_ip)) + LOG.info('lb1_floating_ip: %s', floating_ip) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls.lb_mem_float_ip_client.delete_floatingip, diff --git a/octavia_tempest_plugin/tests/api/v2/test_listener.py b/octavia_tempest_plugin/tests/api/v2/test_listener.py index cd320f46..06a68487 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_listener.py +++ b/octavia_tempest_plugin/tests/api/v2/test_listener.py @@ -568,8 +568,8 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): fs = e.resp_body.get('faultstring', '') if ("Invalid input for field/attribute protocol." in fs and "Value should be one of:" in fs): - LOG.info("Skipping unsupported protocol: {}".format( - listener_kwargs[const.PROTOCOL])) + LOG.info("Skipping unsupported protocol: %s", + listener_kwargs[const.PROTOCOL]) else: raise e else: @@ -598,8 +598,8 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): fs = e.resp_body.get('faultstring', '') if ("Invalid input for field/attribute protocol." in fs and "Value should be one of:" in fs): - LOG.info("Skipping unsupported protocol: {}".format( - listener_kwargs[const.PROTOCOL])) + LOG.info("Skipping unsupported protocol: %s", + listener_kwargs[const.PROTOCOL]) else: raise e else: @@ -646,8 +646,8 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): fs = e.resp_body.get('faultstring', '') if ("Invalid input for field/attribute protocol." in fs and "Value should be one of:" in fs): - LOG.info("Skipping unsupported protocol: {}".format( - listener_kwargs[const.PROTOCOL])) + LOG.info("Skipping unsupported protocol: %s", + listener_kwargs[const.PROTOCOL]) else: raise e else: diff --git a/octavia_tempest_plugin/tests/api/v2/test_member.py b/octavia_tempest_plugin/tests/api/v2/test_member.py index 1e18af36..ed3fba6f 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_member.py +++ b/octavia_tempest_plugin/tests/api/v2/test_member.py @@ -29,6 +29,7 @@ from octavia_tempest_plugin.tests import waiters CONF = config.CONF + # Member port numbers need to be unique on the shared pools so generate them @misc.singleton class MemberPort(object): diff --git a/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py b/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py index 3c921815..62be8352 100644 --- a/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py +++ b/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py @@ -220,7 +220,7 @@ class TLSWithBarbicanTest(test_base.LoadBalancerBaseTestWithCompute): floating_network_id=CONF.network.public_network_id, port_id=port_id) floating_ip = result['floatingip'] - LOG.info('lb1_floating_ip: {}'.format(floating_ip)) + LOG.info('lb1_floating_ip: %s', floating_ip) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls.lb_mem_float_ip_client.delete_floatingip, @@ -349,9 +349,9 @@ class TLSWithBarbicanTest(test_base.LoadBalancerBaseTestWithCompute): # Make sure the certificate is the one we generated self.assertEqual(expected_cn, received_cn, message=msg) else: - LOG.error('Certificate with CN: {0} failed validation with ' - 'OpenSSL verify errno {1}'.format( - x509.get_subject().commonName, errno)) + LOG.error('Certificate with CN: %s failed validation with ' + 'OpenSSL verify errno %s', + x509.get_subject().commonName, errno) return False return True @@ -487,9 +487,9 @@ class TLSWithBarbicanTest(test_base.LoadBalancerBaseTestWithCompute): # Make sure the certificate is the one we generated self.assertEqual(expected_cn, received_cn, message=msg) else: - LOG.error('Certificate with CN: {0} failed validation with ' - 'OpenSSL verify errno {1}'.format( - x509.get_subject().commonName, errno)) + LOG.error('Certificate with CN: %s failed validation with ' + 'OpenSSL verify errno %s', + x509.get_subject().commonName, errno) return False return True @@ -660,9 +660,9 @@ class TLSWithBarbicanTest(test_base.LoadBalancerBaseTestWithCompute): # Make sure the certificate is the one we generated self.assertEqual(expected_cn, received_cn, message=msg) else: - LOG.error('Certificate with CN: {0} failed validation with ' - 'OpenSSL verify errno {1}'.format( - x509.get_subject().commonName, errno)) + LOG.error('Certificate with CN: %s failed validation with ' + 'OpenSSL verify errno %s', + x509.get_subject().commonName, errno) return False return True diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py index 00838876..db92352d 100644 --- a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py +++ b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py @@ -79,7 +79,7 @@ class TrafficOperationsScenarioTest(test_base.LoadBalancerBaseTestWithCompute): floating_network_id=CONF.network.public_network_id, port_id=port_id) floating_ip = result['floatingip'] - LOG.info('lb1_floating_ip: {}'.format(floating_ip)) + LOG.info('lb1_floating_ip: %s', floating_ip) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls.lb_mem_float_ip_client.delete_floatingip, @@ -1351,7 +1351,7 @@ class TrafficOperationsScenarioTest(test_base.LoadBalancerBaseTestWithCompute): test_url = 'http://{}:{}/request'.format( self.lb_vip_address, listener_port) data = self.validate_URL_response(test_url) - LOG.info('Received payload is: {}'.format(data)) + LOG.info('Received payload is: %s', data) # Detect source IP that is used to create TCP socket toward LB_VIP. try: @@ -1398,7 +1398,7 @@ class TrafficOperationsScenarioTest(test_base.LoadBalancerBaseTestWithCompute): # Initiate HTTP traffic data = self.validate_URL_response(test_url) - LOG.info('Received payload is: {}'.format(data)) + LOG.info('Received payload is: %s', data) expected_headers = {const.X_FORWARDED_PORT: '{}'.format( listener_port), const.X_FORWARDED_PROTO: const.HTTP.lower()} received_headers = _data_parser(data, expected_headers) @@ -1550,7 +1550,7 @@ class TrafficOperationsScenarioTest(test_base.LoadBalancerBaseTestWithCompute): # For each test case, update HM and validate that members' # "Operation Status" is changed to expected value. for ff in flip_flop: - LOG.info('Tested test case is: {}'.format(ff)) + LOG.info('Tested test case is: %s', ff) self.mem_healthmonitor_client.update_healthmonitor( hm_id, expected_codes=ff['code'], http_method=ff['mthd'], url_path=ff['url_path']) diff --git a/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py b/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py index 0ccfe551..26866c36 100644 --- a/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py +++ b/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py @@ -82,7 +82,7 @@ class SparePoolTest(test_base.LoadBalancerBaseTestWithCompute): floating_network_id=CONF.network.public_network_id, port_id=port_id) floating_ip = result['floatingip'] - LOG.info('lb1_floating_ip: {}'.format(floating_ip)) + LOG.info('lb1_floating_ip: %s', floating_ip) self.addClassResourceCleanup( waiters.wait_for_not_found, self.lb_mem_float_ip_client.delete_floatingip, diff --git a/octavia_tempest_plugin/tests/test_base.py b/octavia_tempest_plugin/tests/test_base.py index a04f1cba..7f4ae3ef 100644 --- a/octavia_tempest_plugin/tests/test_base.py +++ b/octavia_tempest_plugin/tests/test_base.py @@ -364,31 +364,31 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, else: cls._create_networks() - LOG.debug('Octavia Setup: lb_member_vip_net = {}'.format( - cls.lb_member_vip_net[const.ID])) + LOG.debug('Octavia Setup: lb_member_vip_net = %s', + cls.lb_member_vip_net[const.ID]) if cls.lb_member_vip_subnet: - LOG.debug('Octavia Setup: lb_member_vip_subnet = {}'.format( - cls.lb_member_vip_subnet[const.ID])) - LOG.debug('Octavia Setup: lb_member_1_net = {}'.format( - cls.lb_member_1_net[const.ID])) + LOG.debug('Octavia Setup: lb_member_vip_subnet = %s', + cls.lb_member_vip_subnet[const.ID]) + LOG.debug('Octavia Setup: lb_member_1_net = %s', + cls.lb_member_1_net[const.ID]) if cls.lb_member_1_subnet: - LOG.debug('Octavia Setup: lb_member_1_subnet = {}'.format( - cls.lb_member_1_subnet[const.ID])) - LOG.debug('Octavia Setup: lb_member_2_net = {}'.format( - cls.lb_member_2_net[const.ID])) + LOG.debug('Octavia Setup: lb_member_1_subnet = %s', + cls.lb_member_1_subnet[const.ID]) + LOG.debug('Octavia Setup: lb_member_2_net = %s', + cls.lb_member_2_net[const.ID]) if cls.lb_member_2_subnet: - LOG.debug('Octavia Setup: lb_member_2_subnet = {}'.format( - cls.lb_member_2_subnet[const.ID])) + LOG.debug('Octavia Setup: lb_member_2_subnet = %s', + cls.lb_member_2_subnet[const.ID]) if CONF.load_balancer.test_with_ipv6: if cls.lb_member_vip_ipv6_subnet: - LOG.debug('Octavia Setup: lb_member_vip_ipv6_subnet = ' - '{}'.format(cls.lb_member_vip_ipv6_subnet[const.ID])) + LOG.debug('Octavia Setup: lb_member_vip_ipv6_subnet = %s', + cls.lb_member_vip_ipv6_subnet[const.ID]) if cls.lb_member_1_ipv6_subnet: - LOG.debug('Octavia Setup: lb_member_1_ipv6_subnet = {}'.format( - cls.lb_member_1_ipv6_subnet[const.ID])) + LOG.debug('Octavia Setup: lb_member_1_ipv6_subnet = %s', + cls.lb_member_1_ipv6_subnet[const.ID]) if cls.lb_member_2_ipv6_subnet: - LOG.debug('Octavia Setup: lb_member_2_ipv6_subnet = {}'.format( - cls.lb_member_2_ipv6_subnet[const.ID])) + LOG.debug('Octavia Setup: lb_member_2_ipv6_subnet = %s', + cls.lb_member_2_ipv6_subnet[const.ID]) @classmethod # Neutron can be slow to clean up ports from the subnets/networks. @@ -403,8 +403,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, try: cls.lb_mem_net_client.delete_network(net_id) except Exception: - LOG.error('Unable to delete network {}. Active ports:'.format( - net_id)) + LOG.error('Unable to delete network %s. Active ports:', net_id) LOG.error(cls.lb_mem_ports_client.list_ports()) raise @@ -421,8 +420,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, try: cls.lb_mem_subnet_client.delete_subnet(subnet_id) except Exception: - LOG.error('Unable to delete subnet {}. Active ports:'.format( - subnet_id)) + LOG.error('Unable to delete subnet %s. Active ports:', subnet_id) LOG.error(cls.lb_mem_ports_client.list_ports()) raise @@ -450,7 +448,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, network_kwargs['port_security_enabled'] = True result = cls.lb_mem_net_client.create_network(**network_kwargs) cls.lb_member_vip_net = result['network'] - LOG.info('lb_member_vip_net: {}'.format(cls.lb_member_vip_net)) + LOG.info('lb_member_vip_net: %s', cls.lb_member_vip_net) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_network, @@ -465,7 +463,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, 'ip_version': 4} result = cls.lb_mem_subnet_client.create_subnet(**subnet_kwargs) cls.lb_member_vip_subnet = result['subnet'] - LOG.info('lb_member_vip_subnet: {}'.format(cls.lb_member_vip_subnet)) + LOG.info('lb_member_vip_subnet: %s', cls.lb_member_vip_subnet) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_subnet, @@ -507,8 +505,8 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, cls.lb_mem_subnet_client.show_subnet, cls.lb_member_vip_ipv6_subnet['id']) - LOG.info('lb_member_vip_ipv6_subnet: {}'.format( - cls.lb_member_vip_ipv6_subnet)) + LOG.info('lb_member_vip_ipv6_subnet: %s', + cls.lb_member_vip_ipv6_subnet) # Create tenant member 1 network network_kwargs = { @@ -520,7 +518,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, network_kwargs['port_security_enabled'] = False result = cls.lb_mem_net_client.create_network(**network_kwargs) cls.lb_member_1_net = result['network'] - LOG.info('lb_member_1_net: {}'.format(cls.lb_member_1_net)) + LOG.info('lb_member_1_net: %s', cls.lb_member_1_net) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_network, @@ -535,7 +533,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, 'ip_version': 4} result = cls.lb_mem_subnet_client.create_subnet(**subnet_kwargs) cls.lb_member_1_subnet = result['subnet'] - LOG.info('lb_member_1_subnet: {}'.format(cls.lb_member_1_subnet)) + LOG.info('lb_member_1_subnet: %s', cls.lb_member_1_subnet) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_subnet, @@ -553,10 +551,10 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, cls.lb_member_1_subnet_prefix = ( CONF.load_balancer.member_1_ipv6_subnet_cidr.rpartition('/')[2] ) - assert(cls.lb_member_1_subnet_prefix.isdigit()) + assert (cls.lb_member_1_subnet_prefix.isdigit()) cls.lb_member_1_ipv6_subnet = result['subnet'] - LOG.info('lb_member_1_ipv6_subnet: {}'.format( - cls.lb_member_1_ipv6_subnet)) + LOG.info('lb_member_1_ipv6_subnet: %s', + cls.lb_member_1_ipv6_subnet) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_subnet, @@ -573,7 +571,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, network_kwargs['port_security_enabled'] = False result = cls.lb_mem_net_client.create_network(**network_kwargs) cls.lb_member_2_net = result['network'] - LOG.info('lb_member_2_net: {}'.format(cls.lb_member_2_net)) + LOG.info('lb_member_2_net: %s', cls.lb_member_2_net) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_network, @@ -588,7 +586,7 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, 'ip_version': 4} result = cls.lb_mem_subnet_client.create_subnet(**subnet_kwargs) cls.lb_member_2_subnet = result['subnet'] - LOG.info('lb_member_2_subnet: {}'.format(cls.lb_member_2_subnet)) + LOG.info('lb_member_2_subnet: %s', cls.lb_member_2_subnet) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_subnet, @@ -606,10 +604,10 @@ class LoadBalancerBaseTest(validators.ValidatorsMixin, cls.lb_member_2_subnet_prefix = ( CONF.load_balancer.member_2_ipv6_subnet_cidr.rpartition('/')[2] ) - assert(cls.lb_member_2_subnet_prefix.isdigit()) + assert (cls.lb_member_2_subnet_prefix.isdigit()) cls.lb_member_2_ipv6_subnet = result['subnet'] - LOG.info('lb_member_2_ipv6_subnet: {}'.format( - cls.lb_member_2_ipv6_subnet)) + LOG.info('lb_member_2_ipv6_subnet: %s', + cls.lb_member_2_ipv6_subnet) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls._logging_delete_subnet, @@ -696,7 +694,7 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): result = cls.lb_mem_keypairs_client.create_keypair( name=keypair_name) cls.lb_member_keypair = result['keypair'] - LOG.info('lb_member_keypair: {}'.format(cls.lb_member_keypair)) + LOG.info('lb_member_keypair: %s', cls.lb_member_keypair) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls.lb_mem_keypairs_client.delete_keypair, @@ -866,7 +864,7 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): cls.lb_mem_SGr_client.show_security_group_rule, SGr['id']) - LOG.info('lb_member_sec_group: {}'.format(cls.lb_member_sec_group)) + LOG.info('lb_member_sec_group: %s', cls.lb_member_sec_group) # Setup backend member reencryption PKI cls._create_backend_reencryption_pki() @@ -880,14 +878,12 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): cls.webserver1_ipv6 = server_details.get('ipv6_address') cls.webserver1_public_ip = server_details['public_ipv4_address'] - LOG.debug('Octavia Setup: lb_member_webserver1 = {}'.format( - cls.lb_member_webserver1[const.ID])) - LOG.debug('Octavia Setup: webserver1_ip = {}'.format( - cls.webserver1_ip)) - LOG.debug('Octavia Setup: webserver1_ipv6 = {}'.format( - cls.webserver1_ipv6)) - LOG.debug('Octavia Setup: webserver1_public_ip = {}'.format( - cls.webserver1_public_ip)) + LOG.debug('Octavia Setup: lb_member_webserver1 = %s', + cls.lb_member_webserver1[const.ID]) + LOG.debug('Octavia Setup: webserver1_ip = %s', cls.webserver1_ip) + LOG.debug('Octavia Setup: webserver1_ipv6 = %s', cls.webserver1_ipv6) + LOG.debug('Octavia Setup: webserver1_public_ip = %s', + cls.webserver1_public_ip) # Create webserver 2 instance server_details = cls._create_webserver('lb_member_webserver2', @@ -898,14 +894,12 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): cls.webserver2_ipv6 = server_details.get('ipv6_address') cls.webserver2_public_ip = server_details['public_ipv4_address'] - LOG.debug('Octavia Setup: lb_member_webserver2 = {}'.format( - cls.lb_member_webserver2[const.ID])) - LOG.debug('Octavia Setup: webserver2_ip = {}'.format( - cls.webserver2_ip)) - LOG.debug('Octavia Setup: webserver2_ipv6 = {}'.format( - cls.webserver2_ipv6)) - LOG.debug('Octavia Setup: webserver2_public_ip = {}'.format( - cls.webserver2_public_ip)) + LOG.debug('Octavia Setup: lb_member_webserver2 = %s', + cls.lb_member_webserver2[const.ID]) + LOG.debug('Octavia Setup: webserver2_ip = %s', cls.webserver2_ip) + LOG.debug('Octavia Setup: webserver2_ipv6 = %s', cls.webserver2_ipv6) + LOG.debug('Octavia Setup: webserver2_public_ip = %s', + cls.webserver2_public_ip) if CONF.load_balancer.test_with_ipv6: # Enable the IPv6 nic in webserver 1 @@ -954,7 +948,7 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): external_gateway_info=dict( network_id=CONF.network.public_network_id)) cls.lb_member_router = result['router'] - LOG.info('lb_member_router: {}'.format(cls.lb_member_router)) + LOG.info('lb_member_router: %s', cls.lb_member_router) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls.lb_mem_routers_client.delete_router, @@ -1069,7 +1063,7 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): CONF.load_balancer.build_timeout, root_tag='server') webserver_details = {'server': server} - LOG.info('Created server: {}'.format(server)) + LOG.info('Created server: %s', server) addresses = server['addresses'] if CONF.load_balancer.disable_boot_network: @@ -1091,7 +1085,7 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): floating_network_id=CONF.network.public_network_id, port_id=port_id) floating_ip = result['floatingip'] - LOG.info('webserver1_floating_ip: {}'.format(floating_ip)) + LOG.info('webserver1_floating_ip: %s', floating_ip) cls.addClassResourceCleanup( waiters.wait_for_not_found, cls.lb_mem_float_ip_client.delete_floatingip, @@ -1126,7 +1120,7 @@ class LoadBalancerBaseTestWithCompute(LoadBalancerBaseTest): # the new default (SFTP protocol) doesn't work with # cirros VMs. ssh_version = cls._get_openssh_version() - LOG.debug("ssh_version = {}".format(ssh_version)) + LOG.debug("ssh_version = %s", ssh_version) return (ssh_version[0] > 8 or (ssh_version[0] == 8 and ssh_version[1] >= 7)) diff --git a/octavia_tempest_plugin/tests/validators.py b/octavia_tempest_plugin/tests/validators.py index 34e8148f..5ff7bd51 100644 --- a/octavia_tempest_plugin/tests/validators.py +++ b/octavia_tempest_plugin/tests/validators.py @@ -105,7 +105,7 @@ class ValidatorsMixin(test.BaseTestCase): return response_text except requests.exceptions.Timeout: # Don't sleep as we have already waited the interval. - LOG.info('Request for {} timed out. Retrying.'.format(URL)) + LOG.info('Request for %s timed out. Retrying.', URL) except (exceptions.InvalidHttpSuccessCode, exceptions.InvalidHTTPResponseBody, requests.exceptions.SSLError): @@ -113,8 +113,8 @@ class ValidatorsMixin(test.BaseTestCase): session.close() raise except Exception as e: - LOG.info('Validate URL got exception: {0}. ' - 'Retrying.'.format(e)) + LOG.info('Validate URL got exception: %s. ' + 'Retrying.', e) time.sleep(request_interval) if requests_session is None: session.close() @@ -443,8 +443,8 @@ class ValidatorsMixin(test.BaseTestCase): retry_number = 0 received_data = None while retry_number < number_of_retries: - LOG.info('make_udp_requests_with_retries attempt ' - 'number:{}'.format(retry_number)) + LOG.info('make_udp_requests_with_retries attempt number: %s', + retry_number) retry_number += 1 try: received_data = self.make_udp_request( @@ -452,6 +452,5 @@ class ValidatorsMixin(test.BaseTestCase): source_port=src_port) break except Exception as e: - LOG.warning('make_udp_request has failed with: ' - '{}'.format(e)) + LOG.warning('make_udp_request has failed with: %s', e) return received_data diff --git a/octavia_tempest_plugin/tests/waiters.py b/octavia_tempest_plugin/tests/waiters.py index fa6c1129..820831a3 100644 --- a/octavia_tempest_plugin/tests/waiters.py +++ b/octavia_tempest_plugin/tests/waiters.py @@ -48,8 +48,8 @@ def wait_for_status(show_client, id, status_key, status, :returns: The object details from the show client. """ start = int(time.time()) - LOG.info('Waiting for {name} status to update to {status}'.format( - name=show_client.__name__, status=status)) + LOG.info('Waiting for %s status to update to %s', + show_client.__name__, status) while True: if status == const.DELETED: try: @@ -65,8 +65,8 @@ def wait_for_status(show_client, id, status_key, status, object_details = response if object_details[status_key] == status: - LOG.info('{name}\'s status updated to {status}.'.format( - name=show_client.__name__, status=status)) + LOG.info('%s\'s status updated to %s.', + show_client.__name__, status) return object_details elif object_details[status_key] == 'ERROR' and not error_ok: message = ('{name} {field} updated to an invalid state of ' @@ -148,8 +148,8 @@ def wait_for_deleted_status_or_not_found( :returns: None """ start = int(time.time()) - LOG.info('Waiting for {name} status to update to DELETED or be not ' - 'found(404)'.format(name=show_client.__name__)) + LOG.info('Waiting for %s status to update to DELETED or be not found(404)', + show_client.__name__) while True: try: response = show_client(id, **kwargs) @@ -162,8 +162,8 @@ def wait_for_deleted_status_or_not_found( object_details = response if object_details[status_key] == const.DELETED: - LOG.info('{name}\'s status updated to DELETED.'.format( - name=show_client.__name__)) + LOG.info('%s\'s status updated to DELETED.', + show_client.__name__) return elif int(time.time()) - start >= check_timeout: message = ( diff --git a/test-requirements.txt b/test-requirements.txt index 2125ea04..bb4fcfe8 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,7 +2,7 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -hacking>=3.0.1,<3.1.0;python_version>='3.5' # Apache-2.0 +hacking>=6.1.0,<6.2.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 python-subunit>=1.0.0 # Apache-2.0/BSD diff --git a/tox.ini b/tox.ini index 29df1ca4..d8c77d67 100644 --- a/tox.ini +++ b/tox.ini @@ -98,7 +98,6 @@ extension = O346 = checks:check_line_continuation_no_backslash O347 = checks:revert_must_have_kwargs O348 = checks:check_no_logging_imports - O349 = checks:check_no_import_mock paths = ./octavia_tempest_plugin/hacking