From b82d1520acd9817526ac5ff5c13c7d2417b0e332 Mon Sep 17 00:00:00 2001
From: Lucas Nussbaum <lucas.nussbaum@loria.fr>
Date: Fri, 16 Nov 2018 22:53:19 +0100
Subject: [PATCH] [dev] start moving input validators to lib/

---
 .../refrepo/valid/data/homogeneity.yaml.erb   |  0
 .../refrepo/valid/homogeneity.rb              | 83 +++----------------
 .../input}/check-monitoring-properties.rb     |  0
 .../valid/input}/check-network-description.rb |  0
 .../valid/input}/lib/array_validator.rb       |  0
 .../valid/input}/lib/custom_validators.rb     |  0
 .../valid/input}/lib/multihash_validator.rb   |  0
 .../valid/input}/lib/schema_validator.rb      |  0
 .../refrepo/valid/input}/schema-cluster.yaml  |  0
 .../refrepo/valid/input}/schema-global.yaml   |  0
 .../input}/schema-network_equipments.yaml     |  0
 .../refrepo/valid/input}/schema-node.yaml     |  0
 .../refrepo/valid/input}/schema-site.yaml     |  0
 .../input}/yaml-input-find-duplicates.rb      |  0
 .../input}/yaml-input-schema-validator.rb     |  0
 15 files changed, 12 insertions(+), 71 deletions(-)
 rename generators/input-validators/check-cluster-homogeneity.yaml.erb => lib/refrepo/valid/data/homogeneity.yaml.erb (100%)
 rename generators/input-validators/check-cluster-homogeneity.rb => lib/refrepo/valid/homogeneity.rb (76%)
 rename {generators/input-validators => lib/refrepo/valid/input}/check-monitoring-properties.rb (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/check-network-description.rb (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/lib/array_validator.rb (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/lib/custom_validators.rb (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/lib/multihash_validator.rb (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/lib/schema_validator.rb (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/schema-cluster.yaml (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/schema-global.yaml (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/schema-network_equipments.yaml (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/schema-node.yaml (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/schema-site.yaml (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/yaml-input-find-duplicates.rb (100%)
 rename {generators/input-validators => lib/refrepo/valid/input}/yaml-input-schema-validator.rb (100%)

diff --git a/generators/input-validators/check-cluster-homogeneity.yaml.erb b/lib/refrepo/valid/data/homogeneity.yaml.erb
similarity index 100%
rename from generators/input-validators/check-cluster-homogeneity.yaml.erb
rename to lib/refrepo/valid/data/homogeneity.yaml.erb
diff --git a/generators/input-validators/check-cluster-homogeneity.rb b/lib/refrepo/valid/homogeneity.rb
similarity index 76%
rename from generators/input-validators/check-cluster-homogeneity.rb
rename to lib/refrepo/valid/homogeneity.rb
index 0a92f7adb3a..eed0ae7617a 100644
--- a/generators/input-validators/check-cluster-homogeneity.rb
+++ b/lib/refrepo/valid/homogeneity.rb
@@ -2,11 +2,6 @@
 
 # This script checks the cluster homogeneity
 
-if RUBY_VERSION < "2.1"
-  puts "This script requires ruby >= 2.1"
-  exit
-end
-
 require 'pp'
 require 'fileutils'
 require 'pathname'
@@ -15,10 +10,9 @@ require 'json'
 require 'uri'
 require 'net/https'
 
-$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../lib')))
 require 'refrepo/input_loader'
 
-def global_ignore_keys()
+def global_ignore_keys
 
   #
   # Global ignore keys
@@ -170,10 +164,10 @@ def cluster_homogeneity(refapi_hash, options = {:verbose => false})
   end
 
   ignore_keys  = global_ignore_keys()
-  cignore_keys = cluster_ignore_keys(File.expand_path("../input-validators/check-cluster-homogeneity.yaml.erb", File.dirname(__FILE__)))
+  cignore_keys = cluster_ignore_keys(File.expand_path("data/homogeneity.yaml.erb", File.dirname(__FILE__)))
 
   input_data_dir = "../../input/grid5000/"
-  refapi_hash = load_yaml_file_hierarchy(File.expand_path(input_data_dir, File.dirname(__FILE__)))
+  refapi_hash = load_yaml_file_hierarchy
   count = {}
   total_count = 0
 
@@ -250,7 +244,13 @@ def cluster_homogeneity(refapi_hash, options = {:verbose => false})
   return [total_count, count]
 end
 
-def check_cluster_homogeneity(refapi_hash, options = {:verbose => false})
+def check_cluster_homogeneity(options = {:verbose => false})
+  refapi_hash = load_yaml_file_hierarchy
+  options[:api] = {}
+  conf = RefRepo::Utils.get_api_config
+  options[:api][:user] = conf['username']
+  options[:api][:pwd] = conf['password']
+
   verbose = options[:verbose]
   puts "Differences found between successive nodes, per cluster:\n\n"
 
@@ -259,66 +259,7 @@ def check_cluster_homogeneity(refapi_hash, options = {:verbose => false})
 
   puts count.to_yaml unless verbose
 
-  puts "\nUse '-v' option for details." unless verbose
-
-  return total_count
-end
-
-if __FILE__ == $0
-  require 'optparse'
-
-  options = {}
-  options[:sites] = %w{grenoble lille luxembourg lyon nancy nantes rennes sophia}
-  options[:api] = {}
-
-  OptionParser.new do |opts|
-    opts.banner = "Usage: check-cluster-homogeneity.rb [options]"
-
-    opts.separator ""
-    opts.separator "Example: ruby check-cluster-homogeneity.rb -v"
-
-    ###
-
-    opts.separator ""
-    opts.separator "Filters:"
-
-    opts.on('-s', '--sites a,b,c', Array, 'Select site(s)',
-            "Default: "+options[:sites].join(", ")) do |s|
-      raise "Wrong argument for -s option." unless (s - options[:sites]).empty?
-      options[:sites] = s
-    end
-
-    opts.on('-c', '--clusters a,b,c', Array, 'Select clusters(s). Default: all') do |s|
-      options[:clusters] = s
-    end
-
-    opts.separator ""
-    opts.separator "Common options:"
-
-    opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
-      options[:verbose] ||= 0
-      options[:verbose] = options[:verbose] + 1
-    end
-
-    opts.on('--api-user user', String, 'HTTP authentication user when outside G5K') do |user|
-      options[:api][:user] = user
-    end
-
-    opts.on('--api-password pwd', String, 'HTTP authentication password when outside G5K') do |pwd|
-      options[:api][:pwd] = pwd
-    end
-
-    # Print an options summary.
-    opts.on_tail("-h", "--help", "Show this message") do
-      puts opts
-      exit
-    end
-  end.parse!
-
-  refapi_hash = load_yaml_file_hierarchy(File.expand_path("../../input/grid5000/", File.dirname(__FILE__)))
-  total_count = check_cluster_homogeneity(refapi_hash, options)
-
-  # return 0 if all nodes are homogeneous, 1 otherwise
-  exit total_count == 0
+  puts "\nUse 'VERBOSE=1' option for details." unless verbose
 
+  return total_count == 0
 end
diff --git a/generators/input-validators/check-monitoring-properties.rb b/lib/refrepo/valid/input/check-monitoring-properties.rb
similarity index 100%
rename from generators/input-validators/check-monitoring-properties.rb
rename to lib/refrepo/valid/input/check-monitoring-properties.rb
diff --git a/generators/input-validators/check-network-description.rb b/lib/refrepo/valid/input/check-network-description.rb
similarity index 100%
rename from generators/input-validators/check-network-description.rb
rename to lib/refrepo/valid/input/check-network-description.rb
diff --git a/generators/input-validators/lib/array_validator.rb b/lib/refrepo/valid/input/lib/array_validator.rb
similarity index 100%
rename from generators/input-validators/lib/array_validator.rb
rename to lib/refrepo/valid/input/lib/array_validator.rb
diff --git a/generators/input-validators/lib/custom_validators.rb b/lib/refrepo/valid/input/lib/custom_validators.rb
similarity index 100%
rename from generators/input-validators/lib/custom_validators.rb
rename to lib/refrepo/valid/input/lib/custom_validators.rb
diff --git a/generators/input-validators/lib/multihash_validator.rb b/lib/refrepo/valid/input/lib/multihash_validator.rb
similarity index 100%
rename from generators/input-validators/lib/multihash_validator.rb
rename to lib/refrepo/valid/input/lib/multihash_validator.rb
diff --git a/generators/input-validators/lib/schema_validator.rb b/lib/refrepo/valid/input/lib/schema_validator.rb
similarity index 100%
rename from generators/input-validators/lib/schema_validator.rb
rename to lib/refrepo/valid/input/lib/schema_validator.rb
diff --git a/generators/input-validators/schema-cluster.yaml b/lib/refrepo/valid/input/schema-cluster.yaml
similarity index 100%
rename from generators/input-validators/schema-cluster.yaml
rename to lib/refrepo/valid/input/schema-cluster.yaml
diff --git a/generators/input-validators/schema-global.yaml b/lib/refrepo/valid/input/schema-global.yaml
similarity index 100%
rename from generators/input-validators/schema-global.yaml
rename to lib/refrepo/valid/input/schema-global.yaml
diff --git a/generators/input-validators/schema-network_equipments.yaml b/lib/refrepo/valid/input/schema-network_equipments.yaml
similarity index 100%
rename from generators/input-validators/schema-network_equipments.yaml
rename to lib/refrepo/valid/input/schema-network_equipments.yaml
diff --git a/generators/input-validators/schema-node.yaml b/lib/refrepo/valid/input/schema-node.yaml
similarity index 100%
rename from generators/input-validators/schema-node.yaml
rename to lib/refrepo/valid/input/schema-node.yaml
diff --git a/generators/input-validators/schema-site.yaml b/lib/refrepo/valid/input/schema-site.yaml
similarity index 100%
rename from generators/input-validators/schema-site.yaml
rename to lib/refrepo/valid/input/schema-site.yaml
diff --git a/generators/input-validators/yaml-input-find-duplicates.rb b/lib/refrepo/valid/input/yaml-input-find-duplicates.rb
similarity index 100%
rename from generators/input-validators/yaml-input-find-duplicates.rb
rename to lib/refrepo/valid/input/yaml-input-find-duplicates.rb
diff --git a/generators/input-validators/yaml-input-schema-validator.rb b/lib/refrepo/valid/input/yaml-input-schema-validator.rb
similarity index 100%
rename from generators/input-validators/yaml-input-schema-validator.rb
rename to lib/refrepo/valid/input/yaml-input-schema-validator.rb
-- 
GitLab