beaker 2.34.0 → 2.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NmU2OTY2MTQ3ZWU5Y2U4NDk1ZjRlYTY3MWRiYWZkZmVlMWUyODhlOQ==
4
+ MzUxMTk0ODg1NjgxNDFkYzQ2ZDMzZTc5MjYxMDNkOTg1ODc1YmZlMg==
5
5
  data.tar.gz: !binary |-
6
- ZTlkNzcxYjc0YTMxMzgwODhiOGZhZDQ3Mzg5NjZlNTViMTFkZDI5YQ==
6
+ M2Q4ZTQ3MjcyZmE3ZTA5YTdlMmYyYjdkMzFjZTAxMDMxMTRkMDUwNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MmI5N2ViNjA2MWU4M2VkNzJlNzJhMjU5NWFjMGJjNTM2ZTI4MGU4Mzc5YWEx
10
- OGVkMjM1NDlhOGI1Y2Q0OTYwNjBiNGQ3NWE1Nzg2M2IxNmJmM2NhYzNjOWU4
11
- MzRlNGVmZDkwNWFlYTFmODM4NTAyY2RmZjkyNmYxNDQ3MjY3MmE=
9
+ NDljNGJlOWRkNTI2NDkyM2JiZGI0ODY2YWVjYWZmZWEyYjRjMGIyMDE2YTZm
10
+ OTMwYzJkOTQ4M2VmNmExYzQ5ZTI3YzkwMTkwMDMwZDIxOTFlYWI3Y2RmZDky
11
+ ZGEzNTcxMWUzODljODA1MTA0YTFkMDZhMzczZjE3MjE0ZjVjZDY=
12
12
  data.tar.gz: !binary |-
