From aa7a642f5d0b507bbe64975b32ae0004ccc1b504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Gaidamour?= <jeremie.gaidamour@inria.fr> Date: Tue, 19 Apr 2016 19:16:41 +0200 Subject: [PATCH] [dev] bind.rb: renamed some variables, simplifying stuffs for code readability --- dev/puppet/bind.rb | 41 ++++++++++++++++------------------- dev/puppet/templates/bind.erb | 20 +++++++++-------- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/dev/puppet/bind.rb b/dev/puppet/bind.rb index 613298c7542..69056bdba01 100644 --- a/dev/puppet/bind.rb +++ b/dev/puppet/bind.rb @@ -2,24 +2,19 @@ require 'pp' require 'erb' -require 'fileutils' +require 'pathname' require '../lib/input_loader' -global_hash = load_yaml_file_hierarchy("../input/grid5000/") +refapi = load_yaml_file_hierarchy("../input/grid5000/") +$output_dir = ENV['puppet_repo'] || 'output' def write_bind_file(data) - erb = ERB.new(File.read("templates/bind.erb")) - filename = data.fetch("site_uid") + ".db" - output_file = "output/puppet-repo/modules/bindg5k/files/zones/" + data.fetch("site_uid") + "/" + filename + output = ERB.new(File.read("templates/bind.erb")).result(binding) - # Create directory hierarchy - dirname = File.dirname(output_file) - FileUtils.mkdir_p(dirname) unless File.directory?(dirname) + output_file = Pathname("#{$output_dir}/modules/bindg5k/files/zones/#{data.fetch('site_uid')}/#{data.fetch('site_uid')}.db") + output_file.dirname.mkpath() - # Apply ERB template and save - File.open(output_file, "w+") { |f| - f.write(erb.result(binding)) - } + File.write(output_file, output) end # Loop over Grid'5000 sites @@ -30,26 +25,29 @@ end # "ib0"=>[{"start"=>1, "end"=>25, "ip"=>"172.18.98", "shift"=>0}], # "bmc"=>[{"start"=>1, "end"=>25, "ip"=>"172.17.98", "shift"=>0}]}} -global_hash["sites"].each { |site_uid, site_hash| +refapi["sites"].each { |site_uid, site| entries = {} - site_hash.fetch("clusters").sort.each { |cluster_uid, cluster_hash| + site.fetch("clusters").sort.each { |cluster_uid, cluster| + next if site_uid != 'nancy' - cluster_hash.fetch('nodes').each_sort_by_node_uid { |node_uid, node_hash| + cluster.fetch('nodes').each_sort_by_node_uid { |node_uid, node| network_adapters = {} - node_hash.fetch('network_adapters').each { |net_uid, net_hash| + + node.fetch('network_adapters').each { |net_uid, net_hash| network_adapters[net_uid] = {"ip"=>net_hash["ip"], "mounted"=>net_hash["mounted"]} } - node_hash.fetch('kavlan').each { |net_uid, ip| + + node.fetch('kavlan').each { |net_uid, ip| network_adapters[net_uid] = {"ip"=>ip, "mounted"=>nil} - } if node_hash['kavlan'] + } if node['kavlan'] network_adapters.each { |net_uid, net_hash| - entries[cluster_uid] = {} unless entries[cluster_uid] - entries[cluster_uid][net_uid] = [] unless entries[cluster_uid][net_uid] + entries[cluster_uid] ||= {} + entries[cluster_uid][net_uid] ||= [] last_entry = entries[cluster_uid][net_uid].last next unless net_hash["ip"] @@ -81,6 +79,5 @@ global_hash["sites"].each { |site_uid, site_hash| "site_uid" => site_uid, "entries" => entries, }) - - + } diff --git a/dev/puppet/templates/bind.erb b/dev/puppet/templates/bind.erb index fd210b3ff91..ef5068034cf 100644 --- a/dev/puppet/templates/bind.erb +++ b/dev/puppet/templates/bind.erb @@ -4,16 +4,18 @@ # <% data.fetch('entries').each { |cluster_uid, data| %> ; Cluster <%= cluster_uid %> -<% data.each { |net_uid, entries| %> -<% entries.each { |entry| %> - <% if entry["start"] == entry["end"] %> -<%= cluster_uid %>-<%= entry["start"] %>-<%= net_uid %> IN A <%= entry["ip"] %>.<%= entry["start"]+entry["shift"] %> - <% else %> - <% if entry["mounted"] %> -$GENERATE <%= entry["start"] %>-<%= entry["end"] %> <%= cluster_uid %>-$ IN A <%= entry["ip"] %>.$<%= '{+' + entry["shift"].to_s + '}' if entry["shift"] > 0 %> -$GENERATE <%= entry["start"] %>-<%= entry["end"] %> <%= cluster_uid %>-$-<%= net_uid %> IN CNAME <%= cluster_uid %>-$<%= '{+' + entry["shift"].to_s + '}' if entry["shift"] > 0 %> +<% data.each { |net_uid, entries| + entries.each { |entry| + if entry["start"] == entry["end"] %> +<%= "#{cluster_uid}-#{entry['start']}-#{net_uid} IN A #{entry['ip']}.#{entry['start']+entry['shift']}" %> + <% else + shift = (entry["shift"] > 0 ? '{+' + entry["shift"].to_s + '}' : '') + + if false # entry["mounted"] +%> +<%= "$GENERATE #{entry["start"]}-#{entry["end"]} #{cluster_uid}-$ IN A #{entry["ip"]}.$#{shift}" %> <% else %> -$GENERATE <%= entry["start"] %>-<%= entry["end"] %> <%= cluster_uid %>-$-<%= net_uid %> IN A <%= entry["ip"] %>.$<%= '{+' + entry["shift"].to_s + '}' if entry["shift"] > 0 %> +<%= "$GENERATE #{entry["start"]}-#{entry["end"]} #{cluster_uid}-$-#{net_uid} IN A #{entry["ip"]}.$#{shift}" %> <% end %> <% end %> <% } %> -- GitLab