]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Metaplugin removal
authorHirofumi Ichihara <ichihara.hirofumi@lab.ntt.co.jp>
Fri, 17 Jul 2015 05:32:21 +0000 (14:32 +0900)
committerHirofumi Ichihara <ichihara.hirofumi@lab.ntt.co.jp>
Thu, 23 Jul 2015 10:05:05 +0000 (19:05 +0900)
Metaplugin is removed in Liberty.
Remove all metaplugin related codes.

DocImpact
APIImpact

Co-Authored-By: Itsuro Oda <oda@valinux.co.jp>
Change-Id: I9cf36e1fd3a009c175e0d475af407a30f4e5c408
Closes-Bug: #1465126

16 files changed:
doc/source/devref/sub_projects.rst
etc/neutron/plugins/metaplugin/metaplugin.ini [deleted file]
neutron/agent/linux/interface.py
neutron/db/migration/alembic_migrations/versions/HEADS
neutron/db/migration/alembic_migrations/versions/liberty/contract/2a16083502f3_metaplugin_removal.py [moved from neutron/plugins/metaplugin/proxy_neutron_plugin.py with 61% similarity]
neutron/db/migration/models/head.py
neutron/extensions/flavor.py [deleted file]
neutron/plugins/metaplugin/README [deleted file]
neutron/plugins/metaplugin/__init__.py [deleted file]
neutron/plugins/metaplugin/common/__init__.py [deleted file]
neutron/plugins/metaplugin/common/config.py [deleted file]
neutron/plugins/metaplugin/meta_models_v2.py [deleted file]
neutron/plugins/metaplugin/meta_neutron_plugin.py [deleted file]
neutron/plugins/ml2/README
neutron/tests/unit/agent/linux/test_interface.py
setup.cfg

index f5c30af58e2d9df1417e85756a4e1d0d235c9776..e12ac22aa1a3092731a7674953a1fe688acf0011 100644 (file)
@@ -97,8 +97,6 @@ repo but are summarized here to describe the functionality they provide.
 +-------------------------------+-----------------------+
 | networking-l2gw_              |         l2            |
 +-------------------------------+-----------------------+
-| networking-metaplugin_        |         core          |
-+-------------------------------+-----------------------+
 | networking-midonet_           |        core,lb        |
 +-------------------------------+-----------------------+
 | networking-mlnx_              |          ml2          |
@@ -244,13 +242,6 @@ L2 Gateway
 * Git: https://git.openstack.org/cgit/openstack/networking-l2gw
 * Launchpad: https://launchpad.net/networking-l2gw
 
-.. _networking-metaplugin:
-
-Metaplugin
-----------
-
-* Git: https://github.com/ntt-sic/networking-metaplugin
-
 .. _networking-midonet:
 
 MidoNet
diff --git a/etc/neutron/plugins/metaplugin/metaplugin.ini b/etc/neutron/plugins/metaplugin/metaplugin.ini
deleted file mode 100644 (file)
index 2b9bfa5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# Config file for Metaplugin
-
-[meta]
-# Comma separated list of flavor:neutron_plugin for plugins to load.
-# Extension method is searched in the list order and the first one is used.
-plugin_list = 'ml2:neutron.plugins.ml2.plugin.Ml2Plugin,nvp:neutron.plugins.vmware.plugin.NsxPluginV2'
-
-# Comma separated list of flavor:neutron_plugin for L3 service plugins
-# to load.
-# This is intended for specifying L2 plugins which support L3 functions.
-# If you use a router service plugin, set this blank.
-l3_plugin_list =
-
-# Default flavor to use, when flavor:network is not specified at network
-# creation.
-default_flavor = 'nvp'
-
-# Default L3 flavor to use, when flavor:router is not specified at router
-# creation.
-# Ignored if 'l3_plugin_list' is blank.
-default_l3_flavor =
-
-# Comma separated list of supported extension aliases.
-supported_extension_aliases = 'provider,binding,agent,dhcp_agent_scheduler'
-
-# Comma separated list of method:flavor to select specific plugin for a method.
-# This has priority over method search order based on 'plugin_list'.
-extension_map = 'get_port_stats:nvp'
-
-# Specifies flavor for plugin to handle 'q-plugin' RPC requests.
-rpc_flavor = 'ml2'
index cd7f9c6903df01d28a2c7c302440527b106efeb9..9207503e7ac4dfcd79038d88f9d109b20747ac7b 100644 (file)
@@ -18,7 +18,6 @@ import abc
 import netaddr
 from oslo_config import cfg
 from oslo_log import log as logging
