Class: PEBuild::Archive
- Inherits:
-
Object
- Object
- PEBuild::Archive
- Includes:
- Idempotent
- Defined in:
- lib/pe_build/archive.rb
Overview
Represents a packed Puppet Enterprise archive
Instance Attribute Summary collapse
-
#env ⇒ Object
Returns the value of attribute env.
-
#filename ⇒ String
The filename.
-
#version ⇒ String
The version of Puppet Enterprise.
Instance Method Summary collapse
- #exist? ⇒ Boolean
- #fetch(str) ⇒ Object
-
#initialize(filename, env) ⇒ Archive
constructor
A new instance of Archive.
- #installer_dir ⇒ Object
- #to_s ⇒ Object
- #unpack_to(fs_dir) ⇒ Object
Methods included from Idempotent
Constructor Details
#initialize(filename, env) ⇒ Archive
Returns a new instance of Archive.
38 39 40 41 42 43 44 45 |
# File 'lib/pe_build/archive.rb', line 38 def initialize(filename, env) @filename = filename @env = env @archive_dir = PEBuild.archive_directory(@env) @logger = Log4r::Logger.new('vagrant::pe_build::archive') end |
Instance Attribute Details
#env ⇒ Object
Returns the value of attribute env.
34 35 36 |
# File 'lib/pe_build/archive.rb', line 34 def env @env end |
#filename ⇒ String
Returns The filename. Thing.
32 33 34 |
# File 'lib/pe_build/archive.rb', line 32 def filename @filename end |
#version ⇒ String
Returns The version of Puppet Enterprise.
28 29 30 |
# File 'lib/pe_build/archive.rb', line 28 def version @version end |
Instance Method Details
#exist? ⇒ Boolean
85 86 87 |
# File 'lib/pe_build/archive.rb', line 85 def exist? File.exist? archive_path end |
#fetch(str) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/pe_build/archive.rb', line 48 def fetch(str) return if self.exist? if str.nil? @env.ui.error "Cannot fetch installer #{versioned_path @filename}; no download source available." @env.ui.error "" @env.ui.error "Installers available for use:" collection = PEBuild::ArchiveCollection.new(@archive_dir, @env) collection.display raise PEBuild::ArchiveNoInstallerSource, :filename => versioned_path(@filename) end uri = URI.parse(versioned_path("#{str}/#{@filename}")) dst = File.join(@archive_dir, versioned_path(@filename)) transfer = PEBuild::Transfer.generate(uri, dst) transfer.copy end |
#installer_dir ⇒ Object
93 94 95 |
# File 'lib/pe_build/archive.rb', line 93 def installer_dir versioned_path(@filename).gsub(/.tar(?:\.gz)?/, '') end |
#to_s ⇒ Object
89 90 91 |
# File 'lib/pe_build/archive.rb', line 89 def to_s versioned_path(@filename) end |
#unpack_to(fs_dir) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/pe_build/archive.rb', line 70 def unpack_to(fs_dir) unless exist? raise PEBuild::ArchiveMissing, :filename => @filename end archive = PEBuild::Unpack.generate(archive_path, fs_dir) begin idempotent(archive.creates, "Unpacked archive #{versioned_path filename}") do archive.unpack end rescue Zlib::GzipFile::Error => e raise PEBuild::ArchiveUnreadable, :filename => @filename, :message => e. end end |