From 2181f4875569a2a20dc39c88ac7a9a1af6685ac2 Mon Sep 17 00:00:00 2001
From: Samir Noir <samir.noir@inria.fr>
Date: Fri, 23 Jul 2021 16:31:02 +0200
Subject: [PATCH] [scripts] fix some errors in edit-input-files script

---
 scripts/edit-input-files.rb | 38 +++++++++++++++++++++----------------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/scripts/edit-input-files.rb b/scripts/edit-input-files.rb
index 8e37f283655..3ec860f5fca 100755
--- a/scripts/edit-input-files.rb
+++ b/scripts/edit-input-files.rb
@@ -9,7 +9,7 @@ require 'erb'
 require 'fileutils'
 require 'pathname'
 require 'yaml'
-require '../lib/hash/hash'
+require './lib/refrepo/hash/hash'
 
 if RUBY_VERSION < "2.1"
   puts "This script requires ruby >= 2.1"
@@ -50,32 +50,38 @@ end.parse!
 if options[:site].empty? || options[:clusters].empty?
   puts "Not copying anything, post-processing file from 'output'"
 else
-  options[:clusters].each{ |cluster_uid|
-    node_files = Dir["../../input/grid5000/sites/#{options[:site]}/clusters/#{cluster_uid}/nodes/*.yaml"]
-    node_files.each{|f|
+  FileUtils.mkdir_p 'output'
+  options[:clusters].each do |cluster_uid|
+    node_files = Dir["./input/grid5000/sites/#{options[:site]}/clusters/#{cluster_uid}/nodes/*.yaml"]
+    node_files.each do |f|
       filename = [f.split("/").last.split(".").first, options[:site], "grid5000", "fr", "yaml"].join(".")
       puts "Copying #{filename} to output/"
       FileUtils.cp(f, "./output/#{filename}")
-    }
-  }
+    end
+  end
 end
 
 ##Modify node yaml hash here
 def modify_node_data(hash, node_uid, cluster_uid, site_uid) #rubocop:disable Lint/UnusedMethodArgument
 
   #example content:
-  hash["network_adapters"].each{ |na_id, na|
-    if (na_id == "ib0" && na["firmware_version"] != "2.7.700")
-      puts "#{node_uid}" + na.inspect
-      na["firmware_version"] = "2.7.700"
-      # na["mac"] = "80:00:02:0a:fe:" + na["mac"].split(":")[5..20].join(":")
+  hash["network_adapters"].each do |na_id, na|
+    if !na['management'] && !na['sriov'] && na['interface'] == 'Ethernet'
+      if na_id == 'eth0' || na_id == 'eth1'
+        na['sriov'] = true
+        na['sriov_totalvfs'] = 63
+      else
+        na['sriov'] = true
+        na['sriov_totalvfs'] = 7
+      end
     end
-  }
+  end
+
   hash
 end
 
 list_of_yaml_files = Dir['output/*.y*ml'].sort_by { |x| -x.count('/') }
-list_of_yaml_files.each { |filename|
+list_of_yaml_files.each do |filename|
   begin
     file     = filename.split("/")[1]
     node_uid = file.split(".")[0]
@@ -96,7 +102,7 @@ list_of_yaml_files.each { |filename|
 
     hash = {node_uid => hash}
 
-    new_filename = Pathname("../../input/grid5000/sites/#{site_uid}/clusters/#{cluster_uid}/nodes/" + node_uid + ".yaml")
+    new_filename = Pathname("./input/grid5000/sites/#{site_uid}/clusters/#{cluster_uid}/nodes/" + node_uid + ".yaml")
 
     new_filename.dirname.mkpath()
 
@@ -105,14 +111,14 @@ list_of_yaml_files.each { |filename|
     contents = File.read(new_filename)
     File.open(new_filename, 'w') { |fd|
       fd.write("# Generated by g5k-checks (g5k-checks -m api)\n")
-      fd.write(contents) 
+      fd.write(contents)
     }
 
   rescue StandardError => e
     puts "#{node_uid} - #{e.class}: #{e.message}"
     puts e.backtrace
   end
-}
+end
 
 if options[:rm_output]
   puts "Cleaning up output directory"
-- 
GitLab