beaker 3.18.0 → 3.19.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/Rakefile +0 -23
- data/beaker.gemspec +1 -0
- data/lib/beaker/dsl/helpers.rb +3 -4
- data/lib/beaker/dsl/install_utils.rb +2 -7
- data/lib/beaker/dsl/wrappers.rb +0 -87
- data/lib/beaker/host/unix/pkg.rb +56 -17
- data/lib/beaker/hypervisor/docker.rb +26 -1
- data/lib/beaker/options/parser.rb +12 -5
- data/lib/beaker/options/subcommand_options_file_parser.rb +11 -4
- data/lib/beaker/ssh_connection.rb +6 -6
- data/lib/beaker/subcommand.rb +6 -0
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/host/unix/pkg_spec.rb +130 -0
- data/spec/beaker/hypervisor/docker_spec.rb +28 -1
- data/spec/beaker/options/parser_spec.rb +38 -18
- data/spec/beaker/options/subcommand_options_parser_spec.rb +28 -5
- data/spec/beaker/ssh_connection_spec.rb +17 -17
- metadata +16 -28
- data/acceptance/config/puppetgem/acceptance-options.rb +0 -9
- data/acceptance/config/puppetgit/acceptance-options.rb +0 -9
- data/acceptance/config/puppetpkg/acceptance-options.rb +0 -8
- data/acceptance/pre_suite/puppet_gem/install.rb +0 -8
- data/acceptance/pre_suite/puppet_git/install.rb +0 -98
- data/acceptance/pre_suite/puppet_pkg/install.rb +0 -9
- data/acceptance/tests/puppet/README.md +0 -3
- data/acceptance/tests/puppet/install_smoke_test.rb +0 -21
- data/acceptance/tests/puppet/stub_host.rb +0 -47
- data/acceptance/tests/puppet/web_helpers_test.rb +0 -55
- data/acceptance/tests/puppet/with_puppet_running_on.rb +0 -26
- data/lib/beaker/dsl/helpers/puppet_helpers.rb +0 -865
- data/lib/beaker/dsl/helpers/tk_helpers.rb +0 -89
- data/lib/beaker/dsl/install_utils/aio_defaults.rb +0 -93
- data/lib/beaker/dsl/install_utils/ezbake_utils.rb +0 -256
- data/lib/beaker/dsl/install_utils/foss_defaults.rb +0 -211
- data/lib/beaker/dsl/install_utils/foss_utils.rb +0 -1307
- data/lib/beaker/dsl/install_utils/module_utils.rb +0 -244
- data/lib/beaker/dsl/install_utils/puppet_utils.rb +0 -157
- data/lib/beaker/options/homedir_options_file_parser.rb +0 -0
- data/spec/beaker/dsl/helpers/facter_helpers_spec.rb +0 -59
- data/spec/beaker/dsl/helpers/puppet_helpers_spec.rb +0 -1179
- data/spec/beaker/dsl/helpers/tk_helpers_spec.rb +0 -83
- data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +0 -1307
- data/spec/beaker/dsl/install_utils/module_utils_spec.rb +0 -261
- data/spec/beaker/dsl/install_utils/puppet_utils_spec.rb +0 -136
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NmYyZWQyNGMxMzRkNDZlOWZlODBiYWU4YTBmZmY2YzgzNGI0ODI5NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
Nzk2Njc3NDM0YmNhODliNTM5NjllZjUxMmM5NzRmZTAyMDc0OTMyOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTcwOWRlZDhkODc1YzBlNjNlZWVjNGI1MjA1YmRhNmUxNjZmMWMxZGQ0OGM2
|
10
|
+
NTM2NjdlMjZhYTVkZDQyNzcxMDQxMmFmZDM1YzgyZjk4MDE5MGJhNGY4MWVl
|
11
|
+
NjU2YTY2Mzk2OWJmYmJiMzQxMDdmYWJiZGQ2MzIyZGFkNzJhNTc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OGUwMDhjMjViM2Y4ZTM2YjM3ZmM4MzRmOWFmYTk1YWE2ZDk5YzQ0ZjcxM2E1
|
14
|
+
YjE4MDYxZGE4NmQyZTFiY2MxMTc5Y2UxOTdjYTE1YTFkNTMzNDEyMGExNmU2
|
15
|
+
MDcwNTE4NTQzY2QxNjEzYTg3MDU5Zjg3YjU4NTI0YzA5NjRjZWM=
|
data/Rakefile
CHANGED
@@ -200,29 +200,6 @@ Run the puppet beaker acceptance tests on a pe install.
|
|
200
200
|
beaker_test(:puppetpe)
|
201
201
|
end
|
202
202
|
|
203
|
-
desc <<-EOS
|
204
|
-
Run the puppet beaker acceptance tests on a puppet gem install.
|
205
|
-
#{USAGE}
|
206
|
-
EOS
|
207
|
-
task :puppetgem => 'gen_hosts' do
|
208
|
-
beaker_test(:puppetgem)
|
209
|
-
end
|
210
|
-
|
211
|
-
desc <<-EOS
|
212
|
-
Run the puppet beaker acceptance tests on a puppet git install.
|
213
|
-
#{USAGE}
|
214
|
-
EOS
|
215
|
-
task :puppetgit => 'gen_hosts' do
|
216
|
-
beaker_test(:puppetgit)
|
217
|
-
end
|
218
|
-
|
219
|
-
desc <<-EOS
|
220
|
-
Run the puppet beaker acceptance tests on a puppet package install.
|
221
|
-
#{USAGE}
|
222
|
-
EOS
|
223
|
-
task :puppetpkg => 'gen_hosts' do
|
224
|
-
beaker_test(:puppetpkg)
|
225
|
-
end
|
226
203
|
|
227
204
|
desc 'Generate Beaker Host Config File'
|
228
205
|
task :gen_hosts do
|
data/beaker.gemspec
CHANGED
@@ -48,6 +48,7 @@ Gem::Specification.new do |s|
|
|
48
48
|
s.add_runtime_dependency 'stringify-hash', '~> 0.0'
|
49
49
|
s.add_runtime_dependency 'beaker-hiera', '~> 0.0'
|
50
50
|
s.add_runtime_dependency 'beaker-hostgenerator'
|
51
|
+
s.add_runtime_dependency 'beaker-puppet', '~> 0.0'
|
51
52
|
|
52
53
|
# Optional provisioner specific support
|
53
54
|
s.add_runtime_dependency 'rbvmomi', '~> 1.9'
|
data/lib/beaker/dsl/helpers.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
[ '
|
2
|
+
[ 'host', 'test', 'web', 'hocon' ].each do |lib|
|
3
3
|
require "beaker/dsl/helpers/#{lib}_helpers"
|
4
4
|
end
|
5
5
|
|
6
6
|
require "beaker-hiera"
|
7
|
+
require 'beaker-puppet'
|
7
8
|
module Beaker
|
8
9
|
module DSL
|
9
10
|
|
@@ -23,14 +24,12 @@ module Beaker
|
|
23
24
|
#
|
24
25
|
#
|
25
26
|
module Helpers
|
26
|
-
include Beaker::DSL::Helpers::FacterHelpers
|
27
27
|
include Beaker::DSL::Helpers::HostHelpers
|
28
|
-
include Beaker::DSL::Helpers::PuppetHelpers
|
29
28
|
include Beaker::DSL::Helpers::TestHelpers
|
30
|
-
include Beaker::DSL::Helpers::TKHelpers
|
31
29
|
include Beaker::DSL::Helpers::WebHelpers
|
32
30
|
include Beaker::DSL::Helpers::HoconHelpers
|
33
31
|
include Beaker::DSL::Helpers::Hiera
|
32
|
+
include BeakerPuppet::Helpers
|
34
33
|
end
|
35
34
|
end
|
36
35
|
end
|
@@ -1,17 +1,12 @@
|
|
1
|
-
[ 'foss', 'puppet', 'ezbake', 'module' ].each do |lib|
|
2
|
-
require "beaker/dsl/install_utils/#{lib}_utils"
|
3
|
-
end
|
4
1
|
require "beaker/dsl/install_utils/pe_defaults"
|
2
|
+
require 'beaker-puppet'
|
5
3
|
|
6
4
|
module Beaker
|
7
5
|
module DSL
|
8
6
|
# Collection of installation methods and support
|
9
7
|
module InstallUtils
|
10
|
-
include DSL::InstallUtils::PuppetUtils
|
11
8
|
include DSL::InstallUtils::PEDefaults
|
12
|
-
include
|
13
|
-
include DSL::InstallUtils::ModuleUtils
|
14
|
-
include DSL::InstallUtils::EZBakeUtils
|
9
|
+
include BeakerPuppet::InstallUtils
|
15
10
|
end
|
16
11
|
end
|
17
12
|
end
|
data/lib/beaker/dsl/wrappers.rb
CHANGED
@@ -9,39 +9,6 @@ module Beaker
|
|
9
9
|
# many of them.
|
10
10
|
module Wrappers
|
11
11
|
|
12
|
-
# This is hairy and because of legacy code it will take a bit more
|
13
|
-
# work to disentangle all of the things that are being passed into
|
14
|
-
# this catchall param.
|
15
|
-
#
|
16
|
-
def facter(*args)
|
17
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
18
|
-
options['ENV'] ||= {}
|
19
|
-
options[:cmdexe] = true
|
20
|
-
Command.new('facter', args, options )
|
21
|
-
end
|
22
|
-
|
23
|
-
# This is hairy and because of legacy code it will take a bit more
|
24
|
-
# work to disentangle all of the things that are being passed into
|
25
|
-
# this catchall param.
|
26
|
-
#
|
27
|
-
def cfacter(*args)
|
28
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
29
|
-
options['ENV'] ||= {}
|
30
|
-
options[:cmdexe] = true
|
31
|
-
Command.new('cfacter', args, options )
|
32
|
-
end
|
33
|
-
|
34
|
-
# This is hairy and because of legacy code it will take a bit more
|
35
|
-
# work to disentangle all of the things that are being passed into
|
36
|
-
# this catchall param.
|
37
|
-
#
|
38
|
-
def hiera(*args)
|
39
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
40
|
-
options['ENV'] ||= {}
|
41
|
-
options[:cmdexe] = true
|
42
|
-
Command.new('hiera', args, options )
|
43
|
-
end
|
44
|
-
|
45
12
|
# @param [String] command_string A string of to be interpolated
|
46
13
|
# within the context of a host in
|
47
14
|
# question
|
@@ -51,60 +18,6 @@ module Beaker
|
|
51
18
|
HostCommand.new(command_string)
|
52
19
|
end
|
53
20
|
|
54
|
-
# This is hairy and because of legacy code it will take a bit more
|
55
|
-
# work to disentangle all of the things that are being passed into
|
56
|
-
# this catchall param.
|
57
|
-
#
|
58
|
-
def puppet(*args)
|
59
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
60
|
-
options['ENV'] ||= {}
|
61
|
-
options[:cmdexe] = true
|
62
|
-
# we assume that an invocation with `puppet()` will have it's first argument
|
63
|
-
# a face or sub command
|
64
|
-
cmd = "puppet #{args.shift}"
|
65
|
-
Command.new( cmd, args, options )
|
66
|
-
end
|
67
|
-
|
68
|
-
# @!visibility private
|
69
|
-
def puppet_resource(*args)
|
70
|
-
puppet( 'resource', *args )
|
71
|
-
end
|
72
|
-
|
73
|
-
# @!visibility private
|
74
|
-
def puppet_doc(*args)
|
75
|
-
puppet( 'doc', *args )
|
76
|
-
end
|
77
|
-
|
78
|
-
# @!visibility private
|
79
|
-
def puppet_kick(*args)
|
80
|
-
puppet( 'kick', *args )
|
81
|
-
end
|
82
|
-
|
83
|
-
# @!visibility private
|
84
|
-
def puppet_cert(*args)
|
85
|
-
puppet( 'cert', *args )
|
86
|
-
end
|
87
|
-
|
88
|
-
# @!visibility private
|
89
|
-
def puppet_apply(*args)
|
90
|
-
puppet( 'apply', *args )
|
91
|
-
end
|
92
|
-
|
93
|
-
# @!visibility private
|
94
|
-
def puppet_master(*args)
|
95
|
-
puppet( 'master', *args )
|
96
|
-
end
|
97
|
-
|
98
|
-
# @!visibility private
|
99
|
-
def puppet_agent(*args)
|
100
|
-
puppet( 'agent', *args )
|
101
|
-
end
|
102
|
-
|
103
|
-
# @!visibility private
|
104
|
-
def puppet_filebucket(*args)
|
105
|
-
puppet( 'filebucket', *args )
|
106
|
-
end
|
107
|
-
|
108
21
|
# Returns a {Beaker::Command} object for executing powershell commands on a host
|
109
22
|
#
|
110
23
|
# @param [String] command The powershell command to execute
|
data/lib/beaker/host/unix/pkg.rb
CHANGED
@@ -471,40 +471,79 @@ module Unix::Pkg
|
|
471
471
|
def pe_puppet_agent_promoted_package_install(
|
472
472
|
onhost_copy_base, onhost_copied_download, onhost_copied_file, download_file, opts
|
473
473
|
)
|
474
|
+
uncompress_local_tarball( onhost_copied_download, onhost_copy_base, download_file )
|
475
|
+
if self['platform'] =~ /^solaris/
|
476
|
+
# above uncompresses the install from .tar.gz -> .p5p into the
|
477
|
+
# onhost_copied_file directory w/a weird name. We have to read that file
|
478
|
+
# name from the filesystem, so that we can provide it to install_local...
|
479
|
+
pkg_filename = execute( "ls #{onhost_copied_file}" )
|
480
|
+
onhost_copied_file = "#{onhost_copied_file}#{pkg_filename}"
|
481
|
+
end
|
482
|
+
|
483
|
+
install_local_package( onhost_copied_file, onhost_copy_base )
|
484
|
+
nil
|
485
|
+
end
|
486
|
+
|
487
|
+
# Installs a package already located on a SUT
|
488
|
+
#
|
489
|
+
# @param [String] onhost_package_file Path to the package file to install
|
490
|
+
# @param [String] onhost_copy_dir Path to the directory where the package
|
491
|
+
# file is located. Used on solaris only
|
492
|
+
#
|
493
|
+
# @return nil
|
494
|
+
def install_local_package(onhost_package_file, onhost_copy_dir = nil)
|
474
495
|
variant, version, arch, codename = self['platform'].to_array
|
475
496
|
case variant
|
476
|
-
when /^(fedora-(2[2-9]))$/
|
477
|
-
execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
|
478
|
-
execute("dnf --nogpgcheck localinstall -y #{onhost_copied_file}")
|
479
497
|
when /^(fedora|el|centos)$/
|
480
|
-
|
481
|
-
|
498
|
+
command_name = 'yum'
|
499
|
+
command_name = 'dnf 'if variant == 'fedora' && version > 21 && version <= 29
|
500
|
+
execute("#{command_name} --nogpgcheck localinstall -y #{onhost_package_file}")
|
482
501
|
when /^(sles)$/
|
483
|
-
execute("
|
484
|
-
execute("rpm -ihv #{onhost_copied_file}")
|
502
|
+
execute("rpm -ihv #{onhost_package_file}")
|
485
503
|
when /^(debian|ubuntu|cumulus)$/
|
486
|
-
execute("
|
487
|
-
execute("dpkg -i --force-all #{onhost_copied_file}")
|
504
|
+
execute("dpkg -i --force-all #{onhost_package_file}")
|
488
505
|
execute("apt-get update")
|
506
|
+
when /^solaris$/
|
507
|
+
self.solaris_install_local_package( onhost_package_file, onhost_copy_dir )
|
508
|
+
when /^osx$/
|
509
|
+
install_package( onhost_package_file )
|
510
|
+
else
|
511
|
+
msg = "Platform #{variant} is not supported by the method "
|
512
|
+
msg << 'install_local_package'
|
513
|
+
raise ArgumentError, msg
|
514
|
+
end
|
515
|
+
end
|
516
|
+
|
517
|
+
# Uncompresses a tarball on the SUT
|
518
|
+
#
|
519
|
+
# @param [String] onhost_tar_file Path to the tarball to uncompress
|
520
|
+
# @param [String] onhost_base_dir Path to the directory to uncompress to
|
521
|
+
# @param [String] download_file Name of the file after uncompressing
|
522
|
+
#
|
523
|
+
# @return nil
|
524
|
+
def uncompress_local_tarball(onhost_tar_file, onhost_base_dir, download_file)
|
525
|
+
variant, version, arch, codename = self['platform'].to_array
|
526
|
+
case variant
|
527
|
+
when /^(fedora|el|centos|sles|debian|ubuntu|cumulus)$/
|
528
|
+
execute("tar -zxvf #{onhost_tar_file} -C #{onhost_base_dir}")
|
489
529
|
when /^solaris$/
|
490
530
|
# uncompress PE puppet-agent tarball
|
491
531
|
if version == '10'
|
492
|
-
execute("gunzip #{
|
532
|
+
execute("gunzip #{onhost_tar_file}")
|
493
533
|
tar_file_name = File.basename(download_file, '.gz')
|
494
534
|
execute("tar -xvf #{tar_file_name}")
|
495
535
|
elsif version == '11'
|
496
|
-
execute("tar -zxvf #{
|
536
|
+
execute("tar -zxvf #{onhost_tar_file}")
|
497
537
|
else
|
498
538
|
msg = "Solaris #{version} is not supported by the method "
|
499
|
-
msg << '
|
539
|
+
msg << 'uncompress_local_tarball'
|
500
540
|
raise ArgumentError, msg
|
501
541
|
end
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
542
|
+
else
|
543
|
+
msg = "Platform #{variant} is not supported by the method "
|
544
|
+
msg << 'uncompress_local_tarball'
|
545
|
+
raise ArgumentError, msg
|
506
546
|
end
|
507
|
-
nil
|
508
547
|
end
|
509
548
|
|
510
549
|
# Installs a local package file on a solaris host
|
@@ -5,6 +5,7 @@ module Beaker
|
|
5
5
|
# Env variables supported:
|
6
6
|
# DOCKER_REGISTRY: Docker registry URL
|
7
7
|
# DOCKER_HOST: Remote docker host
|
8
|
+
# DOCKER_BUILDARGS: Docker buildargs map
|
8
9
|
# @param [Host, Array<Host>, String, Symbol] hosts One or more hosts to act upon,
|
9
10
|
# or a role (String or Symbol) that identifies one or more hosts.
|
10
11
|
# @param [Hash{Symbol=>String}] options Options to pass on to the hypervisor
|
@@ -50,7 +51,9 @@ module Beaker
|
|
50
51
|
@logger.notify "provisioning #{host.name}"
|
51
52
|
|
52
53
|
@logger.debug("Creating image")
|
53
|
-
image = ::Docker::Image.build(dockerfile_for(host), {
|
54
|
+
image = ::Docker::Image.build(dockerfile_for(host), {
|
55
|
+
:rm => true, :buildargs => buildargs_for(host)
|
56
|
+
})
|
54
57
|
|
55
58
|
if @docker_type == 'swarm'
|
56
59
|
image_name = "#{@registry}/beaker/#{image.id}"
|
@@ -178,6 +181,28 @@ module Beaker
|
|
178
181
|
'root'
|
179
182
|
end
|
180
183
|
|
184
|
+
def buildargs_for(host)
|
185
|
+
docker_buildargs = {}
|
186
|
+
docker_buildargs_env = ENV['DOCKER_BUILDARGS']
|
187
|
+
if docker_buildargs_env != nil
|
188
|
+
docker_buildargs_env.split(/ +|\t+/).each do |arg|
|
189
|
+
key,value=arg.split(/=/)
|
190
|
+
if key
|
191
|
+
docker_buildargs[key]=value
|
192
|
+
else
|
193
|
+
@logger.warn("DOCKER_BUILDARGS environment variable appears invalid, no key found for value #{value}" )
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
if docker_buildargs.empty?
|
198
|
+
buildargs = host['docker_buildargs'] || {}
|
199
|
+
else
|
200
|
+
buildargs = docker_buildargs
|
201
|
+
end
|
202
|
+
@logger.debug("Docker build buildargs: #{buildargs}")
|
203
|
+
JSON.generate(buildargs)
|
204
|
+
end
|
205
|
+
|
181
206
|
def dockerfile_for(host)
|
182
207
|
if host['dockerfile'] then
|
183
208
|
@logger.debug("attempting to load user Dockerfile from #{host['dockerfile']}")
|
@@ -205,7 +205,8 @@ module Beaker
|
|
205
205
|
# 3. the 'CONFIG' section of the hosts file
|
206
206
|
# 4. options file values
|
207
207
|
# 5. subcommand options, if executing beaker subcommands
|
208
|
-
# 6.
|
208
|
+
# 6. subcommand options from $HOME/.beaker/subcommand_options.yaml
|
209
|
+
# 7. default or preset values are given the lowest priority
|
209
210
|
#
|
210
211
|
# @param [Array] args ARGV or a provided arguments array
|
211
212
|
# @raise [ArgumentError] Raises error on bad input
|
@@ -216,10 +217,16 @@ module Beaker
|
|
216
217
|
cmd_line_options[:command_line] = ([$0] + args).join(' ')
|
217
218
|
@attribution = @attribution.merge(tag_sources(cmd_line_options, "flag"))
|
218
219
|
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
220
|
+
subcommand_options_file = Beaker::Subcommands::SubcommandUtil::SUBCOMMAND_OPTIONS
|
221
|
+
options_files = {"homedir" => "#{ENV['HOME']}/#{subcommand_options_file}", "subcommand" => subcommand_options_file}
|
222
|
+
|
223
|
+
# Global subcommand options from $HOME/.beaker/subcommand_options.yaml are first to get merged into presets
|
224
|
+
# Subcommands are the second to get merged into presets
|
225
|
+
options_files.each do |src, path|
|
226
|
+
opts = Beaker::Options::SubcommandOptionsParser.parse_subcommand_options(args, path)
|
227
|
+
@attribution = @attribution.merge(tag_sources(opts, src))
|
228
|
+
@options.merge!(opts)
|
229
|
+
end
|
223
230
|
|
224
231
|
file_options = Beaker::Options::OptionsFileParser.parse_options_file(cmd_line_options[:options_file])
|
225
232
|
@attribution = @attribution.merge(tag_sources(file_options, "options_file"))
|
@@ -3,18 +3,25 @@ module Beaker
|
|
3
3
|
#A set of functions to read options files
|
4
4
|
module SubcommandOptionsParser
|
5
5
|
|
6
|
+
def self.parse_options_file(options_file_path)
|
7
|
+
result = OptionsHash.new
|
8
|
+
if File.exist?(options_file_path)
|
9
|
+
result = YAML.load_file(options_file_path)
|
10
|
+
end
|
11
|
+
result
|
12
|
+
end
|
13
|
+
|
6
14
|
# @return [OptionsHash, Hash] returns an empty OptionHash or loads subcommand options yaml
|
7
15
|
# from disk
|
8
|
-
def self.parse_subcommand_options(argv)
|
16
|
+
def self.parse_subcommand_options(argv, options_file)
|
9
17
|
result = OptionsHash.new
|
10
18
|
if Beaker::Subcommands::SubcommandUtil.execute_subcommand?(argv[0])
|
11
19
|
return result if argv[0] == 'init'
|
12
|
-
|
13
|
-
result = YAML.load_file(Beaker::Subcommands::SubcommandUtil::SUBCOMMAND_OPTIONS)
|
14
|
-
end
|
20
|
+
result = SubcommandOptionsParser.parse_options_file(options_file)
|
15
21
|
end
|
16
22
|
result
|
17
23
|
end
|
24
|
+
|
18
25
|
end
|
19
26
|
end
|
20
27
|
end
|
@@ -65,16 +65,16 @@ module Beaker
|
|
65
65
|
|
66
66
|
# connect to the host
|
67
67
|
def connect
|
68
|
-
#try three ways to connect to host (
|
68
|
+
#try three ways to connect to host (vmhostname, ip, hostname)
|
69
69
|
methods = []
|
70
|
-
if @
|
71
|
-
@ssh ||= connect_block(@ip, @user, @ssh_opts)
|
72
|
-
methods << "ip (#{@ip})"
|
73
|
-
end
|
74
|
-
if @vmhostname && !@ssh
|
70
|
+
if @vmhostname
|
75
71
|
@ssh ||= connect_block(@vmhostname, @user, @ssh_opts)
|
76
72
|
methods << "vmhostname (#{@vmhostname})"
|
77
73
|
end
|
74
|
+
if @ip && !@ssh
|
75
|
+
@ssh ||= connect_block(@ip, @user, @ssh_opts)
|
76
|
+
methods << "ip (#{@ip})"
|
77
|
+
end
|
78
78
|
if @hostname && !@ssh
|
79
79
|
@ssh ||= connect_block(@hostname, @user, @ssh_opts)
|
80
80
|
methods << "hostname (#{@hostname})"
|
data/lib/beaker/subcommand.rb
CHANGED
@@ -52,6 +52,12 @@ module Beaker
|
|
52
52
|
class_option :'exclude-tags', :type => :string, :group => 'Beaker run'
|
53
53
|
class_option :'xml-time-order', :type => :boolean, :group => 'Beaker run'
|
54
54
|
|
55
|
+
# The following are listed as deprecated in beaker --help, but needed now for
|
56
|
+
# feature parity for beaker 3.x.
|
57
|
+
class_option :xml, :type => :boolean, :group => "Beaker run"
|
58
|
+
class_option :type, :type => :string, :group => "Beaker run"
|
59
|
+
class_option :debug, :type => :boolean, :group => "Beaker run"
|
60
|
+
|
55
61
|
desc "init BEAKER_RUN_OPTIONS", "Initializes the required configuration for Beaker subcommand execution"
|
56
62
|
long_desc <<-LONGDESC
|
57
63
|
Initializes the required .beaker configuration folder. This folder contains
|