From f34b5a7d961f84636c77c025feac726417b4762c Mon Sep 17 00:00:00 2001 From: Alexandre MERLIN <alexandre.merlin@inria.fr> Date: Thu, 20 Mar 2025 14:21:50 +0100 Subject: [PATCH] [rake mass:create] fail if same mac or ip are defined multiple times --- lib/refrepo/csv_importer.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/refrepo/csv_importer.rb b/lib/refrepo/csv_importer.rb index 8396e4c7db9..6adb86e9115 100644 --- a/lib/refrepo/csv_importer.rb +++ b/lib/refrepo/csv_importer.rb @@ -9,6 +9,19 @@ def csv_create_input_files(options) FileUtils.mkdir_p("#{tmpdir}/generators/kadeploy/") kadeploy = File::new("#{tmpdir}/generators/kadeploy/kadeploy.yaml", "w") + doublon = [] + ['mac_prod','mac_bmc','ip_admin','ip_prod'].each do |label| + grouped = csv.group_by { |hash| hash[label] } + filtered = grouped.select { |_, hashes| hashes.size > 1 }.to_h + filtered.each do |k,v| + next if k.nil? + doublon << "#{k} as #{label} is used #{v.count} times (#{v.map{|x| x['cluster']}.uniq.join(',')})" + end + end + unless doublon.empty? + STDERR.puts doublon.join("\n") + raise "Some values are used multiple times" + end csv.group_by { |e| [e['site'], e['cluster']] }.each_pair do |site_cluster, rows| site, cluster = site_cluster -- GitLab