
The current ML2 plugin supports only extensions defined in the plugin and it does not support any extensions in the mechanism drivers. The changes in this commit allows mechanism drivers to define new extensions. Change-Id: I28da19fabf6de2e9f0d687f875aaaa24c8bbc4f0 Implements: blueprint extensions-in-ml2
70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
# 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 as attr
|
|
|
|
|
|
EXTENDED_ATTRIBUTES_2_0 = {
|
|
'networks': {
|
|
'network_extension': {'allow_post': True,
|
|
'allow_put': True,
|
|
'default': attr.ATTR_NOT_SPECIFIED,
|
|
'is_visible': True,
|
|
'enforce_policy': True},
|
|
},
|
|
'subnets': {
|
|
'subnet_extension': {'allow_post': True,
|
|
'allow_put': True,
|
|
'default': attr.ATTR_NOT_SPECIFIED,
|
|
'is_visible': True,
|
|
'enforce_policy': True},
|
|
},
|
|
'ports': {
|
|
'port_extension': {'allow_post': True,
|
|
'allow_put': True,
|
|
'default': attr.ATTR_NOT_SPECIFIED,
|
|
'is_visible': True,
|
|
'enforce_policy': True},
|
|
},
|
|
}
|
|
|
|
|
|
class Test_extension(extensions.ExtensionDescriptor):
|
|
|
|
@classmethod
|
|
def get_name(cls):
|
|
return "ML2 test extension"
|
|
|
|
@classmethod
|
|
def get_alias(cls):
|
|
return "test_extension"
|
|
|
|
@classmethod
|
|
def get_description(cls):
|
|
return _("Adds test attributes to core resources.")
|
|
|
|
@classmethod
|
|
def get_namespace(cls):
|
|
return ("http://docs.openstack.org/ext/neutron/ml2/test/"
|
|
"test_extension/api/v1.0")
|
|
|
|
@classmethod
|
|
def get_updated(cls):
|
|
return "2014-07-16T10:00:00-00:00"
|
|
|
|
def get_extended_resources(self, version):
|
|
if version == "2.0":
|
|
return EXTENDED_ATTRIBUTES_2_0
|
|
else:
|
|
return {}
|