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 +8 -8
- data/HISTORY.md +95 -2
- data/README.md +1 -1
- data/lib/beaker/dsl/install_utils/foss_utils.rb +15 -62
- data/lib/beaker/host.rb +36 -7
- data/lib/beaker/host/mac.rb +0 -42
- data/lib/beaker/host/mac/pkg.rb +80 -0
- data/lib/beaker/host/unix.rb +0 -95
- data/lib/beaker/host/unix/pkg.rb +212 -0
- data/lib/beaker/host/windows.rb +0 -22
- data/lib/beaker/host/windows/pkg.rb +44 -0
- data/lib/beaker/hypervisor.rb +4 -2
- data/lib/beaker/hypervisor/docker.rb +1 -1
- data/lib/beaker/network_manager.rb +1 -0
- data/lib/beaker/options/command_line_parser.rb +0 -1
- data/lib/beaker/result.rb +7 -0
- data/lib/beaker/ssh_connection.rb +4 -11
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +1 -36
- data/spec/beaker/host/unix/pkg_spec.rb +87 -0
- data/spec/beaker/host/unix_spec.rb +20 -0
- data/spec/beaker/host_spec.rb +18 -19
- data/spec/beaker/hypervisor/docker_spec.rb +10 -0
- data/spec/beaker/hypervisor/hypervisor_spec.rb +19 -0
- metadata +2 -2
data/lib/beaker/host/unix.rb
CHANGED
@@ -34,101 +34,6 @@ module Unix
|
|
34
34
|
:openssh
|
35
35
|
end
|
36
36
|
|
37
|
-
# Gets the path & file name for the puppet agent dev package on Unix
|
38
|
-
#
|
39
|
-
# @param [String] puppet_collection Name of the puppet collection to use
|
40
|
-
# @param [String] puppet_agent_version Version of puppet agent to get
|
41
|
-
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
42
|
-
#
|
43
|
-
# @note Solaris does require :download_url to be set on the opts argument
|
44
|
-
# in order to check for builds on the builds server
|
45
|
-
#
|
46
|
-
# @raise [ArgumentError] If one of the two required parameters (puppet_collection,
|
47
|
-
# puppet_agent_version) is either not passed or set to nil
|
48
|
-
#
|
49
|
-
# @return [String, String] Path to the directory and filename of the package, respectively
|
50
|
-
def solaris_puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
|
51
|
-
error_message = "Must provide %s argument to get puppet agent package information"
|
52
|
-
raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
|
53
|
-
raise ArgumentError, error_message % "puppet_agent_version" unless puppet_agent_version
|
54
|
-
raise ArgumentError, error_message % "opts[:download_url]" unless opts[:download_url]
|
55
|
-
|
56
|
-
variant, version, arch, codename = self['platform'].to_array
|
57
|
-
platform_error = "Incorrect platform '#{variant}' for #solaris_puppet_agent_dev_package_info"
|
58
|
-
raise ArgumentError, platform_error if variant != 'solaris'
|
59
|
-
|
60
|
-
if arch == 'x86_64'
|
61
|
-
arch = 'i386'
|
62
|
-
end
|
63
|
-
release_path_end = "solaris/#{version}/#{puppet_collection}"
|
64
|
-
solaris_revision_conjunction = '-'
|
65
|
-
revision = '1'
|
66
|
-
if version == '10'
|
67
|
-
solaris_release_version = ''
|
68
|
-
pkg_suffix = 'pkg.gz'
|
69
|
-
solaris_name_conjunction = '-'
|
70
|
-
component_version = puppet_agent_version
|
71
|
-
elsif version == '11'
|
72
|
-
# Ref:
|
73
|
-
# http://www.oracle.com/technetwork/articles/servers-storage-admin/ips-package-versioning-2232906.html
|
74
|
-
#
|
75
|
-
# Example to show package name components:
|
76
|
-
# Full package name: puppet-agent@1.2.5.38.6813,5.11-1.sparc.p5p
|
77
|
-
# Schema: <component-name><solaris_name_conjunction><component_version><solaris_release_version><solaris_revision_conjunction><revision>.<arch>.<pkg_suffix>
|
78
|
-
solaris_release_version = ',5.11' # injecting comma to prevent from adding another var
|
79
|
-
pkg_suffix = 'p5p'
|
80
|
-
solaris_name_conjunction = '@'
|
81
|
-
component_version = puppet_agent_version.dup
|
82
|
-
component_version.gsub!(/[a-zA-Z]/, '')
|
83
|
-
component_version.gsub!(/(^-)|(-$)/, '')
|
84
|
-
# Here we strip leading 0 from version components but leave
|
85
|
-
# singular 0 on their own.
|
86
|
-
component_version = component_version.split('-').join('.')
|
87
|
-
component_version = component_version.split('.').map(&:to_i).join('.')
|
88
|
-
end
|
89
|
-
release_file_base = "puppet-agent#{solaris_name_conjunction}#{component_version}#{solaris_release_version}"
|
90
|
-
release_file_end = "#{arch}.#{pkg_suffix}"
|
91
|
-
release_file = "#{release_file_base}#{solaris_revision_conjunction}#{revision}.#{release_file_end}"
|
92
|
-
if not link_exists?("#{opts[:download_url]}/#{release_path_end}/#{release_file}")
|
93
|
-
release_file = "#{release_file_base}.#{release_file_end}"
|
94
|
-
end
|
95
|
-
return release_path_end, release_file
|
96
|
-
end
|
97
|
-
|
98
|
-
# Gets the path & file name for the puppet agent dev package on Unix
|
99
|
-
#
|
100
|
-
# @param [String] puppet_collection Name of the puppet collection to use
|
101
|
-
# @param [String] puppet_agent_version Version of puppet agent to get
|
102
|
-
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
103
|
-
#
|
104
|
-
# @note Solaris does require some options to be set. See
|
105
|
-
# {#solaris_puppet_agent_dev_package_info} for more details
|
106
|
-
#
|
107
|
-
# @raise [ArgumentError] If one of the two required parameters (puppet_collection,
|
108
|
-
# puppet_agent_version) is either not passed or set to nil
|
109
|
-
#
|
110
|
-
# @return [String, String] Path to the directory and filename of the package, respectively
|
111
|
-
def puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
|
112
|
-
error_message = "Must provide %s argument to get puppet agent dev package information"
|
113
|
-
raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
|
114
|
-
raise ArgumentError, error_message % "puppet_agent_version" unless puppet_agent_version
|
115
|
-
|
116
|
-
variant, version, arch, codename = self['platform'].to_array
|
117
|
-
case variant
|
118
|
-
when /^(solaris)$/
|
119
|
-
release_path_end, release_file = solaris_puppet_agent_dev_package_info(
|
120
|
-
puppet_collection, puppet_agent_version, opts )
|
121
|
-
when /^(sles|aix)$/
|
122
|
-
arch = 'ppc' if variant == 'aix' && arch == 'power'
|
123
|
-
release_path_end = "#{variant}/#{version}/#{puppet_collection}/#{arch}"
|
124
|
-
release_file = "puppet-agent-#{puppet_agent_version}-1.#{variant}#{version}.#{arch}.rpm"
|
125
|
-
else
|
126
|
-
msg = "puppet_agent dev package info unknown for platform '#{self['platform']}'"
|
127
|
-
raise ArgumentError, msg
|
128
|
-
end
|
129
|
-
return release_path_end, release_file
|
130
|
-
end
|
131
|
-
|
132
37
|
def external_copy_base
|
133
38
|
return @external_copy_base if @external_copy_base
|
134
39
|
@external_copy_base = '/root'
|
data/lib/beaker/host/unix/pkg.rb
CHANGED
@@ -297,4 +297,216 @@ module Unix::Pkg
|
|
297
297
|
end
|
298
298
|
end
|
299
299
|
|
300
|
+
# Gets the path & file name for the puppet agent dev package on Unix
|
301
|
+
#
|
302
|
+
# @param [String] puppet_collection Name of the puppet collection to use
|
303
|
+
# @param [String] puppet_agent_version Version of puppet agent to get
|
304
|
+
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
305
|
+
#
|
306
|
+
# @note Solaris does require :download_url to be set on the opts argument
|
307
|
+
# in order to check for builds on the builds server
|
308
|
+
#
|
309
|
+
# @raise [ArgumentError] If one of the two required parameters (puppet_collection,
|
310
|
+
# puppet_agent_version) is either not passed or set to nil
|
311
|
+
#
|
312
|
+
# @return [String, String] Path to the directory and filename of the package, respectively
|
313
|
+
def solaris_puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
|
314
|
+
error_message = "Must provide %s argument to get puppet agent package information"
|
315
|
+
raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
|
316
|
+
raise ArgumentError, error_message % "puppet_agent_version" unless puppet_agent_version
|
317
|
+
raise ArgumentError, error_message % "opts[:download_url]" unless opts[:download_url]
|
318
|
+
|
319
|
+
variant, version, arch, codename = self['platform'].to_array
|
320
|
+
platform_error = "Incorrect platform '#{variant}' for #solaris_puppet_agent_dev_package_info"
|
321
|
+
raise ArgumentError, platform_error if variant != 'solaris'
|
322
|
+
|
323
|
+
if arch == 'x86_64'
|
324
|
+
arch = 'i386'
|
325
|
+
end
|
326
|
+
release_path_end = "solaris/#{version}/#{puppet_collection}"
|
327
|
+
solaris_revision_conjunction = '-'
|
328
|
+
revision = '1'
|
329
|
+
if version == '10'
|
330
|
+
solaris_release_version = ''
|
331
|
+
pkg_suffix = 'pkg.gz'
|
332
|
+
solaris_name_conjunction = '-'
|
333
|
+
component_version = puppet_agent_version
|
334
|
+
elsif version == '11'
|
335
|
+
# Ref:
|
336
|
+
# http://www.oracle.com/technetwork/articles/servers-storage-admin/ips-package-versioning-2232906.html
|
337
|
+
#
|
338
|
+
# Example to show package name components:
|
339
|
+
# Full package name: puppet-agent@1.2.5.38.6813,5.11-1.sparc.p5p
|
340
|
+
# Schema: <component-name><solaris_name_conjunction><component_version><solaris_release_version><solaris_revision_conjunction><revision>.<arch>.<pkg_suffix>
|
341
|
+
solaris_release_version = ',5.11' # injecting comma to prevent from adding another var
|
342
|
+
pkg_suffix = 'p5p'
|
343
|
+
solaris_name_conjunction = '@'
|
344
|
+
component_version = puppet_agent_version.dup
|
345
|
+
component_version.gsub!(/[a-zA-Z]/, '')
|
346
|
+
component_version.gsub!(/(^-)|(-$)/, '')
|
347
|
+
# Here we strip leading 0 from version components but leave
|
348
|
+
# singular 0 on their own.
|
349
|
+
component_version = component_version.split('-').join('.')
|
350
|
+
component_version = component_version.split('.').map(&:to_i).join('.')
|
351
|
+
end
|
352
|
+
release_file_base = "puppet-agent#{solaris_name_conjunction}#{component_version}#{solaris_release_version}"
|
353
|
+
release_file_end = "#{arch}.#{pkg_suffix}"
|
354
|
+
release_file = "#{release_file_base}#{solaris_revision_conjunction}#{revision}.#{release_file_end}"
|
355
|
+
if not link_exists?("#{opts[:download_url]}/#{release_path_end}/#{release_file}")
|
356
|
+
release_file = "#{release_file_base}.#{release_file_end}"
|
357
|
+
end
|
358
|
+
return release_path_end, release_file
|
359
|
+
end
|
360
|
+
|
361
|
+
# Gets the path & file name for the puppet agent dev package on Unix
|
362
|
+
#
|
363
|
+
# @param [String] puppet_collection Name of the puppet collection to use
|
364
|
+
# @param [String] puppet_agent_version Version of puppet agent to get
|
365
|
+
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
366
|
+
#
|
367
|
+
# @note Solaris does require some options to be set. See
|
368
|
+
# {#solaris_puppet_agent_dev_package_info} for more details
|
369
|
+
#
|
370
|
+
# @raise [ArgumentError] If one of the two required parameters (puppet_collection,
|
371
|
+
# puppet_agent_version) is either not passed or set to nil
|
372
|
+
#
|
373
|
+
# @return [String, String] Path to the directory and filename of the package, respectively
|
374
|
+
def puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
|
375
|
+
error_message = "Must provide %s argument to get puppet agent dev package information"
|
376
|
+
raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
|
377
|
+
raise ArgumentError, error_message % "puppet_agent_version" unless puppet_agent_version
|
378
|
+
|
379
|
+
variant, version, arch, codename = self['platform'].to_array
|
380
|
+
case variant
|
381
|
+
when /^(solaris)$/
|
382
|
+
release_path_end, release_file = solaris_puppet_agent_dev_package_info(
|
383
|
+
puppet_collection, puppet_agent_version, opts )
|
384
|
+
when /^(sles|aix)$/
|
385
|
+
arch = 'ppc' if variant == 'aix' && arch == 'power'
|
386
|
+
release_path_end = "#{variant}/#{version}/#{puppet_collection}/#{arch}"
|
387
|
+
release_file = "puppet-agent-#{puppet_agent_version}-1.#{variant}#{version}.#{arch}.rpm"
|
388
|
+
else
|
389
|
+
msg = "puppet_agent dev package info unknown for platform '#{self['platform']}'"
|
390
|
+
raise ArgumentError, msg
|
391
|
+
end
|
392
|
+
return release_path_end, release_file
|
393
|
+
end
|
394
|
+
|
395
|
+
# Gets host-specific information for PE promoted puppet-agent packages
|
396
|
+
#
|
397
|
+
# @param [String] puppet_collection Name of the puppet collection to use
|
398
|
+
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
399
|
+
#
|
400
|
+
# @return [String, String, String] Host-specific information for packages
|
401
|
+
# 1. release_path_end Suffix for the release_path. Used on Windows. Check
|
402
|
+
# {Windows::Pkg#pe_puppet_agent_promoted_package_info} to see usage.
|
403
|
+
# 2. release_file Path to the file on release build servers
|
404
|
+
# 3. download_file Filename for the package itself
|
405
|
+
def pe_puppet_agent_promoted_package_info( puppet_collection = nil, opts = {} )
|
406
|
+
error_message = "Must provide %s argument to get puppet agent dev package information"
|
407
|
+
raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
|
408
|
+
|
409
|
+
variant, version, arch, codename = self['platform'].to_array
|
410
|
+
case variant
|
411
|
+
when /^(fedora|el|centos|sles)$/
|
412
|
+
variant = ((variant == 'centos') ? 'el' : variant)
|
413
|
+
release_file = "/repos/#{variant}/#{version}/#{puppet_collection}/#{arch}/puppet-agent-*.rpm"
|
414
|
+
download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
|
415
|
+
when /^(debian|ubuntu|cumulus)$/
|
416
|
+
if arch == 'x86_64'
|
417
|
+
arch = 'amd64'
|
418
|
+
end
|
419
|
+
version = version[0,2] + '.' + version[2,2] if (variant =~ /ubuntu/ && !version.include?("."))
|
420
|
+
release_file = "/repos/apt/#{codename}/pool/#{puppet_collection}/p/puppet-agent/puppet-agent*#{arch}.deb"
|
421
|
+
download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
|
422
|
+
when /^solaris$/
|
423
|
+
if arch == 'x86_64'
|
424
|
+
arch = 'i386'
|
425
|
+
end
|
426
|
+
release_file = "/repos/solaris/#{version}/#{puppet_collection}/"
|
427
|
+
download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
|
428
|
+
else
|
429
|
+
raise "No pe-promoted installation step for #{variant} yet..."
|
430
|
+
end
|
431
|
+
return '', release_file, download_file
|
432
|
+
end
|
433
|
+
|
434
|
+
# Installs a given PE promoted package on a host
|
435
|
+
#
|
436
|
+
# @param [String] onhost_copy_base Base copy directory on the host
|
437
|
+
# @param [String] onhost_copied_download Downloaded file path on the host
|
438
|
+
# @param [String] onhost_copied_file Copied file path once un-compressed
|
439
|
+
# @param [String] download_file File name of the downloaded file
|
440
|
+
# @param [Hash{Symbol=>String}] opts additional options
|
441
|
+
#
|
442
|
+
# @return nil
|
443
|
+
def pe_puppet_agent_promoted_package_install(
|
444
|
+
onhost_copy_base, onhost_copied_download, onhost_copied_file, download_file, opts
|
445
|
+
)
|
446
|
+
variant, version, arch, codename = self['platform'].to_array
|
447
|
+
case variant
|
448
|
+
when /^(fedora-22)$/
|
449
|
+
execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
|
450
|
+
execute("dnf --nogpgcheck localinstall -y #{onhost_copied_file}")
|
451
|
+
when /^(fedora|el|centos)$/
|
452
|
+
execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
|
453
|
+
execute("yum --nogpgcheck localinstall -y #{onhost_copied_file}")
|
454
|
+
when /^(sles)$/
|
455
|
+
execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
|
456
|
+
execute("rpm -ihv #{onhost_copied_file}")
|
457
|
+
when /^(debian|ubuntu|cumulus)$/
|
458
|
+
execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
|
459
|
+
execute("dpkg -i --force-all #{onhost_copied_file}")
|
460
|
+
execute("apt-get update")
|
461
|
+
when /^solaris$/
|
462
|
+
# uncompress PE puppet-agent tarball
|
463
|
+
if version == '10'
|
464
|
+
execute("gunzip #{onhost_copied_download}")
|
465
|
+
tar_file_name = File.basename(download_file, '.gz')
|
466
|
+
execute("tar -xvf #{tar_file_name}")
|
467
|
+
elsif version == '11'
|
468
|
+
execute("tar -zxvf #{onhost_copied_download}")
|
469
|
+
else
|
470
|
+
msg = "Solaris #{version} is not supported by the method "
|
471
|
+
msg << 'install_puppet_agent_pe_promoted_repo_on'
|
472
|
+
raise ArgumentError, msg
|
473
|
+
end
|
474
|
+
# get uncompressed package filename on the system
|
475
|
+
pkg_filename = execute( "ls #{onhost_copied_file}" )
|
476
|
+
pkg_path = "#{onhost_copied_file}#{pkg_filename}"
|
477
|
+
self.solaris_install_local_package( pkg_path, onhost_copy_base )
|
478
|
+
end
|
479
|
+
nil
|
480
|
+
end
|
481
|
+
|
482
|
+
# Installs a local package file on a solaris host
|
483
|
+
#
|
484
|
+
# @param [String] package_path Path to the package file on the host
|
485
|
+
# @param [String] noask_directory Path to the directory for the noask file
|
486
|
+
# (only needed for solaris 10).
|
487
|
+
#
|
488
|
+
# @return [Beaker::Result] Result of installation command execution
|
489
|
+
def solaris_install_local_package(package_path, noask_directory = nil)
|
490
|
+
variant, version, arch, codename = self['platform'].to_array
|
491
|
+
error_message = nil
|
492
|
+
unless variant == 'solaris'
|
493
|
+
error_message = "Can not call solaris_install_local_package for the "
|
494
|
+
error_message << "non-solaris platform '#{variant}'"
|
495
|
+
end
|
496
|
+
if version != '10' && version != '11'
|
497
|
+
error_message = "Solaris #{version} is not supported by the method "
|
498
|
+
error_message << 'solaris_install_local_package'
|
499
|
+
end
|
500
|
+
raise ArgumentError, error_message if error_message
|
501
|
+
|
502
|
+
if version == '10'
|
503
|
+
noask_text = self.noask_file_text
|
504
|
+
create_remote_file self, File.join(noask_directory, 'noask'), noask_text
|
505
|
+
|
506
|
+
install_cmd = "gunzip -c #{package_path} | pkgadd -d /dev/stdin -a noask -n all"
|
507
|
+
elsif version == '11'
|
508
|
+
install_cmd = "pkg install -g #{package_path} puppet-agent"
|
509
|
+
end
|
510
|
+
self.exec(Beaker::Command.new(install_cmd))
|
511
|
+
end
|
300
512
|
end
|
data/lib/beaker/host/windows.rb
CHANGED
@@ -43,28 +43,6 @@ module Windows
|
|
43
43
|
@ssh_server
|
44
44
|
end
|
45
45
|
|
46
|
-
# Gets the path & file name for the puppet agent dev package on Windows
|
47
|
-
#
|
48
|
-
# @param [String] puppet_collection Name of the puppet collection to use
|
49
|
-
# @param [String] puppet_agent_version Version of puppet agent to get
|
50
|
-
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
51
|
-
#
|
52
|
-
# @note Windows only uses the 'install_32' option of the opts hash at this
|
53
|
-
# time. Note that it will not fail if not provided, however
|
54
|
-
#
|
55
|
-
# @return [String, String] Path to the directory and filename of the package, respectively
|
56
|
-
def puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
|
57
|
-
release_path_end = 'windows'
|
58
|
-
is_config_32 = self['ruby_arch'] == 'x86' || self['install_32'] || opts['install_32']
|
59
|
-
should_install_64bit = self.is_x86_64? && !is_config_32
|
60
|
-
# only install 64bit builds if
|
61
|
-
# - we do not have install_32 set on host
|
62
|
-
# - we do not have install_32 set globally
|
63
|
-
arch_suffix = should_install_64bit ? '64' : '86'
|
64
|
-
release_file = "puppet-agent-x#{arch_suffix}.msi"
|
65
|
-
return release_path_end, release_file
|
66
|
-
end
|
67
|
-
|
68
46
|
attr_reader :scp_separator
|
69
47
|
def initialize name, host_hash, options
|
70
48
|
super
|
@@ -47,6 +47,50 @@ module Windows::Pkg
|
|
47
47
|
(identify_windows_architecture =~ /64/) == 0
|
48
48
|
end
|
49
49
|
|
50
|
+
# Gets the path & file name for the puppet agent dev package on Windows
|
51
|
+
#
|
52
|
+
# @param [String] puppet_collection Name of the puppet collection to use
|
53
|
+
# @param [String] puppet_agent_version Version of puppet agent to get
|
54
|
+
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
55
|
+
#
|
56
|
+
# @note Windows only uses the 'install_32' option of the opts hash at this
|
57
|
+
# time. Note that it will not fail if not provided, however
|
58
|
+
#
|
59
|
+
# @return [String, String] Path to the directory and filename of the package, respectively
|
60
|
+
def puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
|
61
|
+
release_path_end = 'windows'
|
62
|
+
is_config_32 = self['ruby_arch'] == 'x86' || self['install_32'] || opts['install_32']
|
63
|
+
should_install_64bit = self.is_x86_64? && !is_config_32
|
64
|
+
# only install 64bit builds if
|
65
|
+
# - we do not have install_32 set on host
|
66
|
+
# - we do not have install_32 set globally
|
67
|
+
arch_suffix = should_install_64bit ? '64' : '86'
|
68
|
+
release_file = "puppet-agent-x#{arch_suffix}.msi"
|
69
|
+
return release_path_end, release_file
|
70
|
+
end
|
71
|
+
|
72
|
+
# Gets host-specific information for PE promoted puppet-agent packages
|
73
|
+
#
|
74
|
+
# @param [String] puppet_collection Name of the puppet collection to use
|
75
|
+
# @param [Hash{Symbol=>String}] opts Options hash to provide extra values
|
76
|
+
#
|
77
|
+
# @return [String, String, String] Host-specific information for packages
|
78
|
+
# 1. release_path_end Suffix for the release_path
|
79
|
+
# 2. release_file Path to the file on release build servers
|
80
|
+
# 3. download_file Filename for the package itself
|
81
|
+
def pe_puppet_agent_promoted_package_info( puppet_collection = nil, opts = {} )
|
82
|
+
is_config_32 = self['ruby_arch'] == 'x86' || self['install_32'] || self['install_32']
|
83
|
+
should_install_64bit = self.is_x86_64? && !is_config_32
|
84
|
+
# only install 64bit builds if
|
85
|
+
# - we do not have install_32 set on host
|
86
|
+
# - we do not have install_32 set globally
|
87
|
+
arch_suffix = should_install_64bit ? '64' : '86'
|
88
|
+
release_path_end = "/windows"
|
89
|
+
release_file = "/puppet-agent-x#{arch_suffix}.msi"
|
90
|
+
download_file = "puppet-agent-x#{arch_suffix}.msi"
|
91
|
+
return release_path_end, release_file, download_file
|
92
|
+
end
|
93
|
+
|
50
94
|
private
|
51
95
|
|
52
96
|
# @api private
|
data/lib/beaker/hypervisor.rb
CHANGED
@@ -103,8 +103,10 @@ module Beaker
|
|
103
103
|
#to the provided SUT for test execution to be successful.
|
104
104
|
def configure
|
105
105
|
return unless @options[:configure]
|
106
|
-
|
107
|
-
timesync
|
106
|
+
block_on @hosts do |host|
|
107
|
+
if host[:timesync]
|
108
|
+
timesync(host, @options)
|
109
|
+
end
|
108
110
|
end
|
109
111
|
if @options[:root_keys]
|
110
112
|
sync_root_keys(@hosts, @options)
|
@@ -84,7 +84,7 @@ module Beaker
|
|
84
84
|
unless host['mount_folders'].nil?
|
85
85
|
container_opts['HostConfig'] ||= {}
|
86
86
|
container_opts['HostConfig']['Binds'] = host['mount_folders'].values.map do |mount|
|
87
|
-
a = [ mount['host_path'], mount['container_path'] ]
|
87
|
+
a = [ File.expand_path(mount['host_path']), mount['container_path'] ]
|
88
88
|
a << mount['opts'] if mount.has_key?('opts')
|
89
89
|
a.join(':')
|
90
90
|
end
|
@@ -57,6 +57,7 @@ module Beaker
|
|
57
57
|
hypervisor = provision?(@options, host_hash) ? host_hash['hypervisor'] : 'none'
|
58
58
|
@logger.debug "Hypervisor for #{name} is #{hypervisor}"
|
59
59
|
@machines[hypervisor] = [] unless @machines[hypervisor]
|
60
|
+
hostless_options[:timesync] = host_hash[:timesync] if host_hash[:timesync]!=nil
|
60
61
|
host_itself = Beaker::Host.create(name, host_hash, hostless_options)
|
61
62
|
host_itself.validate_setup
|
62
63
|
@machines[hypervisor] << host_itself
|