From c40403eee0e4775f7ed089c91d4e2e075818a179 Mon Sep 17 00:00:00 2001 From: Brandon Logan Date: Tue, 7 Jun 2016 14:29:36 -0500 Subject: [PATCH] Make service plugins' get_plugin_type classmethods Any service plugin that implements the get_plugin_type method should make it a classmethod. It should not need to be instantiated to retrieve the simple constant it returns in every case. Change-Id: Ia3a1237a5e07169ebc9378b1cd4188085e20d71c Closes-Bug: #1590117 --- neutron/extensions/metering.py | 3 ++- neutron/extensions/qos.py | 3 ++- neutron/extensions/segment.py | 3 ++- neutron/extensions/tag.py | 3 ++- neutron/services/auto_allocate/plugin.py | 3 ++- neutron/services/flavors/flavors_plugin.py | 3 ++- neutron/services/l3_router/l3_router_plugin.py | 3 ++- neutron/services/network_ip_availability/plugin.py | 3 ++- neutron/services/timestamp/timestamp_plugin.py | 3 ++- neutron/tests/functional/pecan_wsgi/utils.py | 5 +++-- neutron/tests/unit/api/test_extensions.py | 6 ++++-- neutron/tests/unit/dummy_plugin.py | 3 ++- neutron/tests/unit/extensions/test_flavors.py | 3 ++- neutron/tests/unit/extensions/test_l3.py | 3 ++- .../tests/unit/extensions/test_router_availability_zone.py | 3 ++- neutron/tests/unit/extensions/test_segment.py | 3 ++- 16 files changed, 35 insertions(+), 18 deletions(-) diff --git a/neutron/extensions/metering.py b/neutron/extensions/metering.py index 23608fd3963..7952358c2fe 100644 --- a/neutron/extensions/metering.py +++ b/neutron/extensions/metering.py @@ -137,7 +137,8 @@ class MeteringPluginBase(service_base.ServicePluginBase): def get_plugin_description(self): return constants.METERING - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.METERING @abc.abstractmethod diff --git a/neutron/extensions/qos.py b/neutron/extensions/qos.py index 1d9f1550b7a..9eea43a8894 100644 --- a/neutron/extensions/qos.py +++ b/neutron/extensions/qos.py @@ -280,7 +280,8 @@ class QoSPluginBase(service_base.ServicePluginBase): def get_plugin_description(self): return "QoS Service Plugin for ports and networks" - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.QOS @abc.abstractmethod diff --git a/neutron/extensions/segment.py b/neutron/extensions/segment.py index eedadad11ed..0911726d806 100644 --- a/neutron/extensions/segment.py +++ b/neutron/extensions/segment.py @@ -214,5 +214,6 @@ class SegmentPluginBase(object): def get_plugin_description(self): return "Network Segments" - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return SEGMENTS diff --git a/neutron/extensions/tag.py b/neutron/extensions/tag.py index 81175a5c668..7b526d8edd0 100644 --- a/neutron/extensions/tag.py +++ b/neutron/extensions/tag.py @@ -180,7 +180,8 @@ class TagPluginBase(service_base.ServicePluginBase): def get_plugin_description(self): return "Tag support" - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return TAG_PLUGIN_TYPE @abc.abstractmethod diff --git a/neutron/services/auto_allocate/plugin.py b/neutron/services/auto_allocate/plugin.py index 63b004c37b4..0d6abe53881 100644 --- a/neutron/services/auto_allocate/plugin.py +++ b/neutron/services/auto_allocate/plugin.py @@ -33,5 +33,6 @@ class Plugin(db.AutoAllocatedTopologyMixin): def get_plugin_description(self): return "Auto Allocated Topology - aka get me a network." - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return "auto-allocated-topology" diff --git a/neutron/services/flavors/flavors_plugin.py b/neutron/services/flavors/flavors_plugin.py index 57e189ea05d..e82d30c4b0f 100644 --- a/neutron/services/flavors/flavors_plugin.py +++ b/neutron/services/flavors/flavors_plugin.py @@ -24,7 +24,8 @@ class FlavorsPlugin(service_base.ServicePluginBase, supported_extension_aliases = ['flavors', 'service-type'] - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.FLAVORS def get_plugin_description(self): diff --git a/neutron/services/l3_router/l3_router_plugin.py b/neutron/services/l3_router/l3_router_plugin.py index c9e24414f21..dce53e5529e 100644 --- a/neutron/services/l3_router/l3_router_plugin.py +++ b/neutron/services/l3_router/l3_router_plugin.py @@ -80,7 +80,8 @@ class L3RouterPlugin(service_base.ServicePluginBase, fanout=False) return self.conn.consume_in_threads() - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.L3_ROUTER_NAT def get_plugin_description(self): diff --git a/neutron/services/network_ip_availability/plugin.py b/neutron/services/network_ip_availability/plugin.py index e3a4f8674fa..7a4cbbd886d 100644 --- a/neutron/services/network_ip_availability/plugin.py +++ b/neutron/services/network_ip_availability/plugin.py @@ -34,7 +34,8 @@ class NetworkIPAvailabilityPlugin(ip_availability_db.IpAvailabilityMixin, def get_plugin_description(self): return "Provides IP availability data for each network and subnet." - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return "network-ip-availability" def get_network_ip_availabilities(self, context, filters=None, diff --git a/neutron/services/timestamp/timestamp_plugin.py b/neutron/services/timestamp/timestamp_plugin.py index c707f49348b..8954e9077d2 100644 --- a/neutron/services/timestamp/timestamp_plugin.py +++ b/neutron/services/timestamp/timestamp_plugin.py @@ -42,7 +42,8 @@ class TimeStampPlugin(service_base.ServicePluginBase, None, self._change_since_result_filter_hook) - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return 'timestamp_core' def get_plugin_description(self): diff --git a/neutron/tests/functional/pecan_wsgi/utils.py b/neutron/tests/functional/pecan_wsgi/utils.py index c7d025917c1..d1db7d9ac1c 100644 --- a/neutron/tests/functional/pecan_wsgi/utils.py +++ b/neutron/tests/functional/pecan_wsgi/utils.py @@ -156,8 +156,9 @@ class FakePlugin(object): PLUGIN_TYPE = 'fake-ext-plugin' supported_extension_aliases = ['fake-ext'] - def get_plugin_type(self): - return self.PLUGIN_TYPE + @classmethod + def get_plugin_type(cls): + return cls.PLUGIN_TYPE def get_meh_meh(self, context, id_, fields=None): return {'fake': id_} diff --git a/neutron/tests/unit/api/test_extensions.py b/neutron/tests/unit/api/test_extensions.py index 3e1cc862817..d769dd8bda8 100644 --- a/neutron/tests/unit/api/test_extensions.py +++ b/neutron/tests/unit/api/test_extensions.py @@ -167,7 +167,8 @@ class ResourceExtensionTest(base.BaseTestCase): return {'collection': 'value'} class DummySvcPlugin(wsgi.Controller): - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.DUMMY def index(self, request, **kwargs): @@ -215,7 +216,8 @@ class ResourceExtensionTest(base.BaseTestCase): def index(self, request): return "" - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.DUMMY res_ext = extensions.ResourceExtension( diff --git a/neutron/tests/unit/dummy_plugin.py b/neutron/tests/unit/dummy_plugin.py index 01ec47ecdfd..7ceb2060f18 100644 --- a/neutron/tests/unit/dummy_plugin.py +++ b/neutron/tests/unit/dummy_plugin.py @@ -95,7 +95,8 @@ class DummyServicePlugin(service_base.ServicePluginBase): self.svctype_mgr = servicetype_db.ServiceTypeManager.get_instance() self.dummys = {} - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.DUMMY def get_plugin_description(self): diff --git a/neutron/tests/unit/extensions/test_flavors.py b/neutron/tests/unit/extensions/test_flavors.py index bcc1eec8b60..e37aa8c41a6 100644 --- a/neutron/tests/unit/extensions/test_flavors.py +++ b/neutron/tests/unit/extensions/test_flavors.py @@ -414,7 +414,8 @@ class DummyServicePlugin(object): def driver_loaded(self, driver, service_profile): pass - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return constants.DUMMY def get_plugin_description(self): diff --git a/neutron/tests/unit/extensions/test_l3.py b/neutron/tests/unit/extensions/test_l3.py index d532ec72ec6..c6a15f16c8f 100644 --- a/neutron/tests/unit/extensions/test_l3.py +++ b/neutron/tests/unit/extensions/test_l3.py @@ -301,7 +301,8 @@ class TestL3NatServicePlugin(common_db_mixin.CommonDbMixin, supported_extension_aliases = ["router", "dns-integration"] - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return service_constants.L3_ROUTER_NAT def get_plugin_description(self): diff --git a/neutron/tests/unit/extensions/test_router_availability_zone.py b/neutron/tests/unit/extensions/test_router_availability_zone.py index 12e6a8618dd..92a378987e0 100644 --- a/neutron/tests/unit/extensions/test_router_availability_zone.py +++ b/neutron/tests/unit/extensions/test_router_availability_zone.py @@ -38,7 +38,8 @@ class AZRouterTestPlugin(common_db_mixin.CommonDbMixin, supported_extension_aliases = ["router", "l3_agent_scheduler", "router_availability_zone"] - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return service_constants.L3_ROUTER_NAT def get_plugin_description(self): diff --git a/neutron/tests/unit/extensions/test_segment.py b/neutron/tests/unit/extensions/test_segment.py index 0d2be909ea5..133dde0fcfa 100644 --- a/neutron/tests/unit/extensions/test_segment.py +++ b/neutron/tests/unit/extensions/test_segment.py @@ -111,7 +111,8 @@ class SegmentTestPlugin(db_base_plugin_v2.NeutronDbPluginV2, def get_plugin_description(self): return "Network Segments" - def get_plugin_type(self): + @classmethod + def get_plugin_type(cls): return "segments" def create_port(self, context, port):