diff --git a/Rakefile b/Rakefile index 783af900383425111e68000862e39ae9cf993234..da0d0a622e4c4181890aaae4a53f713ffb76ece3 100644 --- a/Rakefile +++ b/Rakefile @@ -228,6 +228,8 @@ end namespace :version do desc 'Get bios, bmc and firmwares version -- parameters: MODEL={630,6420,...}' task :get do + require 'refrepo/firmwares' + model = ENV['MODEL'] raise 'need MODEL=' if model.nil? @@ -241,6 +243,12 @@ namespace :version do puts "#{node['uid']} : #{version}" end end + + desc 'Build an HTML table with firmware versions' + task :table do + require 'refrepo/firmwares' + gen_firmwares_tables + end end diff --git a/lib/refrepo/data_loader.rb b/lib/refrepo/data_loader.rb index d1c97eaf1a1f5eb7dd1465e1857d87d001136755..ed19e5ea02463b4eaf45e4ce9f909b35e995d09b 100644 --- a/lib/refrepo/data_loader.rb +++ b/lib/refrepo/data_loader.rb @@ -39,30 +39,3 @@ def load_data_hierarchy return global_hash end - -def nodes_by_model(model) - nodes = [] - data = load_data_hierarchy - data['sites'].keys.each do |site| - data['sites'][site]['clusters'].each do |cluster| - c = cluster.last - c['nodes'].each do |_, v| - nodes << v - end - end - end - model_filter = nodes.select do |node| - node['chassis']['name'] =~ /#{model}/ - end - model_filter -end - -def get_firmware_version(devices) - version = Hash.new - devices.each do |device| - if device.has_key?("firmware_version") - version[device['model']] = device['firmware_version'] - end - end - version -end diff --git a/lib/refrepo/firmwares.rb b/lib/refrepo/firmwares.rb new file mode 100644 index 0000000000000000000000000000000000000000..061eaf9e3b4ae11fd7a2d86139d7941cfe0bb7d2 --- /dev/null +++ b/lib/refrepo/firmwares.rb @@ -0,0 +1,31 @@ +require 'refrepo/data_loader' + +def nodes_by_model(model) + nodes = [] + data = load_data_hierarchy + data['sites'].keys.each do |site| + data['sites'][site]['clusters'].each do |cluster| + c = cluster.last + c['nodes'].each do |_, v| + nodes << v + end + end + end + model_filter = nodes.select do |node| + node['chassis']['name'] =~ /#{model}/ + end + model_filter +end + +def get_firmware_version(devices) + version = Hash.new + devices.each do |device| + if device.has_key?("firmware_version") + version[device['model']] = device['firmware_version'] + end + end + version +end + +def gen_firmwares_table +end