class Bosh::Cli::LogsDownloader

Public Class Methods

new(director, ui) click to toggle source
# File lib/cli/logs_downloader.rb, line 3
def initialize(director, ui)
  @director = director
  @ui = ui
end

Public Instance Methods

build_destination_path(job_name, job_index_or_id, directory) click to toggle source
# File lib/cli/logs_downloader.rb, line 8
def build_destination_path(job_name, job_index_or_id, directory)
  time = Time.now.strftime('%Y-%m-%d-%H-%M-%S')
  File.join(directory, "#{job_name}.#{job_index_or_id}.#{time}.tgz")
end
download(resource_id, logs_destination_path) click to toggle source
# File lib/cli/logs_downloader.rb, line 13
def download(resource_id, logs_destination_path)
  @ui.say("Downloading log bundle (#{resource_id.to_s.make_green})...")
  @ui.nl

  begin
    tmp_file = @director.download_resource(resource_id)

    FileUtils.mv(tmp_file, logs_destination_path)

    @ui.say("Logs saved in '#{logs_destination_path.make_green}'")
    @ui.nl

  rescue Bosh::Cli::DirectorError => e
    @ui.err("Unable to download logs from director: #{e}")

  ensure
    FileUtils.rm_rf(tmp_file) if tmp_file
  end
end