Use create_resources for the nova networking configuration

It appears that in some older versions of puppet, accessing a hash with an
unused key will cause beelzebub himself to come forth. By using create_resources
we avoid accessing the hash in puppet code and thus don't start summoning
demons.
This commit is contained in:
Branan Purvine-Riley 2012-06-18 14:14:38 -07:00
parent 78cc88ffe2
commit 2a5e84c807
1 changed files with 19 additions and 38 deletions

View File

@ -67,51 +67,32 @@ class nova::network(
case $network_manager {
'nova.network.manager.FlatDHCPManager': {
$flat_network_bridge = $config_overrides['flat_network_bridge']
$force_dhcp_release = $config_overrides['force_dhcp_release']
$flat_injected = $config_overrides['flat_injected']
$dhcpbridge = $config_overrides['dhcpbridge']
$dhcpbridge_flagfile = $config_overrides['dhcpbridge_flagfile']
class { 'nova::network::flatdhcp':
fixed_range => $fixed_range,
public_interface => $public_interface,
flat_interface => $private_interface,
flat_network_bridge => $flat_network_bridge,
force_dhcp_release => $force_dhcp_release,
flat_injected => $flat_injected,
dhcpbridge => $dhcpbridge,
dhcpbridge_flagfile => $dhcpbridge_flagfile,
# I am not proud of this
$parameters = { fixed_range => $fixed_range,
public_interface => $public_interface,
flat_interface => $private_interface
}
$resource_parameters = merge($config_overrides, $parameters)
$flatdhcp_resource = {'nova::network::flatdhcp' => $resource_parameters }
create_resources('class', $flatdhcp_resource)
}
'nova.network.manager.FlatManager': {
$flat_network_bridge = $config_overrides['flat_network_bridge']
class { 'nova::network::flat':
fixed_range => $fixed_range,
public_interface => $public_interface,
flat_interface => $private_interface,
flat_network_bridge => $flat_network_bridge,
$parameters = { fixed_range => $fixed_range,
public_interface => $public_interface,
flat_interface => $private_interface
}
$resource_parameters = merge($config_overrides, $parameters)
$flat_resource = {'nova::network::flat' => $resource_parameters }
create_resources('class', $flat_resource)
}
'nova.network.manager.VlanManager': {
$vlan_start = $config_overrides['vlan_start']
$force_dhcp_release = $config_overrides['force_dhcp_release']
$dhcpbridge = $config_overrides['dhcpbridge']
$dhcpbridge_flagfile = $config_overrides['dhcpbridge_flagfile']
class { 'nova::network::vlan':
fixed_range => $fixed_range,
public_interface => $public_interface,
vlan_interface => $private_interface,
vlan_start => $vlan_start,
force_dhcp_release => $force_dhcp_release,
dhcpbridge => $dhcpbridge,
dhcpbridge_flagfile => $dhcpbridge_flagfile,
$parameters = { fixed_range => $fixed_range,
public_interface => $public_interface,
vlan_interface => $private_interface
}
$resource_parameters = merge($config_overrides, $parameters)
$vlan_resource = { 'nova::network::vlan' => $resource_parameters }
create_resources('class', $vlan_resource)
}
default: {
fail("Unsupported network manager: ${nova::network_manager} The supported network managers are nova.network.manager.FlatManager, nova.network.FlatDHCPManager and nova.network.manager.VlanManager")