From cfa8f537710d8d7ef407b4194295f15ed03b3fa0 Mon Sep 17 00:00:00 2001 From: Akihiro Motoki Date: Mon, 24 Aug 2015 10:12:52 +0900 Subject: [PATCH] Decomposition phase2 of NEC plugin As part of plugin decomposition effort, NEC plugin is removed from the main neutron repo and moved to networking-nec repo. Related blueprint core-vendor-decomposition Closes-Bug: #1487929 Change-Id: I2ef7ec241f061516b72c4df9f959af027c4c366c --- etc/neutron/plugins/nec/nec.ini | 63 ------ etc/neutron/rootwrap.d/nec-plugin.filters | 12 -- .../cmd/eventlet/plugins/nec_neutron_agent.py | 28 --- .../migration/alembic_migrations/external.py | 15 +- neutron/db/migration/models/head.py | 1 - neutron/plugins/nec/README | 11 - neutron/plugins/nec/__init__.py | 0 neutron/plugins/nec/config.py | 78 ------- neutron/plugins/nec/db/__init__.py | 0 neutron/plugins/nec/db/models.py | 117 ---------- neutron/plugins/nec/extensions/__init__.py | 0 .../plugins/nec/extensions/packetfilter.py | 200 ------------------ .../plugins/nec/extensions/router_provider.py | 56 ----- neutron/plugins/nec/nec_plugin.py | 47 ---- neutron/plugins/nec/requirements.txt | 1 - setup.cfg | 4 - 16 files changed, 14 insertions(+), 619 deletions(-) delete mode 100644 etc/neutron/plugins/nec/nec.ini delete mode 100644 etc/neutron/rootwrap.d/nec-plugin.filters delete mode 100644 neutron/cmd/eventlet/plugins/nec_neutron_agent.py delete mode 100644 neutron/plugins/nec/README delete mode 100644 neutron/plugins/nec/__init__.py delete mode 100644 neutron/plugins/nec/config.py delete mode 100644 neutron/plugins/nec/db/__init__.py delete mode 100644 neutron/plugins/nec/db/models.py delete mode 100644 neutron/plugins/nec/extensions/__init__.py delete mode 100644 neutron/plugins/nec/extensions/packetfilter.py delete mode 100644 neutron/plugins/nec/extensions/router_provider.py delete mode 100644 neutron/plugins/nec/nec_plugin.py delete mode 100644 neutron/plugins/nec/requirements.txt diff --git a/etc/neutron/plugins/nec/nec.ini b/etc/neutron/plugins/nec/nec.ini deleted file mode 100644 index 798a5a61a..000000000 --- a/etc/neutron/plugins/nec/nec.ini +++ /dev/null @@ -1,63 +0,0 @@ -# Sample Configurations - -[ovs] -# Do not change this parameter unless you have a good reason to. -# This is the name of the OVS integration bridge. There is one per hypervisor. -# The integration bridge acts as a virtual "patch port". All VM VIFs are -# attached to this bridge and then "patched" according to their network -# connectivity. -# integration_bridge = br-int - -[agent] -# Agent's polling interval in seconds -# polling_interval = 2 - -[securitygroup] -# Firewall driver for realizing neutron security group function -firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver - -# Controls if neutron security group is enabled or not. -# It should be false when you use nova security group. -# enable_security_group = True - -[ofc] -# Specify OpenFlow Controller Host, Port and Driver to connect. -# host = 127.0.0.1 -# port = 8888 - -# Base URL of OpenFlow Controller REST API. -# It is prepended to a path of each API request. -# path_prefix = - -# Drivers are in neutron/plugins/nec/drivers/ . -# driver = trema - -# PacketFilter is available when it's enabled in this configuration -# and supported by the driver. -# enable_packet_filter = true - -# Support PacketFilter on OFC router interface -# support_packet_filter_on_ofc_router = true - -# Use SSL to connect -# use_ssl = false - -# Key file -# key_file = - -# Certificate file -# cert_file = - -# Disable SSL certificate verification -# insecure_ssl = false - -# Maximum attempts per OFC API request. NEC plugin retries -# API request to OFC when OFC returns ServiceUnavailable (503). -# The value must be greater than 0. -# api_max_attempts = 3 - -[provider] -# Default router provider to use. -# default_router_provider = l3-agent -# List of enabled router providers. -# router_providers = l3-agent,openflow diff --git a/etc/neutron/rootwrap.d/nec-plugin.filters b/etc/neutron/rootwrap.d/nec-plugin.filters deleted file mode 100644 index 89c4cfe35..000000000 --- a/etc/neutron/rootwrap.d/nec-plugin.filters +++ /dev/null @@ -1,12 +0,0 @@ -# neutron-rootwrap command filters for nodes on which neutron is -# expected to control network -# -# This file should be owned by (and only-writeable by) the root user - -# format seems to be -# cmd-name: filter-name, raw-command, user, args - -[Filters] - -# nec_neutron_agent -ovs-vsctl: CommandFilter, ovs-vsctl, root diff --git a/neutron/cmd/eventlet/plugins/nec_neutron_agent.py b/neutron/cmd/eventlet/plugins/nec_neutron_agent.py deleted file mode 100644 index 7cd7503a9..000000000 --- a/neutron/cmd/eventlet/plugins/nec_neutron_agent.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2012 NEC Corporation. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import sys - -from networking_nec.plugins.openflow.agent import l2_agent - -from neutron.common import config as common_config -from neutron.plugins.nec import config as nec_config - - -def main(): - nec_config.register_agent_opts() - common_config.init(sys.argv[1:]) - common_config.setup_logging() - l2_agent.run() diff --git a/neutron/db/migration/alembic_migrations/external.py b/neutron/db/migration/alembic_migrations/external.py index ce28c27a9..cd63c2f72 100644 --- a/neutron/db/migration/alembic_migrations/external.py +++ b/neutron/db/migration/alembic_migrations/external.py @@ -85,7 +85,20 @@ REPO_VMWARE_TABLES = [ 'vcns_router_bindings', ] +# NEC models moved to stackforge/networking-nec +REPO_NEC_TABLES = [ + 'ofcnetworkmappings', + 'ofcportmappings', + 'ofcroutermappings', + 'ofcfiltermappings', + 'ofctenantmappings', + 'portinfos', + 'routerproviders', + 'packetfilters', +] + TABLES = (FWAAS_TABLES + LBAAS_TABLES + VPNAAS_TABLES + REPO_ARISTA_TABLES + REPO_CISCO_TABLES + - REPO_VMWARE_TABLES) + REPO_VMWARE_TABLES + + REPO_NEC_TABLES) diff --git a/neutron/db/migration/models/head.py b/neutron/db/migration/models/head.py index 8ea0df5b6..549539818 100644 --- a/neutron/db/migration/models/head.py +++ b/neutron/db/migration/models/head.py @@ -60,7 +60,6 @@ from neutron.plugins.ml2.drivers import type_gre # noqa from neutron.plugins.ml2.drivers import type_vlan # noqa from neutron.plugins.ml2.drivers import type_vxlan # noqa from neutron.plugins.ml2 import models # noqa -from neutron.plugins.nec.db import models as nec_models # noqa from neutron.plugins.nuage import nuage_models # noqa diff --git a/neutron/plugins/nec/README b/neutron/plugins/nec/README deleted file mode 100644 index 337c2a03c..000000000 --- a/neutron/plugins/nec/README +++ /dev/null @@ -1,11 +0,0 @@ -Neutron NEC OpenFlow Plugin -=========================== - -Neutron plugins for NEC OpenFlow networking products and -Trema Sliceable Switch (reference implementation). - -* Main Page: https://wiki.openstack.org/wiki/Neutron/NEC_OpenFlow_Plugin - -* Repository: - * http://git.openstack.org/cgit/stackforge/networking-nec/ - * https://github.com/stackforge/networking-nec diff --git a/neutron/plugins/nec/__init__.py b/neutron/plugins/nec/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/neutron/plugins/nec/config.py b/neutron/plugins/nec/config.py deleted file mode 100644 index be1021a1f..000000000 --- a/neutron/plugins/nec/config.py +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright 2012 NEC Corporation. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from oslo_config import cfg - -from neutron.agent.common import config - - -ovs_opts = [ - cfg.StrOpt('integration_bridge', default='br-int', - help=_("Integration bridge to use.")), -] - -agent_opts = [ - cfg.IntOpt('polling_interval', default=2, - help=_("The number of seconds the agent will wait between " - "polling for local device changes.")), -] - -ofc_opts = [ - cfg.StrOpt('host', default='127.0.0.1', - help=_("Host to connect to.")), - cfg.StrOpt('path_prefix', default='', - help=_("Base URL of OFC REST API. " - "It is prepended to each API request.")), - cfg.StrOpt('port', default='8888', - help=_("Port to connect to.")), - cfg.StrOpt('driver', default='trema', - help=_("Driver to use.")), - cfg.BoolOpt('enable_packet_filter', default=True, - help=_("Enable packet filter.")), - cfg.BoolOpt('support_packet_filter_on_ofc_router', default=True, - help=_("Support packet filter on OFC router interface.")), - cfg.BoolOpt('use_ssl', default=False, - help=_("Use SSL to connect.")), - cfg.StrOpt('key_file', - help=_("Location of key file.")), - cfg.StrOpt('cert_file', - help=_("Location of certificate file.")), - cfg.BoolOpt('insecure_ssl', default=False, - help=_("Disable SSL certificate verification.")), - cfg.IntOpt('api_max_attempts', default=3, - help=_("Maximum attempts per OFC API request. " - "NEC plugin retries API request to OFC " - "when OFC returns ServiceUnavailable (503). " - "The value must be greater than 0.")), -] - -provider_opts = [ - cfg.StrOpt('default_router_provider', - default='l3-agent', - help=_('Default router provider to use.')), - cfg.ListOpt('router_providers', - default=['l3-agent', 'openflow'], - help=_('List of enabled router providers.')) -] - - -def register_plugin_opts(): - cfg.CONF.register_opts(ofc_opts, "OFC") - cfg.CONF.register_opts(provider_opts, "PROVIDER") - - -def register_agent_opts(): - cfg.CONF.register_opts(agent_opts, "AGENT") - cfg.CONF.register_opts(ovs_opts, "OVS") - config.register_agent_state_opts_helper(cfg.CONF) diff --git a/neutron/plugins/nec/db/__init__.py b/neutron/plugins/nec/db/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/neutron/plugins/nec/db/models.py b/neutron/plugins/nec/db/models.py deleted file mode 100644 index cce043eee..000000000 --- a/neutron/plugins/nec/db/models.py +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright 2012 NEC Corporation. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import sqlalchemy as sa -from sqlalchemy import orm - -from neutron.db import l3_db -from neutron.db import model_base -from neutron.db import models_v2 - - -# New mapping tables. - - -class OFCId(object): - """Resource ID on OpenFlow Controller.""" - ofc_id = sa.Column(sa.String(255), unique=True, nullable=False) - - -class NeutronId(object): - """Logical ID on Neutron.""" - neutron_id = sa.Column(sa.String(36), primary_key=True) - - -class OFCTenantMapping(model_base.BASEV2, NeutronId, OFCId): - """Represents a Tenant on OpenFlow Network/Controller.""" - - -class OFCNetworkMapping(model_base.BASEV2, NeutronId, OFCId): - """Represents a Network on OpenFlow Network/Controller.""" - - -class OFCPortMapping(model_base.BASEV2, NeutronId, OFCId): - """Represents a Port on OpenFlow Network/Controller.""" - - -class OFCRouterMapping(model_base.BASEV2, NeutronId, OFCId): - """Represents a router on OpenFlow Network/Controller.""" - - -class OFCFilterMapping(model_base.BASEV2, NeutronId, OFCId): - """Represents a Filter on OpenFlow Network/Controller.""" - - -class PortInfo(model_base.BASEV2): - """Represents a Virtual Interface.""" - id = sa.Column(sa.String(36), - sa.ForeignKey('ports.id', ondelete="CASCADE"), - primary_key=True) - datapath_id = sa.Column(sa.String(36), nullable=False) - port_no = sa.Column(sa.Integer, nullable=False) - vlan_id = sa.Column(sa.Integer, nullable=False) - mac = sa.Column(sa.String(32), nullable=False) - port = orm.relationship( - models_v2.Port, - backref=orm.backref("portinfo", - lazy='joined', uselist=False, - cascade='delete')) - - -class RouterProvider(models_v2.model_base.BASEV2): - """Represents a binding of router_id to provider.""" - provider = sa.Column(sa.String(255)) - router_id = sa.Column(sa.String(36), - sa.ForeignKey('routers.id', ondelete="CASCADE"), - primary_key=True) - - router = orm.relationship(l3_db.Router, uselist=False, - backref=orm.backref('provider', uselist=False, - lazy='joined', - cascade='delete')) - - -class PacketFilter(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant): - """Represents a packet filter.""" - name = sa.Column(sa.String(255)) - network_id = sa.Column(sa.String(36), - sa.ForeignKey('networks.id', ondelete="CASCADE"), - nullable=False) - priority = sa.Column(sa.Integer, nullable=False) - action = sa.Column(sa.String(16), nullable=False) - # condition - in_port = sa.Column(sa.String(36), - sa.ForeignKey('ports.id', ondelete="CASCADE"), - nullable=True) - src_mac = sa.Column(sa.String(32), nullable=False) - dst_mac = sa.Column(sa.String(32), nullable=False) - eth_type = sa.Column(sa.Integer, nullable=False) - src_cidr = sa.Column(sa.String(64), nullable=False) - dst_cidr = sa.Column(sa.String(64), nullable=False) - protocol = sa.Column(sa.String(16), nullable=False) - src_port = sa.Column(sa.Integer, nullable=False) - dst_port = sa.Column(sa.Integer, nullable=False) - # status - admin_state_up = sa.Column(sa.Boolean(), nullable=False) - status = sa.Column(sa.String(16), nullable=False) - - network = orm.relationship( - models_v2.Network, - backref=orm.backref('packetfilters', lazy='joined', cascade='delete'), - uselist=False) - in_port_ref = orm.relationship( - models_v2.Port, - backref=orm.backref('packetfilters', lazy='joined', cascade='delete'), - primaryjoin="Port.id==PacketFilter.in_port", - uselist=False) diff --git a/neutron/plugins/nec/extensions/__init__.py b/neutron/plugins/nec/extensions/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/neutron/plugins/nec/extensions/packetfilter.py b/neutron/plugins/nec/extensions/packetfilter.py deleted file mode 100644 index 3d89cf4e2..000000000 --- a/neutron/plugins/nec/extensions/packetfilter.py +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright 2012-2013 NEC Corporation. -# All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from oslo_config import cfg - -from neutron.api import extensions -from neutron.api.v2 import attributes -from neutron.api.v2 import base -from neutron.common import constants -from neutron.common import exceptions -from neutron import manager -from neutron.quota import resource as quota_resource -from neutron.quota import resource_registry - - -quota_packet_filter_opts = [ - cfg.IntOpt('quota_packet_filter', - default=100, - help=_("Number of packet_filters allowed per tenant, " - "-1 for unlimited")) -] -cfg.CONF.register_opts(quota_packet_filter_opts, 'QUOTAS') - - -class PacketFilterNotFound(exceptions.NotFound): - message = _("PacketFilter %(id)s could not be found") - - -class PacketFilterIpVersionNonSupported(exceptions.BadRequest): - message = _("IP version %(version)s is not supported for %(field)s " - "(%(value)s is specified)") - - -class PacketFilterInvalidPriority(exceptions.BadRequest): - message = _("Packet Filter priority should be %(min)s-%(max)s (included)") - - -class PacketFilterUpdateNotSupported(exceptions.BadRequest): - message = _("%(field)s field cannot be updated") - - -class PacketFilterDuplicatedPriority(exceptions.BadRequest): - message = _("The backend does not support duplicated priority. " - "Priority %(priority)s is in use") - - -class PacketFilterEtherTypeProtocolMismatch(exceptions.Conflict): - message = _("Ether Type '%(eth_type)s' conflicts with protocol " - "'%(protocol)s'. Update or clear protocol before " - "changing ether type.") - - -def convert_to_int_dec_and_hex(data): - try: - return int(data, 0) - except (ValueError, TypeError): - pass - try: - return int(data) - except (ValueError, TypeError): - msg = _("'%s' is not a integer") % data - raise exceptions.InvalidInput(error_message=msg) - - -def convert_to_int_or_none(data): - if data is None: - return - return convert_to_int_dec_and_hex(data) - - -PROTO_NAME_ARP = 'arp' -SUPPORTED_PROTOCOLS = [constants.PROTO_NAME_ICMP, - constants.PROTO_NAME_TCP, - constants.PROTO_NAME_UDP, - PROTO_NAME_ARP] -ALLOW_ACTIONS = ['allow', 'accept'] -DROP_ACTIONS = ['drop', 'deny'] -SUPPORTED_ACTIONS = ALLOW_ACTIONS + DROP_ACTIONS - -ALIAS = 'packet-filter' -RESOURCE = 'packet_filter' -COLLECTION = 'packet_filters' -PACKET_FILTER_ACTION_REGEX = '(?i)^(%s)$' % '|'.join(SUPPORTED_ACTIONS) -PACKET_FILTER_PROTOCOL_REGEX = ('(?i)^(%s|0x[0-9a-fA-F]+|[0-9]+|)$' % - '|'.join(SUPPORTED_PROTOCOLS)) -PACKET_FILTER_ATTR_PARAMS = { - 'id': {'allow_post': False, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_visible': True}, - 'name': {'allow_post': True, 'allow_put': True, 'default': '', - 'validate': {'type:string': attributes.NAME_MAX_LEN}, - 'is_visible': True}, - 'tenant_id': {'allow_post': True, 'allow_put': False, - 'validate': {'type:string': attributes.TENANT_ID_MAX_LEN}, - 'required_by_policy': True, - 'is_visible': True}, - 'network_id': {'allow_post': True, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_visible': True}, - 'admin_state_up': {'allow_post': True, 'allow_put': True, - 'default': True, - 'convert_to': attributes.convert_to_boolean, - 'is_visible': True}, - 'status': {'allow_post': False, 'allow_put': False, - 'is_visible': True}, - 'action': {'allow_post': True, 'allow_put': True, - 'validate': {'type:regex': PACKET_FILTER_ACTION_REGEX}, - 'is_visible': True}, - 'priority': {'allow_post': True, 'allow_put': True, - 'convert_to': convert_to_int_dec_and_hex, - 'is_visible': True}, - 'in_port': {'allow_post': True, 'allow_put': False, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'validate': {'type:uuid': None}, - 'is_visible': True}, - 'src_mac': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'validate': {'type:mac_address_or_none': None}, - 'is_visible': True}, - 'dst_mac': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'validate': {'type:mac_address_or_none': None}, - 'is_visible': True}, - 'eth_type': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'convert_to': convert_to_int_or_none, - 'is_visible': True}, - 'src_cidr': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'validate': {'type:subnet_or_none': None}, - 'is_visible': True}, - 'dst_cidr': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'validate': {'type:subnet_or_none': None}, - 'is_visible': True}, - 'protocol': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'validate': {'type:regex_or_none': - PACKET_FILTER_PROTOCOL_REGEX}, - 'is_visible': True}, - 'src_port': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'convert_to': convert_to_int_or_none, - 'is_visible': True}, - 'dst_port': {'allow_post': True, 'allow_put': True, - 'default': attributes.ATTR_NOT_SPECIFIED, - 'convert_to': convert_to_int_or_none, - 'is_visible': True}, -} -PACKET_FILTER_ATTR_MAP = {COLLECTION: PACKET_FILTER_ATTR_PARAMS} - - -class Packetfilter(extensions.ExtensionDescriptor): - @classmethod - def get_name(cls): - return ALIAS - - @classmethod - def get_alias(cls): - return ALIAS - - @classmethod - def get_description(cls): - return "PacketFilters on OFC" - - @classmethod - def get_updated(cls): - return "2013-07-16T00:00:00+09:00" - - @classmethod - def get_resources(cls): - qresource = quota_resource.CountableResource( - RESOURCE, quota_resource._count_resource, 'quota_%s' % RESOURCE) - - resource_registry.register_resource(qresource) - - resource = base.create_resource(COLLECTION, RESOURCE, - manager.NeutronManager.get_plugin(), - PACKET_FILTER_ATTR_PARAMS) - pf_ext = extensions.ResourceExtension( - COLLECTION, resource, attr_map=PACKET_FILTER_ATTR_PARAMS) - return [pf_ext] - - def get_extended_resources(self, version): - if version == "2.0": - return PACKET_FILTER_ATTR_MAP - else: - return {} diff --git a/neutron/plugins/nec/extensions/router_provider.py b/neutron/plugins/nec/extensions/router_provider.py deleted file mode 100644 index 7c7f4afb4..000000000 --- a/neutron/plugins/nec/extensions/router_provider.py +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2013 NEC Corporation. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from oslo_log import log as logging - -from neutron.api import extensions -from neutron.api.v2 import attributes - - -LOG = logging.getLogger(__name__) - -ROUTER_PROVIDER = 'provider' - -ROUTER_PROVIDER_ATTRIBUTE = { - 'routers': {ROUTER_PROVIDER: - {'allow_post': True, - 'allow_put': False, - 'is_visible': True, - 'default': attributes.ATTR_NOT_SPECIFIED} - } -} - - -class Router_provider(extensions.ExtensionDescriptor): - @classmethod - def get_name(cls): - return "Router Provider" - - @classmethod - def get_alias(cls): - return "router_provider" - - @classmethod - def get_description(cls): - return "Router Provider Support" - - @classmethod - def get_updated(cls): - return "2013-08-20T10:00:00-00:00" - - def get_extended_resources(self, version): - if version == "2.0": - return ROUTER_PROVIDER_ATTRIBUTE - else: - return {} diff --git a/neutron/plugins/nec/nec_plugin.py b/neutron/plugins/nec/nec_plugin.py deleted file mode 100644 index c434c711d..000000000 --- a/neutron/plugins/nec/nec_plugin.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2012-2013 NEC Corporation. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from networking_nec.plugins.openflow import plugin - -from neutron.plugins.nec import config as nec_config - - -class NECPluginV2(plugin.NECPluginV2Impl): - - _supported_extension_aliases = ["agent", - "allowed-address-pairs", - "binding", - "dhcp_agent_scheduler", - "external-net", - "ext-gw-mode", - "extraroute", - "l3_agent_scheduler", - "packet-filter", - "quotas", - "router", - "router_provider", - "security-group", - ] - - @property - def supported_extension_aliases(self): - if not hasattr(self, '_aliases'): - aliases = self._supported_extension_aliases[:] - self.setup_extension_aliases(aliases) - self._aliases = aliases - return self._aliases - - def __init__(self): - nec_config.register_plugin_opts() - super(NECPluginV2, self).__init__() diff --git a/neutron/plugins/nec/requirements.txt b/neutron/plugins/nec/requirements.txt deleted file mode 100644 index fafd1a9c4..000000000 --- a/neutron/plugins/nec/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -networking-nec>=2015.1,<2015.2 diff --git a/setup.cfg b/setup.cfg index 63ce1645c..ee8b83f8d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -38,7 +38,6 @@ data_files = etc/neutron/rootwrap.d/ipset-firewall.filters etc/neutron/rootwrap.d/l3.filters etc/neutron/rootwrap.d/linuxbridge-plugin.filters - etc/neutron/rootwrap.d/nec-plugin.filters etc/neutron/rootwrap.d/openvswitch-plugin.filters etc/init.d = etc/init.d/neutron-server etc/neutron/plugins/bigswitch = @@ -70,7 +69,6 @@ data_files = etc/neutron/plugins/ml2/ml2_conf_sriov.ini etc/neutron/plugins/ml2/openvswitch_agent.ini etc/neutron/plugins/mlnx = etc/neutron/plugins/mlnx/mlnx_conf.ini - etc/neutron/plugins/nec = etc/neutron/plugins/nec/nec.ini etc/neutron/plugins/nuage = etc/neutron/plugins/nuage/nuage_plugin.ini etc/neutron/plugins/oneconvergence = etc/neutron/plugins/oneconvergence/nvsdplugin.ini etc/neutron/plugins/plumgrid = etc/neutron/plugins/plumgrid/plumgrid.ini @@ -92,7 +90,6 @@ console_scripts = neutron-linuxbridge-agent = neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent:main neutron-metadata-agent = neutron.cmd.eventlet.agents.metadata:main neutron-mlnx-agent = neutron.cmd.eventlet.plugins.mlnx_neutron_agent:main - neutron-nec-agent = neutron.cmd.eventlet.plugins.nec_neutron_agent:main neutron-netns-cleanup = neutron.cmd.netns_cleanup:main neutron-ns-metadata-proxy = neutron.cmd.eventlet.agents.metadata_proxy:main neutron-ovsvapp-agent = neutron.cmd.eventlet.plugins.ovsvapp_neutron_agent:main @@ -115,7 +112,6 @@ neutron.core_plugins = ibm = neutron.plugins.ibm.sdnve_neutron_plugin:SdnvePluginV2 midonet = neutron.plugins.midonet.plugin:MidonetPluginV2 ml2 = neutron.plugins.ml2.plugin:Ml2Plugin - nec = neutron.plugins.nec.nec_plugin:NECPluginV2 nuage = neutron.plugins.nuage.plugin:NuagePlugin oneconvergence = neutron.plugins.oneconvergence.plugin:OneConvergencePluginV2 plumgrid = neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin:NeutronPluginPLUMgridV2 -- 2.45.2