diff --git a/neutron/api/extensions.py b/neutron/api/extensions.py index fb9c3060684..45ce6d1f0bd 100644 --- a/neutron/api/extensions.py +++ b/neutron/api/extensions.py @@ -30,7 +30,7 @@ import webob.exc from neutron._i18n import _, _LE, _LI, _LW from neutron.common import exceptions -import neutron.extensions +from neutron import extensions as core_extensions from neutron.plugins.common import constants as const from neutron.services import provider_configuration from neutron import wsgi @@ -85,11 +85,6 @@ class PluginInterface(object): return True -# Temporary redirector to prevent subprojects from breaking. -# TODO(HenryG): Remove once all subprojects are patched. -ExtensionDescriptor = api_extensions.ExtensionDescriptor - - class ActionExtensionController(wsgi.Controller): def __init__(self, application): @@ -430,7 +425,7 @@ class ExtensionManager(object): except AttributeError: LOG.exception(_LE("Exception loading extension")) return False - return isinstance(extension, ExtensionDescriptor) + return isinstance(extension, api_extensions.ExtensionDescriptor) def _load_all_extensions(self): """Load extensions from the configured path. @@ -629,7 +624,7 @@ def get_extensions_path(service_plugins=None): paths = collections.OrderedDict() # Add Neutron core extensions - paths[neutron.extensions.__path__[0]] = 1 + paths[core_extensions.__path__[0]] = 1 if service_plugins: # Add Neutron *-aas extensions for plugin in service_plugins.values(): diff --git a/neutron/extensions/address_scope.py b/neutron/extensions/address_scope.py index 50ef3a770a1..84e21ef3d7f 100644 --- a/neutron/extensions/address_scope.py +++ b/neutron/extensions/address_scope.py @@ -15,6 +15,7 @@ import abc from neutron_lib.api import converters +from neutron_lib.api import extensions as api_extensions from neutron_lib import constants from neutron_lib import exceptions as nexception from neutron_lib.plugins import directory @@ -94,7 +95,7 @@ class AddressScopeUpdateError(nexception.BadRequest): "%(reason)s") -class Address_scope(extensions.ExtensionDescriptor): +class Address_scope(api_extensions.ExtensionDescriptor): """Extension class supporting Address Scopes.""" @classmethod diff --git a/neutron/extensions/agent.py b/neutron/extensions/agent.py index 5697eb63aab..8d772553aee 100644 --- a/neutron/extensions/agent.py +++ b/neutron/extensions/agent.py @@ -16,6 +16,7 @@ import abc from neutron_lib.api import converters +from neutron_lib.api import extensions as api_extensions from neutron_lib import exceptions from neutron_lib.plugins import directory import six @@ -76,7 +77,7 @@ class MultipleAgentFoundByTypeHost(exceptions.Conflict): "host=%(host)s found") -class Agent(extensions.ExtensionDescriptor): +class Agent(api_extensions.ExtensionDescriptor): """Agent management extension.""" @classmethod diff --git a/neutron/extensions/allowedaddresspairs.py b/neutron/extensions/allowedaddresspairs.py index d2170fcbd59..e1f718dffdf 100644 --- a/neutron/extensions/allowedaddresspairs.py +++ b/neutron/extensions/allowedaddresspairs.py @@ -13,6 +13,7 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib.api import validators from neutron_lib import constants from neutron_lib import exceptions as nexception @@ -20,7 +21,6 @@ from oslo_config import cfg import webob.exc from neutron._i18n import _ -from neutron.api import extensions from neutron.conf.extensions import allowedaddresspairs as addr_pair addr_pair.register_allowed_address_pair_opts() diff --git a/neutron/extensions/auto_allocated_topology.py b/neutron/extensions/auto_allocated_topology.py index 2b533b8908b..15162cd0e73 100644 --- a/neutron/extensions/auto_allocated_topology.py +++ b/neutron/extensions/auto_allocated_topology.py @@ -15,6 +15,7 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions as api_extensions from neutron_lib.plugins import directory from neutron.api import extensions @@ -44,7 +45,7 @@ RESOURCE_ATTRIBUTE_MAP = { } -class Auto_allocated_topology(extensions.ExtensionDescriptor): +class Auto_allocated_topology(api_extensions.ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron/extensions/availability_zone.py b/neutron/extensions/availability_zone.py index 1644c7dc635..8ec6c42e87b 100644 --- a/neutron/extensions/availability_zone.py +++ b/neutron/extensions/availability_zone.py @@ -14,6 +14,7 @@ import abc +from neutron_lib.api import extensions as api_extensions from neutron_lib.api import validators from neutron_lib import exceptions from neutron_lib.plugins import directory @@ -78,7 +79,7 @@ class AvailabilityZoneNotFound(exceptions.NotFound): message = _("AvailabilityZone %(availability_zone)s could not be found.") -class Availability_zone(extensions.ExtensionDescriptor): +class Availability_zone(api_extensions.ExtensionDescriptor): """Availability zone extension.""" @classmethod diff --git a/neutron/extensions/default_subnetpools.py b/neutron/extensions/default_subnetpools.py index 5b532e67388..24ae6b6beb1 100644 --- a/neutron/extensions/default_subnetpools.py +++ b/neutron/extensions/default_subnetpools.py @@ -12,9 +12,9 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import constants -from neutron.api import extensions from neutron.api.v2 import attributes diff --git a/neutron/extensions/dhcpagentscheduler.py b/neutron/extensions/dhcpagentscheduler.py index f53bb145b45..6fc80f54834 100644 --- a/neutron/extensions/dhcpagentscheduler.py +++ b/neutron/extensions/dhcpagentscheduler.py @@ -15,6 +15,7 @@ import abc +from neutron_lib.api import extensions as api_extensions from neutron_lib import constants from neutron_lib import exceptions from neutron_lib.plugins import directory @@ -78,7 +79,7 @@ class DhcpAgentsHostingNetworkController(wsgi.Controller): request.context, kwargs['network_id']) -class Dhcpagentscheduler(extensions.ExtensionDescriptor): +class Dhcpagentscheduler(api_extensions.ExtensionDescriptor): """Extension class supporting dhcp agent scheduler. """ diff --git a/neutron/extensions/dns.py b/neutron/extensions/dns.py index b213f522888..189abdfb907 100644 --- a/neutron/extensions/dns.py +++ b/neutron/extensions/dns.py @@ -15,13 +15,13 @@ import re +from neutron_lib.api import extensions from neutron_lib.api import validators from neutron_lib import exceptions as n_exc from oslo_config import cfg import six from neutron._i18n import _ -from neutron.api import extensions from neutron.api.v2 import attributes as attr from neutron.extensions import l3 diff --git a/neutron/extensions/dvr.py b/neutron/extensions/dvr.py index 61068607bfc..b05e1a4df27 100644 --- a/neutron/extensions/dvr.py +++ b/neutron/extensions/dvr.py @@ -15,12 +15,12 @@ import abc from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import constants from neutron_lib import exceptions import six from neutron._i18n import _ -from neutron.api import extensions DISTRIBUTED = 'distributed' EXTENDED_ATTRIBUTES_2_0 = { diff --git a/neutron/extensions/external_net.py b/neutron/extensions/external_net.py index a556dc88520..d4b26e050e1 100644 --- a/neutron/extensions/external_net.py +++ b/neutron/extensions/external_net.py @@ -14,10 +14,10 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import exceptions as nexception from neutron._i18n import _ -from neutron.api import extensions class ExternalNetworkInUse(nexception.InUse): diff --git a/neutron/extensions/extra_dhcp_opt.py b/neutron/extensions/extra_dhcp_opt.py index d3c4602e7de..900a1a685c9 100644 --- a/neutron/extensions/extra_dhcp_opt.py +++ b/neutron/extensions/extra_dhcp_opt.py @@ -14,11 +14,11 @@ # limitations under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib.api import validators from neutron_lib import exceptions from neutron._i18n import _ -from neutron.api import extensions # ExtraDHcpOpts Exceptions diff --git a/neutron/extensions/extraroute.py b/neutron/extensions/extraroute.py index c4eb5fe2e0b..99ba1bdd3b1 100644 --- a/neutron/extensions/extraroute.py +++ b/neutron/extensions/extraroute.py @@ -14,11 +14,11 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import constants from neutron_lib import exceptions as nexception from neutron._i18n import _ -from neutron.api import extensions # Extra Routes Exceptions diff --git a/neutron/extensions/flavors.py b/neutron/extensions/flavors.py index 3fcaadabf43..651c3a55c90 100644 --- a/neutron/extensions/flavors.py +++ b/neutron/extensions/flavors.py @@ -13,6 +13,7 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions as api_extensions from neutron_lib.api import validators from neutron_lib import exceptions as nexception from neutron_lib.plugins import directory @@ -175,7 +176,7 @@ SUB_RESOURCE_ATTRIBUTE_MAP = { } -class Flavors(extensions.ExtensionDescriptor): +class Flavors(api_extensions.ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron/extensions/ip_allocation.py b/neutron/extensions/ip_allocation.py index b3327833e98..8e43a4d86f2 100644 --- a/neutron/extensions/ip_allocation.py +++ b/neutron/extensions/ip_allocation.py @@ -12,7 +12,8 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions + from neutron.api.v2 import attributes IP_ALLOCATION = 'ip_allocation' diff --git a/neutron/extensions/l2_adjacency.py b/neutron/extensions/l2_adjacency.py index b02be5444ab..795a3d94272 100644 --- a/neutron/extensions/l2_adjacency.py +++ b/neutron/extensions/l2_adjacency.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions L2_ADJACENCY = 'l2_adjacency' diff --git a/neutron/extensions/l3.py b/neutron/extensions/l3.py index 693f1e7583e..167aca60a17 100644 --- a/neutron/extensions/l3.py +++ b/neutron/extensions/l3.py @@ -16,11 +16,11 @@ import abc from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import exceptions as nexception import six from neutron._i18n import _ -from neutron.api import extensions from neutron.api.v2 import attributes as attr from neutron.api.v2 import resource_helper from neutron.conf import quota diff --git a/neutron/extensions/l3_ext_gw_mode.py b/neutron/extensions/l3_ext_gw_mode.py index 3d7c24340aa..ac8fa94b4a0 100644 --- a/neutron/extensions/l3_ext_gw_mode.py +++ b/neutron/extensions/l3_ext_gw_mode.py @@ -14,8 +14,8 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions -from neutron.api import extensions from neutron.extensions import l3 diff --git a/neutron/extensions/l3_ext_ha_mode.py b/neutron/extensions/l3_ext_ha_mode.py index 58662b29c2b..0355b753d2e 100644 --- a/neutron/extensions/l3_ext_ha_mode.py +++ b/neutron/extensions/l3_ext_ha_mode.py @@ -13,11 +13,11 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import constants from neutron_lib import exceptions from neutron._i18n import _ -from neutron.api import extensions from neutron.common import constants as n_const HA_INFO = 'ha' diff --git a/neutron/extensions/l3_flavors.py b/neutron/extensions/l3_flavors.py index b1f9cd6242c..3f397c579ee 100644 --- a/neutron/extensions/l3_flavors.py +++ b/neutron/extensions/l3_flavors.py @@ -12,9 +12,9 @@ # under the License. # +from neutron_lib.api import extensions from neutron_lib import constants -from neutron.api import extensions EXTENDED_ATTRIBUTES_2_0 = { 'routers': { diff --git a/neutron/extensions/l3agentscheduler.py b/neutron/extensions/l3agentscheduler.py index aae7bc55e59..8d9c4654f31 100644 --- a/neutron/extensions/l3agentscheduler.py +++ b/neutron/extensions/l3agentscheduler.py @@ -15,6 +15,7 @@ import abc +from neutron_lib.api import extensions as api_extensions from neutron_lib import constants from neutron_lib import exceptions from neutron_lib.plugins import directory @@ -102,7 +103,7 @@ class L3AgentsHostingRouterController(wsgi.Controller): request.context, kwargs['router_id']) -class L3agentscheduler(extensions.ExtensionDescriptor): +class L3agentscheduler(api_extensions.ExtensionDescriptor): """Extension class supporting l3 agent scheduler. """ diff --git a/neutron/extensions/metering.py b/neutron/extensions/metering.py index 816ea1347bb..56709bcaf85 100644 --- a/neutron/extensions/metering.py +++ b/neutron/extensions/metering.py @@ -15,11 +15,11 @@ import abc from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import exceptions as nexception import six from neutron._i18n import _ -from neutron.api import extensions from neutron.api.v2 import attributes as attr from neutron.api.v2 import resource_helper from neutron.plugins.common import constants diff --git a/neutron/extensions/multiprovidernet.py b/neutron/extensions/multiprovidernet.py index bf510eeb802..e03270910e9 100644 --- a/neutron/extensions/multiprovidernet.py +++ b/neutron/extensions/multiprovidernet.py @@ -14,13 +14,13 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib.api import validators from neutron_lib import constants from neutron_lib import exceptions as nexception import webob.exc from neutron._i18n import _ -from neutron.api import extensions from neutron.extensions import providernet as pnet SEGMENTS = 'segments' diff --git a/neutron/extensions/netmtu.py b/neutron/extensions/netmtu.py index ce0477cb669..061b2e81e65 100644 --- a/neutron/extensions/netmtu.py +++ b/neutron/extensions/netmtu.py @@ -12,7 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions MTU = 'mtu' diff --git a/neutron/extensions/network_availability_zone.py b/neutron/extensions/network_availability_zone.py index 2e62efb716d..3beb0e1c9c0 100644 --- a/neutron/extensions/network_availability_zone.py +++ b/neutron/extensions/network_availability_zone.py @@ -14,9 +14,9 @@ import abc +from neutron_lib.api import extensions import six -from neutron.api import extensions from neutron.extensions import availability_zone as az_ext diff --git a/neutron/extensions/network_ip_availability.py b/neutron/extensions/network_ip_availability.py index a39f5f0a6cb..ed798728080 100644 --- a/neutron/extensions/network_ip_availability.py +++ b/neutron/extensions/network_ip_availability.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from neutron_lib.api import extensions as api_extensions + import neutron.api.extensions as extensions import neutron.api.v2.base as base import neutron.services.network_ip_availability.plugin as plugin @@ -41,7 +43,7 @@ RESOURCE_ATTRIBUTE_MAP = { } -class Network_ip_availability(extensions.ExtensionDescriptor): +class Network_ip_availability(api_extensions.ExtensionDescriptor): """Extension class supporting network ip availability information.""" @classmethod diff --git a/neutron/extensions/pagination.py b/neutron/extensions/pagination.py index f535e68c486..da75aefda26 100644 --- a/neutron/extensions/pagination.py +++ b/neutron/extensions/pagination.py @@ -11,13 +11,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +from neutron_lib.api import extensions as api_extensions + from neutron.api import extensions _ALIAS = 'pagination' -class Pagination(extensions.ExtensionDescriptor): +class Pagination(api_extensions.ExtensionDescriptor): """Fake extension that indicates that pagination is enabled.""" extensions.register_custom_supported_check( diff --git a/neutron/extensions/portbindings.py b/neutron/extensions/portbindings.py index 1070e5bb580..00cfe129a70 100644 --- a/neutron/extensions/portbindings.py +++ b/neutron/extensions/portbindings.py @@ -13,9 +13,9 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib.api import extensions from neutron_lib import constants -from neutron.api import extensions # The type of vnic that this port should be attached to VNIC_TYPE = 'binding:vnic_type' diff --git a/neutron/extensions/portsecurity.py b/neutron/extensions/portsecurity.py index a5ec20b998d..96ea1e4756f 100644 --- a/neutron/extensions/portsecurity.py +++ b/neutron/extensions/portsecurity.py @@ -13,11 +13,11 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib import constants from neutron_lib import exceptions as nexception from neutron._i18n import _ -from neutron.api import extensions DEFAULT_PORT_SECURITY = True diff --git a/neutron/extensions/project_id.py b/neutron/extensions/project_id.py index 678bfa94416..1e8bad09cf1 100644 --- a/neutron/extensions/project_id.py +++ b/neutron/extensions/project_id.py @@ -11,13 +11,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +from neutron_lib.api import extensions as api_extensions + from neutron.api import extensions _ALIAS = 'project-id' -class Project_id(extensions.ExtensionDescriptor): +class Project_id(api_extensions.ExtensionDescriptor): """Extension that indicates that project_id is enabled. This extension indicates that the Keystone V3 'project_id' field diff --git a/neutron/extensions/providernet.py b/neutron/extensions/providernet.py index 1bf98af823e..5d440f35269 100644 --- a/neutron/extensions/providernet.py +++ b/neutron/extensions/providernet.py @@ -14,12 +14,12 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib.api import validators from neutron_lib import constants from neutron_lib import exceptions as n_exc from neutron._i18n import _ -from neutron.api import extensions NETWORK_TYPE = 'provider:network_type' diff --git a/neutron/extensions/qos.py b/neutron/extensions/qos.py index 201413c54bd..2bd0fcb9d7f 100644 --- a/neutron/extensions/qos.py +++ b/neutron/extensions/qos.py @@ -18,6 +18,7 @@ import itertools import re from neutron_lib.api import converters +from neutron_lib.api import extensions as api_extensions from neutron_lib.plugins import directory import six @@ -130,7 +131,7 @@ EXTENDED_ATTRIBUTES_2_0 = { 'validate': {'type:uuid_or_none': None}}}} -class Qos(extensions.ExtensionDescriptor): +class Qos(api_extensions.ExtensionDescriptor): """Quality of Service API extension.""" @classmethod diff --git a/neutron/extensions/quotasv2.py b/neutron/extensions/quotasv2.py index 7c7f991b1f0..2a9b49e3ccc 100644 --- a/neutron/extensions/quotasv2.py +++ b/neutron/extensions/quotasv2.py @@ -14,6 +14,7 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions as api_extensions from neutron_lib import exceptions as n_exc from neutron_lib.plugins import directory from oslo_config import cfg @@ -126,7 +127,7 @@ class QuotaSetsController(wsgi.Controller): return {self._resource_name: self._get_quotas(request, id)} -class Quotasv2(extensions.ExtensionDescriptor): +class Quotasv2(api_extensions.ExtensionDescriptor): """Quotas management support.""" @classmethod diff --git a/neutron/extensions/rbac.py b/neutron/extensions/rbac.py index 03ed5c53f87..a16d4162ee4 100644 --- a/neutron/extensions/rbac.py +++ b/neutron/extensions/rbac.py @@ -13,6 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib.api import extensions as api_extensions from neutron_lib import exceptions as n_exc from neutron_lib.plugins import directory @@ -81,7 +82,7 @@ RESOURCE_ATTRIBUTE_MAP = { quota.register_quota_opts(quota.rbac_quota_opts) -class Rbac(extensions.ExtensionDescriptor): +class Rbac(api_extensions.ExtensionDescriptor): """RBAC policy support.""" @classmethod diff --git a/neutron/extensions/revisions.py b/neutron/extensions/revisions.py index b36a9ff2ee3..1aafb7b4467 100644 --- a/neutron/extensions/revisions.py +++ b/neutron/extensions/revisions.py @@ -11,7 +11,8 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions + from neutron.db import standard_attr diff --git a/neutron/extensions/router_availability_zone.py b/neutron/extensions/router_availability_zone.py index 3e09bb302c3..053eb791b5f 100644 --- a/neutron/extensions/router_availability_zone.py +++ b/neutron/extensions/router_availability_zone.py @@ -14,9 +14,9 @@ import abc +from neutron_lib.api import extensions import six -from neutron.api import extensions from neutron.extensions import availability_zone as az_ext diff --git a/neutron/extensions/routerservicetype.py b/neutron/extensions/routerservicetype.py index e40ffa59fd2..5e4ffbfb3a8 100644 --- a/neutron/extensions/routerservicetype.py +++ b/neutron/extensions/routerservicetype.py @@ -12,7 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions SERVICE_TYPE_ID = 'service_type_id' EXTENDED_ATTRIBUTES_2_0 = { diff --git a/neutron/extensions/securitygroup.py b/neutron/extensions/securitygroup.py index c02ff76b537..cd0319e055f 100644 --- a/neutron/extensions/securitygroup.py +++ b/neutron/extensions/securitygroup.py @@ -16,6 +16,7 @@ import abc import netaddr +from neutron_lib.api import extensions as api_extensions from neutron_lib.api import validators from neutron_lib import constants as const from neutron_lib import exceptions as nexception @@ -281,7 +282,7 @@ EXTENDED_ATTRIBUTES_2_0 = { quota.register_quota_opts(quota.security_group_quota_opts) -class Securitygroup(extensions.ExtensionDescriptor): +class Securitygroup(api_extensions.ExtensionDescriptor): """Security group extension.""" @classmethod diff --git a/neutron/extensions/segment.py b/neutron/extensions/segment.py index a178c9f5562..134a30eb31b 100644 --- a/neutron/extensions/segment.py +++ b/neutron/extensions/segment.py @@ -16,6 +16,7 @@ import abc import six from neutron_lib.api import converters +from neutron_lib.api import extensions as api_extensions from neutron_lib import constants from neutron_lib.plugins import directory @@ -88,7 +89,7 @@ RESOURCE_ATTRIBUTE_MAP = { } -class Segment(extensions.ExtensionDescriptor): +class Segment(api_extensions.ExtensionDescriptor): """Extension class supporting Segments.""" @classmethod diff --git a/neutron/extensions/servicetype.py b/neutron/extensions/servicetype.py index ef18f09cd5b..567d22360dc 100644 --- a/neutron/extensions/servicetype.py +++ b/neutron/extensions/servicetype.py @@ -13,6 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib.api import extensions as api_extensions + from neutron._i18n import _ from neutron.api import extensions from neutron.api.v2 import base @@ -40,7 +42,7 @@ RESOURCE_ATTRIBUTE_MAP = { } -class Servicetype(extensions.ExtensionDescriptor): +class Servicetype(api_extensions.ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron/extensions/sorting.py b/neutron/extensions/sorting.py index 48f9a5d33a0..f03b3c10caf 100644 --- a/neutron/extensions/sorting.py +++ b/neutron/extensions/sorting.py @@ -11,13 +11,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +from neutron_lib.api import extensions as api_extensions + from neutron.api import extensions _ALIAS = 'sorting' -class Sorting(extensions.ExtensionDescriptor): +class Sorting(api_extensions.ExtensionDescriptor): """Fake extension that indicates that sorting is enabled.""" extensions.register_custom_supported_check( diff --git a/neutron/extensions/standardattrdescription.py b/neutron/extensions/standardattrdescription.py index 983f8a4ced6..dbd2a778b6d 100644 --- a/neutron/extensions/standardattrdescription.py +++ b/neutron/extensions/standardattrdescription.py @@ -13,7 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions + from neutron.api.v2 import attributes as attr from neutron.db import standard_attr diff --git a/neutron/extensions/subnet_service_types.py b/neutron/extensions/subnet_service_types.py index 773aa2381b1..23611463d42 100644 --- a/neutron/extensions/subnet_service_types.py +++ b/neutron/extensions/subnet_service_types.py @@ -10,13 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib.api import extensions from neutron_lib.api import validators from neutron_lib import constants from neutron_lib import exceptions import webob.exc from neutron._i18n import _ -from neutron.api import extensions from neutron.api.v2 import attributes diff --git a/neutron/extensions/subnetallocation.py b/neutron/extensions/subnetallocation.py index 73393182b0f..3f5b82b8b72 100644 --- a/neutron/extensions/subnetallocation.py +++ b/neutron/extensions/subnetallocation.py @@ -13,10 +13,9 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib.api import extensions from neutron_lib import constants -from neutron.api import extensions - class Subnetallocation(extensions.ExtensionDescriptor): """Extension class supporting subnet allocation.""" diff --git a/neutron/extensions/tag.py b/neutron/extensions/tag.py index 1ca12059aec..9b195b43c5d 100644 --- a/neutron/extensions/tag.py +++ b/neutron/extensions/tag.py @@ -13,6 +13,7 @@ import abc +from neutron_lib.api import extensions as api_extensions from neutron_lib.api import validators from neutron_lib import exceptions from neutron_lib.plugins import directory @@ -121,7 +122,7 @@ class TagController(object): return self.plugin.delete_tags(request.context, parent, parent_id) -class Tag(extensions.ExtensionDescriptor): +class Tag(api_extensions.ExtensionDescriptor): """Extension class supporting tags.""" @classmethod diff --git a/neutron/extensions/timestamp.py b/neutron/extensions/timestamp.py index 26ae0917ca6..41e50409f72 100644 --- a/neutron/extensions/timestamp.py +++ b/neutron/extensions/timestamp.py @@ -12,7 +12,8 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions + from neutron.db import standard_attr diff --git a/neutron/extensions/trunk.py b/neutron/extensions/trunk.py index bc5a162b73c..07737435b2e 100644 --- a/neutron/extensions/trunk.py +++ b/neutron/extensions/trunk.py @@ -14,8 +14,8 @@ # under the License. from neutron_lib.api.definitions import trunk +from neutron_lib.api import extensions -from neutron.api import extensions from neutron.api.v2 import resource_helper diff --git a/neutron/extensions/trunk_details.py b/neutron/extensions/trunk_details.py index 9a9459ae7e9..4bb5a68f763 100644 --- a/neutron/extensions/trunk_details.py +++ b/neutron/extensions/trunk_details.py @@ -13,8 +13,7 @@ # under the License. from neutron_lib.api.definitions import trunk_details - -from neutron.api import extensions +from neutron_lib.api import extensions # NOTE(armax): because of the API machinery, this extension must be on diff --git a/neutron/extensions/vlantransparent.py b/neutron/extensions/vlantransparent.py index 91b057ed4f0..36938935fa5 100644 --- a/neutron/extensions/vlantransparent.py +++ b/neutron/extensions/vlantransparent.py @@ -13,6 +13,7 @@ # under the License. from neutron_lib.api import converters +from neutron_lib.api import extensions from neutron_lib.api import validators from neutron_lib import constants from neutron_lib import exceptions @@ -20,7 +21,6 @@ from oslo_config import cfg from oslo_log import log as logging from neutron._i18n import _, _LI -from neutron.api import extensions LOG = logging.getLogger(__name__) diff --git a/neutron/tests/functional/pecan_wsgi/utils.py b/neutron/tests/functional/pecan_wsgi/utils.py index 1188c5ee6a6..39b529878bc 100644 --- a/neutron/tests/functional/pecan_wsgi/utils.py +++ b/neutron/tests/functional/pecan_wsgi/utils.py @@ -10,13 +10,15 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib.api import extensions as api_extensions + from neutron.api import extensions from neutron.api.v2 import base from neutron.pecan_wsgi import controllers from neutron.pecan_wsgi.controllers import utils as pecan_utils -class FakeSingularCollectionExtension(extensions.ExtensionDescriptor): +class FakeSingularCollectionExtension(api_extensions.ExtensionDescriptor): COLLECTION = 'topologies' RESOURCE = 'topology' @@ -104,7 +106,7 @@ def create_router(context, l3_plugin): 'admin_state_up': True}}) -class FakeExtension(extensions.ExtensionDescriptor): +class FakeExtension(api_extensions.ExtensionDescriptor): HYPHENATED_RESOURCE = 'meh_meh' HYPHENATED_COLLECTION = HYPHENATED_RESOURCE + 's' diff --git a/neutron/tests/unit/extension_stubs.py b/neutron/tests/unit/extension_stubs.py index 99b2ec1de5d..ab0e19c4363 100644 --- a/neutron/tests/unit/extension_stubs.py +++ b/neutron/tests/unit/extension_stubs.py @@ -15,11 +15,13 @@ import abc +from neutron_lib.api import extensions as api_extensions + from neutron.api import extensions from neutron import wsgi -class StubExtension(extensions.ExtensionDescriptor): +class StubExtension(api_extensions.ExtensionDescriptor): def __init__(self, alias="stub_extension", optional=None): self.alias = alias diff --git a/neutron/tests/unit/extensions/extendedattribute.py b/neutron/tests/unit/extensions/extendedattribute.py index 2f2f2de1594..d35f453caf9 100644 --- a/neutron/tests/unit/extensions/extendedattribute.py +++ b/neutron/tests/unit/extensions/extendedattribute.py @@ -12,7 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron.api import extensions +from neutron_lib.api import extensions EXTENDED_ATTRIBUTE = 'extended_attribute' EXTENDED_ATTRIBUTES_2_0 = { diff --git a/neutron/tests/unit/extensions/extensionattribute.py b/neutron/tests/unit/extensions/extensionattribute.py index a17857fd003..f529e935ef7 100644 --- a/neutron/tests/unit/extensions/extensionattribute.py +++ b/neutron/tests/unit/extensions/extensionattribute.py @@ -15,6 +15,7 @@ import abc +from neutron_lib.api import extensions as api_extensions from neutron_lib.plugins import directory from neutron.api import extensions @@ -39,7 +40,7 @@ RESOURCE_ATTRIBUTE_MAP = { } -class Extensionattribute(extensions.ExtensionDescriptor): +class Extensionattribute(api_extensions.ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron/tests/unit/extensions/foxinsocks.py b/neutron/tests/unit/extensions/foxinsocks.py index 1edde476790..e63d6ff15b2 100644 --- a/neutron/tests/unit/extensions/foxinsocks.py +++ b/neutron/tests/unit/extensions/foxinsocks.py @@ -15,6 +15,7 @@ import abc +from neutron_lib.api import extensions as api_extensions from oslo_serialization import jsonutils import six @@ -36,7 +37,7 @@ class FoxInSocksPluginInterface(extensions.PluginInterface): pass -class Foxinsocks(extensions.ExtensionDescriptor): +class Foxinsocks(api_extensions.ExtensionDescriptor): def __init__(self): pass diff --git a/neutron/tests/unit/extensions/v2attributes.py b/neutron/tests/unit/extensions/v2attributes.py index 2adfcc12fa6..0c83e2c1b36 100644 --- a/neutron/tests/unit/extensions/v2attributes.py +++ b/neutron/tests/unit/extensions/v2attributes.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from neutron.api import extensions +from neutron_lib.api import extensions EXTENDED_ATTRIBUTES_2_0 = { diff --git a/neutron/tests/unit/plugins/ml2/extensions/fake_extension.py b/neutron/tests/unit/plugins/ml2/extensions/fake_extension.py index d247c7d392c..7196996dd34 100644 --- a/neutron/tests/unit/plugins/ml2/extensions/fake_extension.py +++ b/neutron/tests/unit/plugins/ml2/extensions/fake_extension.py @@ -10,10 +10,10 @@ # License for the specific language governing permissions and limitations # under the License. +from neutron_lib.api import extensions from neutron_lib import constants from neutron._i18n import _ -from neutron.api import extensions EXTENDED_ATTRIBUTES_2_0 = {