Add networking-baremetal ml2 plug-in

Change-Id: Iddbda9741456d66c664bebfb675cd453c6e66b65
This commit is contained in:
Harald Jensas 2018-01-22 10:21:49 +01:00
parent c030adb8c8
commit 6988025973
4 changed files with 128 additions and 31 deletions

View File

@ -41,42 +41,43 @@ class neutron::params {
$group = 'neutron'
if($::osfamily == 'Redhat') {
$nobody_user_group = 'nobody'
$package_name = 'openstack-neutron'
$server_package = false
$ml2_server_package = 'openstack-neutron-ml2'
$ovs_agent_package = false
$ovs_server_package = 'openstack-neutron-openvswitch'
$ovs_cleanup_service = 'neutron-ovs-cleanup'
$libnl_package = 'libnl'
$package_provider = 'rpm'
$linuxbridge_agent_package = false
$linuxbridge_server_package = 'openstack-neutron-linuxbridge'
$sriov_nic_agent_service = 'neutron-sriov-nic-agent'
$sriov_nic_agent_package = 'openstack-neutron-sriov-nic-agent'
$bigswitch_lldp_package = 'openstack-neutron-bigswitch-lldp'
$bigswitch_agent_package = 'openstack-neutron-bigswitch-agent'
$bigswitch_lldp_service = 'neutron-bsn-lldp'
$bigswitch_agent_service = 'neutron-bsn-agent'
$cisco_server_package = 'openstack-neutron-cisco'
$nvp_server_package = 'openstack-neutron-nicira'
$dhcp_agent_package = false
$lbaasv2_agent_package = 'openstack-neutron-lbaas'
$metering_agent_package = 'openstack-neutron-metering-agent'
$vpnaas_agent_package = 'openstack-neutron-vpnaas'
$l2gw_agent_package = 'openstack-neutron-l2gw-agent'
$l2gw_package = 'python2-networking-l2gw'
$ovn_metadata_agent_package = 'networking-ovn-metadata-agent'
$nobody_user_group = 'nobody'
$package_name = 'openstack-neutron'
$server_package = false
$ml2_server_package = 'openstack-neutron-ml2'
$ovs_agent_package = false
$ovs_server_package = 'openstack-neutron-openvswitch'
$ovs_cleanup_service = 'neutron-ovs-cleanup'
$libnl_package = 'libnl'
$package_provider = 'rpm'
$linuxbridge_agent_package = false
$linuxbridge_server_package = 'openstack-neutron-linuxbridge'
$sriov_nic_agent_service = 'neutron-sriov-nic-agent'
$sriov_nic_agent_package = 'openstack-neutron-sriov-nic-agent'
$bigswitch_lldp_package = 'openstack-neutron-bigswitch-lldp'
$bigswitch_agent_package = 'openstack-neutron-bigswitch-agent'
$bigswitch_lldp_service = 'neutron-bsn-lldp'
$bigswitch_agent_service = 'neutron-bsn-agent'
$cisco_server_package = 'openstack-neutron-cisco'
$nvp_server_package = 'openstack-neutron-nicira'
$dhcp_agent_package = false
$lbaasv2_agent_package = 'openstack-neutron-lbaas'
$metering_agent_package = 'openstack-neutron-metering-agent'
$vpnaas_agent_package = 'openstack-neutron-vpnaas'
$l2gw_agent_package = 'openstack-neutron-l2gw-agent'
$l2gw_package = 'python2-networking-l2gw'
$ovn_metadata_agent_package = 'networking-ovn-metadata-agent'
if $::operatingsystemrelease =~ /^7.*/ or $::operatingsystem == 'Fedora' {
$openswan_package = 'libreswan'
} else {
$openswan_package = 'openswan'
}
$libreswan_package = 'libreswan'
$l3_agent_package = false
$fwaas_package = 'openstack-neutron-fwaas'
$neutron_wsgi_script_path = '/var/www/cgi-bin/neutron'
$neutron_wsgi_script_source = '/usr/bin/neutron-api'
$libreswan_package = 'libreswan'
$l3_agent_package = false
$fwaas_package = 'openstack-neutron-fwaas'
$neutron_wsgi_script_path = '/var/www/cgi-bin/neutron'
$neutron_wsgi_script_source = '/usr/bin/neutron-api'
$networking_baremetal_package = 'python2-networking-baremetal'
} elsif($::osfamily == 'Debian') {
$nobody_user_group = 'nogroup'
$package_name = 'neutron-common'

View File

@ -0,0 +1,31 @@
# This class installs and configures the networking-baremetal Neutron plugin
#
# == Class: neutron::plugins::ml2::networking_baremetal
#
# === Parameters
#
# [*package_ensure*]
# (optional) The intended state of the python-networking-baremetal
# package, i.e. any of the possible values of the 'ensure'
# property for a package resource type.
# Defaults to 'present'
#
class neutron::plugins::ml2::networking_baremetal(
$package_ensure = 'present',
) {
include ::neutron::deps
include ::neutron::params
require ::neutron::plugins::ml2
if($::osfamily != 'RedHat') {
# Drivers are only packaged for RedHat at this time
fail("Unsupported osfamily ${::osfamily}")
} else {
package { 'python2-networking-baremetal':
ensure => $package_ensure,
name => $::neutron::params::networking_baremetal_package,
tag => ['openstack', 'neutron-package'],
}
}
}

View File

@ -0,0 +1,4 @@
---
features:
- Additional support for baremetal. Added support for installation of
networking-baremetal neutron ML2 mechanism driver.

View File

@ -0,0 +1,61 @@
require 'spec_helper'
describe 'neutron::plugins::ml2::networking_baremetal' do
let :default_params do
{ :package_ensure => 'present',
}
end
let :test_facts do
{ :operatingsystem => 'default',
:operatingsystemrelease => 'default'
}
end
let :params do
{}
end
shared_examples_for 'networking-baremetal ml2 plugin' do
let :p do
default_params.merge(params)
end
it { is_expected.to contain_class('neutron::params') }
it 'installs networking-baremetal python2-networking-baremetal package' do
is_expected.to contain_package('python2-networking-baremetal').with(
:name => platform_params[:networking_baremetal_package],
:ensure => p[:package_ensure],
:tag => ['openstack', 'neutron-package'],
)
is_expected.to contain_package('python2-networking-baremetal').that_requires('Anchor[neutron::install::begin]')
is_expected.to contain_package('python2-networking-baremetal').that_notifies('Anchor[neutron::install::end]')
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())
end
let (:platform_params) do
case facts[:osfamily]
when 'RedHat'
{ :networking_baremetal_package => 'python2-networking-baremetal'}
end
end
case facts[:osfamily]
when 'RedHat'
it_behaves_like 'networking-baremetal ml2 plugin'
when facts[:osfamily] != 'RedHat'
it 'fails with unsupported osfamily' do
is_expected.to raise_error(Puppet::Error, /Unsupported osfamily.*/)
end
end
end
end
end