beaker 3.18.0 → 3.19.0

Sign up to get free protection for your applications and to get access to all the features.
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