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.
Files changed (45) hide show
  1. checksums.yaml +8 -8
  2. data/Rakefile +0 -23
  3. data/beaker.gemspec +1 -0
  4. data/lib/beaker/dsl/helpers.rb +3 -4
  5. data/lib/beaker/dsl/install_utils.rb +2 -7
  6. data/lib/beaker/dsl/wrappers.rb +0 -87
  7. data/lib/beaker/host/unix/pkg.rb +56 -17
  8. data/lib/beaker/hypervisor/docker.rb +26 -1
  9. data/lib/beaker/options/parser.rb +12 -5
  10. data/lib/beaker/options/subcommand_options_file_parser.rb +11 -4
  11. data/lib/beaker/ssh_connection.rb +6 -6
  12. data/lib/beaker/subcommand.rb +6 -0
  13. data/lib/beaker/version.rb +1 -1
  14. data/spec/beaker/host/unix/pkg_spec.rb +130 -0
  15. data/spec/beaker/hypervisor/docker_spec.rb +28 -1
  16. data/spec/beaker/options/parser_spec.rb +38 -18
  17. data/spec/beaker/options/subcommand_options_parser_spec.rb +28 -5
  18. data/spec/beaker/ssh_connection_spec.rb +17 -17
  19. metadata +16 -28
  20. data/acceptance/config/puppetgem/acceptance-options.rb +0 -9
  21. data/acceptance/config/puppetgit/acceptance-options.rb +0 -9
  22. data/acceptance/config/puppetpkg/acceptance-options.rb +0 -8
  23. data/acceptance/pre_suite/puppet_gem/install.rb +0 -8
  24. data/acceptance/pre_suite/puppet_git/install.rb +0 -98
  25. data/acceptance/pre_suite/puppet_pkg/install.rb +0 -9
  26. data/acceptance/tests/puppet/README.md +0 -3
  27. data/acceptance/tests/puppet/install_smoke_test.rb +0 -21
  28. data/acceptance/tests/puppet/stub_host.rb +0 -47
  29. data/acceptance/tests/puppet/web_helpers_test.rb +0 -55
  30. data/acceptance/tests/puppet/with_puppet_running_on.rb +0 -26
  31. data/lib/beaker/dsl/helpers/puppet_helpers.rb +0 -865
  32. data/lib/beaker/dsl/helpers/tk_helpers.rb +0 -89
  33. data/lib/beaker/dsl/install_utils/aio_defaults.rb +0 -93
  34. data/lib/beaker/dsl/install_utils/ezbake_utils.rb +0 -256
  35. data/lib/beaker/dsl/install_utils/foss_defaults.rb +0 -211
  36. data/lib/beaker/dsl/install_utils/foss_utils.rb +0 -1307
  37. data/lib/beaker/dsl/install_utils/module_utils.rb +0 -244
  38. data/lib/beaker/dsl/install_utils/puppet_utils.rb +0 -157
  39. data/lib/beaker/options/homedir_options_file_parser.rb +0 -0
  40. data/spec/beaker/dsl/helpers/facter_helpers_spec.rb +0 -59
  41. data/spec/beaker/dsl/helpers/puppet_helpers_spec.rb +0 -1179
  42. data/spec/beaker/dsl/helpers/tk_helpers_spec.rb +0 -83
  43. data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +0 -1307
  44. data/spec/beaker/dsl/install_utils/module_utils_spec.rb +0 -261
  45. 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
- ZWRlZjc1Y2Y2YTk4YjdmZjBjMWE4OGYxNWQ0YzFjNjllYjRmNGI2NQ==
4
+ NmYyZWQyNGMxMzRkNDZlOWZlODBiYWU4YTBmZmY2YzgzNGI0ODI5NA==
5
5
  data.tar.gz: !binary |-
