]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
NSX plugin: Moving away plugin extensions
authorRoey Chen <roeyc@vmware.com>
Sun, 16 Aug 2015 13:29:26 +0000 (06:29 -0700)
committerRoey Chen <roeyc@vmware.com>
Sun, 16 Aug 2015 14:45:44 +0000 (07:45 -0700)
As part of plugin decomposition, this patch moves vmware-nsx extensions
out of the neutron repository.

Change-Id: Iff4c4781dd96b10733a98f176cf2f0f4d25cb34f
Related-Blueprint: core-vendor-decomposition
Partial-bug: #1483453

neutron/plugins/vmware/__init__.py
neutron/plugins/vmware/extensions/__init__.py [deleted file]
neutron/plugins/vmware/extensions/advancedserviceproviders.py [deleted file]
neutron/plugins/vmware/extensions/lsn.py [deleted file]
neutron/plugins/vmware/extensions/maclearning.py [deleted file]
neutron/plugins/vmware/extensions/networkgw.py [deleted file]
neutron/plugins/vmware/extensions/nvp_qos.py [deleted file]
neutron/plugins/vmware/extensions/qos.py [deleted file]
neutron/plugins/vmware/extensions/routertype.py [deleted file]
neutron/plugins/vmware/extensions/vnicindex.py [deleted file]

