Class: Bosh::Director::CompiledReleaseDownloader

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh/director/compiled_release_downloader.rb

Instance Method Summary collapse

Constructor Details

#initialize(compiled_packages_group, templates, blobstore_client) ⇒ CompiledReleaseDownloader

Returns a new instance of CompiledReleaseDownloader.



7
8
9
10
11
# 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

Instance Method Details

#cleanupObject



39
40
41
# File 'lib/bosh/director/compiled_release_downloader.rb', line 39

def cleanup
  FileUtils.rm_rf(@download_dir)
end

#downloadObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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_group.compiled_packages.each do |compiled_package|
    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

  path = File.join(@download_dir, 'jobs')
  FileUtils.mkpath(path)

  @templates.each do |template|
    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

  @download_dir
end