-from oslo_utils import importutils
 import six
 
 from neutron.agent.common import ovs_lib
@@ -26,7 +25,6 @@ from neutron.agent.linux import ip_lib
 from neutron.agent.linux import utils
 from neutron.common import constants as n_const
 from neutron.common import exceptions
-from neutron.extensions import flavor
 from neutron.i18n import _LE, _LI
 
 
@@ -41,29 +39,6 @@ OPTS = [
                 help=_('Uses veth for an interface or not')),
     cfg.IntOpt('network_device_mtu',
                help=_('MTU setting for device.')),
-    cfg.StrOpt('meta_flavor_driver_mappings',
-               help=_('Mapping between flavor and LinuxInterfaceDriver. '
-                      'It is specific to MetaInterfaceDriver used with '
-                      'admin_user, admin_password, admin_tenant_name, '
-                      'admin_url, auth_strategy, auth_region and '
-                      'endpoint_type.')),
-    cfg.StrOpt('admin_user',
-               help=_("Admin username")),
-    cfg.StrOpt('admin_password',
-               help=_("Admin password"),
-               secret=True),
-    cfg.StrOpt('admin_tenant_name',
-               help=_("Admin tenant name")),
-    cfg.StrOpt('auth_url',
-               help=_("Authentication URL")),
-    cfg.StrOpt('auth_strategy', default='keystone',
-               help=_("The type of authentication to use")),
-    cfg.StrOpt('auth_region',
-               help=_("Authentication region")),
-    cfg.StrOpt('endpoint_type',
-               default='publicURL',
-               help=_("Network service endpoint type to pull from "
-                      "the keystone catalog")),
 ]
 
 
@@ -420,63 +395,3 @@ class BridgeInterfaceDriver(LinuxInterfaceDriver):
         except RuntimeError:
             LOG.error(_LE("Failed unplugging interface '%s'"),
                       device_name)
-
-
-class MetaInterfaceDriver(LinuxInterfaceDriver):
-    def __init__(self, conf):
-        super(MetaInterfaceDriver, self).__init__(conf)
-        from neutronclient.v2_0 import client
-        self.neutron = client.Client(
-            username=self.conf.admin_user,
-            password=self.conf.admin_password,
-            tenant_name=self.conf.admin_tenant_name,
-            auth_url=self.conf.auth_url,
-            auth_strategy=self.conf.auth_strategy,
-            region_name=self.conf.auth_region,
-            endpoint_type=self.conf.endpoint_type
-        )
-        self.flavor_driver_map = {}
-        for net_flavor, driver_name in [
-                driver_set.split(':')
-                for driver_set in
-                self.conf.meta_flavor_driver_mappings.split(',')]:
-            self.flavor_driver_map[net_flavor] = self._load_driver(driver_name)
-
-    def _get_flavor_by_network_id(self, network_id):
-        network = self.neutron.show_network(network_id)
-        return network['network'][flavor.FLAVOR_NETWORK]
-
-    def _get_driver_by_network_id(self, network_id):
-        net_flavor = self._get_flavor_by_network_id(network_id)
-        return self.flavor_driver_map[net_flavor]
-
-    def _set_device_plugin_tag(self, network_id, device_name, namespace=None):
-        plugin_tag = self._get_flavor_by_network_id(network_id)
-        device = ip_lib.IPDevice(device_name, namespace=namespace)
-        device.link.set_alias(plugin_tag)
-
-    def _get_device_plugin_tag(self, device_name, namespace=None):
-        device = ip_lib.IPDevice(device_name, namespace=namespace)
-        return device.link.alias
-
-    def get_device_name(self, port):
-        driver = self._get_driver_by_network_id(port.network_id)
-        return driver.get_device_name(port)
-
-    def plug_new(self, network_id, port_id, device_name, mac_address,
-                 bridge=None, namespace=None, prefix=None):
-        driver = self._get_driver_by_network_id(network_id)
-        ret = driver.plug(network_id, port_id, device_name, mac_address,
-                          bridge=bridge, namespace=namespace, prefix=prefix)
-        self._set_device_plugin_tag(network_id, device_name, namespace)
-        return ret
-
-    def unplug(self, device_name, bridge=None, namespace=None, prefix=None):
-        plugin_tag = self._get_device_plugin_tag(device_name, namespace)
-        driver = self.flavor_driver_map[plugin_tag]
-        return driver.unplug(device_name, bridge, namespace, prefix)
-
-    def _load_driver(self, driver_provider):
-        LOG.debug("Driver location: %s", driver_provider)
-        plugin_klass = importutils.import_class(driver_provider)
-        return plugin_klass(self.conf)
index 984a9ae5d398250573b908d2b2934d9c25fcffdc..be4adef8dfb4b74957457020a85d4c8677e170a2 100644 (file)
@@ -1,3 +1,3 @@
-5498d17be016
+2a16083502f3
 8675309a5c4f
 kilo