6
- ZjQ4ZjYxNTFkZGU4NjVhMzBjOGRhYzc1NTM1NWNhYzE2YTA2NzkxZA==
6
+ Nzk2Njc3NDM0YmNhODliNTM5NjllZjUxMmM5NzRmZTAyMDc0OTMyOA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDVjMzVlYjg2MjYyYjM5NjUwYzQ4ZmVhYjk1NDY4MDJlZWQ5YTYzOTZlM2Ey
10
- MTM0NDFmNDRjODhkN2RkOTBlMGFmNGJkMGIzY2RmYmZhZDY1NDVjZGVkNjg0
11
- YmI5ODIzOTRmMTE1MmRlYjNhZmM1MGRkMjZkNzIzZTYyMTRjMDM=
9
+ OTcwOWRlZDhkODc1YzBlNjNlZWVjNGI1MjA1YmRhNmUxNjZmMWMxZGQ0OGM2
10
+ NTM2NjdlMjZhYTVkZDQyNzcxMDQxMmFmZDM1YzgyZjk4MDE5MGJhNGY4MWVl
11
+ NjU2YTY2Mzk2OWJmYmJiMzQxMDdmYWJiZGQ2MzIyZGFkNzJhNTc=
12
12
  data.tar.gz: !binary |-
13
- YTc4ZDBkYjYzM2E1NGYzZWVjMWQ4ZjRiMWVhMzhjZDlhYjYwNzY2ODhiMjli
14
- MzA3MGYxNjVlOTk5NDllMWM3ZjI3YzVhMTFhODM1ODAxYzAwYjUxMzI0YTcx
15
- OTU4Y2U3NTFlNWIyZWE2M2EzNDJhZmZiODg1NjZiNTY4MjZjYzg=
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
@@ -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'
@@ -1,9 +1,10 @@
1
1
  # -*- coding: utf-8 -*-
2
- [ 'facter', 'host', 'puppet', 'test', 'tk', 'web', 'hocon' ].each do |lib|
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 DSL::InstallUtils::FOSSUtils
13
- include DSL::InstallUtils::ModuleUtils
14
- include DSL::InstallUtils::EZBakeUtils
9
+ include BeakerPuppet::InstallUtils
15
10
  end
16
11
  end
17
12
  end
@@ -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
@@ -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
- execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
481
- execute("yum --nogpgcheck localinstall -y #{onhost_copied_file}")
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("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
484
- execute("rpm -ihv #{onhost_copied_file}")
502
+ execute("rpm -ihv #{onhost_package_file}")
485
503
  when /^(debian|ubuntu|cumulus)$/
486
- execute("tar -zxvf #{onhost_copied_download} -C #{onhost_copy_base}")
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 #{onhost_copied_download}")
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 #{onhost_copied_download}")
536
+ execute("tar -zxvf #{onhost_tar_file}")
497
537
  else
498
538
  msg = "Solaris #{version} is not supported by the method "
499
- msg << 'install_puppet_agent_pe_promoted_repo_on'
539
+ msg << 'uncompress_local_tarball'
500
540
  raise ArgumentError, msg
501
541
  end
502
- # get uncompressed package filename on the system
503
- pkg_filename = execute( "ls #{onhost_copied_file}" )
504
- pkg_path = "#{onhost_copied_file}#{pkg_filename}"
505
- self.solaris_install_local_package( pkg_path, onhost_copy_base )
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), { :rm => true })
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. default or preset values are given the lowest priority
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
- # Subcommands are the first to get merged into presets
220
- subcommand_options = Beaker::Options::SubcommandOptionsParser.parse_subcommand_options(args)
221
- @attribution = @attribution.merge(tag_sources(subcommand_options, 'subcommand'))
222
- @options.merge!(subcommand_options)
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
- if Beaker::Subcommands::SubcommandUtil::SUBCOMMAND_OPTIONS.exist?
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 (ip, vmhostname, hostname)
68
+ #try three ways to connect to host (vmhostname, ip, hostname)
69
69
  methods = []
70
- if @ip
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})"
@@ -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