Add ironic::drivers::interfaces class
This patch adds a new class ironic::drivers::interfaces that will configure interfaces on ironic conductor side. This patch allows to configure enabled_network_interfaces field. Depends-On: I67495196c3334f51ed034f4ca6e32a3e01a58f15 Change-Id: I8ea64b23eb476cedf47527e1659174d51905eb23 Related-Bug: #1526403
This commit is contained in:
parent
a5df3074b3
commit
d991f285e8
38
manifests/drivers/interfaces.pp
Normal file
38
manifests/drivers/interfaces.pp
Normal file
@ -0,0 +1,38 @@
|
||||
# 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.
|
||||
|
||||
# Configure the interfaces in Ironic
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*enabled_network_interfaces*]
|
||||
# (optional) Specify the list of network drivers to load during
|
||||
# service initialization.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
|
||||
class ironic::drivers::interfaces (
|
||||
$enabled_network_interfaces = $::os_service_default,
|
||||
) {
|
||||
|
||||
if !is_service_default($enabled_network_interfaces) and !empty($enabled_network_interfaces){
|
||||
validate_array($enabled_network_interfaces)
|
||||
$enabled_network_interfaces_real = join($enabled_network_interfaces, ',')
|
||||
} else {
|
||||
$enabled_network_interfaces_real = $::os_service_default
|
||||
}
|
||||
|
||||
ironic_config {
|
||||
'DEFAULT/enabled_network_interfaces': value => $enabled_network_interfaces_real;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
---
|
||||
features:
|
||||
- added class for network interfaces management
|
50
spec/classes/ironic_drivers_interfaces_spec.rb
Normal file
50
spec/classes/ironic_drivers_interfaces_spec.rb
Normal file
@ -0,0 +1,50 @@
|
||||
# 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 ironic::drivers::interfaces class
|
||||
#
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'ironic::drivers::interfaces' do
|
||||
|
||||
shared_examples_for 'ironic deploy interfaces' do
|
||||
|
||||
context 'with default parameters' do
|
||||
it { is_expected.to contain_ironic_config('DEFAULT/enabled_network_interfaces').with_value('<SERVICE DEFAULT>') }
|
||||
end
|
||||
|
||||
context 'when overriding parameters' do
|
||||
let :params do
|
||||
{ :enabled_network_interfaces => ['flat','neutron'] }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_ironic_config('DEFAULT/enabled_network_interfaces').with_value('flat,neutron') }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
:supported_os => OSDefaults.get_supported_os
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge(OSDefaults.get_facts({
|
||||
:processorcount => 8,
|
||||
:concat_basedir => '/var/lib/puppet/concat'
|
||||
}))
|
||||
end
|
||||
it_configures 'ironic deploy interfaces'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user