diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/leap_cli/log.rb | 1 | ||||
| -rw-r--r-- | lib/leap_cli/remote/tasks.rb | 13 | 
2 files changed, 13 insertions, 1 deletions
| diff --git a/lib/leap_cli/log.rb b/lib/leap_cli/log.rb index 69e9f67..f496b9a 100644 --- a/lib/leap_cli/log.rb +++ b/lib/leap_cli/log.rb @@ -80,6 +80,7 @@ module LeapCli        if title          prefix_options = case title            when :error     then ['error', :red, :bold] +          when :fatal_error then ['fatal error', :red, :bold]            when :warning   then ['warning:', :yellow, :bold]            when :info      then ['info', :cyan, :bold]            when :updated   then ['updated', :cyan, :bold] diff --git a/lib/leap_cli/remote/tasks.rb b/lib/leap_cli/remote/tasks.rb index 0a12a95..e66b0a8 100644 --- a/lib/leap_cli/remote/tasks.rb +++ b/lib/leap_cli/remote/tasks.rb @@ -30,12 +30,23 @@ task :install_insecure_vagrant_key, :max_hosts => MAX_HOSTS do    end  end +BAD_APT_GET_UPDATE = /(BADSIG|NO_PUBKEY|KEYEXPIRED|REVKEYSIG|NODATA)/ +  task :install_prerequisites, :max_hosts => MAX_HOSTS do    apt_get = "DEBIAN_FRONTEND=noninteractive apt-get -q -y -o DPkg::Options::=--force-confold"    leap.mkdirs LeapCli::PUPPET_DESTINATION    run "echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen"    leap.log :updating, "package list" do -    run "apt-get update" +    run "apt-get update" do |channel, stream, data| +      # sadly exitcode is unreliable measure if apt-get update hit a failure. +      if data =~ BAD_APT_GET_UPDATE +        LeapCli::Util.bail! do +          LeapCli::Util.log :fatal_error, "in `apt-get update`: #{data}", :host => channel[:host] +        end +      else +        logger.log(1, data, channel[:host]) +      end +    end    end    leap.log :updating, "server time" do      run "( test -f /etc/init.d/ntp && /etc/init.d/ntp stop ) || true" | 
