#!/usr/bin/env ruby
#

require 'yaml'
require 'json'

Dir.glob('input/grid5000/sites/*').each do |s|
  site = s.split('/').last
  Dir.glob("#{s}/clusters/*").each do |c|
    cluster = c.split('/').last
    #cluster_input = YAML.load(File.open("input/grid5000/sites/#{site}/clusters/#{cluster}/#{cluster}.yaml"))
    #cluster_input_file = File.new("input/grid5000/sites/#{site}/clusters/#{cluster}/#{cluster}.yaml", "w")
    #cluster_input['nodes'].each do |_, ng|
    #  ng['storage_devices']&.each do |sd|
    #    sd.delete('storage')
    #  end
    #end
    #cluster_input_file.write(cluster_input.to_yaml)

    Dir.glob("#{s}/clusters/#{cluster}/nodes/*").each do |n|
      node = n.split('/').last.split('.').first
      unless File.exist?("data/grid5000/sites/#{site}/clusters/#{cluster}/nodes/#{node}.json")
        next
      end

      data = JSON.load(File.open("data/grid5000/sites/#{site}/clusters/#{cluster}/nodes/#{node}.json"))
      input = YAML.load(File.open("input/grid5000/sites/#{site}/clusters/#{cluster}/nodes/#{node}.yaml"))

      data['storage_devices'].each do |sd|
        input[node]['storage_devices'][sd['device']]['storage'] = sd['storage']
        sd.delete('storage')
      end

      input_file = File.new("input/grid5000/sites/#{site}/clusters/#{cluster}/nodes/#{node}.yaml", "w")
      input_file.write("# Generated by g5k-checks (g5k-checks -m api)\n")
      input_file.write(input.to_yaml)
    end
  end
end