diff --git a/Rakefile b/Rakefile index 9cf5a3664fd1ffeed66500789022d7f0220f93e5..2fafb59f3f64de9fe8149a9ff751f061c6765e62 100644 --- a/Rakefile +++ b/Rakefile @@ -79,6 +79,23 @@ namespace :valid do exit(ret) end + desc "Check network description -- parameters: [SITE={grenoble,...}] [VERBOSE=1] GENERATE_DOT=1" + task "network" do + require 'refrepo/valid/network' + options = {} + options[:sites] = ( ENV['SITE'] ? ENV['SITE'].split(',') : G5K_SITES ) + options[:verbose] = true if ENV['VERBOSE'] + options[:dot] = true if ENV['GENERATE_DOT'] + ret = 2 + begin + ret = check_network_description(options) + rescue StandardError => e + puts e + ret = 3 + ensure + exit(ret) + end + end end namespace :gen do diff --git a/lib/refrepo/valid/input/check-network-description.rb b/lib/refrepo/valid/network.rb similarity index 88% rename from lib/refrepo/valid/input/check-network-description.rb rename to lib/refrepo/valid/network.rb index 0fd20a0963c7d74640fc4fea1db0cd8e24a19212..59493cc5fa0a36b8c480c438bbd8cb518fbd283a 100644 --- a/lib/refrepo/valid/input/check-network-description.rb +++ b/lib/refrepo/valid/network.rb @@ -20,10 +20,10 @@ def check_network_description(options) # get list of network equipments and nodes neteqs = [] nodes = [] - Dir::glob("../../data/grid5000/sites/#{site}/network_equipments/*.json").each do |f| + Dir::glob("data/grid5000/sites/#{site}/network_equipments/*.json").each do |f| neteqs << JSON::parse(IO::read(f)) end - Dir::glob("../../data/grid5000/sites/#{site}/clusters/*/nodes/*.json").each do |f| + Dir::glob("data/grid5000/sites/#{site}/clusters/*/nodes/*.json").each do |f| nodes << JSON::parse(IO::read(f)) end @@ -286,56 +286,3 @@ def sh(cmd) end return output end - -if __FILE__ == $0 - require 'optparse' - - options = {} - options[:sites] = %w{grenoble lille luxembourg lyon nancy nantes rennes sophia} - - OptionParser.new do |opts| - opts.banner = "Usage: check-network-description.rb [options]" - - opts.separator "" - opts.separator "Example: ruby check-network-description.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.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("", "--dot", "Generate one dotfile per site") do - options[:dot] = true - end - - # Print an options summary. - opts.on_tail("-h", "--help", "Show this message") do - puts opts - exit - end - end.parse! - - ret = 2 - begin - ret = check_network_description(options) - rescue StandardError => e - puts e - ret = 3 - ensure - exit(ret) - end -end