beaker 3.11.0 → 3.12.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
- ZTYxNmZjMGE0NTRhOGYxZWQ0YjI2MWI3MjgwMmU3YmI2YzE5YzRkMg==
4
+ MGJkNWQ2MjM2NzVmMjFiMzIzNDUwMzBhNGRkMDUzMzFlNjk1ZTk2OA==
5
5
  data.tar.gz: !binary |-
6
- ODljNWVjNDQ1YzExNTU3Y2YwNWM3N2EwZTkwNWE2YTYxZGY1Mzg3YQ==
6
+ MTVlOGIwNTBlNmRmOTgyMjc1YzBkZWE3NzU3YzIxZTBmNjc5YWIyMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZWFiZGJhNTI2M2VmYTBiNWRjODllYmVmYjViYWYwNGI1NDQyY2Q3YTA2OTlh
10
- NDIyMzE4MDU3MDE3YTg0OTEzYzIyZDEwMjk3ODdlZWUwZTM0OTJkNzg1ZTA1
11
- OTkwZWVhYjBmNzIwODFjNGZkOGNjNTUwYzkwNTFiZDQ0MTliZDM=
9
+ MDhiOTc5ZWQyMDA3NWE4MmM4ZjA4MTMwOWJkODg1ZjA3N2Q1Mzk4YmEyNzIw
10
+ OWVhYzE3OTI2YTFiZDkxNmIzNzA2YzI4YWQ5ZTA0YzMzNTk0ZGJhMDU0NzFm
11
+ OTJkYmFiZjk3NzVhNTVjZGE0ZjY1Yzc3MGYxNjdjYzdhMzE4NGM=
12
12
  data.tar.gz: !binary |-
13
- NjBjOGMzODJmMjVkZTZkOGU4MDVjMzkzNTI0MGUwNGVhNTU0NjViM2IzMjVk
14
- NzNlMzVjNTUzOTBlMTNjZWE0MDdiOGQxZjJjZDJmMDcxZjg1ZTg1NTc0YzE2
15
- NDNmNDQzYTFjZmYzOGRiOGM1ZTY3N2M1OWU5ZTZhNDQ5NzVhZjM=
13
+ NWYyYTNiYzgxMGY3OWIxNWMzNGViMTBlYmIyODI4MGQ3MmFiNzYzMTQzZTg3
14
+ NzQ5ZGJlZDExZDU0Yzc3OTY5M2RkMmEyYzQ5NDU4ZDVhM2M1Y2ExOThmMjQ5
15
+ NDQyNGIxOTA1YWE0YWVkMWRjMDUyY2RmMDlhZjhlYTU1ZmY1MTQ=
@@ -20,7 +20,7 @@ test_name 'use the init subcommand' do
20
20
 
21
21
  ['vmpooler', 'vagrant'].each do |hypervisor|
22
22
  result = on(default, "beaker init --hypervisor=#{hypervisor}")
23
- assert_match(/Writing default host config/, result.stdout)
23
+ assert_match(/Writing host config.+/, result.stdout)
24
24
  assert_equal(0, result.exit_code, "`beaker init --hypervisor=#{hypervisor}` should return a zero exit code")
25
25
  step 'ensure that the Rakefile is present' do
26
26
  on(default, '[ -e "Rakefile" ]')
@@ -44,4 +44,3 @@ test_name 'use the init subcommand' do
44
44
  assert(result.stdout.include?("require 'tempfile'"), 'Rakefile should not contain prepended require')
45
45
  end
46
46
  end
47
-
@@ -676,9 +676,18 @@ module Beaker
676
676
  def sleep_until_puppetdb_started(host, nonssl_port = nil, ssl_port = nil)
677
677
  nonssl_port = options[:puppetdb_port_nonssl] if nonssl_port.nil?
678
678
  ssl_port = options[:puppetdb_port_ssl] if ssl_port.nil?
679
- endpoint = 'status/v1/services/puppetdb-status'
679
+ pe_ver = host['pe_ver'] || '0'
680
+ if version_is_less(pe_ver, '2016.1.0') then
681
+ # the status endpoint was introduced in puppetdb 4.0. The earliest
682
+ # PE release with the 4.x pdb version was 2016.1.0
683
+ endpoint = 'pdb/meta/v1/version'
684
+ expected_regex = '\"version\" \{0,\}: \{0,\}\"[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\"'
685
+ else
686
+ endpoint = 'status/v1/services/puppetdb-status'
687
+ expected_regex = '\"state\" \{0,\}: \{0,\}\"running\"'
688
+ end
680
689
  retry_on(host,
681
- "curl -m 1 http://localhost:#{nonssl_port}/#{endpoint} | grep '\"state\":\"running\"'",
690
+ "curl -m 1 http://localhost:#{nonssl_port}/#{endpoint} | grep '#{expected_regex}'",
682
691
  {:max_retries => 120})
683
692
  curl_with_retries("start puppetdb (ssl)",
684
693
  host, "https://#{host.node_name}:#{ssl_port}", [35, 60])
@@ -436,7 +436,11 @@ module Beaker
436
436
  # @api private
