diff --git a/qa/rspec/commands/base.rb b/qa/rspec/commands/base.rb index 1fe62499d..3f06c2a02 100644 --- a/qa/rspec/commands/base.rb +++ b/qa/rspec/commands/base.rb @@ -4,6 +4,8 @@ require_relative "system_helpers" module ServiceTester + class InstallException < Exception; end + class Base LOCATION="/logstash-build".freeze LOGSTASH_PATH="/usr/share/logstash/".freeze diff --git a/qa/rspec/commands/debian.rb b/qa/rspec/commands/debian.rb index 6ddbd0824..30fa8c8da 100644 --- a/qa/rspec/commands/debian.rb +++ b/qa/rspec/commands/debian.rb @@ -22,9 +22,14 @@ module ServiceTester def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) + errors = [] at(hosts, {in: :serial}) do |_| - sudo_exec!("dpkg -i --force-confnew #{package}") + cmd = sudo_exec!("dpkg -i --force-confnew #{package}") + if cmd.exit_status != 0 + errors << cmd.stderr.to_s + end end + raise InstallException.new(errors.join("\n")) unless errors.empty? end def uninstall(package, host=nil) diff --git a/qa/rspec/commands/redhat.rb b/qa/rspec/commands/redhat.rb index 67ec8143a..eebba934b 100644 --- a/qa/rspec/commands/redhat.rb +++ b/qa/rspec/commands/redhat.rb @@ -22,12 +22,12 @@ module ServiceTester def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) - errors = {} + errors = [] at(hosts, {in: :serial}) do |_host| cmd = sudo_exec!("yum install -y #{package}") - errors[_host] = cmd.stderr unless cmd.stderr.empty? + errors << cmd.stderr unless cmd.stderr.empty? end - errors + raise InstallException.new(errors.join("\n")) unless errors.empty? end def uninstall(package, host=nil) diff --git a/qa/rspec/commands/suse.rb b/qa/rspec/commands/suse.rb index 028d9a5ca..5db5e47a3 100644 --- a/qa/rspec/commands/suse.rb +++ b/qa/rspec/commands/suse.rb @@ -19,12 +19,12 @@ module ServiceTester def install(package, host=nil) hosts = (host.nil? ? servers : Array(host)) - errors = {} + errors = [] at(hosts, {in: :serial}) do |_host| cmd = sudo_exec!("zypper --no-gpg-checks --non-interactive install #{package}") - errors[_host] = cmd.stderr unless cmd.stderr.empty? + errors << cmd.stderr unless cmd.stderr.empty? end - errors + raise InstallException.new(errors.join("\n")) unless errors.empty? end def uninstall(package, host=nil)