13
- MWU3MmI2ZjM0OWQ4M2M3NTQ1OTg4MTcyYTg0Nzc1MjBjMGQzZjdkZWVhN2Fm
14
- NDkxMjJjNjg3NWVmZTQzMWRmZTBjOTgyMWU3YWY3ODM1YmQ4YjY4N2ExNGE0
15
- ZDVjMjRiZGVhODU2MDBiMWU4Y2FmY2Y4YmQ2N2U5ZTllYWVmYjE=
13
+ YjE1MDQxMWYyYmMzMWM2NjdlZjFmYzQ5ZmU4YWE5YWEyNDQ4MzRkZGYzZTcw
14
+ NDAxM2YxZTdjYTZjYmIwYjBkMmI5NWE0OGM3N2IwYzljZDgwMzJlZTc3NGIx
15
+ YzJjNzI1ZDJhMDVlY2FmZGRiNDcwNTRmNGE3ZDgwNGUzMDc2MWU=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 10 Feb, 2016 (78b7dd79)](#LATEST)
3
+ * [LATEST - 24 Feb, 2016 (e714b1eb)](#LATEST)
4
+ * [2.34.0 - 10 Feb, 2016 (b897a98a)](#2.34.0)
4
5
  * [2.33.0 - 27 Jan, 2016 (0dd8505a)](#2.33.0)
5
6
  * [2.32.1 - 14 Jan, 2016 (8c394fdb)](#2.32.1)
6
7
  * [2.32.0 - 12 Jan, 2016 (80e153cc)](#2.32.0)
@@ -109,7 +110,99 @@
109
110
  * [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
110
111
 
111
112
  ## Details
112
- ### <a name = "LATEST">LATEST - 10 Feb, 2016 (78b7dd79)
113
+ ### <a name = "LATEST">LATEST - 24 Feb, 2016 (e714b1eb)
114
+
115
+ * (GEM) update beaker version to 2.35.0 (e714b1eb)
116
+
117
+ * Merge pull request #1067 from kevpl/bkr693_solaris_install (539de014)
118
+
119
+
120
+ ```
121
+ Merge pull request #1067 from kevpl/bkr693_solaris_install
122
+
123
+ (BKR-693) solaris install puppet-agent from PE promoted repo fix
124
+ ```
125
+ * Merge pull request #1069 from pinkypie/BKR-99 (875f984f)
126
+
127
+
128
+ ```
129
+ Merge pull request #1069 from pinkypie/BKR-99
130
+
131
+ (BKR-99) - Populate host[:timesync] with host configured value.
132
+ ```
133
+ * Merge pull request #1065 from op-ct/BKR-704_relative_docker_mount_folders (70805173)
134
+
135
+
136
+ ```
137
+ Merge pull request #1065 from op-ct/BKR-704_relative_docker_mount_folders
138
+
139
+ (BKR-704) Allow relative `mount_folders` in docker
140
+ ```
141
+ * Merge pull request #1059 from jordane/master (28047b44)
142
+
143
+
144
+ ```
145
+ Merge pull request #1059 from jordane/master
146
+
147
+ point install link to docs/
148
+ ```
149
+ * (BKR-99) - Populate host[:timesync] with host configured value if it has been set. (d1454372)
150
+
151
+
152
+ ```
153
+ (BKR-99) - Populate host[:timesync] with host configured value if it has been set.
154
+ Add spec tests.
155
+ ```
156
+ * (BKR-693) refactored duplicate install logic into separate method (0a1075dc)
157
+
158
+ * (BKR-693) refactored pe promoted puppet-agent install (0370c4b5)
159
+
160
+ * Merge pull request #1063 from pinkypie/BKR-48 (b2b9ad6e)
161
+
162
+
163
+ ```
164
+ Merge pull request #1063 from pinkypie/BKR-48
165
+
166
+ (BKR-48) Change how --dry_run is defined - should not be global variable.
167
+ ```
168
+ * (BKR-693) fixed solaris 10/11 install_puppet_agent_pe_promoted_repo_on (8f1f3a58)
169
+
170
+ * (BKR-48) implementing Null object pattern for Beaker::NullResult (7499df05)
171
+
172
+
173
+ ```
174
+ (BKR-48) implementing Null object pattern for Beaker::NullResult
175
+ This is so that calling methods can handle a dry-run more gracefully.
176
+ ```
177
+ * (BKR-704) Allow relative `mount_folders` in docker (2a30987c)
178
+
179
+
180
+ ```
181
+ (BKR-704) Allow relative `mount_folders` in docker
182
+
183
+ Without this patch, a nodeset using relative `from:` paths under
184
+ `mount_folders:` with the `docker` hypervisor will encounter a
185
+ test-halting `Docker::Error::ClientError`. This is a problem because
186
+ it forces docker-based nodesets to specify host-side mounts with
187
+ absolute paths, which isn't portable.
188
+
189
+ This patch fixes the issue by using Ruby's `File.expand_path()` method to
190
+ translate any relative `mount_folders:`/`from:` entries into absolute
191
+ paths before passing them on to docker.
192
+ ```
193
+ * (BKR-48) Change how --dry_run is defined (f27e4803)
194
+
195
+
196
+ ```
197
+ (BKR-48) Change how --dry_run is defined
198
+ We should not be using a global variable, and we should make it possible to overide the value from calling methods (as per other options).
199
+ Also returning result before we attempt a host connection.
200
+ ```
201
+ * (MAINT) point install link to docs/ (0348b29a)
202
+
203
+ ### <a name = "2.34.0">2.34.0 - 10 Feb, 2016 (b897a98a)
204
+
205
+ * (HISTORY) update beaker history for gem release 2.34.0 (b897a98a)
113
206
 
114
207
  * (GEM) update beaker version to 2.34.0 (78b7dd79)
115
208
 
data/README.md CHANGED
@@ -4,7 +4,7 @@ Puppet Labs cloud enabled acceptance testing tool.
4
4
 
5
5
  # Installation
6
6
 
7
- See [Beaker Installation](https://github.com/puppetlabs/beaker/wiki/Beaker-Installation) wiki page.
7
+ See [Beaker Installation](docs/Beaker-Installation.md).
8
8
 
9
9
  #Documentation
10
10
 
@@ -1068,13 +1068,7 @@ module Beaker
1068
1068
  when /^osx$/
1069
1069
  host.install_package("puppet-agent-#{opts[:puppet_agent_version]}*")
1070
1070
  when /^solaris$/
1071
- if version == '10'
1072
- noask_text = host.noask_file_text
1073
- create_remote_file host, File.join(onhost_copy_base, 'noask'), noask_text
1074
- on host, "gunzip -c #{release_file} | pkgadd -d /dev/stdin -a noask -n all"
1075
- elsif version == '11'
1076
- on host, "pkg install -g #{release_file} puppet-agent"
1077
- end
1071
+ host.solaris_install_local_package( release_file, onhost_copy_base )
1078
1072
  end
1079
1073
  configure_type_defaults_on( host )
1080
1074
  end
@@ -1110,7 +1104,6 @@ module Beaker
1110
1104
 
1111
1105
  block_on hosts do |host|
1112
1106
  pe_ver = host[:pe_ver] || opts[:pe_ver] || '4.0.0-rc1'
1113
- variant, version, arch, codename = host['platform'].to_array
1114
1107
  opts = FOSS_DEFAULT_DOWNLOAD_URLS.merge(opts)
1115
1108
  opts[:download_url] = "#{opts[:pe_promoted_builds_url]}/puppet-agent/#{ pe_ver }/#{ opts[:puppet_agent_version] }/repos"
1116
1109
  opts[:copy_base_local] ||= File.join('tmp', 'repo_configs')
@@ -1122,70 +1115,30 @@ module Beaker
1122
1115
  copy_dir_local = File.join(opts[:copy_base_local], variant)
1123
1116
  onhost_copy_base = opts[:copy_dir_external]
1124
1117
 
1125
- case variant
1126
- when /^(fedora|el|centos|sles)$/
1127
- variant = ((variant == 'centos') ? 'el' : variant)
1128
- release_file = "/repos/#{variant}/#{version}/#{opts[:puppet_collection]}/#{arch}/puppet-agent-*.rpm"
1129
- download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
1130
- when /^(debian|ubuntu|cumulus)$/
1131
- if arch == 'x86_64'
1132
- arch = 'amd64'
1133
- end
1134
- version = version[0,2] + '.' + version[2,2] if (variant =~ /ubuntu/ && !version.include?("."))
1135
- release_file = "/repos/apt/#{codename}/pool/#{opts[:puppet_collection]}/p/puppet-agent/puppet-agent*#{arch}.deb"
1136
- download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
1137
- when /^windows$/
1138
- is_config_32 = host['ruby_arch'] == 'x86' || host['install_32'] || opts['install_32']
1139
- should_install_64bit = host.is_x86_64? && !is_config_32
1140
- # only install 64bit builds if
1141
- # - we do not have install_32 set on host
1142
- # - we do not have install_32 set globally
1143
- arch_suffix = should_install_64bit ? '64' : '86'
1144
- release_path += "/windows"
1145
- release_file = "/puppet-agent-x#{arch_suffix}.msi"
1146
- download_file = "puppet-agent-x#{arch_suffix}.msi"
1147
- when /^osx$/
1148
- release_file = "/repos/apple/#{opts[:puppet_collection]}/puppet-agent-*"
1149
- download_file = "puppet-agent-#{variant}-#{version}.tar.gz"
1150
- when /^solaris$/
1151
- if arch == 'x86_64'
1152
- arch = 'i386'
1153
- end
1154
- release_file = "/repos/solaris/#{version}/#{opts[:puppet_collection]}/puppet-agent-*#{arch}.pkg.gz"
1155
- download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
1156
- else
1157
- raise "No pe-promoted installation step for #{variant} yet..."
1158
- end
1118
+ release_path_end, release_file, download_file =
1119
+ host.pe_puppet_agent_promoted_package_info(
1120
+ opts[:puppet_collection], opts
1121
+ )
1122
+ release_path << release_path_end
1159
1123
 
1160
1124
  onhost_copied_download = File.join(onhost_copy_base, download_file)
1161
1125
  onhost_copied_file = File.join(onhost_copy_base, release_file)
1162
1126
  fetch_http_file( release_path, download_file, copy_dir_local)
1163
1127
  scp_to host, File.join(copy_dir_local, download_file), onhost_copy_base
1164
1128
 
1165
- case variant
1166
- when /^(fedora-22)$/
1167
- on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1168
- on host, "dnf --nogpgcheck localinstall -y #{onhost_copied_file}"
1169
- when /^(fedora|el|centos)$/
1170
- on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1171
- on host, "yum --nogpgcheck localinstall -y #{onhost_copied_file}"
1172
- when /^(sles)$/
1173
- on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1174
- on host, "rpm -ihv #{onhost_copied_file}"
1175
- when /^(debian|ubuntu|cumulus)$/
1176
- on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1177
- on host, "dpkg -i --force-all #{onhost_copied_file}"
1178
- on host, "apt-get update"
1179
- when /^windows$/
1129
+ if variant == 'windows'
1180
1130
  result = on host, "echo #{onhost_copied_file}"
1181
1131
  onhost_copied_file = result.raw_output.chomp
1182
1132
  opts = { :debug => host[:pe_debug] || opts[:pe_debug] }
1133
+ # couldn't pull this out, because it's relying on
1134
+ # {Beaker::DSL::InstallUtils::WindowsUtils} methods,
1135
+ # which I didn't want to attack right now. TODO
1183
1136
  install_msi_on(host, onhost_copied_file, {}, opts)
1184
- when /^osx$/
1185
- on host, "tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}"
1186
- # move to better location
1187
- on host, "mv #{onhost_copied_file}.dmg ."
1188
- host.install_package("puppet-agent-*")
1137
+ else
1138
+ host.pe_puppet_agent_promoted_package_install(
1139
+ onhost_copy_base, onhost_copied_download,
1140
+ onhost_copied_file, download_file, opts
1141
+ )
1189
1142
  end
1190
1143
  configure_type_defaults_on( host )
1191
1144
  end
data/lib/beaker/host.rb CHANGED
@@ -265,9 +265,20 @@ module Beaker
265
265
  end
266
266
 
267
267
  def exec command, options={}
268
+ result = nil
268
269
  # I've always found this confusing
269
270
  cmdline = command.cmd_line(self)
270
271
 
272
+ # use the value of :dry_run passed to the method unless
273
+ # undefined, then use parsed @options hash.
274
+ options[:dry_run] ||= @options[:dry_run]
275
+
276
+ if options[:dry_run]
277
+ @logger.debug "\n Running in :dry_run mode. Command #{cmdline} not executed."
278
+ result = Beaker::NullResult.new(self, command)
279
+ return result
280
+ end
281
+
271
282
  if options[:silent]
272
283
  output_callback = nil
273
284
  else
@@ -279,11 +290,10 @@ module Beaker
279
290
  end
280
291
  end
281
292
 
282
- unless $dry_run
293
+ unless options[:dry_run]
283
294
  # is this returning a result object?
284
295
  # the options should come at the end of the method signature (rubyism)
285
296
  # and they shouldn't be ssh specific
286
- result = nil
287
297
 
288
298
  @logger.step_in()
289
299
  seconds = Benchmark.realtime {
@@ -320,9 +330,8 @@ module Beaker
320
330
  raise CommandFailure, "Host '#{self}' exited with #{result.exit_code} running:\n #{cmdline}\nLast #{@options[:trace_limit]} lines of output were:\n#{result.formatted_output(@options[:trace_limit])}"
321
331
  end
322
332
  end
323
- # Danger, so we have to return this result?
324
- result
325
333
  end
334
+ result
326
335
  end
327
336
 
328
337
  # scp files from the localhost to this test host, if a directory is provided it is recursively copied.
@@ -344,6 +353,17 @@ module Beaker
344
353
  # -> will result in not files copyed to the host, all are ignored
345
354
  def do_scp_to source, target_path, options
346
355
  target = self.scp_path( target_path )
356
+
357
+ # use the value of :dry_run passed to the method unless
358
+ # undefined, then use parsed @options hash.
359
+ options[:dry_run] ||= @options[:dry_run]
360
+
361
+ if options[:dry_run]
362
+ scp_cmd = "scp #{source} #{@name}:#{target}"
363
+ @logger.debug "\n Running in :dry_run mode. localhost $ #{scp_cmd} not executed."
364
+ return NullResult.new(self, scp_cmd)
365
+ end
366
+
347
367
  @logger.notify "localhost $ scp #{source} #{@name}:#{target} {:ignore => #{options[:ignore]}}"
348
368
 
349
369
  result = Result.new(@name, [source, target])
@@ -371,7 +391,7 @@ module Beaker
371
391
  result.exit_code = 1
372
392
  end
373
393
  if source_file
374
- result = connection.scp_to(source_file, target, options, $dry_run)
394
+ result = connection.scp_to(source_file, target, options)
375
395
  @logger.trace result.stdout
376
396
  end
377
397
  else # a directory with ignores
@@ -406,7 +426,7 @@ module Beaker
406
426
  else
407
427
  file_path = File.join(target, File.dirname(s))
408
428
  end
409
- result = connection.scp_to(s, file_path, options, $dry_run)
429
+ result = connection.scp_to(s, file_path, options)
410
430
  @logger.trace result.stdout
411
431
  end
412
432
  end
@@ -416,9 +436,18 @@ module Beaker
416
436
  end
417
437
 
418
438
  def do_scp_from source, target, options
439
+ # use the value of :dry_run passed to the method unless
440
+ # undefined, then use parsed @options hash.
441
+ options[:dry_run] ||= @options[:dry_run]
442
+
443
+ if options[:dry_run]
444
+ scp_cmd = "scp #{@name}:#{source} #{target}"
445
+ @logger.debug "\n Running in :dry_run mode. localhost $ #{scp_cmd} not executed."
446
+ return NullResult.new(self, scp_cmd)
447
+ end
419
448
 
420
449
  @logger.debug "localhost $ scp #{@name}:#{source} #{target}"
421
- result = connection.scp_from(source, target, options, $dry_run)
450
+ result = connection.scp_from(source, target, options)
422
451
  @logger.debug result.stdout
423
452
  return result
424
453
  end
@@ -23,48 +23,6 @@ module Mac
23
23
  })
24
24
  end
25
25
 
26
- # Gets the path & file name for the puppet agent dev package on OSX
27
- #
28
- # @param [String] puppet_collection Name of the puppet collection to use
29
- # @param [String] puppet_agent_version Version of puppet agent to get
30
- # @param [Hash{Symbol=>String}] opts Options hash to provide extra values
31
- #
32
- # @note OSX doesn't use any additional options at this time, but does require
33
- # both puppet_collection & puppet_agent_version, & will fail without them
34
- #
35
- # @raise [ArgumentError] If one of the two required parameters (puppet_collection,
36
- # puppet_agent_version) is either not passed or set to nil
37
- #
38
- # @return [String, String] Path to the directory and filename of the package, respectively
39
- def puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
40
- error_message = "Must provide %s argument to get puppet agent dev package information"
41
- raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
42
- raise ArgumentError, error_message % "puppet_agent_version" unless puppet_agent_version
43
-
44
- variant, version, arch, codename = self['platform'].to_array
45
-
46
- mac_pkg_name = "puppet-agent-#{puppet_agent_version}"
47
- version = version[0,2] + '.' + version[2,2] unless version.include?(".")
48
- # newest hotness
49
- path_chunk = "apple/#{version}/#{puppet_collection}/#{arch}"
50
- release_path_end = path_chunk
51
- # moved to doing this when 'el capitan' came out & the objection was
52
- # raised that the code name wasn't a fact, & as such can be hard to script
53
- # example: puppet-agent-0.1.0-1.osx10.9.dmg
54
- release_file = "#{mac_pkg_name}-1.osx#{version}.dmg"
55
- if not link_exists?("#{opts[:download_url]}/#{release_path_end}/#{release_file}") # new hotness
56
- # little older change involved the code name as only difference from above
57
- # example: puppet-agent-0.1.0-1.mavericks.dmg
58
- release_file = "#{mac_pkg_name}-1.#{codename}.dmg"
59
- end
60
- if not link_exists?("#{opts[:download_url]}/#{release_path_end}/#{release_file}") # oops, try the old stuff
61
- release_path_end = "apple/#{puppet_collection}"
62
- # example: puppet-agent-0.1.0-osx-10.9-x86_64.dmg
63
- release_file = "#{mac_pkg_name}-#{variant}-#{version}-x86_64.dmg"
64
- end
65
- return release_path_end, release_file
66
- end
67
-
68
26
  attr_reader :external_copy_base
69
27
  def initialize name, host_hash, options
70
28
  super
@@ -41,4 +41,84 @@ module Mac::Pkg
41
41
  result.exit_code == 0
42
42
  end
43
43
 
44
+ # Gets the path & file name for the puppet agent dev package on OSX
45
+ #
46
+ # @param [String] puppet_collection Name of the puppet collection to use
47
+ # @param [String] puppet_agent_version Version of puppet agent to get
48
+ # @param [Hash{Symbol=>String}] opts Options hash to provide extra values
49
+ #
50
+ # @note OSX doesn't use any additional options at this time, but does require
51
+ # both puppet_collection & puppet_agent_version, & will fail without them
52
+ #
53
+ # @raise [ArgumentError] If one of the two required parameters (puppet_collection,
54
+ # puppet_agent_version) is either not passed or set to nil
55
+ #
56
+ # @return [String, String] Path to the directory and filename of the package, respectively
57
+ def puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
58
+ error_message = "Must provide %s argument to get puppet agent dev package information"
59
+ raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
60
+ raise ArgumentError, error_message % "puppet_agent_version" unless puppet_agent_version
61
+
62
+ variant, version, arch, codename = self['platform'].to_array
63
+
64
+ mac_pkg_name = "puppet-agent-#{puppet_agent_version}"
65
+ version = version[0,2] + '.' + version[2,2] unless version.include?(".")
66
+ # newest hotness
67
+ path_chunk = "apple/#{version}/#{puppet_collection}/#{arch}"
68
+ release_path_end = path_chunk
69
+ # moved to doing this when 'el capitan' came out & the objection was
70
+ # raised that the code name wasn't a fact, & as such can be hard to script
71
+ # example: puppet-agent-0.1.0-1.osx10.9.dmg
72
+ release_file = "#{mac_pkg_name}-1.osx#{version}.dmg"
73
+ if not link_exists?("#{opts[:download_url]}/#{release_path_end}/#{release_file}") # new hotness
74
+ # little older change involved the code name as only difference from above
75
+ # example: puppet-agent-0.1.0-1.mavericks.dmg
76
+ release_file = "#{mac_pkg_name}-1.#{codename}.dmg"
77
+ end
78
+ if not link_exists?("#{opts[:download_url]}/#{release_path_end}/#{release_file}") # oops, try the old stuff
79
+ release_path_end = "apple/#{puppet_collection}"
80
+ # example: puppet-agent-0.1.0-osx-10.9-x86_64.dmg
81
+ release_file = "#{mac_pkg_name}-#{variant}-#{version}-x86_64.dmg"
82
+ end
83
+ return release_path_end, release_file
84
+ end
85
+
86
+ # Gets host-specific information for PE promoted puppet-agent packages
87
+ #
88
+ # @param [String] puppet_collection Name of the puppet collection to use
89
+ # @param [Hash{Symbol=>String}] opts Options hash to provide extra values
90
+ #
91
+ # @return [String, String, String] Host-specific information for packages
92
+ # 1. release_path_end Suffix for the release_path. Used on Windows. Check
93
+ # {Windows::Pkg#pe_puppet_agent_promoted_package_info} to see usage.
94
+ # 2. release_file Path to the file on release build servers
95
+ # 3. download_file Filename for the package itself
96
+ def pe_puppet_agent_promoted_package_info( puppet_collection = nil, opts = {} )
97
+ error_message = "Must provide %s argument to get puppet agent dev package information"
98
+ raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
99
+
100
+ variant, version, arch, codename = self['platform'].to_array
101
+ release_file = "/repos/apple/#{puppet_collection}/puppet-agent-*"
102
+ download_file = "puppet-agent-#{variant}-#{version}.tar.gz"
103
+ return '', release_file, download_file
104
+ end
105
+
106
+ # Installs a given PE promoted package on a host
107
+ #
108
+ # @param [String] onhost_copy_base Base copy directory on the host
109
+ # @param [String] onhost_copied_download Downloaded file path on the host
110
+ # @param [String] onhost_copied_file Copied file path once un-compressed
111
+ # @param [String] download_file File name of the downloaded file
112
+ # @param [Hash{Symbol=>String}] opts additional options
113
+ #
114
+ # @return nil
115
+ def pe_puppet_agent_promoted_package_install(
116
+ onhost_copy_base, onhost_copied_download, onhost_copied_file, download_file, opts
117
+ )
118
+ execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
119
+ # move to better location
120
+ execute("mv #{onhost_copied_file}.dmg .")
121
+ self.install_package("puppet-agent-*")
122
+ end
123
+
44
124
  end