437
437
  def install_puppet_from_rpm_on( hosts, opts )
438
438
  block_on hosts do |host|
439
- install_puppetlabs_release_repo(host)
439
+ if host[:type] == 'aio'
440
+ install_puppetlabs_release_repo(host,'pc1',opts)
441
+ else
442
+ install_puppetlabs_release_repo(host,nil,opts)
443
+ end
440
444
 
441
445
  if opts[:facter_version]
442
446
  host.install_package("facter-#{opts[:facter_version]}")
@@ -922,6 +926,7 @@ module Beaker
922
926
  # cisco ios xr requires using yum to localinstall the repo
923
927
  on host, "yum -y localinstall #{remote}"
924
928
  else
929
+ opts[:package_proxy] ||= false
925
930
  host.install_package_with_rpm( remote, '--replacepkgs',
926
931
  { :package_proxy => opts[:package_proxy] } )
927
932
  end
@@ -7,14 +7,19 @@ module Beaker
7
7
  SubcommandUtil = Beaker::Subcommands::SubcommandUtil
8
8
 
9
9
  desc "init", "Initialises the beaker test environment configuration"
10
- option :hypervisor, :type => :string, :required => true
10
+ option :hypervisor, :type => :string, :enum => %w{vagrant vmpooler}
11
+ option :help, :type => :boolean, :hide => true
11
12
  long_desc <<-LONGDESC
12
13
  Initialises a beaker environment configuration
13
14
  LONGDESC
14
15
  def init()
15
- SubcommandUtil.verify_init_args(options)
16
+ if options[:help]
17
+ invoke :help, [], ["init"]
18
+ return
19
+ end
16
20
  SubcommandUtil.require_tasks()
17
21
  SubcommandUtil.init_hypervisor(options)
22
+ say "Writing host config to .beaker/acceptance/config/default_#{options[:hypervisor]}_hosts.yaml"
18
23
  end
19
24
  end
20
25
  end
@@ -1,4 +1,5 @@
1
1
  require 'rake'
2
+ require 'stringio'
2
3
 
3
4
  module Beaker
4
5
  module Subcommands
@@ -12,8 +13,8 @@ module Beaker
12
13
  # - execute the vagrant quickstart task
13
14
  # - execute the vmpooler quickstart task
14
15
  # - exit with a specific message
15
- # - verify that the init subcommand has the correct arguments
16
16
  # - execute the quick start task for the specified hypervisor
17
+ # - capture stdout and stderr
17
18
  module SubcommandUtil
18
19
  BEAKER_REQUIRE = "require 'beaker/tasks/quick_start'"
19
20
  HYPERVISORS = ["vagrant", "vmpooler"]
@@ -72,7 +73,7 @@ module Beaker
72
73
  # @param [String] task the rake task to execute
73
74
  def self.execute_rake_task(task)
74
75
  rake_app.load_rakefile()
75
- rake_app.invoke_task(task)
76
+ with_captured_output { rake_app.invoke_task(task) }
76
77
  end
77
78
 
78
79
  # Execute the quick start task for vagrant
@@ -92,14 +93,6 @@ module Beaker
92
93
  exit(0)
93
94
  end
94
95
 
95
- # Verify that a valid hypervisor has been specified
96
- # @param [Array<Object>] options the options we want to query
97
- def self.verify_init_args(options)
98
- unless HYPERVISORS.include?(options[:hypervisor])
99
- exit_with("Invalid hypervisor. Currently supported hypervisors are: #{HYPERVISORS.join(', ')}")
100
- end
101
- end
102
-
103
96
  # Call the quick start task for the specified hypervisor
104
97
  # @param [Array<Object>] options the options we want to query
105
98
  def self.init_hypervisor(options)
@@ -110,6 +103,20 @@ module Beaker
110
103
  init_vmpooler
111
104
  end
112
105
  end
106
+
107
+ # Execute a task but capture stdout and stderr to a buffer
108
+ def self.with_captured_output
109
+ begin
110
+ old_stdout = $stdout.clone
111
+ old_stderr = $stderr.clone
112
+ $stdout = StringIO.new
113
+ $stderr = StringIO.new
114
+ yield
115
+ ensure
116
+ $stdout = old_stdout
117
+ $stderr = old_stderr
118
+ end
119
+ end
113
120
  end
114
121
  end
115
122
  end
@@ -1,5 +1,5 @@
1
1
  module Beaker
2
2
  module Version
3
- STRING = '3.11.0'
3
+ STRING = '3.12.0'
4
4
  end
5
5
  end
@@ -1115,6 +1115,27 @@ describe ClassMixedWithDSLHelpers do
1115
1115
  expect( subject ).to receive( :curl_with_retries ).with( anything(), anything(), /8085/, anything() ).once.ordered
1116
1116
  subject.sleep_until_puppetdb_started( host, nil, 8085 )
1117
1117
  end
