diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/quiet_opener.rb | 4 | ||||
-rw-r--r-- | lib/tasks/temp.rake | 49 |
2 files changed, 41 insertions, 12 deletions
diff --git a/lib/quiet_opener.rb b/lib/quiet_opener.rb index 8cedad250..bde645d0b 100644 --- a/lib/quiet_opener.rb +++ b/lib/quiet_opener.rb @@ -5,7 +5,7 @@ require 'net/http/local' def quietly_try_to_open(url) begin result = open(url).read.strip - rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH + rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET Rails.logger.warn("Unable to open third-party URL #{url}") result = "" end @@ -24,7 +24,7 @@ def quietly_try_to_purge(host, url) result_body = response.body } end - rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH + rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET Rails.logger.warn("PURGE: Unable to reach host #{host}") end if result == "200" diff --git a/lib/tasks/temp.rake b/lib/tasks/temp.rake index ce04c7ddd..9decc13db 100644 --- a/lib/tasks/temp.rake +++ b/lib/tasks/temp.rake @@ -1,15 +1,44 @@ namespace :temp do - desc "Remove plaintext passwords from post_redirect params" - task :remove_post_redirect_passwords => :environment do - PostRedirect.find_each(:conditions => ['post_params_yaml is not null']) do |post_redirect| - if post_redirect.post_params && post_redirect.post_params[:signchangeemail] && post_redirect.post_params[:signchangeemail][:password] - params = post_redirect.post_params - params[:signchangeemail].delete(:password) - post_redirect.post_params = params - post_redirect.save! - end + desc "Remove plaintext passwords from post_redirect params" + task :remove_post_redirect_passwords => :environment do + PostRedirect.find_each(:conditions => ['post_params_yaml is not null']) do |post_redirect| + if post_redirect.post_params && post_redirect.post_params[:signchangeemail] && post_redirect.post_params[:signchangeemail][:password] + params = post_redirect.post_params + params[:signchangeemail].delete(:password) + post_redirect.post_params = params + post_redirect.save! + end + end + end + + desc 'Remove file caches for requests that are not publicly visible or have been destroyed' + task :remove_obsolete_info_request_caches => :environment do + dryrun = ENV['DRYRUN'] == '0' ? false : true + verbose = ENV['VERBOSE'] == '0' ? false : true + if dryrun + puts "Running in dryrun mode" + end + request_cache_path = File.join(Rails.root, 'cache', 'views', 'request', '*', '*') + Dir.glob(request_cache_path) do |request_subdir| + info_request_id = File.basename(request_subdir) + puts "Looking for InfoRequest with id #{info_request_id}" if verbose + begin + info_request = InfoRequest.find(info_request_id) + puts "Got InfoRequest #{info_request_id}" if verbose + if ! info_request.all_can_view? + puts "Deleting cache at #{request_subdir} for hidden/requester_only InfoRequest #{info_request_id}" + if ! dryrun + FileUtils.rm_rf(request_subdir) + end + end + rescue ActiveRecord::RecordNotFound + puts "Deleting cache at #{request_subdir} for deleted InfoRequest #{info_request_id}" + if ! dryrun + FileUtils.rm_rf(request_subdir) + end + end + end end - end end |