Class: BoshJobDocker::ReleaseTarball

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh_job_docker/release_tarball.rb

Overview

A BOSH release tarball.

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ ReleaseTarball

Returns a new instance of ReleaseTarball.



13
14
15
16
17
18
19
# File 'lib/bosh_job_docker/release_tarball.rb', line 13

def initialize(path)
  @work_dir = Dir.mktmpdir
  @extracter = TarExtracter.new

  extracter.extract(path, work_dir)
  @resolver = PackageDepResolver.new(release_manifest)
end

Instance Method Details

#build_order(job) ⇒ Object



30
31
32
33
34
# File 'lib/bosh_job_docker/release_tarball.rb', line 30

def build_order(job)
  job_packages(job).reduce([]) do |order, p|
    order + resolver.package_deps(p)
  end.uniq
end

#extract_package(package, dest) ⇒ Object



25
26
27
28
# File 'lib/bosh_job_docker/release_tarball.rb', line 25

def extract_package(package, dest)
  FileUtils.mkdir_p(dest)
  extracter.extract(package_tarball_path(package), dest)
end

#release_manifestObject



21
22
23
# File 'lib/bosh_job_docker/release_tarball.rb', line 21

def release_manifest
  YAML.load_file(File.join(work_dir, 'release.MF'))
end