diff --git a/lib/refrepo/gen/puppet/webfish.rb b/lib/refrepo/gen/puppet/webfish.rb
index b1ebd90020ec0f99f34958c29ce32d648c0815f5..ad234f0295abff4f188122b4c5ec06c88be1c392 100644
--- a/lib/refrepo/gen/puppet/webfish.rb
+++ b/lib/refrepo/gen/puppet/webfish.rb
@@ -8,17 +8,21 @@ def generate_puppet_webfish(options)
     if not options[:conf_dir]
         options[:conf_dir] = "#{options[:output_dir]}/platforms/production/generators/redfish/"
     end
-    allBmc = gen_redfish_configuration()
-    credentials = YAML::load_file(options[:conf_dir] + 'console-password.yaml')
+    file = options[:conf_dir] + 'console-password.yaml'
+    puts "Writing Webfish configuration files to: #{file}"
+    puts "For site(s): #{options[:sites].join(', ')}"
+    allBmc = gen_redfish_configuration(options)
+    credentials = YAML::load_file(file)
     add_credentials(credentials, allBmc)
     gen_json_files(allBmc, options)
 end
 
-def gen_redfish_configuration()
+def gen_redfish_configuration(options)
     data = load_data_hierarchy
     allBmc = {}
     # allBmc --> hash de hash de tableau de hash
     data['sites'].peach do |s_uid, d_site|
+        next unless options[:sites].include?(s_uid)
         allBmc[s_uid] = {}
         p "checking site #{s_uid}"
         d_site['clusters'].peach do |_c_uid, d_cluster|
@@ -86,18 +90,23 @@ def add_credentials(credentials, allBmc)
     end
 end
 
-def gen_json_files(allBmc, options)
-    pretty_dict = {}
-    dir = "#{options[:output_dir]}/platforms/production/modules/generated/files/grid5000/webfish"
+def checks_dir_creation(dir)
     if !Dir.exist?(dir)
         Dir.mkdir(dir)
     end
-    actualFile = dir + "/webfish.json"
+end
 
+def gen_json_files(allBmc, options)
+    actualFile = {}
+    dir = "#{options[:output_dir]}/platforms/production/modules/generated/files/grid5000/webfish"
+    checks_dir_creation(dir)
     allBmc.sort_by{ |s_site, _d_site| s_site}.each do |s_site, _d_array|
-        pretty_dict[s_site] = allBmc[s_site].sort_by{|k, _| [k[/(\D+)/, 1], k[/(\d+)/, 1].to_i, k[/-(\d+)/, 1].to_i]}.to_h
-    end
-    File.open(actualFile, "w") do |f|
-        f.write(JSON.pretty_generate(pretty_dict))
+        actualFile = allBmc[s_site].sort_by{|k, _| [k[/(\D+)/, 1], k[/(\d+)/, 1].to_i, k[/-(\d+)/, 1].to_i]}.to_h
+        siteLocation = dir + "/" + s_site
+        checks_dir_creation(siteLocation)
+        fileLocation =  siteLocation + "/webfish.json"
+        File.open(fileLocation, "w") do |f|
+            f.write(JSON.pretty_generate(actualFile))
+        end
     end
 end
\ No newline at end of file