lib/filbunke/client.rb in filbunke-1.13.4 vs lib/filbunke/client.rb in filbunke-1.13.5

- old
+ new

@@ -25,11 +25,20 @@ def with_updated_files(last_checkpoint) updates = get_updated_file_list(last_checkpoint) updated_files = updates["files"] || [] new_checkpoint = updates["checkpoint"] if updated_files.empty? - return last_checkpoint + if updates.key?("files") + return begin + fetch_remote_last_checkpoint + rescue => e + @logger.warn "Failed to fetch remote last_checkpoint #{@repository.name} will fall back to local last_checkpoint=#{last_checkpoint}" + last_checkpoint + end + else + return last_checkpoint + end end @logger.info "Updating repository: #{@repository.name}: #{updated_files.size} files. Checkpoint: #{last_checkpoint} ==> #{new_checkpoint}" @async_requests = [] callbacks_on_update = [] @@ -148,10 +157,10 @@ raise "Failed to touch repository: #{@repository.name}" end end end - def last_checkpoint + def fetch_remote_last_checkpoint last_checkpoint_http = Net::HTTP.new(@repository.host, @repository.port) last_checkpoint_http.start do |http| last_checkpoint_path = "/#{UPDATES_ACTION}/#{@repository.name}/#{LAST_CHECKPOINT_ACTION}" request = Net::HTTP::Get.new(last_checkpoint_path) response = http.request(request)