X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fspec_helper_acceptance.rb;h=73a02388a0c14dff7f2d78432aed22684aeb7257;hb=refs%2Fheads%2Frelease-prep;hp=7cd8fdffe9331f6cd6cd614ac23a60c01af39d19;hpb=43a4d26621e807a1389c18e09d588f54d3f08727;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb index 7cd8fdf..73a0238 100644 --- a/spec/spec_helper_acceptance.rb +++ b/spec/spec_helper_acceptance.rb @@ -1,101 +1,6 @@ # frozen_string_literal: true -require 'serverspec' require 'puppet_litmus' -require 'spec_helper_acceptance_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_acceptance_local.rb')) -include PuppetLitmus - -UNSUPPORTED_PLATFORMS = ['RedHat', 'Suse', 'windows', 'AIX', 'Solaris'].freeze -MAX_RETRY_COUNT = 5 -RETRY_WAIT = 3 -ERROR_MATCHER = %r{(no valid OpenPGP data found|keyserver timed out|keyserver receive failed)} - -# This method allows a block to be passed in and if an exception is raised -# that matches the 'error_matcher' matcher, the block will wait a set number -# of seconds before retrying. -# Params: -# - max_retry_count - Max number of retries -# - retry_wait_interval_secs - Number of seconds to wait before retry -# - error_matcher - Matcher which the exception raised must match to allow retry -# Example Usage: -# retry_on_error_matching(3, 5, /OpenGPG Error/) do -# apply_manifest(pp, :catch_failures => true) -# end -def retry_on_error_matching(max_retry_count = MAX_RETRY_COUNT, retry_wait_interval_secs = RETRY_WAIT, error_matcher = ERROR_MATCHER) - try = 0 - begin - puts "retry_on_error_matching: try #{try}" unless try.zero? - try += 1 - yield - rescue StandardError => e - raise(_('Attempted this %{value0} times. Raising %{value1}') % { value0: max_retry_count, value1: e }) unless try < max_retry_count && (error_matcher.nil? || e.message =~ error_matcher) - sleep retry_wait_interval_secs - retry - end -end - -def pe_install? - false -end - -if ENV['TARGET_HOST'].nil? || ENV['TARGET_HOST'] == 'localhost' - puts 'Running tests against this machine !' - if Gem.win_platform? - set :backend, :cmd - else - set :backend, :exec - end -else - # load inventory - inventory_hash = inventory_hash_from_inventory_file - node_config = config_from_node(inventory_hash, ENV['TARGET_HOST']) - - if target_in_group(inventory_hash, ENV['TARGET_HOST'], 'docker_nodes') - host = ENV['TARGET_HOST'] - set :backend, :docker - set :docker_container, host - elsif target_in_group(inventory_hash, ENV['TARGET_HOST'], 'ssh_nodes') - set :backend, :ssh - options = Net::SSH::Config.for(host) - options[:user] = node_config.dig('ssh', 'user') unless node_config.dig('ssh', 'user').nil? - options[:port] = node_config.dig('ssh', 'port') unless node_config.dig('ssh', 'port').nil? - options[:keys] = node_config.dig('ssh', 'private-key') unless node_config.dig('ssh', 'private-key').nil? - options[:password] = node_config.dig('ssh', 'password') unless node_config.dig('ssh', 'password').nil? - options[:verify_host_key] = Net::SSH::Verifiers::Null.new unless node_config.dig('ssh', 'host-key-check').nil? - host = if ENV['TARGET_HOST'].include?(':') - ENV['TARGET_HOST'].split(':').first - else - ENV['TARGET_HOST'] - end - set :host, options[:host_name] || host - set :ssh_options, options - set :request_pty, true - elsif target_in_group(inventory_hash, ENV['TARGET_HOST'], 'winrm_nodes') - require 'winrm' +PuppetLitmus.configure! - set :backend, :winrm - set :os, family: 'windows' - user = node_config.dig('winrm', 'user') unless node_config.dig('winrm', 'user').nil? - pass = node_config.dig('winrm', 'password') unless node_config.dig('winrm', 'password').nil? - endpoint = "http://#{ENV['TARGET_HOST']}:5985/wsman" - - opts = { - user: user, - password: pass, - endpoint: endpoint, - operation_timeout: 300, - } - - winrm = WinRM::Connection.new opts - Specinfra.configuration.winrm = winrm - end - - lsb_package = <<-MANIFEST - package { 'lsb-release': - ensure => installed, - } - MANIFEST - - apply_manifest(lsb_package) - run_shell('puppet module install stahnma/epel') -end +require 'spec_helper_acceptance_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_acceptance_local.rb'))