diff --git a/lib/refrepo.rb b/lib/refrepo.rb index dbd8148216852d0c4f304fcca903ef950673b89e..26dcc360c764acaf5166aba518eed0fb2fac1934 100644 --- a/lib/refrepo.rb +++ b/lib/refrepo.rb @@ -1,3 +1,19 @@ +# load gems used by most of refrepo scripts +require 'erb' +require 'fileutils' +require 'json' +require 'net/http' +require 'net/https' +require 'open-uri' +require 'optparse' +require 'pathname' +require 'pp' +require 'set' +require 'time' +require 'uri' +require 'yaml' + + # pre-declare those modules here module RefRepo end @@ -5,4 +21,6 @@ module RefRepo::Gen end module RefRepo::Valid end +# load sub-parts that are used by many scripts anyway require 'refrepo/utils' +require 'refrepo/input_loader' diff --git a/lib/refrepo/gen/oar-properties.rb b/lib/refrepo/gen/oar-properties.rb index a3f153d0cd2d3a7b4b5c07f13fd365189e4fd137..18e8329e2d1f90579773e01da7fa18d54101590a 100755 --- a/lib/refrepo/gen/oar-properties.rb +++ b/lib/refrepo/gen/oar-properties.rb @@ -1,19 +1,6 @@ -#!/usr/bin/ruby # coding: utf-8 -require 'pp' -require 'erb' -require 'fileutils' -require 'pathname' -require 'json' -require 'time' -require 'yaml' require 'hashdiff' -require 'set' -require 'uri' -require 'net/https' - -require 'refrepo/input_loader' class MissingProperty < StandardError; end diff --git a/lib/refrepo/gen/puppet/bindg5k.rb b/lib/refrepo/gen/puppet/bindg5k.rb index 1b0c50b269f2878ee96a83ff4bdb81576b23155c..6682605423d9b6cdcc3ec1820c46a771fe1f20ed 100644 --- a/lib/refrepo/gen/puppet/bindg5k.rb +++ b/lib/refrepo/gen/puppet/bindg5k.rb @@ -1,12 +1,6 @@ # See also: https://www.grid5000.fr/mediawiki/index.php/DNS_server -require 'pp' -require 'erb' -require 'pathname' -require 'fileutils' -require 'optparse' require 'dns/zone' -require 'refrepo/input_loader' #Prettier aligned dump of records class DNS::Zone::RR::A diff --git a/lib/refrepo/gen/puppet/conmang5k.rb b/lib/refrepo/gen/puppet/conmang5k.rb index b3f85e54c22dd6f350f7bc8ef7cef42c6bc645a9..060322d07123cd756db8e487093b87337e88f817 100644 --- a/lib/refrepo/gen/puppet/conmang5k.rb +++ b/lib/refrepo/gen/puppet/conmang5k.rb @@ -1,10 +1,5 @@ # This script generates conmang5k/files/<site_uid>/conman.conf from input/, conf/console.yaml and conf/console-password.yaml -require 'pp' -require 'erb' -require 'pathname' -require 'optparse' -require 'refrepo/input_loader' require 'refrepo/hash/hash' # Apply ERB template and save result to file diff --git a/lib/refrepo/gen/puppet/dhcpg5k.rb b/lib/refrepo/gen/puppet/dhcpg5k.rb index f86fedd95b07091cf7c392121f06951408e840f4..41db39d4b9697ec65976ac6421b5b192120bd86d 100644 --- a/lib/refrepo/gen/puppet/dhcpg5k.rb +++ b/lib/refrepo/gen/puppet/dhcpg5k.rb @@ -1,9 +1,3 @@ -require 'pp' -require 'erb' -require 'pathname' -require 'optparse' -require 'refrepo/input_loader' - # Get the mac and ip of a node. Throw exception if error. def get_network_info(node_hash, network_interface) # Get node_hash["network_adapters"][network_interface]["ip"] and node_hash["network_adapters"][network_interface]["mac"] diff --git a/lib/refrepo/gen/puppet/kadeployg5k.rb b/lib/refrepo/gen/puppet/kadeployg5k.rb index 8b6e73eeba9ba1dad4bc8d3a05fde8d8d7e43e1f..786754e4fd6f770a3fa4880ff91f2df11a55d399 100644 --- a/lib/refrepo/gen/puppet/kadeployg5k.rb +++ b/lib/refrepo/gen/puppet/kadeployg5k.rb @@ -1,8 +1,3 @@ -require 'pp' -require 'erb' -require 'pathname' -require 'optparse' -require 'refrepo/input_loader' require 'refrepo/hash/hash' # Compute cluster prefix diff --git a/lib/refrepo/gen/puppet/kavlang5k.rb b/lib/refrepo/gen/puppet/kavlang5k.rb index f79bfc9f7d026750f28fe03c1cfae6aad934b35c..b7c79b47b556def4b0ad8ef97374fb1614cf20ad 100755 --- a/lib/refrepo/gen/puppet/kavlang5k.rb +++ b/lib/refrepo/gen/puppet/kavlang5k.rb @@ -1,13 +1,5 @@ # !!! Require to "gem install ruby-ip", do not install "ip" gem !!! -require 'json' -require 'fileutils' - -require 'pp' -require 'yaml' -require 'pathname' -require 'optparse' -require 'refrepo/input_loader' require 'refrepo/hash/hash' def generate_puppet_kavlang5k(options) diff --git a/lib/refrepo/gen/puppet/lanpowerg5k.rb b/lib/refrepo/gen/puppet/lanpowerg5k.rb index c4d201948075f1d436abb34be24248b3087f3ac6..98f729682168729a3d26fba06f7b64c1d1c3ab18 100644 --- a/lib/refrepo/gen/puppet/lanpowerg5k.rb +++ b/lib/refrepo/gen/puppet/lanpowerg5k.rb @@ -1,10 +1,5 @@ # This script generates lanpowerg5k/files/<site_uid>/lanpower.conf from conf/console.yaml and conf/console-password.conf -require 'pp' -require 'yaml' -require 'pathname' -require 'optparse' -require 'refrepo/input_loader' require 'refrepo/hash/hash' def generate_puppet_lanpowerg5k(options) diff --git a/lib/refrepo/gen/reference-api.rb b/lib/refrepo/gen/reference-api.rb index 1cbcca0a2f53b6029d10e3b70489f97d5a29397b..6ce0f3f97f7d5e5fea0842178afac3650c1cac4a 100644 --- a/lib/refrepo/gen/reference-api.rb +++ b/lib/refrepo/gen/reference-api.rb @@ -1,14 +1,3 @@ -#!/usr/bin/ruby - -require 'pp' -require 'optparse' -require 'erb' -require 'fileutils' -require 'pathname' -require 'json' -require 'time' - -require 'refrepo/input_loader' require 'refrepo/valid/input/schema' require 'refrepo/valid/homogeneity' require 'refrepo/valid/input/monitoring' diff --git a/lib/refrepo/gen/wiki/generators/hardware.rb b/lib/refrepo/gen/wiki/generators/hardware.rb index 47c015d7fae721a60f0e87c44b38bb51f6811ddd..b79d74cf0fc599a5ef8033a930e7a7629cd6bc42 100644 --- a/lib/refrepo/gen/wiki/generators/hardware.rb +++ b/lib/refrepo/gen/wiki/generators/hardware.rb @@ -1,7 +1,6 @@ # coding: utf-8 -$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib'))) require 'refrepo/gen/wiki/wiki_generator' -require_relative './site_hardware.rb' +require 'refrepo/gen/wiki/generators/site_hardware' class G5KHardwareGenerator < WikiGenerator diff --git a/lib/refrepo/gen/wiki/generators/oar_properties.rb b/lib/refrepo/gen/wiki/generators/oar_properties.rb index fd95a35c1afb671b69bf4e4a91c7918005ec879d..0e04e594d66860bef3e4aecaf11a0399186077dc 100644 --- a/lib/refrepo/gen/wiki/generators/oar_properties.rb +++ b/lib/refrepo/gen/wiki/generators/oar_properties.rb @@ -1,8 +1,7 @@ # coding: utf-8 require 'refrepo/gen/wiki/wiki_generator' -$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../../../../generators/oar-properties/lib'))) -require 'lib-oar-properties' +require 'refrepo/gen/oar-properties' class OarPropertiesGenerator < WikiGenerator diff --git a/lib/refrepo/gen/wiki/generators/site_hardware.rb b/lib/refrepo/gen/wiki/generators/site_hardware.rb index c38b04d922919fc122ac5b2b398f286c71cfe410..f92da53335e029d618d65b4a10c4bdb6fe610934 100644 --- a/lib/refrepo/gen/wiki/generators/site_hardware.rb +++ b/lib/refrepo/gen/wiki/generators/site_hardware.rb @@ -1,5 +1,4 @@ # coding: utf-8 -$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib'))) require 'refrepo/gen/wiki/wiki_generator' class SiteHardwareGenerator < WikiGenerator diff --git a/lib/refrepo/gen/wiki/generators/site_network.rb b/lib/refrepo/gen/wiki/generators/site_network.rb index 4f0c222fcda1cfd5e47644bf2c9c4283d2c04d75..72952e33539afe18f86386caf01b5fc1831cdcc3 100644 --- a/lib/refrepo/gen/wiki/generators/site_network.rb +++ b/lib/refrepo/gen/wiki/generators/site_network.rb @@ -1,9 +1,6 @@ # coding: utf-8 -$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib'))) require 'refrepo/gen/wiki/wiki_generator' - -$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../../../../generators'))) -require 'input-validators/check-network-description' +require 'refrepo/valid/network' # This class generates the network description of each site, in .dot # and .png format diff --git a/lib/refrepo/gen/wiki/mw_utils.rb b/lib/refrepo/gen/wiki/mw_utils.rb index 0f158e084d4594e474b284bf3f5ddbd87801ad91..04a7415d9d6bbc872d70c416693020a510cd2a72 100644 --- a/lib/refrepo/gen/wiki/mw_utils.rb +++ b/lib/refrepo/gen/wiki/mw_utils.rb @@ -1,8 +1,3 @@ -require 'pp' -require 'open-uri' -require 'uri' -require 'net/http' -require 'net/https' require 'mediawiki_api' #Adding method to mediawiki_api client diff --git a/lib/refrepo/gen/wiki/wiki_generator.rb b/lib/refrepo/gen/wiki/wiki_generator.rb index de6a61e1d7c10948204a9e786c0f21f45ac13972..963c1237202d121bcf033c2941ea3a978466acab 100644 --- a/lib/refrepo/gen/wiki/wiki_generator.rb +++ b/lib/refrepo/gen/wiki/wiki_generator.rb @@ -1,12 +1,5 @@ -# also add generators/lib to load path -$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '../../lib'))) - -require 'refrepo/input_loader' -require "optparse" require "mediawiki_api" require "diffy" -require 'date' -require 'pp' class WikiGenerator diff --git a/lib/refrepo/input_loader.rb b/lib/refrepo/input_loader.rb index af68108e24a7cd5f44511741dd7d10bfc18969ab..6a3d8130cfd2bec3514639321f4fd9e8a65adbc6 100755 --- a/lib/refrepo/input_loader.rb +++ b/lib/refrepo/input_loader.rb @@ -1,8 +1,6 @@ # Load a hierarchy of YAML file into a Ruby hash -require 'yaml' -require 'erb' -require 'refrepo/hash/hash.rb' +require 'refrepo/hash/hash' def load_yaml_file_hierarchy(directory = File.expand_path("../../input/grid5000/", File.dirname(__FILE__))) diff --git a/lib/refrepo/valid/homogeneity.rb b/lib/refrepo/valid/homogeneity.rb index 2ed80a7d0de75b02aa3aa9497e10b8ff98d9722c..dd7787d7dfe501efd5e68821869a6a4797825721 100644 --- a/lib/refrepo/valid/homogeneity.rb +++ b/lib/refrepo/valid/homogeneity.rb @@ -1,16 +1,6 @@ -#!/usr/bin/ruby - # This script checks the cluster homogeneity -require 'pp' -require 'fileutils' -require 'pathname' require 'hashdiff' -require 'json' -require 'uri' -require 'net/https' - -require 'refrepo/input_loader' def global_ignore_keys diff --git a/lib/refrepo/valid/input/duplicates.rb b/lib/refrepo/valid/input/duplicates.rb index dc56a01443a690d1506a9f83b80fc06363d74450..a281b59e2a96f27077e55204eeaa4e92eb9fea5d 100644 --- a/lib/refrepo/valid/input/duplicates.rb +++ b/lib/refrepo/valid/input/duplicates.rb @@ -1,8 +1,3 @@ -#!/usr/bin/ruby - -require 'pp' -require 'refrepo/input_loader' - # replace default deep_merge before calling load_yaml_file_hierarchy class ::Hash def deep_merge(other_hash) diff --git a/lib/refrepo/valid/input/lib/schema_validator.rb b/lib/refrepo/valid/input/lib/schema_validator.rb index 6ed44f30b9aecdde69275f626678941cef17307d..c5c357f8d54a28218166d6df662207d753018dce 100644 --- a/lib/refrepo/valid/input/lib/schema_validator.rb +++ b/lib/refrepo/valid/input/lib/schema_validator.rb @@ -8,7 +8,6 @@ dir = Pathname(__FILE__).parent -require 'json' require 'hash_validator' # https://github.com/jamesbrooks/hash_validator require "#{dir}/multihash_validator" # custom validator for <multi>-keys Hash support require "#{dir}/array_validator" # custom validator for <array> support diff --git a/lib/refrepo/valid/input/schema.rb b/lib/refrepo/valid/input/schema.rb index ac866d3e1fd01dedb6c3ce7099a5ba13ef0f250c..0dfd8c430e65440deba5c2d5dea0f91ecc52e04f 100644 --- a/lib/refrepo/valid/input/schema.rb +++ b/lib/refrepo/valid/input/schema.rb @@ -1,10 +1,3 @@ -#!/usr/bin/ruby - -require 'fileutils' -require 'pathname' - -require 'refrepo/input_loader' - require_relative "./lib/schema_validator" def run_validator(uid, data, schema) diff --git a/lib/refrepo/valid/network.rb b/lib/refrepo/valid/network.rb index 59493cc5fa0a36b8c480c438bbd8cb518fbd283a..ee5bc8c098219653505e6c1875e0ec066db17d9a 100644 --- a/lib/refrepo/valid/network.rb +++ b/lib/refrepo/valid/network.rb @@ -1,13 +1,9 @@ -#!/usr/bin/ruby # coding: utf-8 # This script checks the network description for inconsistencies # This script needs 'nodeset' and 'dot' programs, which are available # in clustershell and graphviz debian packages -require 'json' -require 'pp' - # FIXME infiniband equipment is not completely described in the ref-api yet. See Bug 8586 HPC_SWITCHES = ['ib-grenoble', 'voltaire-1', 'voltaire-2', 'voltaire-3', 'sgraoullyib', 'sgrapheneib', 'sw-myrinet', 'sgrele-opf'] diff --git a/lib/refrepo/valid/oar-properties.rb b/lib/refrepo/valid/oar-properties.rb index bfa219641b2b21098d97152faa34bc7804207a05..4d63936ea8e060f5682a9cd2e6d41622abaec4f3 100755 --- a/lib/refrepo/valid/oar-properties.rb +++ b/lib/refrepo/valid/oar-properties.rb @@ -1,19 +1,7 @@ -#!/usr/bin/ruby # coding: utf-8 -require 'pp' -require 'erb' -require 'fileutils' -require 'pathname' -require 'json' -require 'time' -require 'yaml' -require 'set' -require 'hashdiff' -require 'optparse' require 'net/ssh' -require 'open-uri' -require 'refrepo/utils' +require 'hashdiff' # propriétés ignorées IGNORED_PROPERTIES=%w{chassis chunks thread}