Files
puppet-neutron/manifests/agents/linuxbridge.pp
Gonéri Le Bouder 9bb97fd444 ensure linuxbridge dependency is installed on RHEL
Package['neutron-plugin-linuxbridge'] is defined in
plugins/linuxbridge.pp but is missing in agents/linuxbridge.pp.

If agents::linuxbridge is used directly, the package is not defined.
This changes fixes the situation on RHEL.

The problem has already been fixed for OVS in
changeset Iedf8a607915f65b7a8cf7af99749b9b65cba7bd9

Change-Id: Ic4e15825e4f2d1f2ce2c34d2fdb01c8f6b19d491
2014-02-07 09:54:08 +01:00

73 lines
2.5 KiB
Puppet

# == Class: neutron::agents::linuxbridge
#
# Setups linuxbridge neutron agent.
#
# === Parameters
#
# [*physical_interface_mappings*]
# (required) Comma-separated list of <physical_network>:<physical_interface>
# tuples mapping physical network names to agent's node-specific physical
# network interfaces.
#
# [*firewall_driver*]
# (optional) Firewall driver for realizing neutron security group function.
# Defaults to 'neutron.agent.linux.iptables_firewall.IptablesFirewallDriver'.
#
# [*package_ensure*]
# (optional) Ensure state for package. Defaults to 'present'.
#
# [*enable*]
# (optional) Enable state for service. Defaults to 'true'.
#
class neutron::agents::linuxbridge (
$physical_interface_mappings,
$firewall_driver = 'neutron.agent.linux.iptables_firewall.IptablesFirewallDriver',
$package_ensure = 'present',
$enable = true
) {
include neutron::params
Neutron_config<||> ~> Service['neutron-plugin-linuxbridge-service']
Neutron_plugin_linuxbridge<||> ~> Service<| title == 'neutron-plugin-linuxbridge-service' |>
if $::neutron::params::linuxbridge_agent_package {
Package['neutron'] -> Package['neutron-plugin-linuxbridge-agent']
Package['neutron-plugin-linuxbridge-agent'] -> Neutron_plugin_linuxbridge<||>
Package['neutron-plugin-linuxbridge-agent'] -> Service['neutron-plugin-linuxbridge-service']
package { 'neutron-plugin-linuxbridge-agent':
ensure => $package_ensure,
name => $::neutron::params::linuxbridge_agent_package,
}
} else {
# Some platforms (RedHat) do not provide a separate neutron plugin
# linuxbridge agent package. The configuration file for the linuxbridge
# agent is provided by the neutron linuxbridge plugin package.
Package['neutron-plugin-linuxbridge'] -> Neutron_plugin_linuxbridge<||>
if ! defined(Package['neutron-plugin-linuxbridge']) {
package { 'neutron-plugin-linuxbridge':
ensure => $package_ensure,
name => $::neutron::params::linuxbridge_server_package,
}
}
}
if $enable {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
neutron_plugin_linuxbridge {
'LINUX_BRIDGE/physical_interface_mappings': value => $physical_interface_mappings;
'SECURITYGROUP/firewall_driver': value => $firewall_driver;
}
service { 'neutron-plugin-linuxbridge-service':
ensure => $service_ensure,
name => $::neutron::params::linuxbridge_agent_service,
enable => $enable,
}
}