Merge "Do not create duplicate dnsmasq_dhcp_ranges"
This commit is contained in:
commit
d966a5b65d
@ -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
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user