more detailed update exception

This commit is contained in:
Christian Mehlmauer
2016-08-12 20:54:24 +02:00
parent 19b15b5327
commit 22d69a1bf9
3 changed files with 30 additions and 1 deletions

View File

@@ -80,6 +80,15 @@ class DbUpdater
local_file_checksum(filename) local_file_checksum(filename)
end end
def get_cloudflare_info
begin
res = Browser.get(remote_file_url('/cdn-cgi/trace'), request_params)
res.body
rescue
nil
end
end
def update(verbose = false) def update(verbose = false)
FILES.each do |filename| FILES.each do |filename|
begin begin
@@ -101,7 +110,7 @@ class DbUpdater
puts " [i] Database File Checksum : #{db_checksum}" if verbose puts " [i] Database File Checksum : #{db_checksum}" if verbose
unless dl_checksum == db_checksum unless dl_checksum == db_checksum
fail "#{filename}: checksums do not match (local: #{dl_checksum} remote: #{db_checksum})" raise ChecksumError.new(File.read(local_file_path(filename)), get_cloudflare_info), "#{filename}: checksums do not match (local: #{dl_checksum} remote: #{db_checksum})"
end end
rescue => e rescue => e
puts ' [i] Restoring Backup due to error' if verbose puts ' [i] Restoring Backup due to error' if verbose

View File

@@ -31,3 +31,12 @@ class DownloadError < HttpError
"Unable to get #{failure_details}" "Unable to get #{failure_details}"
end end
end end
class ChecksumError < StandardError
attr_reader :file, :cloudflare_info
def initialize(file, cloudflare_info)
@file = file
@cloudflare_info = cloudflare_info
end
end

View File

@@ -454,6 +454,17 @@ def main
rescue Interrupt rescue Interrupt
# do nothing on interrupt # do nothing on interrupt
# Error on Updating
rescue ChecksumError => e
puts critical(e.message)
puts critical('Downloaded File Content:')
puts e.file[0..500]
puts '.........'
puts
puts critical('Cloudflare Info:')
puts e.cloudflare_info
puts
puts critical('Please submit this info as an Github issue')
rescue => e rescue => e
puts puts
puts critical(e.message) puts critical(e.message)