index a62818888413311f62728591672524202ca315b5..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,3 +0,0 @@
-import os
-
-NSX_EXT_PATH = os.path.join(os.path.dirname(__file__), 'extensions')
diff --git a/neutron/plugins/vmware/extensions/__init__.py b/neutron/plugins/vmware/extensions/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/neutron/plugins/vmware/extensions/advancedserviceproviders.py b/neutron/plugins/vmware/extensions/advancedserviceproviders.py
deleted file mode 100644 (file)
index f82fc3a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 2015 VMware, 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 neutron.api import extensions
-
-# Attribute Map
-ADV_SERVICE_PROVIDERS = 'advanced_service_providers'
-
-
-EXTENDED_ATTRIBUTES_2_0 = {
-    'subnets': {
-        ADV_SERVICE_PROVIDERS:
-        {'allow_post': False,
-         'allow_put': False,
-         'is_visible': True,
-         'default': None}}}
-
-
-class Advancedserviceproviders(extensions.ExtensionDescriptor):
-    @classmethod
-    def get_name(cls):
-        return "Advanced Service Providers"
-
-    @classmethod
-    def get_alias(cls):
-        return "advanced-service-providers"
-
-    @classmethod
-    def get_description(cls):
-        return "Id of the advanced service providers attached to the subnet"
-
-    @classmethod
-    def get_updated(cls):
-        return "2014-12-11T12:00:00-00:00"
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return EXTENDED_ATTRIBUTES_2_0
-        else:
-            return {}
diff --git a/neutron/plugins/vmware/extensions/lsn.py b/neutron/plugins/vmware/extensions/lsn.py
deleted file mode 100644 (file)
index 28ea8a0..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 2014 VMware, 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 neutron.api import extensions
-from neutron.api.v2 import base
-from neutron import manager
-
-
-EXT_ALIAS = 'lsn'
-COLLECTION_NAME = "%ss" % EXT_ALIAS
-
-RESOURCE_ATTRIBUTE_MAP = {
-    COLLECTION_NAME: {
-        'network': {'allow_post': True, 'allow_put': False,
-                    'validate': {'type:string': None},
-                    'is_visible': True},
-        'report': {'allow_post': False, 'allow_put': False,
-                   'is_visible': True},
-        'tenant_id': {'allow_post': True, 'allow_put': False,
-                      'required_by_policy': True,
-                      'validate': {'type:string': None}, 'is_visible': True},
-    },
-}
-
-
-class Lsn(extensions.ExtensionDescriptor):
-    """Enable LSN configuration for Neutron NSX networks."""
-
-    @classmethod
-    def get_name(cls):
-        return "Logical Service Node configuration"
-
-    @classmethod
-    def get_alias(cls):
-        return EXT_ALIAS
-
-    @classmethod
-    def get_description(cls):
-        return "Enables configuration of NSX Logical Services Node."
-
-    @classmethod
-    def get_updated(cls):
-        return "2013-10-05T10:00:00-00:00"
-
-    @classmethod
-    def get_resources(cls):
-        """Returns Ext Resources."""
-        exts = []
-        plugin = manager.NeutronManager.get_plugin()
-        resource_name = EXT_ALIAS
-        collection_name = resource_name.replace('_', '-') + "s"
-        params = RESOURCE_ATTRIBUTE_MAP.get(COLLECTION_NAME, dict())
-        controller = base.create_resource(collection_name,
-                                          resource_name,
-                                          plugin, params, allow_bulk=False)
-        ex = extensions.ResourceExtension(collection_name, controller)
-        exts.append(ex)
-        return exts
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return RESOURCE_ATTRIBUTE_MAP
-        else:
-            return {}
diff --git a/neutron/plugins/vmware/extensions/maclearning.py b/neutron/plugins/vmware/extensions/maclearning.py
deleted file mode 100644 (file)
index c73618a..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2013 VMware, 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 neutron.api import extensions
-from neutron.api.v2 import attributes
-
-
-MAC_LEARNING = 'mac_learning_enabled'
-EXTENDED_ATTRIBUTES_2_0 = {
-    'ports': {
-        MAC_LEARNING: {'allow_post': True, 'allow_put': True,
-                       'convert_to': attributes.convert_to_boolean,
-                       'default': attributes.ATTR_NOT_SPECIFIED,
-                       'is_visible': True},
-    }
-}
-
-
-class Maclearning(extensions.ExtensionDescriptor):
-    """Extension class supporting port mac learning."""
-
-    @classmethod
-    def get_name(cls):
-        return "MAC Learning"
-
-    @classmethod
-    def get_alias(cls):
-        return "mac-learning"
-
-    @classmethod
-    def get_description(cls):
-        return "Provides MAC learning capabilities."
-
-    @classmethod
-    def get_updated(cls):
-        return "2013-05-1T10:00:00-00:00"
-
-    @classmethod
-    def get_resources(cls):
-        """Returns Ext Resources."""
-        return []
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return EXTENDED_ATTRIBUTES_2_0
-        else:
-            return {}
diff --git a/neutron/plugins/vmware/extensions/networkgw.py b/neutron/plugins/vmware/extensions/networkgw.py
deleted file mode 100644 (file)
index aac0703..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-# Copyright 2013 VMware.  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 abc
-
-from oslo_config import cfg
-
-from neutron.api import extensions
-from neutron.api.v2 import attributes
-from neutron.api.v2 import resource_helper
-
-GATEWAY_RESOURCE_NAME = "network_gateway"
-DEVICE_RESOURCE_NAME = "gateway_device"
-# Use dash for alias and collection name
-EXT_ALIAS = GATEWAY_RESOURCE_NAME.replace('_', '-')
-NETWORK_GATEWAYS = "%ss" % EXT_ALIAS
-GATEWAY_DEVICES = "%ss" % DEVICE_RESOURCE_NAME.replace('_', '-')
-DEVICE_ID_ATTR = 'id'
-IFACE_NAME_ATTR = 'interface_name'
-
-
-# TODO(salv-orlando): This type definition is duplicated into
-# openstack/vmware-nsx. This temporary duplication should be removed once the
-# plugin decomposition is finished.
-# Allowed network types for the NSX Plugin
-class NetworkTypes(object):
-    """Allowed provider network types for the NSX Plugin."""
-    L3_EXT = 'l3_ext'
-    STT = 'stt'
-    GRE = 'gre'
-    FLAT = 'flat'
-    VLAN = 'vlan'
-    BRIDGE = 'bridge'
-
-# Attribute Map for Network Gateway Resource
-# TODO(salvatore-orlando): add admin state as other neutron resources
-RESOURCE_ATTRIBUTE_MAP = {
-    NETWORK_GATEWAYS: {
-        'id': {'allow_post': False, 'allow_put': False,
-               'is_visible': True},
-        'name': {'allow_post': True, 'allow_put': True,
-                 'validate': {'type:string': attributes.NAME_MAX_LEN},
-                 'is_visible': True, 'default': ''},
-        'default': {'allow_post': False, 'allow_put': False,
-                    'is_visible': True},
-        'devices': {'allow_post': True, 'allow_put': False,
-                    'validate': {'type:device_list': None},
-                    'is_visible': True},
-        'ports': {'allow_post': False, 'allow_put': False,
-                  'default': [],
-                  '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}
-    },
-    GATEWAY_DEVICES: {
-        'id': {'allow_post': False, 'allow_put': False,
-               'is_visible': True},
-        'name': {'allow_post': True, 'allow_put': True,
-                 'validate': {'type:string': attributes.NAME_MAX_LEN},
-                 'is_visible': True, 'default': ''},
-        'client_certificate': {'allow_post': True, 'allow_put': True,
-                               'validate': {'type:string': None},
-                               'is_visible': True},
-        'connector_type': {'allow_post': True, 'allow_put': True,
-                           'validate': {'type:connector_type': None},
-                           'is_visible': True},
-        'connector_ip': {'allow_post': True, 'allow_put': True,
-                         'validate': {'type:ip_address': None},
-                         '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},
-        'status': {'allow_post': False, 'allow_put': False,
-                   'is_visible': True},
-    }
-}
-
-
-def _validate_device_list(data, valid_values=None):
-    """Validate the list of service definitions."""
-    if not data:
-        # Devices must be provided
-        msg = _("Cannot create a gateway with an empty device list")
-        return msg
-    try:
-        for device in data:
-            key_specs = {DEVICE_ID_ATTR:
-                         {'type:regex': attributes.UUID_PATTERN,
-                          'required': True},
-                         IFACE_NAME_ATTR:
-                         {'type:string': None,
-                          'required': False}}
-            err_msg = attributes._validate_dict(
-                device, key_specs=key_specs)
-            if err_msg:
-                return err_msg
-            unexpected_keys = [key for key in device if key not in key_specs]
-            if unexpected_keys:
-                err_msg = (_("Unexpected keys found in device description:%s")
-                           % ",".join(unexpected_keys))
-                return err_msg
-    except TypeError:
-        return (_("%s: provided data are not iterable") %
-                _validate_device_list.__name__)
-
-
-def _validate_connector_type(data, valid_values=None):
-    if not data:
-        # A connector type is compulsory
-        msg = _("A connector type is required to create a gateway device")
-        return msg
-    connector_types = (valid_values if valid_values else
-                       [NetworkTypes.GRE,
-                        NetworkTypes.STT,
-                        NetworkTypes.BRIDGE,
-                        'ipsec%s' % NetworkTypes.GRE,
-                        'ipsec%s' % NetworkTypes.STT])
-    if data not in connector_types:
-        msg = _("Unknown connector type: %s") % data
-        return msg
-
-
-nw_gw_quota_opts = [
-    cfg.IntOpt('quota_network_gateway',
-               default=5,
-               help=_('Number of network gateways allowed per tenant, '
-                      '-1 for unlimited'))
-]
-
-cfg.CONF.register_opts(nw_gw_quota_opts, 'QUOTAS')
-
-attributes.validators['type:device_list'] = _validate_device_list
-attributes.validators['type:connector_type'] = _validate_connector_type
-
-
-class Networkgw(extensions.ExtensionDescriptor):
-    """API extension for Layer-2 Gateway support.
-
-    The Layer-2 gateway feature allows for connecting neutron networks
-    with external networks at the layer-2 level. No assumption is made on
-    the location of the external network, which might not even be directly
-    reachable from the hosts where the VMs are deployed.
-
-    This is achieved by instantiating 'network gateways', and then connecting
-    Neutron network to them.
-    """
-
-    @classmethod
-    def get_name(cls):
-        return "Network Gateway"
-
-    @classmethod
-    def get_alias(cls):
-        return EXT_ALIAS
-
-    @classmethod
-    def get_description(cls):
-        return "Connects Neutron networks with external networks at layer 2."
-
-    @classmethod
-    def get_updated(cls):
-        return "2014-01-01T00:00:00-00:00"
-
-    @classmethod
-    def get_resources(cls):
-        """Returns Ext Resources."""
-
-        member_actions = {
-            GATEWAY_RESOURCE_NAME.replace('_', '-'): {
-                'connect_network': 'PUT',
-                'disconnect_network': 'PUT'}}
-
-        plural_mappings = resource_helper.build_plural_mappings(
-            {}, RESOURCE_ATTRIBUTE_MAP)
-
-        return resource_helper.build_resource_info(plural_mappings,
-                                                   RESOURCE_ATTRIBUTE_MAP,
-                                                   None,
-                                                   action_map=member_actions,
-                                                   register_quota=True,
-                                                   translate_name=True)
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return RESOURCE_ATTRIBUTE_MAP
-        else:
-            return {}
-
-
-class NetworkGatewayPluginBase(object):
-
-    @abc.abstractmethod
-    def create_network_gateway(self, context, network_gateway):
-        pass
-
-    @abc.abstractmethod
-    def update_network_gateway(self, context, id, network_gateway):
-        pass
-
-    @abc.abstractmethod
-    def get_network_gateway(self, context, id, fields=None):
-        pass
-
-    @abc.abstractmethod
-    def delete_network_gateway(self, context, id):
-        pass
-
-    @abc.abstractmethod
-    def get_network_gateways(self, context, filters=None, fields=None,
-                             sorts=None, limit=None, marker=None,
-                             page_reverse=False):
-        pass
-
-    @abc.abstractmethod
-    def connect_network(self, context, network_gateway_id,
-                        network_mapping_info):
-        pass
-
-    @abc.abstractmethod
-    def disconnect_network(self, context, network_gateway_id,
-                           network_mapping_info):
-        pass
-
-    @abc.abstractmethod
-    def create_gateway_device(self, context, gateway_device):
-        pass
-
-    @abc.abstractmethod
-    def update_gateway_device(self, context, id, gateway_device):
-        pass
-
-    @abc.abstractmethod
-    def delete_gateway_device(self, context, id):
-        pass
-
-    @abc.abstractmethod
-    def get_gateway_device(self, context, id, fields=None):
-        pass
-
-    @abc.abstractmethod
-    def get_gateway_devices(self, context, filters=None, fields=None,
-                            sorts=None, limit=None, marker=None,
-                            page_reverse=False):
-        pass
diff --git a/neutron/plugins/vmware/extensions/nvp_qos.py b/neutron/plugins/vmware/extensions/nvp_qos.py
deleted file mode 100644 (file)
index 14d30ce..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2013 VMware, 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.
-#
-# TODO(arosen): This is deprecated in Juno, and
-# to be removed in Kxxxx.
-
-from neutron.plugins.vmware.extensions import qos
-
-
-class Nvp_qos(qos.Qos):
-    """(Deprecated) Port Queue extension."""
-
-    @classmethod
-    def get_name(cls):
-        return "nvp-qos"
-
-    @classmethod
-    def get_alias(cls):
-        return "nvp-qos"
-
-    @classmethod
-    def get_description(cls):
-        return "NVP QoS extension (deprecated)."
diff --git a/neutron/plugins/vmware/extensions/qos.py b/neutron/plugins/vmware/extensions/qos.py
deleted file mode 100644 (file)
index fe1ac6e..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-# Copyright 2013 VMware, 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 abc
-
-from neutron.api import extensions
-from neutron.api.v2 import attributes as attr
-from neutron.api.v2 import base
-from neutron.common import exceptions as nexception
-from neutron import manager
-
-
-# For policy.json/Auth
-qos_queue_create = "create_qos_queue"
-qos_queue_delete = "delete_qos_queue"
-qos_queue_get = "get_qos_queue"
-qos_queue_list = "get_qos_queues"
-
-
-class DefaultQueueCreateNotAdmin(nexception.InUse):
-    message = _("Need to be admin in order to create queue called default")
-
-
-class DefaultQueueAlreadyExists(nexception.InUse):
-    message = _("Default queue already exists.")
-
-
-class QueueInvalidDscp(nexception.InvalidInput):
-    message = _("Invalid value for dscp %(data)s must be integer value"
-                " between 0 and 63.")
-
-
-class QueueInvalidMarking(nexception.InvalidInput):
-    message = _("The qos marking cannot be set to 'trusted' "
-                "when the DSCP field is set")
-
-
-class QueueMinGreaterMax(nexception.InvalidInput):
-    message = _("Invalid bandwidth rate, min greater than max.")
-
-
-class QueueInvalidBandwidth(nexception.InvalidInput):
-    message = _("Invalid bandwidth rate, %(data)s must be a non negative"
-                " integer.")
-
-
-class QueueNotFound(nexception.NotFound):
-    message = _("Queue %(id)s does not exist")
-
-
-class QueueInUseByPort(nexception.InUse):
-    message = _("Unable to delete queue attached to port.")
-
-
-class QueuePortBindingNotFound(nexception.NotFound):
-    message = _("Port is not associated with lqueue")
-
-
-def convert_to_unsigned_int_or_none(val):
-    if val is None:
-        return
-    try:
-        val = int(val)
-        if val < 0:
-            raise ValueError()
-    except (ValueError, TypeError):
-        msg = _("'%s' must be a non negative integer.") % val
-        raise nexception.InvalidInput(error_message=msg)
-    return val
-
-
-def convert_to_unsigned_int_or_none_max_63(val):
-    val = convert_to_unsigned_int_or_none(val)
-    if val > 63:
-        raise QueueInvalidDscp(data=val)
-    return val
-
-# As per NSX API, if a queue is trusted, DSCP must be omitted; if a queue is
-# untrusted, DSCP must be specified. Whichever default values we choose for
-# the tuple (qos_marking, dscp), there will be at least one combination of a
-# request with conflicting values: for instance given the default values below,
-# requests with qos_marking = 'trusted' and the default dscp value will fail.
-# In order to avoid API users to explicitly specify a setting for clearing
-# the DSCP field when a trusted queue is created, the code serving this API
-# will adopt the following behaviour when qos_marking is set to 'trusted':
-# - if the DSCP attribute is set to the default value (0), silently drop
-#   its value
-# - if the DSCP attribute is set to anything than 0 (but still a valid DSCP
-#   value) return a 400 error as qos_marking and DSCP setting conflict.
-# TODO(salv-orlando): Evaluate whether it will be possible from a backward
-# compatibility perspective to change the default value for DSCP in order to
-# avoid this peculiar behaviour
-
-RESOURCE_ATTRIBUTE_MAP = {
-    'qos_queues': {
-        'id': {'allow_post': False, 'allow_put': False,
-               'is_visible': True},
-        'default': {'allow_post': True, 'allow_put': False,
-                    'convert_to': attr.convert_to_boolean,
-                    'is_visible': True, 'default': False},
-        'name': {'allow_post': True, 'allow_put': False,
-                 'validate': {'type:string': attr.NAME_MAX_LEN},
-                 'is_visible': True, 'default': ''},
-        'min': {'allow_post': True, 'allow_put': False,
-                'is_visible': True, 'default': '0',
-                'convert_to': convert_to_unsigned_int_or_none},
-        'max': {'allow_post': True, 'allow_put': False,
-                'is_visible': True, 'default': None,
-                'convert_to': convert_to_unsigned_int_or_none},
-        'qos_marking': {'allow_post': True, 'allow_put': False,
-                        'validate': {'type:values': ['untrusted', 'trusted']},
-                        'default': 'untrusted', 'is_visible': True},
-        'dscp': {'allow_post': True, 'allow_put': False,
-                 'is_visible': True, 'default': '0',
-                 'convert_to': convert_to_unsigned_int_or_none_max_63},
-        'tenant_id': {'allow_post': True, 'allow_put': False,
-                      'required_by_policy': True,
-                      'validate': {'type:string': attr.TENANT_ID_MAX_LEN},
-                      'is_visible': True},
-    },
-}
-
-
-QUEUE = 'queue_id'
-RXTX_FACTOR = 'rxtx_factor'
-EXTENDED_ATTRIBUTES_2_0 = {
-    'ports': {
-        RXTX_FACTOR: {'allow_post': True,
-                      # FIXME(arosen): the plugin currently does not
-                      # implement updating rxtx factor on port.
-                      'allow_put': True,
-                      'is_visible': False,
-                      'default': 1,
-                      'enforce_policy': True,
-                      'convert_to': attr.convert_to_positive_float_or_none},
-
-        QUEUE: {'allow_post': False,
-                'allow_put': False,
-                'is_visible': True,
-                'default': False,
-                'enforce_policy': True}},
-    'networks': {QUEUE: {'allow_post': True,
-                         'allow_put': True,
-                         'is_visible': True,
-                         'default': False,
-                         'enforce_policy': True}}
-
-}
-
-
-class Qos(extensions.ExtensionDescriptor):
-    """Port Queue extension."""
-
-    @classmethod
-    def get_name(cls):
-        return "QoS Queue"
-
-    @classmethod
-    def get_alias(cls):
-        return "qos-queue"
-
-    @classmethod
-    def get_description(cls):
-        return "NSX QoS extension."
-
-    @classmethod
-    def get_updated(cls):
-        return "2014-01-01T00:00:00-00:00"
-
-    @classmethod
-    def get_resources(cls):
-        """Returns Ext Resources."""
-        exts = []
-        plugin = manager.NeutronManager.get_plugin()
-        resource_name = 'qos_queue'
-        collection_name = resource_name.replace('_', '-') + "s"
-        params = RESOURCE_ATTRIBUTE_MAP.get(resource_name + "s", dict())
-        controller = base.create_resource(collection_name,
-                                          resource_name,
-                                          plugin, params, allow_bulk=False)
-
-        ex = extensions.ResourceExtension(collection_name,
-                                          controller)
-        exts.append(ex)
-
-        return exts
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return dict(EXTENDED_ATTRIBUTES_2_0.items() +
-                        RESOURCE_ATTRIBUTE_MAP.items())
-        else:
-            return {}
-
-
-class QueuePluginBase(object):
-    @abc.abstractmethod
-    def create_qos_queue(self, context, queue):
-        pass
-
-    @abc.abstractmethod
-    def delete_qos_queue(self, context, id):
-        pass
-
-    @abc.abstractmethod
-    def get_qos_queue(self, context, id, fields=None):
-        pass
-
-    @abc.abstractmethod
-    def get_qos_queues(self, context, filters=None, fields=None, sorts=None,
-                       limit=None, marker=None, page_reverse=False):
-        pass
diff --git a/neutron/plugins/vmware/extensions/routertype.py b/neutron/plugins/vmware/extensions/routertype.py
deleted file mode 100644 (file)
index f42c6b9..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2015 VMware, 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 neutron.api import extensions
-from neutron.api.v2 import attributes
-
-
-ROUTER_TYPE = 'router_type'
-EXTENDED_ATTRIBUTES_2_0 = {
-    'routers': {
-        ROUTER_TYPE: {'allow_post': True, 'allow_put': False,
-                      'validate': {'type:values': ['shared', 'exclusive']},
-                      'default': attributes.ATTR_NOT_SPECIFIED,
-                      'is_visible': True},
-    }
-}
-
-
-class Routertype(extensions.ExtensionDescriptor):
-    """Extension class supporting router type."""
-
-    @classmethod
-    def get_name(cls):
-        return "Router Type"
-
-    @classmethod
-    def get_alias(cls):
-        return "nsxv-router-type"
-
-    @classmethod
-    def get_description(cls):
-        return "Enables configuration of NSXv router type."
-
-    @classmethod
-    def get_updated(cls):
-        return "2015-1-12T10:00:00-00:00"
-
-    def get_required_extensions(self):
-        return ["router"]
-
-    @classmethod
-    def get_resources(cls):
-        """Returns Ext Resources."""
-        return []
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return EXTENDED_ATTRIBUTES_2_0
-        else:
-            return {}
diff --git a/neutron/plugins/vmware/extensions/vnicindex.py b/neutron/plugins/vmware/extensions/vnicindex.py
deleted file mode 100644 (file)
index 290f0a3..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2015 VMware, 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 neutron.api import extensions
-from neutron.api.v2 import attributes
-
-# Attribute Map
-VNIC_INDEX = 'vnic_index'
-
-
-EXTENDED_ATTRIBUTES_2_0 = {
-    'ports': {
-        VNIC_INDEX:
-        {'allow_post': True,
-         'allow_put': True,
-         'is_visible': True,
-         'default': None,
-         'convert_to': attributes.convert_to_int_if_not_none}}}
-
-
-class Vnicindex(extensions.ExtensionDescriptor):
-    @classmethod
-    def get_name(cls):
-        return "VNIC Index"
-
-    @classmethod
-    def get_alias(cls):
-        return "vnic-index"
-
-    @classmethod
-    def get_description(cls):
-        return ("Enable a port to be associated with a VNIC index")
-
-    @classmethod
-    def get_updated(cls):
-        return "2014-09-15T12:00:00-00:00"
-
-    def get_extended_resources(self, version):
-        if version == "2.0":
-            return EXTENDED_ATTRIBUTES_2_0
-        else:
-            return {}