1118
+
1119
+ context 'when pe_ver is less than 2016.1.0' do
1120
+ it 'uses the version endpoint' do
1121
+ host = hosts[0]
1122
+ host['pe_ver'] = '2015.3.3'
1123
+ expect( subject ).to receive( :retry_on ).with( anything(), /pdb\/meta\/v1\/version/, anything() ).once.ordered
1124
+ expect( subject ).to receive( :curl_with_retries ).with( anything(), anything(), /8081/, anything() ).once.ordered
1125
+ subject.sleep_until_puppetdb_started( host )
1126
+ end
1127
+ end
1128
+
1129
+ context 'when pe_ver is greater than 2015.9.9' do
1130
+ it 'uses the status endpoint' do
1131
+ host = hosts[0]
1132
+ host['pe_ver'] = '2016.1.0'
1133
+ expect( subject ).to receive( :retry_on ).with( anything(), /status\/v1\/services\/puppetdb-status/, anything() ).once.ordered
1134
+ expect( subject ).to receive( :curl_with_retries ).with( anything(), anything(), /8081/, anything() ).once.ordered
1135
+ subject.sleep_until_puppetdb_started( host )
1136
+ end
1137
+ end
1138
+
1118
1139
  end
1119
1140
 
1120
1141
  describe '#sleep_until_puppetserver_started' do
@@ -57,6 +57,17 @@ describe ClassMixedWithDSLInstallUtils do
57
57
  :working_dir => '/tmp',
58
58
  :type => 'foss',
59
59
  :dist => 'puppet-enterprise-3.7.1-rc0-78-gffc958f-eos-4-i386' } ) }
60
+ let(:el6hostaio) { make_host( 'el6hostaio', { :platform => Beaker::Platform.new('el-6-i386'),
61
+ :pe_ver => '3.0',
62
+ :working_dir => '/tmp',
63
+ :type => 'aio',
64
+ :dist => 'puppet-enterprise-3.1.0-rc0-230-g36c9e5c-centos-6-i386' } ) }
65
+ let(:el6hostfoss) { make_host( 'el6hostfoss', { :platform => Beaker::Platform.new('el-6-i386'),
66
+ :pe_ver => '3.0',
67
+ :working_dir => '/tmp',
68
+ :type => 'foss',
69
+ :dist => 'puppet-enterprise-3.1.0-rc0-230-g36c9e5c-centos-6-i386' } ) }
70
+
60
71
  let(:win_temp) { 'C:\\Windows\\Temp' }
61
72
 
62
73
 
@@ -257,6 +268,20 @@ describe ClassMixedWithDSLInstallUtils do
257
268
  end
258
269
  end
259
270
 
271
+ context 'install_puppet_from_rpm_on' do
272
+ it 'installs PC1 release repo when AIO' do
273
+ expect(subject).to receive(:install_puppetlabs_release_repo).with(el6hostaio,'pc1',{})
274
+
275
+ subject.install_puppet_from_rpm_on( el6hostaio, {} )
276
+ end
277
+
278
+ it 'installs non-PC1 package when not-AIO' do
279
+ expect(subject).to receive(:install_puppetlabs_release_repo).with(el6hostfoss,nil,{})
280
+
281
+ subject.install_puppet_from_rpm_on( el6hostfoss, {} )
282
+ end
283
+ end
284
+
260
285
  context 'install_puppet_from_freebsd_ports_on' do
261
286
  it 'installs puppet on FreeBSD 9' do
262
287
  expect(freebsdhost9).to receive(:install_package).with('puppet')
@@ -108,40 +108,6 @@ module Beaker
108
108
  end
109
109
  end
110
110
 
111
- describe 'verify_init_args' do
112
- it "verfy the init args are valid for a vagrant run" do
113
- options = {:hypervisor => "vagrant"}
114
- expect(subject).to receive(:exit_with).exactly(0).times
115
- subject.verify_init_args(options)
116
- end
117
-
118
- it "verfy the init args are valid for a vmpooler run" do
119
- options = {:hypervisor => "vmpooler"}
120
- expect(subject).to receive(:exit_with).exactly(0).times
121
- subject.verify_init_args(options)
122
- end
123
-
124
- it "verify the init args are invalid for an init run" do
125
- options = {}
126
- expect(STDOUT).to receive(:puts).with("Invalid hypervisor. Currently supported hypervisors are: #{Beaker::Subcommands::SubcommandUtil::HYPERVISORS.join(', ')}").exactly(1).times
127
- begin
128
- subject.verify_init_args(options)
129
- rescue SystemExit=>e
130
- expect(e.status).to eq(0)
131
- end
132
- end
133
-
134
- it "verify the init args are invalid for a vmpooler run" do
135
- options = {:hypervisor => "thisshouldfail"}
136
- expect(STDOUT).to receive(:puts).with("Invalid hypervisor. Currently supported hypervisors are: #{Beaker::Subcommands::SubcommandUtil::HYPERVISORS.join(', ')}").exactly(1).times
137
- begin
138
- subject.verify_init_args(options)
139
- rescue SystemExit=>e
140
- expect(e.status).to eq(0)
141
- end
142
- end
143
- end
144
-
145
111
  describe "determine_rake_file" do
146
112
 
147
113
  it "uses Rakefile if no rakefile exists" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.0
4
+ version: 3.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppetlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-13 00:00:00.000000000 Z
11
+ date: 2017-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec