class TnS3FileUploader::Runner

Public Class Methods

new(options) click to toggle source
# File lib/tn_s3_file_uploader/runner.rb, line 9
def initialize(options)
  @options = options
  @error_report_manager = ErrorReportManager.instance
end

Public Instance Methods

run() click to toggle source
# File lib/tn_s3_file_uploader/runner.rb, line 14
def run
  add_log_error_reporter
  add_honeybadger
  Log.log "Running TnS3FileUploader..." if @options[:verbose]

  upload
rescue => e
  @error_report_manager.report_error(e, { :options => @options } )
rescue Exception => e
  @error_report_manager.report_error(e, { :options => @options } )
  raise
end

Private Instance Methods

add_honeybadger() click to toggle source
# File lib/tn_s3_file_uploader/runner.rb, line 59
def add_honeybadger
  unless @options[:honeybadger_api_key].nil?
    honeybadger_error_reporter = HoneybadgerErrorReporter.new(@options[:honeybadger_api_key])
    @error_report_manager.register_error_reporter(honeybadger_error_reporter)
  end
end
add_log_error_reporter() click to toggle source
# File lib/tn_s3_file_uploader/runner.rb, line 55
def add_log_error_reporter
  @error_report_manager.register_error_reporter(LogErrorReporter.new(STDOUT))
end
create_s3_client() click to toggle source
# File lib/tn_s3_file_uploader/runner.rb, line 44
def create_s3_client
  if @options[:aws_access_key_id].nil? && @options[:aws_secret_access_key].nil?
    AWS::S3.new
  else
    AWS::S3.new(
        :access_key_id => @options[:aws_access_key_id],
        :secret_access_key => @options[:aws_secret_access_key]
    )
  end
end
upload() click to toggle source
# File lib/tn_s3_file_uploader/runner.rb, line 29
def upload
  if @options[:verbose]
    Log.log "Using:"
    Log.log "log file pattern = #{ @options[:input_file_pattern] }"
    Log.log "s3 dest folder = #{ @options[:s3_output_pattern] }"
    Log.log "file timestamp resolution = #{ @options[:file_timestamp_resolution] }"
  end

  s3_client = create_s3_client
  s3 = S3.new(s3_client)

  log_uploader = LogUploader.new(s3)
  log_uploader.upload_log_files(@options)
end