diff --git a/Rakefile b/Rakefile index 974567ef287de1e00eec6b9254aa081f7bfb1e7e..e9afa9e6127c3c2e7ce46cc4b0a3ecb996f02d0e 100644 --- a/Rakefile +++ b/Rakefile @@ -35,6 +35,25 @@ end namespace :valid do + desc "Run all base checks (homogeneity, duplicates, schema) -- parameters: [SITE={grenoble,..}] [CLUSTER={yeti,..}] [VERBOSE=1]" + task "base" do + require 'refrepo/valid/homogeneity' + require 'refrepo/valid/input/duplicates' + require 'refrepo/valid/input/schema' + options = {} + options[:sites] = ( ENV['SITE'] ? ENV['SITE'].split(',') : G5K_SITES ) + options[:clusters] = ( ENV['CLUSTER'] ? ENV['CLUSTER'].split(',') : [] ) + options[:verbose] = ENV['VERBOSE'].to_i if ENV['VERBOSE'] + + puts "# Checking homogeneity ..." + ret1 = check_cluster_homogeneity(options) + puts "# Checking duplicates ..." + ret2 = yaml_input_find_duplicates(options) + puts "# Checking schema ..." + ret3 = yaml_input_schema_validator(options) + exit(ret1 && ret2 && ret3) + end + desc "Check homogeneity of clusters -- parameters: [SITE={grenoble,..}] [CLUSTER={yeti,..}] [VERBOSE=1]" task "homogeneity" do require 'refrepo/valid/homogeneity' diff --git a/lib/refrepo/valid/homogeneity.rb b/lib/refrepo/valid/homogeneity.rb index dff390dbd51240ed0c708aed6e6f8b8c7ee9c8f3..bf2910ce9ce02ee6412e95aa1454f135fa9ccb9b 100644 --- a/lib/refrepo/valid/homogeneity.rb +++ b/lib/refrepo/valid/homogeneity.rb @@ -241,14 +241,25 @@ def check_cluster_homogeneity(options = {:verbose => false}) options[:api][:pwd] = conf['password'] verbose = options[:verbose] - puts "Differences found between successive nodes, per cluster:\n\n" - total_count, count = cluster_homogeneity(refapi_hash, options) puts "\n" if verbose - puts count.to_yaml unless verbose - - puts "\nUse 'VERBOSE=1' option for details." unless verbose + unless verbose + count.each_pair do |site, v| + next if v.values.select { |c| c != 0 }.empty? + puts "#{site} ..." + v.each_pair do |cluster, c| + next if c == 0 + puts " #{cluster}: #{c}" + end + end + end - return total_count == 0 + if total_count == 0 + puts "OK" + return true + else + puts "Use 'VERBOSE=1' option for details." unless verbose + return false + end end diff --git a/lib/refrepo/valid/input/schema.rb b/lib/refrepo/valid/input/schema.rb index 7d2d916306b3e361455417459696335b76c4c5af..ed1cd8fc1803fca86a5f2ccea784fe9e043ae636 100644 --- a/lib/refrepo/valid/input/schema.rb +++ b/lib/refrepo/valid/input/schema.rb @@ -45,5 +45,10 @@ def yaml_input_schema_validator(options) end end end + if r + puts "OK" + else + puts "FAILED" + end return r end