diff --git a/Gemfile b/Gemfile index b79d3e8c0f801b72e253abd3a6c533d681356810..c0c2d915aa7a080f30a3eeddca68a52e58ce1b90 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,15 @@ source :rubygems gem 'json_pure', '~> 1.5' -gem 'net-ssh' gem 'restfully','1.0.5' + +gem "net-admin-common", + :git => "ssh://g5kadmin@git.grid5000.fr/srv/git/repos/net-admin-common", + :tag => "2.2" +gem "cacti-play", + :git => "ssh://g5kadmin@git.grid5000.fr/srv/git/repos/cacti-play", + :tag => "2.4" +gem "weathermap", + :git => "ssh://g5kadmin@git.grid5000.fr/srv/git/repos/weathermap", + :tag => "5.5" + diff --git a/Gemfile.lock b/Gemfile.lock index 6c50772b8756e10e915968081b21e5d1edbae4c8..2d689c2476f6a991ce6a195762cabef3fca57a72 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,13 +1,50 @@ +GIT + remote: ssh://g5kadmin@git.grid5000.fr/srv/git/repos/cacti-play + revision: 1912fcc73ba790370b62d8b9792a35485bb498f6 + tag: 2.4 + specs: + cacti-play (2.4) + net-admin-common (>= 2.2) + +GIT + remote: ssh://g5kadmin@git.grid5000.fr/srv/git/repos/net-admin-common + revision: a0335cc1d5cb7fcd79b6fc3fb11d5f0bc34bd596 + tag: 2.2 + specs: + net-admin-common (2.2) + net-ssh (>= 2.3.0) + net-ssh-multi (>= 1.1) + rest-client (>= 1.6.7) + +GIT + remote: ssh://g5kadmin@git.grid5000.fr/srv/git/repos/weathermap + revision: 288a5dd149ba01de7a70207ecc992a0a3ae43ca3 + tag: 5.5 + specs: + weathermap (5.5) + cacti-play (>= 2.3) + interpolator (>= 0.15) + ipaddress (>= 0.8.0) + json (>= 1.7.0) + net-admin-common (>= 2.0) + GEM remote: http://rubygems.org/ specs: addressable (2.2.8) backports (2.5.1) bond (0.4.2) + interpolator (0.15) + ipaddress (0.8.0) json (1.7.0) json_pure (1.5.1) mime-types (1.18) - net-ssh (2.1.0) + net-ssh (2.5.2) + net-ssh-gateway (1.1.0) + net-ssh (>= 1.99.1) + net-ssh-multi (1.1) + net-ssh (>= 2.1.4) + net-ssh-gateway (>= 0.99.0) rack (1.4.1) rack-cache (1.2) rack (>= 0.4) @@ -45,6 +82,8 @@ PLATFORMS ruby DEPENDENCIES + cacti-play! json_pure (~> 1.5) - net-ssh + net-admin-common! restfully (= 1.0.5) + weathermap! diff --git a/Rakefile b/Rakefile index d9167689e4276f28599d1df07b3eb3d854501a47..b18a4e93c3291a42f9f8ad1b782dbffb65aebc03 100644 --- a/Rakefile +++ b/Rakefile @@ -8,18 +8,6 @@ ROOT_DIR = File.expand_path File.dirname(__FILE__) LIB_DIR = File.join(ROOT_DIR, "generators", "lib") $LOAD_PATH.unshift(LIB_DIR) unless $LOAD_PATH.include?(LIB_DIR) -REFERENCE_REPOSITORY_DIR = File.expand_path(File.dirname(__FILE__)) - -# Import dependency rake file -IMPORTED_RAKEFILES = Array.new -IMPORTED_RAKEFILES.push File.expand_path(__FILE__) -%w(weathermap).each do |dependency| - Dir.glob(File.expand_path(File.join(REFERENCE_REPOSITORY_DIR,"..",dependency,"Rakefile"))).each do |rakefile| - import rakefile unless IMPORTED_RAKEFILES.include? rakefile - end -end - - require 'grid5000' task :environment do @@ -230,15 +218,6 @@ namespace :netlinks do # puts command sh command end - desc "Display network links description amongst network equipments." - task :display do - host=ENV["HOST"] - abort "You must provide the HOST=" if host.nil? - cmd = File.join(WEATHERMAP_DIR,"bin","weathermap-app.rb") - cmd += " --host '#{host}' --action display" - sh cmd - end - end namespace :env do desc "Generates environment JSON files .\nUse DRY=yes to simulate the execution. " @@ -253,27 +232,33 @@ namespace :env do sh command end end - -=begin -task :mm => [:environment,:hosts] do - host,site = @host.scan(/(\S+)\.(\S+)/).flatten - root_dir_input = "#{ROOT_DIR}/generators/input" - Dir.glob("#{root_dir_input}/#{site}*").each do |file| - filename = File.basename(file) - if ((scan = filename.scan(/(\S+)-(\S+)\.(rb|yaml)/)).size > 0) - site,cluster = scan.flatten - cmd = "mkdir -p #{root_dir_input}/#{site}/clusters" - cmd += " && mv #{file} #{root_dir_input}/#{site}/clusters/#{cluster}#{File.extname(filename)}" - sh cmd -# puts cmd - elsif ((scan = filename.scan(/(\S+)\.rb/)).size > 0) - site = scan.first.first - cmd = "mkdir -p #{root_dir_input}/#{site}/clusters" - cmd += " && mv #{file} #{root_dir_input}/#{site}/#{site}.rb" - sh cmd - end - +namespace :weathermap do + @weathermap_options = "" + task :hosts do + @weathermap_site = ENV['SITE'] + @weathermap_host = ENV['HOST'] + abort "You must provide the SITE= " if @weathermap_site.nil? + abort "You must provide the HOST= name (uid) in its site " if @weathermap_host.nil? or @weathermap_host.match(/\.grid5000\.fr/) != nil + end + task :execute => ["weathermap:hosts"] do + cmd = "bundle exec weathermap" + cmd += " --site '#{@weathermap_site}' --host '#{@weathermap_host}' --api-path #{ROOT_DIR} #{@weathermap_options}" + sh cmd + end + desc "Create weathermaps for host HOST without data." + task :testing => ["weathermap:hosts"] do + @weathermap_options.replace("--action write --use-cacti no") + Rake::Task['weathermap:execute'].invoke + end + desc "Create weathermaps for host HOST with RRD from cacti." + task :production => ["weathermap:hosts"] do + @weathermap_options.replace("--action write --use-cacti yes") + Rake::Task['weathermap:execute'].invoke + end + desc "Display network links description amongst network equipments." + task :display do + @weathermap_options.replace("--action display") + Rake::Task['weathermap:execute'].invoke end - end -=end + diff --git a/generators/input/sites/grenoble/net-links/aspen.yaml b/generators/input/sites/grenoble/net-links/aspen.yaml index 904e5387aa01eeaddf5bebf92b3c8fc9feb5c800..366a58b5443d803264ba21449c65133ce2a03fa3 100644 --- a/generators/input/sites/grenoble/net-links/aspen.yaml +++ b/generators/input/sites/grenoble/net-links/aspen.yaml @@ -15,7 +15,7 @@ aspen: linecards: 2: naming_pattern: "%LINECARD%:%PORT%" - kind: node + kind: switch rate: 1000000000 ports: 1: @@ -56,33 +56,37 @@ aspen: port: 0/3 23: uid: voltaire-1 - kind: switch 24: uid: voltaire-2 - kind: switch 32: uid: grimage-9 port: bmc + kind: node 33: uid: grimage-10 port: bmc + kind: node 3: naming_pattern: "%LINECARD%:%PORT%" - kind: other + kind: node rate: 1000000000 ports: 1: uid: digmgt port: eth0 + kin: other 2: uid: digmgt port: eth1 + kin: other 3: uid: digmgt port: eth2 + kin: other 4: uid: digmgt port: eth3 + kin: other 5: uid: grimage-9 port: eth0 @@ -181,7 +185,7 @@ aspen: port: eth1 4: naming_pattern: "%LINECARD%:%PORT%" - kind: other + kind: node rate: 1000000000 ports: 1: @@ -244,9 +248,11 @@ aspen: 23: uid: digmgt port: eth4 + kin: other 24: uid: alpes port: eth0 + kin: other 25: uid: grimage-1 port: eth0