Add new classes ovs_driver and sriov_driver

Those classes handles ML2 plugin's configuration related to the
OVS and SR-IOV mechanism drivers.
Previously there was neutron::plugins::ml2::mech_driver function which
was used by neutron::plugins::ml2 class but it isn't used at all
currently and probably it will need to be deprecated and removed in
follow up patch(es).

Change-Id: I2a321fb780e789b7556d557e2170a3267049c432
This commit is contained in:
Slawek Kaplonski 2020-10-07 14:41:40 +00:00 committed by Takashi Kajinami
parent 59d60747b1
commit 0b8a90ec5c
5 changed files with 138 additions and 0 deletions

View File

@ -0,0 +1,31 @@
# 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.
#
# neutron::plugins::ml2::ovs_driver
#
# === Parameters:
#
# [*vnic_type_blacklist*]
# (optional) list of VNIC types for which support in Neutron is
# administratively prohibited by the OVS mechanism driver
# Defaults to []
#
class neutron::plugins::ml2::ovs_driver (
$vnic_type_blacklist = [],
){
if !empty($vnic_type_blacklist) {
neutron_plugin_ml2 {
'ovs_driver/vnic_type_blacklist': value => join(any2array($vnic_type_blacklist), ',');
}
}
}

View File

@ -0,0 +1,31 @@
# 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.
#
# neutron::plugins::ml2::ovs_driver
#
# === Parameters:
#
# [*vnic_type_blacklist*]
# (optional) list of VNIC types for which support in Neutron is
# administratively prohibited by the OVS mechanism driver
# Defaults to []
#
class neutron::plugins::ml2::sriov_driver (
$vnic_type_blacklist= [],
){
if !empty($vnic_type_blacklist) {
neutron_plugin_ml2 {
'sriov_driver/vnic_type_blacklist': value => join(any2array($vnic_type_blacklist), ',');
}
}
}

View File

@ -0,0 +1,8 @@
---
features:
- |
The following two new classes have been added, to set up parameters in
ovs_driver and sriov_driver section.
- ``neutron::plugins::ml2::ovs_driver``
- ``neutron::plugins::ml2::sriov_driver``

View File

@ -0,0 +1,34 @@
# 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.
#
# Unit tests for neutron::plugins::ml2::ovs_driver class
required 'spec_helper'
describe 'neutron::plugins::ml2::ovs_driver' do
let :default_params do
{
:vnic_type_blacklist => []
}
end
context 'when vnic_type_blacklist is not empty list' do
before :each do
params.merge!(:vnic_type_blacklist => ['direct'])
end
it 'should configure direct in vnic_type_blacklist' do
shoud contain_neutron_plugin_ml2('ovs_driver/vnic_type_blacklist').with_value("direct")
end
end
end

View File

@ -0,0 +1,34 @@
# 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.
#
# Unit tests for neutron::plugins::ml2::sriov_driver class
required 'spec_helper'
describe 'neutron::plugins::ml2::sriov_driver' do
let :default_params do
{
:vnic_type_blacklist => []
}
end
context 'when vnic_type_blacklist is not empty list' do
before :each do
params.merge!(:vnic_type_blacklist => ['direct'])
end
it 'should configure direct in vnic_type_blacklist' do
shoud contain_neutron_plugin_ml2('sriov_driver/vnic_type_blacklist').with_value("direct")
end
end
end