X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=Rakefile;h=8906d23cd84bcc05501e0b829e45f12035a53aff;hb=0f9327bbf4c71f346a51eb554ba116f93ff26177;hp=ab25667afa062421cdaacb2ab1d39d914f32ceaa;hpb=95beb15266d52e8f91a60b4cbe6d5086959b6b22;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/Rakefile b/Rakefile index ab25667..8906d23 100644 --- a/Rakefile +++ b/Rakefile @@ -1,91 +1,42 @@ -require 'rake' -require 'rspec/core/rake_task' -require 'yaml' - -task :default => [:spec] - -desc "Run all module spec tests (Requires rspec-puppet gem)" -RSpec::Core::RakeTask.new(:spec) do |t| - t.rspec_opts = ['--color'] - t.pattern = 'spec/{classes,defines,unit}/**/*_spec.rb' -end - -# This is a helper for the self-symlink entry of fixtures.yml -def source_dir - File.dirname(__FILE__) -end - -def fixtures(category) - begin - fixtures = YAML.load_file(".fixtures.yml")["fixtures"] - rescue Errno::ENOENT - return {} - end - - if not fixtures - abort("malformed fixtures.yml") - end - - result = {} - if fixtures.include? category - fixtures[category].each do |fixture, source| - target = "spec/fixtures/modules/#{fixture}" - real_source = eval('"'+source+'"') - result[real_source] = target - end - end - return result -end - -desc "Create the fixtures directory" -task :spec_prep do - fixtures("repositories").each do |repo, target| - File::exists?(target) || system("git clone #{repo} #{target}") - end - - FileUtils::mkdir_p("spec/fixtures/modules") - fixtures("symlinks").each do |source, target| - File::exists?(target) || FileUtils::ln_s(source, target) - end -end - -desc "Clean up the fixtures directory" -task :spec_clean do - fixtures("repositories").each do |repo, target| - FileUtils::rm_rf(target) - end - - fixtures("symlinks").each do |source, target| - FileUtils::rm(target) - end -end - -task :spec_full do - Rake::Task[:spec_prep].invoke - Rake::Task[:spec].invoke - Rake::Task[:spec_clean].invoke -end - -desc "Build puppet module package" -task :build do - # This will be deprecated once puppet-module is a face. - begin - Gem::Specification.find_by_name('puppet-module') - rescue Gem::LoadError, NoMethodError - require 'puppet/face' - pmod = Puppet::Face['module', :current] - pmod.build('./') - end -end - -desc "Clean a built module package" -task :clean do - FileUtils.rm_rf("pkg/") -end - -desc "Check puppet manifests with puppet-lint" -task :lint do - # This requires pull request: https://github.com/rodjek/puppet-lint/pull/81 - system("puppet-lint manifests") - system("puppet-lint tests") +require 'puppet_blacksmith/rake_tasks' +require 'puppet-lint/tasks/puppet-lint' +require 'puppetlabs_spec_helper/rake_tasks' + +PuppetLint.configuration.fail_on_warnings = true +PuppetLint.configuration.send('relative') +PuppetLint.configuration.send('disable_140chars') +PuppetLint.configuration.send('disable_class_inherits_from_params_class') +PuppetLint.configuration.send('disable_documentation') +PuppetLint.configuration.send('disable_single_quote_string_with_variables') +PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp", "bundle/**/*", "vendor/**/*"] + +desc 'Generate pooler nodesets' +task :gen_nodeset do + require 'beaker-hostgenerator' + require 'securerandom' + require 'fileutils' + + agent_target = ENV['TEST_TARGET'] + if ! agent_target + STDERR.puts 'TEST_TARGET environment variable is not set' + STDERR.puts 'setting to default value of "redhat-64default."' + agent_target = 'redhat-64default.' + end + + master_target = ENV['MASTER_TEST_TARGET'] + if ! master_target + STDERR.puts 'MASTER_TEST_TARGET environment variable is not set' + STDERR.puts 'setting to default value of "redhat7-64mdcl"' + master_target = 'redhat7-64mdcl' + end + + targets = "#{master_target}-#{agent_target}" + cli = BeakerHostGenerator::CLI.new([targets]) + nodeset_dir = "tmp/nodesets" + nodeset = "#{nodeset_dir}/#{targets}-#{SecureRandom.uuid}.yaml" + FileUtils.mkdir_p(nodeset_dir) + File.open(nodeset, 'w') do |fh| + fh.print(cli.execute) + end + puts nodeset end