similarity index 61%
rename from neutron/plugins/metaplugin/proxy_neutron_plugin.py
rename to neutron/db/migration/alembic_migrations/versions/liberty/contract/2a16083502f3_metaplugin_removal.py
index 353dee242ac68d3f21bdc74adf8565f767eb3618..802ad7a8cabcac3777a9da2cc63730e0ffa3ee23 100644 (file)
@@ -1,5 +1,4 @@
-# Copyright 2012, Nachi Ueno, NTT MCL, Inc.
-# All Rights Reserved.
+# Copyright 2015 OpenStack Foundation
 #
 #    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
 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 #    License for the specific language governing permissions and limitations
 #    under the License.
+#
+
+"""Metaplugin removal
+
+Revision ID: 2a16083502f3
+Revises: 5498d17be016
+Create Date: 2015-06-16 09:11:10.488566
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '2a16083502f3'
+down_revision = '5498d17be016'
 
-from metaplugin.plugin import proxy_neutron_plugin
+from alembic import op
 
 
-ProxyPluginV2 = proxy_neutron_plugin.ProxyPluginV2
+def upgrade():
+    op.drop_table('networkflavors')
+    op.drop_table('routerflavors')
index 3341a9a027f22c9d9223dc5267b76b8d296ed5e5..07ba8bfae345035475ac86ff98f88b49ab2c7f6e 100644 (file)
@@ -52,7 +52,6 @@ from neutron.plugins.brocade.db import models as brocade_models  # noqa
 from neutron.plugins.cisco.db.l3 import l3_models  # noqa
 from neutron.plugins.cisco.db import n1kv_models_v2  # noqa
 from neutron.plugins.cisco.db import network_models_v2  # noqa
-from neutron.plugins.metaplugin import meta_models_v2  # noqa
 from neutron.plugins.ml2.drivers.arista import db  # noqa
 from neutron.plugins.ml2.drivers.brocade.db import (  # noqa
     models as ml2_brocade_models)
diff --git a/neutron/extensions/flavor.py b/neutron/extensions/flavor.py
deleted file mode 100644 (file)
index 9cafb13..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2012 Nachi Ueno, NTT MCL, Inc.
-# 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__)
-
-FLAVOR_NETWORK = 'flavor:network'
-FLAVOR_ROUTER = 'flavor:router'
-
-FLAVOR_ATTRIBUTE = {
-    'networks': {
-        FLAVOR_NETWORK: {'allow_post': True,
-                         'allow_put': False,
-                         'is_visible': True,
-                         'default': attributes.ATTR_NOT_SPECIFIED}
-    },
-    'routers': {
-        FLAVOR_ROUTER: {'allow_post': True,
-                        'allow_put': False,
-                        'is_visible': True,
-                        'default': attributes.ATTR_NOT_SPECIFIED}
-    }
-}
-
-
-class Flavor(extensions.ExtensionDescriptor):
-    @classmethod
-    def get_name(cls):
-        return "Flavor support for network and router"
-
-    @classmethod
-    def get_alias(cls):
-        return "flavor"
-
-    @classmethod
-    def get_description(cls):
-        return "Flavor"
-
-    @classmethod
-    def get_updated(cls):
-        return "2012-07-20T10:00:00-00:00"
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return FLAVOR_ATTRIBUTE
-        else:
-            return {}
diff --git a/neutron/plugins/metaplugin/README b/neutron/plugins/metaplugin/README
deleted file mode 100644 (file)
index e2140b1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# NOTE
-
-The main source codes of Metaplugin is now in https://github.com/ntt-sic/networking-metaplugin.
-They were moved from Neutron tree to there according to core-vendor-decomposition.
-Defining config and DB are still here according to the decomposition policy.
-Codes of 'flavor' extension and interface driver used by *-agent remain in Neutron tree too.
diff --git a/neutron/plugins/metaplugin/__init__.py b/neutron/plugins/metaplugin/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/neutron/plugins/metaplugin/common/__init__.py b/neutron/plugins/metaplugin/common/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/neutron/plugins/metaplugin/common/config.py b/neutron/plugins/metaplugin/common/config.py
deleted file mode 100644 (file)
index dfcbfe1..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 2012, Nachi Ueno, NTT MCL, Inc.
-# 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
-
-
-meta_plugin_opts = [
-    cfg.StrOpt(
-        'plugin_list',
-        default='',
-        help=_("Comma separated list of flavor:neutron_plugin for "
-               "plugins to load. Extension method is searched in the "
-               "list order and the first one is used.")),
-    cfg.StrOpt(
-        'l3_plugin_list',
-        default='',
-        help=_("Comma separated list of flavor:neutron_plugin for L3 "
-               "service plugins to load. This is intended for specifying "
-               "L2 plugins which support L3 functions. If you use a router "
-               "service plugin, set this blank.")),
-    cfg.StrOpt(
-        'default_flavor',
-        default='',
-        help=_("Default flavor to use, when flavor:network is not "
-               "specified at network creation.")),
-    cfg.StrOpt(
-        'default_l3_flavor',
-        default='',
-        help=_("Default L3 flavor to use, when flavor:router is not "
-               "specified at router creation. Ignored if 'l3_plugin_list' "
-               "is blank.")),
-    cfg.StrOpt(
-        'supported_extension_aliases',
-        default='',
-        help=_("Comma separated list of supported extension aliases.")),
-    cfg.StrOpt(
-        'extension_map',
-        default='',
-        help=_("Comma separated list of method:flavor to select specific "
-               "plugin for a method. This has priority over method search "
-               "order based on 'plugin_list'.")),
-    cfg.StrOpt(
-        'rpc_flavor',
-        default='',
-        help=_("Specifies flavor for plugin to handle 'q-plugin' RPC "
-               "requests.")),
-]
-
-proxy_plugin_opts = [
-    cfg.StrOpt('admin_user',
-               help=_("Admin user")),
-    cfg.StrOpt('admin_password',
-               help=_("Admin password"),
-               secret=True),
-    cfg.StrOpt('admin_tenant_name',
-               help=_("Admin tenant name")),
-    cfg.StrOpt('auth_url',
-               help=_("Authentication URL")),
-    cfg.StrOpt('auth_strategy', default='keystone',
-               help=_("The type of authentication to use")),
-    cfg.StrOpt('auth_region',
-               help=_("Authentication region")),
-]
-
-cfg.CONF.register_opts(meta_plugin_opts, "META")
-cfg.CONF.register_opts(proxy_plugin_opts, "PROXY")
diff --git a/neutron/plugins/metaplugin/meta_models_v2.py b/neutron/plugins/metaplugin/meta_models_v2.py
deleted file mode 100644 (file)
index 70d546e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2012, Nachi Ueno, NTT MCL, Inc.
-# 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 Column, String
-
-from neutron.db import models_v2
-
-
-class NetworkFlavor(models_v2.model_base.BASEV2):
-    """Represents a binding of network_id to flavor."""
-    flavor = Column(String(255))
-    network_id = sa.Column(sa.String(36), sa.ForeignKey('networks.id',
-                                                        ondelete="CASCADE"),
-                           primary_key=True)
-
-    def __repr__(self):
-        return "<NetworkFlavor(%s,%s)>" % (self.flavor, self.network_id)
-
-
-class RouterFlavor(models_v2.model_base.BASEV2):
-    """Represents a binding of router_id to flavor."""
-    flavor = Column(String(255))
-    router_id = sa.Column(sa.String(36), sa.ForeignKey('routers.id',
-                                                       ondelete="CASCADE"),
-                          primary_key=True)
-
-    def __repr__(self):
-        return "<RouterFlavor(%s,%s)>" % (self.flavor, self.router_id)
diff --git a/neutron/plugins/metaplugin/meta_neutron_plugin.py b/neutron/plugins/metaplugin/meta_neutron_plugin.py
deleted file mode 100644 (file)
index 9ded159..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2012, Nachi Ueno, NTT MCL, Inc.
-# 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 metaplugin.plugin import meta_neutron_plugin
-
-
-MetaPluginV2 = meta_neutron_plugin.MetaPluginV2
index 74f96f6f1f4192db30690f48911dbc1449f48ac4..0c1fe4597c43fff9b5c5755e8dc4bd78a0acd0c0 100644 (file)
@@ -18,10 +18,10 @@ alternative L3 solutions. Additional service plugins can also be used
 with the ML2 core plugin.
 
 Drivers within ML2 implement separately extensible sets of network
-types and of mechanisms for accessing networks of those types. Unlike
-with the metaplugin, multiple mechanisms can be used simultaneously to
-access different ports of the same virtual network. Mechanisms can
-utilize L2 agents via RPC and/or interact with external devices or
+types and of mechanisms for accessing networks of those
+types. Multiple mechanisms can be used simultaneously to access
+different ports of the same virtual network. Mechanisms can utilize L2
+agents via RPC and/or interact with external devices or
 controllers. By utilizing the multiprovidernet extension, virtual
 networks can be composed of multiple segments of the same or different
 types. Type and mechanism drivers are loaded as python entrypoints
index 7feb9981b7bea8a3e5a4a4bf5e8ce1256ecf9bd8..a46354a1a5c3ce935b37b41e24043ec35f4189cb 100644 (file)
@@ -22,7 +22,6 @@ from neutron.agent.linux import interface
 from neutron.agent.linux import ip_lib
 from neutron.agent.linux import utils
 from neutron.common import constants
-from neutron.extensions import flavor
 from neutron.tests import base
 
 
@@ -504,73 +503,6 @@ class TestBridgeInterfaceDriver(TestBase):
                                       mock.call().link.delete()])
 
 
-class TestMetaInterfaceDriver(TestBase):
-    def setUp(self):
-        super(TestMetaInterfaceDriver, self).setUp()
-        config.register_interface_driver_opts_helper(self.conf)
-        self.client_cls_p = mock.patch('neutronclient.v2_0.client.Client')
-        client_cls = self.client_cls_p.start()
-        self.client_inst = mock.Mock()
-        client_cls.return_value = self.client_inst
-
-        fake_network = {'network': {flavor.FLAVOR_NETWORK: 'fake1'}}
-        fake_port = {'ports':
-                     [{'mac_address':
-                      'aa:bb:cc:dd:ee:ffa', 'network_id': 'test'}]}
-
-        self.client_inst.list_ports.return_value = fake_port
-        self.client_inst.show_network.return_value = fake_network
-
-        self.conf.set_override('auth_url', 'http://localhost:35357/v2.0')
-        self.conf.set_override('auth_region', 'RegionOne')
-        self.conf.set_override('admin_user', 'neutron')
-        self.conf.set_override('admin_password', 'password')
-        self.conf.set_override('admin_tenant_name', 'service')
-        self.conf.set_override(
-            'meta_flavor_driver_mappings',
-            'fake1:neutron.agent.linux.interface.OVSInterfaceDriver,'
-            'fake2:neutron.agent.linux.interface.BridgeInterfaceDriver')
-        self.conf.set_override('endpoint_type', 'internalURL')
-
-    def test_get_driver_by_network_id(self):
-        meta_interface = interface.MetaInterfaceDriver(self.conf)
-        driver = meta_interface._get_driver_by_network_id('test')
-        self.assertIsInstance(driver, interface.OVSInterfaceDriver)
-
-    def test_set_device_plugin_tag(self):
-        meta_interface = interface.MetaInterfaceDriver(self.conf)
-        driver = meta_interface._get_driver_by_network_id('test')
-        meta_interface._set_device_plugin_tag(driver,
-                                              'tap0',
-                                              namespace=None)
-        expected = [mock.call('tap0', namespace=None),
-                    mock.call().link.set_alias('fake1')]
-        self.ip_dev.assert_has_calls(expected)
-        namespace = '01234567-1234-1234-99'
-        meta_interface._set_device_plugin_tag(driver,
-                                              'tap1',
-                                              namespace=namespace)
-        expected = [mock.call('tap1', namespace='01234567-1234-1234-99'),
-                    mock.call().link.set_alias('fake1')]
-        self.ip_dev.assert_has_calls(expected)
-
-    def test_get_device_plugin_tag(self):
-        meta_interface = interface.MetaInterfaceDriver(self.conf)
-        self.ip_dev().link.alias = 'fake1'
-        plugin_tag0 = meta_interface._get_device_plugin_tag('tap0',
-                                                            namespace=None)
-        expected = [mock.call('tap0', namespace=None)]
-        self.ip_dev.assert_has_calls(expected)
-        self.assertEqual('fake1', plugin_tag0)
-        namespace = '01234567-1234-1234-99'
-        expected = [mock.call('tap1', namespace='01234567-1234-1234-99')]
-        plugin_tag1 = meta_interface._get_device_plugin_tag(
-            'tap1',
-            namespace=namespace)
-        self.ip_dev.assert_has_calls(expected)
-        self.assertEqual('fake1', plugin_tag1)
-
-
 class TestIVSInterfaceDriver(TestBase):
 
     def setUp(self):
index e3f0f05bb9e1adf47fcd3afae4c6215fc475084a..fdee757f909b6d69c1342551c029e3bd25fdbd42 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -58,7 +58,6 @@ data_files =
         etc/neutron/plugins/cisco/cisco_vpn_agent.ini
     etc/neutron/plugins/embrane = etc/neutron/plugins/embrane/heleos_conf.ini
     etc/neutron/plugins/ibm = etc/neutron/plugins/ibm/sdnve_neutron_plugin.ini
-    etc/neutron/plugins/metaplugin = etc/neutron/plugins/metaplugin/metaplugin.ini
     etc/neutron/plugins/midonet = etc/neutron/plugins/midonet/midonet.ini
     etc/neutron/plugins/ml2 =
         etc/neutron/plugins/bigswitch/restproxy.ini
@@ -124,7 +123,6 @@ neutron.core_plugins =
     ml2 = neutron.plugins.ml2.plugin:Ml2Plugin
     nec = neutron.plugins.nec.nec_plugin:NECPluginV2
     nuage = neutron.plugins.nuage.plugin:NuagePlugin
-    metaplugin = neutron.plugins.metaplugin.meta_neutron_plugin:MetaPluginV2
     oneconvergence = neutron.plugins.oneconvergence.plugin:OneConvergencePluginV2
     plumgrid = neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin:NeutronPluginPLUMgridV2
     vmware = neutron.plugins.vmware.plugin:NsxMhPlugin