diff --git a/lib/refrepo/gen/puppet/kavlang5k.rb b/lib/refrepo/gen/puppet/kavlang5k.rb index 675e64e62e201db3724c4e8305ee013b4aa8f2d1..a8950a82deaec7a0cad5c0f59891f47bc8218662 100644 --- a/lib/refrepo/gen/puppet/kavlang5k.rb +++ b/lib/refrepo/gen/puppet/kavlang5k.rb @@ -39,7 +39,10 @@ def generate_puppet_kavlang5k(options) puts "For site(s): #{options[:sites].join(', ')}" refapi = load_data_hierarchy - + eth_1_to_4_prefixes = {} + eth_5_to_6_prefixes = {} + eth_7_prefix = {} + refapi['sites'].each { |site_uid, site_refapi| next unless options[:sites].include?(site_uid) @@ -68,13 +71,32 @@ def generate_puppet_kavlang5k(options) } end + kavlans = refapi['sites'][site_uid]['kavlans'] # Look for site's global kavlan # TODO fix dirty convertion to_i below - kavlan_id = refapi['sites'][site_uid]['kavlans'].each_key.select {|k| k.to_i > 9}.pop().to_i + kavlan_id = kavlans.each_key.select {|k| k.to_i > 9}.pop().to_i ["dhcpd", "dhcpd6"].each { |dhcpkind| output = ERB.new(File.read(File.expand_path('templates/kavlan-dhcp.conf.erb', File.dirname(__FILE__))), trim_mode: '-').result(binding) output_file = Pathname("#{options[:output_dir]}//platforms/production/modules/generated/files/grid5000/kavlan/#{site_uid}/dhcp/#{dhcpkind}-0.conf") File.write(output_file, output) + eth_7_prefix[site_uid] = get_network_prefix(kavlans["#{kavlan_id}"]['network']) } + + eth_1_to_4_prefixes[site_uid] = get_network_prefix(kavlans['4']['network']) + eth_5_to_6_prefixes[site_uid] = get_network_prefix(kavlans['7']['network']) } + # FIXME: remove theses ugly print and output the hashes into a yaml file into the cdgp + print(eth_1_to_4_prefixes) + print("\n") + print(eth_5_to_6_prefixes) + print("\n") + print(eth_7_prefix) + print("\n") +end + +def get_network_prefix(network) + address = network.split('/').first + bytes = address.split('.') + prefix = bytes[0] + '.' + bytes[1] + return prefix end