diff --git a/lib/refrepo/data_loader.rb b/lib/refrepo/data_loader.rb index 9564dc5e2dc50ec108d521f391e8ab93e3903101..ed19e5ea02463b4eaf45e4ce9f909b35e995d09b 100644 --- a/lib/refrepo/data_loader.rb +++ b/lib/refrepo/data_loader.rb @@ -22,7 +22,7 @@ def load_data_hierarchy path_hierarchy = File.dirname(filename).split('/') # Split the file path (path relative to input/) path_hierarchy = [] if path_hierarchy == ['.'] - if ['nodes', 'network_equipments'].include?(path_hierarchy.last) + if ['nodes', 'network_equipments', 'servers', 'pdus'].include?(path_hierarchy.last) # it's a node or a network_equipment, add the uid path_hierarchy << file_hash['uid'] end diff --git a/lib/refrepo/gen/puppet/bindg5k.rb b/lib/refrepo/gen/puppet/bindg5k.rb index 3ded86a4bf400659b05ad7d0bd4984d758226240..79fc84f7d73ef9b5084ffcbe23f33cbb4ecdadb7 100644 --- a/lib/refrepo/gen/puppet/bindg5k.rb +++ b/lib/refrepo/gen/puppet/bindg5k.rb @@ -145,7 +145,7 @@ def get_networks_records(site, key) next end - eth_net_uid = node['network_adapters'].select{ |u, h| h['mounted'] && /^eth[0-9]$/.match(u) } # eth* interfaces + eth_net_uid = node['network_adapters'].select{ |u, h| h['mounted'] && /^eth[0-9]$/.match(u) } # eth* interfaces node['network_adapters'].each { |net_uid, net_hash| if ! eth_net_uid.include?(net_uid) && node['network_adapters'].size > 1 hostsuffix = "-#{net_uid}" @@ -164,7 +164,7 @@ end def get_node_records(cluster_uid, node_uid, network_adapters) records = [] - + network_adapters.each { |net_uid, net_hash| next unless net_hash['ip'] @@ -415,7 +415,7 @@ def generate_puppet_bindg5k(options) $written_files = [] - refapi = load_yaml_file_hierarchy + refapi = load_data_hierarchy # Loop over Grid'5000 sites refapi["sites"].each { |site_uid, site| @@ -445,7 +445,7 @@ def generate_puppet_bindg5k(options) site_records['pdus'] = get_pdus_records(site) unless site['pdus'].nil? # Networks and laptops (same input format) - site_records['networks'] = get_networks_records(site, 'networks') unless site['networks'].nil? + site_records['networks'] = get_networks_records(site, 'network_equipments') unless site['network_equipments'].nil? site_records['laptops'] = get_networks_records(site, 'laptops') unless site['laptops'].nil? site.fetch("clusters", []).sort.each { |cluster_uid, cluster| @@ -457,8 +457,8 @@ def generate_puppet_bindg5k(options) network_adapters = {} # Nodes - node.fetch('network_adapters').each { |net_uid, net_hash| - network_adapters[net_uid] = {"ip" => net_hash["ip"], "mounted" => net_hash["mounted"], "alias" => net_hash["alias"]} + node.fetch('network_adapters').each { |net| + network_adapters[net['device']] = {"ip" => net["ip"], "mounted" => net["mounted"], 'alias' => net['alias']} } # Mic @@ -474,9 +474,15 @@ def generate_puppet_bindg5k(options) kavlan_adapters = {} node.fetch('kavlan').each { |net_uid, net_hash| net_hash.each { |kavlan_net_uid, ip| - kavlan_adapters["#{net_uid}-#{kavlan_net_uid}"] = {"ip" => ip, "mounted" => node['network_adapters'][net_uid]['mounted']} + kavlan_adapters["#{net_uid}-#{kavlan_net_uid}"] = { + 'ip' => ip, + 'mounted' => node['network_adapters'].select { |n| + n['device'] == net_uid + }[0]['mounted'] + } } } + site_records["#{cluster_uid}-kavlan"] ||= [] site_records["#{cluster_uid}-kavlan"] += get_node_kavlan_records(cluster_uid, node_uid, network_adapters, kavlan_adapters) end