class Bosh::Director::CompiledReleaseDownloader
Public Class Methods
new(compiled_packages_group, templates, blobstore_client)
click to toggle source
# File lib/bosh/director/compiled_release_downloader.rb, line 7 def initialize(compiled_packages_group, templates, blobstore_client) @compiled_packages_group = compiled_packages_group @templates = templates @blobstore_client = blobstore_client end
Public Instance Methods
cleanup()
click to toggle source
# File lib/bosh/director/compiled_release_downloader.rb, line 49 def cleanup FileUtils.rm_rf(@download_dir) end
download()
click to toggle source
# File lib/bosh/director/compiled_release_downloader.rb, line 13 def download @download_dir = Dir.mktmpdir path = File.join(@download_dir, 'compiled_packages') FileUtils.mkpath(path) compiled_packages = @compiled_packages_group.compiled_packages event_log_stage = event_log.begin_stage("copying packages", compiled_packages.count) compiled_packages.each do |compiled_package| desc = "#{compiled_package.package.name}/#{compiled_package.package.version}" event_log_stage.advance_and_track(desc) do blobstore_id = compiled_package.blobstore_id File.open(File.join(path, "#{compiled_package.package.name}.tgz"), 'w') do |f| @blobstore_client.get(blobstore_id, f, sha1: compiled_package.sha1) end end end path = File.join(@download_dir, 'jobs') FileUtils.mkpath(path) event_log_stage = event_log.begin_stage("copying jobs", @templates.count) @templates.each do |template| desc = "#{template.name}/#{template.version}" event_log_stage.advance_and_track(desc) do blobstore_id = template.blobstore_id File.open(File.join(path, "#{template.name}.tgz"), 'w') do |f| @blobstore_client.get(blobstore_id, f, sha1: template.sha1) end end end @download_dir end
event_log()
click to toggle source
# File lib/bosh/director/compiled_release_downloader.rb, line 53 def event_log @event_log ||= Config.event_log end