Merge "Do not create duplicate dnsmasq_dhcp_ranges"

This commit is contained in:
Jenkins 2015-12-15 22:42:58 +00:00 committed by Gerrit Code Review
commit d966a5b65d
3 changed files with 24 additions and 0 deletions

View File

@ -10,11 +10,14 @@ Creates nailgun::dnsmasq::dhcp_range puppet resources from list of admin network
unless admin_nets.is_a?(Array) and admin_nets[0].is_a?(Hash)
raise(Puppet::ParseError, 'Should pass list of hashes as a parameter')
end
created = []
admin_nets.each do |net|
net['ip_ranges'].each do |ip_range|
netmask = IPAddr.new('255.255.255.255').mask(net['cidr'].split('/')[1]).to_s
print_range = ip_range.join('_')
resource_name = sprintf("range_%08x", Zlib::crc32("#{print_range}_#{net['cidr']}").to_i)
# Don't try to create duplicate resources
next if created.include?(resource_name)
range_comment = "# Environment: #{net['cluster_name']}\n# Nodegroup: #{net['node_group_name']}\n# IP range: #{ip_range}"
dhcp_range_resource = {
resource_name => {
@ -27,6 +30,7 @@ Creates nailgun::dnsmasq::dhcp_range puppet resources from list of admin network
}
debug("Trying to create nailgun::dnsmasq::dhcp_range resource #{dhcp_range_resource}")
function_create_resources(['nailgun::dnsmasq::dhcp_range', dhcp_range_resource])
created << resource_name
end
end
end

View File

@ -15,7 +15,17 @@ node 'default' {
"cluster_id"=>2,
"cidr"=>"10.144.0.0/24",
"gateway"=>"10.144.0.5",
"ip_ranges"=>[["10.144.0.10", "10.144.0.254"]]},
# Network id=3 has parameters shared with network id=2
{"id"=>3,
"node_group_name"=>"default3",
"node_group_id"=>23,
"cluster_name"=>"default3",
"cluster_id"=>3,
"cidr"=>"10.144.0.0/24",
"gateway"=>"10.144.0.5",
"ip_ranges"=>[["10.144.0.10", "10.144.0.254"]]}]
$admin_network = {"interface"=>"eth0",
"ipaddress"=>"10.145.0.2",
"netmask"=>"255.255.255.0",

View File

@ -19,6 +19,15 @@ describe 'default' do
"cluster_id"=>2,
"cidr"=>"10.144.0.0/24",
"gateway"=>"10.144.0.5",
"ip_ranges"=>[["10.144.0.10", "10.144.0.254"]]},
# Network with parameters shared with id=2
{"id"=>3,
"node_group_name"=>"default3",
"node_group_id"=>23,
"cluster_name"=>"default3",
"cluster_id"=>3,
"cidr"=>"10.144.0.0/24",
"gateway"=>"10.144.0.5",
"ip_ranges"=>[["10.144.0.10", "10.144.0.254"]]}
]
admin_network = {"interface"=>"eth0",
@ -30,6 +39,7 @@ describe 'default' do
"dhcp_pool_end"=>"10.145.0.254",
"mac"=>"64:42:d3:10:64:68",
"dhcp_gateway"=>"10.145.0.1"}
admin_nets.each do |net|
net['ip_ranges'].each do |ip_range|
netmask = IPAddr.new('255.255.255.255').mask(net['cidr'].split('/')[1]).to_s