diff --git a/openstack/config/vendors/citycloud.json b/openstack/config/vendors/citycloud.json index 53057076a..a1c765195 100644 --- a/openstack/config/vendors/citycloud.json +++ b/openstack/config/vendors/citycloud.json @@ -15,6 +15,6 @@ "requires_floating_ip": true, "block_storage_api_version": "3", "identity_api_version": "3", - "image_format": "raw" + "image_format": "raw" } } diff --git a/openstack/object_store/v1/obj.py b/openstack/object_store/v1/obj.py index 7c9b7693b..095a2a56e 100644 --- a/openstack/object_store/v1/obj.py +++ b/openstack/object_store/v1/obj.py @@ -263,10 +263,10 @@ class Object(_base.BaseResource): attr_keys_to_delete = set() for key in keys: if key == 'delete_after': - del(metadata['delete_at']) + del metadata['delete_at'] else: if key in metadata: - del(metadata[key]) + del metadata[key] # Delete the attribute from the local copy of the object. # Metadata that doesn't have Component attributes is # handled by self.metadata being reset when we run diff --git a/openstack/resource.py b/openstack/resource.py index 54bbe8e5c..fd85daca8 100644 --- a/openstack/resource.py +++ b/openstack/resource.py @@ -99,7 +99,7 @@ class _BaseComponent: deprecation_reason = None #: Control field used to manage the deprecation warning. We want to warn - # only once when the attribute is retrieved in the code. + #: only once when the attribute is retrieved in the code. already_warned_deprecation = False def __init__( @@ -1009,7 +1009,8 @@ class Resource(dict): return cls(_synchronized=synchronized, connection=connection, **obj) def _attr_to_dict(self, attr, to_munch): - """For a given attribute, convert it into a form suitable for a dict value. + """For a given attribute, convert it into a form suitable for a dict + value. :param bool attr: Attribute name to convert diff --git a/openstack/tests/functional/cloud/test_compute.py b/openstack/tests/functional/cloud/test_compute.py index d0fefb20f..c97ef5fe6 100644 --- a/openstack/tests/functional/cloud/test_compute.py +++ b/openstack/tests/functional/cloud/test_compute.py @@ -200,7 +200,7 @@ class TestCompute(base.BaseFunctionalTest): # returning a string tests that the call is correct. Testing that # the cloud returns actual data in the output is out of scope. log = self.user_cloud._get_server_console_output(server_id=server.id) - self.assertTrue(isinstance(log, str)) + self.assertIsInstance(log, str) def test_get_server_console_name_or_id(self): self.addCleanup(self._cleanup_servers_and_volumes, self.server_name) @@ -210,7 +210,7 @@ class TestCompute(base.BaseFunctionalTest): flavor=self.flavor, wait=True) log = self.user_cloud.get_server_console(server=self.server_name) - self.assertTrue(isinstance(log, str)) + self.assertIsInstance(log, str) def test_list_availability_zone_names(self): self.assertEqual( diff --git a/openstack/tests/functional/cloud/test_quotas.py b/openstack/tests/functional/cloud/test_quotas.py index 2d06167a4..f23c6ae59 100644 --- a/openstack/tests/functional/cloud/test_quotas.py +++ b/openstack/tests/functional/cloud/test_quotas.py @@ -117,4 +117,4 @@ class TestNetworkQuotas(base.BaseFunctionalTest): quota_val = quota_details[quota] if quota_val: for expected_key in expected_keys: - self.assertTrue(expected_key in quota_val) + self.assertIn(expected_key, quota_val) diff --git a/openstack/tests/unit/base.py b/openstack/tests/unit/base.py index e2b6226d9..2b0b28217 100644 --- a/openstack/tests/unit/base.py +++ b/openstack/tests/unit/base.py @@ -760,8 +760,8 @@ class TestCase(base.TestCase): ) def assertResourceListEqual(self, actual, expected, resource_type): - """Helper for the assertEqual which compares Resource lists object against - dictionary representing expected state. + """Helper for the assertEqual which compares Resource lists object + against dictionary representing expected state. :param list actual: List of actual objects. :param listexpected: List of dictionaries representing expected diff --git a/openstack/tests/unit/cloud/test_image.py b/openstack/tests/unit/cloud/test_image.py index 96ca6445d..dfd9be7fb 100644 --- a/openstack/tests/unit/cloud/test_image.py +++ b/openstack/tests/unit/cloud/test_image.py @@ -561,9 +561,9 @@ class TestImage(BaseTestImage): ) image_no_checksums = self.fake_image_dict.copy() - del(image_no_checksums['owner_specified.openstack.md5']) - del(image_no_checksums['owner_specified.openstack.sha256']) - del(image_no_checksums['owner_specified.openstack.object']) + del image_no_checksums['owner_specified.openstack.md5'] + del image_no_checksums['owner_specified.openstack.sha256'] + del image_no_checksums['owner_specified.openstack.object'] self.register_uris([ dict(method='GET', @@ -736,9 +736,9 @@ class TestImage(BaseTestImage): object_path = self.fake_image_dict['owner_specified.openstack.object'] image_no_checksums = self.fake_image_dict.copy() - del(image_no_checksums['owner_specified.openstack.md5']) - del(image_no_checksums['owner_specified.openstack.sha256']) - del(image_no_checksums['owner_specified.openstack.object']) + del image_no_checksums['owner_specified.openstack.md5'] + del image_no_checksums['owner_specified.openstack.sha256'] + del image_no_checksums['owner_specified.openstack.object'] self.register_uris([ dict(method='GET', diff --git a/openstack/tests/unit/compute/v2/test_server_ip.py b/openstack/tests/unit/compute/v2/test_server_ip.py index fa2790281..833fae769 100644 --- a/openstack/tests/unit/compute/v2/test_server_ip.py +++ b/openstack/tests/unit/compute/v2/test_server_ip.py @@ -62,19 +62,19 @@ class TestServerIP(base.TestCase): self.assertEqual(4, len(ips)) ips = sorted(ips, key=lambda ip: ip.version) - self.assertEqual(type(ips[0]), server_ip.ServerIP) + self.assertIsInstance(ips[0], server_ip.ServerIP) self.assertEqual(ips[0].network_label, "label1") self.assertEqual(ips[0].address, "a1") self.assertEqual(ips[0].version, 1) - self.assertEqual(type(ips[1]), server_ip.ServerIP) + self.assertIsInstance(ips[1], server_ip.ServerIP) self.assertEqual(ips[1].network_label, "label1") self.assertEqual(ips[1].address, "a2") self.assertEqual(ips[1].version, 2) - self.assertEqual(type(ips[2]), server_ip.ServerIP) + self.assertIsInstance(ips[2], server_ip.ServerIP) self.assertEqual(ips[2].network_label, "label2") self.assertEqual(ips[2].address, "a3") self.assertEqual(ips[2].version, 3) - self.assertEqual(type(ips[3]), server_ip.ServerIP) + self.assertIsInstance(ips[3], server_ip.ServerIP) self.assertEqual(ips[3].network_label, "label2") self.assertEqual(ips[3].address, "a4") self.assertEqual(ips[3].version, 4) @@ -97,11 +97,11 @@ class TestServerIP(base.TestCase): self.assertEqual(2, len(ips)) ips = sorted(ips, key=lambda ip: ip.version) - self.assertEqual(type(ips[0]), server_ip.ServerIP) + self.assertIsInstance(ips[0], server_ip.ServerIP) self.assertEqual(ips[0].network_label, label) self.assertEqual(ips[0].address, "a1") self.assertEqual(ips[0].version, 1) - self.assertEqual(type(ips[1]), server_ip.ServerIP) + self.assertIsInstance(ips[1], server_ip.ServerIP) self.assertEqual(ips[1].network_label, label) self.assertEqual(ips[1].address, "a2") self.assertEqual(ips[1].version, 2) diff --git a/openstack/tests/unit/config/test_cloud_config.py b/openstack/tests/unit/config/test_cloud_config.py index fd6d30316..098cee0cb 100644 --- a/openstack/tests/unit/config/test_cloud_config.py +++ b/openstack/tests/unit/config/test_cloud_config.py @@ -64,8 +64,8 @@ class TestCloudRegion(base.TestCase): def test_iteration(self): cc = cloud_region.CloudRegion("test1", "region-al", fake_config_dict) - self.assertTrue('a' in cc) - self.assertFalse('x' in cc) + self.assertIn('a', cc) + self.assertNotIn('x', cc) def test_equality(self): cc1 = cloud_region.CloudRegion("test1", "region-al", fake_config_dict) diff --git a/openstack/tests/unit/test_missing_version.py b/openstack/tests/unit/test_missing_version.py index 6e1d5b975..c1a948f71 100644 --- a/openstack/tests/unit/test_missing_version.py +++ b/openstack/tests/unit/test_missing_version.py @@ -40,6 +40,5 @@ class TestMissingVersion(base.TestCase): def test_unsupported_version_override(self): self.cloud.config.config['image_api_version'] = '7' - self.assertTrue(isinstance(self.cloud.image, proxy.Proxy)) - + self.assertIsInstance(self.cloud.image, proxy.Proxy) self.assert_calls() diff --git a/openstack/utils.py b/openstack/utils.py index 7c23e9cf8..c058f77b0 100644 --- a/openstack/utils.py +++ b/openstack/utils.py @@ -442,9 +442,10 @@ class Munch(dict): object.__setattr__(self, k, v) def __delattr__(self, k): - """Deletes attribute k if it exists, otherwise deletes key k. A KeyError - raised by deleting the key--such as when the key is missing--will - propagate as an AttributeError instead. + """Deletes attribute k if it exists, otherwise deletes key k. + + A KeyError raised by deleting the key - such as when the key is missing + - will propagate as an AttributeError instead. """ try: # Throws exception if not in prototype chain diff --git a/releasenotes/notes/network_add_bgp_resources-c182dc2873d6db18.yaml b/releasenotes/notes/network_add_bgp_resources-c182dc2873d6db18.yaml index b87c8d556..5356c7773 100644 --- a/releasenotes/notes/network_add_bgp_resources-c182dc2873d6db18.yaml +++ b/releasenotes/notes/network_add_bgp_resources-c182dc2873d6db18.yaml @@ -2,7 +2,7 @@ features: - | Add BGP Speaker and BGP Peer resources, and introduce support for CRUD - operations for these. Additional REST operations introduced for speakers: + operations for these. Additional REST operations introduced for speakers: add_bgp_peer, remove_bgp_peer, add_gateway_network, remove_gateway_network, get_advertised_routes, get_bgp_dragents, add_bgp_speaker_to_draget, remove_bgp_speaker_from_dragent.