beaker 2.4.1 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzE2NjM0MmU0ZTNkNzk5ZDNlYWEyNzYyZjJlYmMzMDgyNTc5ZjM1MA==
4
+ MTAxY2VmNjc1ZjM2NDAyOWM3YjM1NWYxZGI5YTE0ZTk4YzhjYTczOQ==
5
5
  data.tar.gz: !binary |-
6
- NDJiOGRjNjRmNWZjYjM4MTU3NWNiNDgwZTIwZWZiNjEzNTcyZDg1Ng==
6
+ YTY1MzczMWY5YmNjOTRjZDA3MDE0MjM1ZjdmMjBmMzM3MjdhODI2ZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YTk5MGM2N2U3MTk5NGZmZjgwNmQyY2JiYjNhZWRiNWFkNTgxOTEwMDk0MGYz
10
- NTRjZjNmZDg4ZTgyNGE1YzVjNmFjZjcyYzlhYmE2NGQ3OTliNGNhNWI1OWQ2
11
- N2M3YjI2MWQ4NjdlMjRlNzY5MWQyMjI2MzY2YjZkYzNmZmQyMzQ=
9
+ YWQwZGE3YzVjZmRkZWZiODE5NTFmZTViMWViNGVlMTllMzFkYzMzMTdlYTM3
10
+ YWU4MTE2MDdiOTgzZDRmYTIxZjMyYjU2MDcxYjNmMjkyZDcyMTYyNGQwZDIx
11
+ YmVlYmRmNTQ5OTgxYWViOTgyZjM3NTQ5ZjJlMmUyYWQxYTE3ZjY=
12
12
  data.tar.gz: !binary |-
13
- ODMyNTM2MjUzNjE5YTQ2MWNjMTRhNzM1YjdiYjUwYjhmYzc5ZWI4MGU3N2Ri
14
- YTE0YjNjZWI1NDczYzBjMDVhYmY2MGYzOWVjM2U2MmU1ZDBkMTA3MjNiZTcy
15
- Mzg3MzA1ZTQwYWM5ZjhmNDBhZTEwNTFmZWRmZGFmODAwZTgyYzA=
13
+ Zjk1NzdiNjg5N2Y2YjE3MGZhMzZkYTY5M2RiNWIyYWRjOTY5NTIzY2FjMjFl
14
+ YTNkYmYxMTM0MmVkYTEzYzgzYTZmZjA3OGEzZTIzMzA2YzJjODM1YTY5ZTY3
15
+ ZThkYTI3NTVkMzY4ZGVkNGYyYzNmNmUwNTA0OTkwZGQ0MDUwYzQ=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 13 Feb, 2015 (c3cffad8)](#LATEST)
3
+ * [LATEST - 23 Feb, 2015 (9ad8bd4c)](#LATEST)
4
+ * [beaker2.4.1 - 13 Feb, 2015 (84400ed1)](#beaker2.4.1)
4
5
  * [beaker2.4.0 - 13 Feb, 2015 (bc5a6676)](#beaker2.4.0)
5
6
  * [beaker2.3.0 - 29 Jan, 2015 (3d185da0)](#beaker2.3.0)
6
7
  * [beaker2.2.0 - 8 Jan, 2015 (cba5f7ed)](#beaker2.2.0)
@@ -70,7 +71,145 @@
70
71
  * [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
71
72
 
72
73
  ## Details
73
- ### <a name = "LATEST">LATEST - 13 Feb, 2015 (c3cffad8)
74
+ ### <a name = "LATEST">LATEST - 23 Feb, 2015 (9ad8bd4c)
75
+
76
+ * (GEM) update beaker version to 2.5.0 (9ad8bd4c)
77
+
78
+ * Merge pull request #701 from anodelman/win-fix (de652599)
79
+
80
+
81
+ ```
82
+ Merge pull request #701 from anodelman/win-fix
83
+
84
+ (QENG-1852) install_puppet unable to install windows msi (regression)
85
+ ```
86
+ * Merge pull request #677 from kevpl/qeng1721_aio_windowsadd (566600ba)
87
+
88
+
89
+ ```
90
+ Merge pull request #677 from kevpl/qeng1721_aio_windowsadd
91
+
92
+ qeng1721: added AIO windows support
93
+ ```
94
+ * Merge pull request #695 from liamjbennett/vagrant_windows_fix (a7a85f72)
95
+
96
+
97
+ ```
98
+ Merge pull request #695 from liamjbennett/vagrant_windows_fix
99
+
100
+ (MAINT) Rolling back change for windows in the vagrant hypervisor
101
+ ```
102
+ * Merge pull request #706 from madAndroid/GH-700-add-docker-options (8e0a7e7d)
103
+
104
+
105
+ ```
106
+ Merge pull request #706 from madAndroid/GH-700-add-docker-options
107
+
108
+ GH-700 - Allow Docker::options to be set from config hash
109
+ ```
110
+ * Merge pull request #709 from kevpl/qeng1868_3.8_answers (cd980c9e)
111
+
112
+
113
+ ```
114
+ Merge pull request #709 from kevpl/qeng1868_3.8_answers
115
+
116
+ (QENG-1868) added 3.8 answers file, based on 3.7
117
+ ```
118
+ * (QENG-1868) added 3.8 answers file, based on 3.7 (5ee004d4)
119
+
120
+ * Merge pull request #707 from johnduarte/QENG-1867 (badb17a0)
121
+
122
+
123
+ ```
124
+ Merge pull request #707 from johnduarte/QENG-1867
125
+
126
+ (QENG-1867) Add ETIMEDOUT rescue to host.rb
127
+ ```
128
+ * (QENG-1867) Add ETIMEDOUT rescue to host.rb (e7a2ed2d)
129
+
130
+
131
+ ```
132
+ (QENG-1867) Add ETIMEDOUT rescue to host.rb
133
+
134
+ This commit adds `Errno::ETIMEDOUT` to the rescue logic of the
135
+ port_open? method in lib/beaker/host.rb.
136
+
137
+ Adding this this rescue prevents the ETIMEDOUT error from short circuiting of
138
+ the logical intention of the port_open? method.
139
+ ```
140
+ * GH-700 - amend merge as per suggestion in #706 (6d56290a)
141
+
142
+ * GH-700 - amend comments to be more appropriate (02591293)
143
+
144
+ * GH-700 - handle the use case where ::Docker.options is nil (81836988)
145
+
146
+ * Merge pull request #703 from sschneid/pooling_api_syntax_fixup (041f04ad)
147
+
148
+
149
+ ```
150
+ Merge pull request #703 from sschneid/pooling_api_syntax_fixup
151
+
152
+ (MAINT) use implicit trailing '/' for pooling_api URI
153
+ ```
154
+ * (MAINT) use implicit trailing '/' for pooling_api URI (4d2e6f32)
155
+
156
+ * (QENG-1852) install_puppet unable to install windows msi (regression) (76aba308)
157
+
158
+
159
+ ```
160
+ (QENG-1852) install_puppet unable to install windows msi (regression)
161
+
162
+ - busted curl command on windows
163
+ - busted msiexec command for installation
164
+ - i cry myself to sleep every night
165
+ ```
166
+ * Merge pull request #698 from sschneid/batch_vm_checkout (b8a64f74)
167
+
168
+
169
+ ```
170
+ Merge pull request #698 from sschneid/batch_vm_checkout
171
+
172
+ (QENG-780) request sets of VMs instead of one VM at a time
173
+ ```
174
+ * GH-700 - set ::Docker.options from docker_options in options hash, if it's not set via ::Docker.options already (7db8b636)
175
+
176
+ * (QENG-780) Updating MockNet::HTTP::Post methods (72a07bd2)
177
+
178
+ * (QENG-780) request sets of VMs instead of one VM at a time (9e82d9b6)
179
+
180
+
181
+ ```
182
+ (QENG-780) request sets of VMs instead of one VM at a time
183
+
184
+ This PR facilitates use of vmpooler's batch-request POST API
185
+ (https://github.com/puppetlabs/vmpooler#post-vm) within beaker.
186
+ ```
187
+ * Merge pull request #696 from kevpl/qeng1721_aio_quickadd (831a6c4e)
188
+
189
+
190
+ ```
191
+ Merge pull request #696 from kevpl/qeng1721_aio_quickadd
192
+
193
+ (QENG-1721) added a quick AIO override for windows to unblock testing
194
+ ```
195
+ * (QENG-1721) added a quick AIO override for windows to unblock testing (ba6ba605)
196
+
197
+ * (MAINT) Rolling back change for windows in the vagrant hypervisor (16741375)
198
+
199
+
200
+ ```
201
+ (MAINT) Rolling back change for windows in the vagrant hypervisor
202
+
203
+ Rolling back the change made in bf353c1 as it is no longer required.
204
+
205
+ The subsequent change in 3aa080c for vagrant 1.7 properly fixed the issue
206
+ and so the work around can now be removed.
207
+ ```
208
+ * qeng1721: added AIO windows support (6f8deb7d)
209
+
210
+ ### <a name = "beaker2.4.1">beaker2.4.1 - 13 Feb, 2015 (84400ed1)
211
+
212
+ * (HISTORY) update beaker history for gem release 2.4.1 (84400ed1)
74
213
 
75
214
  * (GEM) update beaker version to 2.4.1 (c3cffad8)
76
215
 
@@ -19,6 +19,8 @@ module Beaker
19
19
  return Version34.new(version, hosts, options)
20
20
  when /\A3\.99/
21
21
  return Version40.new(version, hosts, options)
22
+ when /\A3\.8/
23
+ return Version34.new(version, hosts, options)
22
24
  when /\A3\.7/
23
25
  return Version34.new(version, hosts, options)
24
26
  when /\A3\.4/
@@ -1249,7 +1249,14 @@ module Beaker
1249
1249
  # In all the case that it is different, this init script will exist. So we can assume
1250
1250
  # that if the script doesn't exist, we should just use `pe-puppet`
1251
1251
  result = on agent, "[ -e /etc/init.d/pe-puppet-agent ]", :acceptable_exit_codes => [0,1]
1252
- agent_service = (result.exit_code == 0) ? 'pe-puppet-agent' : 'pe-puppet'
1252
+ agent_service = 'pe-puppet-agent'
1253
+ if result.exit_code != 0
1254
+ if agent['pe_ver'] && !version_is_less(agent['pe_ver'], '4.0')
1255
+ agent_service = 'puppet'
1256
+ else
1257
+ agent_service = 'pe-puppet'
1258
+ end
1259
+ end
1253
1260
 
1254
1261
  # Under a number of stupid circumstances, we can't stop the
1255
1262
  # agent using puppet. This is usually because of issues with
@@ -478,11 +478,18 @@ module Beaker
478
478
  host['dist'] = "puppet-enterprise-#{version}-#{host['platform']}"
479
479
  elsif host['platform'] =~ /windows/
480
480
  version = host[:pe_ver] || opts['pe_ver_win']
481
+ should_install_64bit = !(version_is_less(version, '3.4')) && host.is_x86_64? && !host['install_32'] && !opts['install_32']
481
482
  #only install 64bit builds if
482
483
  # - we are on pe version 3.4+
483
484
  # - we do not have install_32 set on host
484
485
  # - we do not have install_32 set globally
485
- if !(version_is_less(version, '3.4')) and host.is_x86_64? and not host['install_32'] and not opts['install_32']
486
+ if !(version_is_less(version, '4.0'))
487
+ if should_install_64bit
488
+ host['dist'] = "puppet-agent-#{version}-x64"
489
+ else
490
+ host['dist'] = "puppet-agent-#{version}-x86"
491
+ end
492
+ elsif should_install_64bit
486
493
  host['dist'] = "puppet-enterprise-#{version}-x64"
487
494
  else
488
495
  host['dist'] = "puppet-enterprise-#{version}"
@@ -807,8 +814,8 @@ module Beaker
807
814
  end
808
815
 
809
816
  if host['is_cygwin'].nil? or host['is_cygwin'] == true
810
- dest = "/cygdrive/c/Windows/Temp/#{host['dist']}.msi"
811
- on host, "curl -O #{dest} #{link}"
817
+ dest = "#{host['dist']}.msi"
818
+ on host, "curl -O #{link}"
812
819
 
813
820
  #Because the msi installer doesn't add Puppet to the environment path
814
821
  #Add both potential paths for simplicity
@@ -826,7 +833,7 @@ module Beaker
826
833
  on host, "if not exist #{host['distmoduledir']} (md #{host['distmoduledir']})"
827
834
  end
828
835
 
829
- on host, "msiexec /qn /i #{dest}"
836
+ on host, "cmd /C 'start /w msiexec.exe /qn /i #{dest}'"
830
837
  end
831
838
 
832
839
  # Installs Puppet and dependencies from dmg
@@ -39,8 +39,8 @@ module Windows
39
39
  'user' => 'Administrator',
40
40
  'group' => 'Administrators',
41
41
  'puppetpath' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
42
- 'puppetconfdir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
43
- 'puppetcodedir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
42
+ 'puppetconfdir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
43
+ 'puppetcodedir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc',
44
44
  'hieraconf' => '`cygpath -smF 35`/Puppetlabs/puppet/etc/hiera.yaml',
45
45
  'puppetvardir' => '`cygpath -smF 35`/PuppetLabs/puppet/var',
46
46
  'distmoduledir' => '`cygpath -smF 35`/PuppetLabs/puppet/etc/modules',
@@ -48,10 +48,14 @@ module Windows
48
48
  'hieralibdir' => '`cygpath -w /opt/puppet-git-repos/hiera/lib`',
49
49
  'hierapuppetlibdir' => '`cygpath -w /opt/puppet-git-repos/hiera-puppet/lib`',
50
50
  #let's just add both potential bin dirs to the path, include ruby too for `gem`, `ruby`, etc
51
- 'puppetbindir' => '/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet/bin:/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/sys/ruby/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet/sys/ruby/bin',
51
+ 'puppetbindir' => '/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet/bin:/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/sys/ruby/bin:/cygdrive/c/Program Files/Puppet Labs/Puppet/sys/ruby/bin',
52
52
  'hierabindir' => '/opt/puppet-git-repos/hiera/bin',
53
53
  'pathseparator' => ';',
54
54
  })
55
55
  end
56
+
57
+ def self.aio_defaults
58
+ self.foss_defaults
59
+ end
56
60
  end
57
61
  end
data/lib/beaker/host.rb CHANGED
@@ -81,7 +81,7 @@ module Beaker
81
81
  TCPSocket.new(reachable_name, port).close
82
82
  return true
83
83
  end
84
- rescue Errno::ECONNREFUSED, Timeout::Error
84
+ rescue Errno::ECONNREFUSED, Timeout::Error, Errno::ETIMEDOUT
85
85
  return false
86
86
  end
87
87
  end
@@ -8,7 +8,9 @@ module Beaker
8
8
  @hosts = hosts
9
9
 
10
10
  # increase the http timeouts as provisioning images can be slow
11
- ::Docker.options = { :write_timeout => 300, :read_timeout => 300 }.merge(::Docker.options || {})
11
+ default_docker_options = { :write_timeout => 300, :read_timeout => 300 }.merge(::Docker.options || {})
12
+ # Merge docker options from the entry in hosts file
13
+ ::Docker.options = default_docker_options.merge(@options[:docker_options] || {})
12
14
  # assert that the docker-api gem can talk to your docker
13
15
  # enpoint. Will raise if there is a version mismatch
14
16
  begin
@@ -72,9 +72,7 @@ module Beaker
72
72
  end
73
73
  #replace hostname with ip
74
74
  ssh_config = ssh_config.gsub(/Host #{host.name}/, "Host #{host['ip']}") unless not host['ip']
75
- if host['platform'] =~ /windows/
76
- ssh_config = ssh_config.gsub(/127\.0\.0\.1/, host['ip']) unless not host['ip']
77
- end
75
+
78
76
  #set the user
79
77
  ssh_config = ssh_config.gsub(/User vagrant/, "User #{user}")
80
78
  f.write(ssh_config)
@@ -51,7 +51,9 @@ module Beaker
51
51
  end
52
52
 
53
53
  def provision
54
+ request_payload = {}
54
55
  start = Time.now
56
+
55
57
  @hosts.each_with_index do |h, i|
56
58
  if not h['template']
57
59
  raise ArgumentError, "You must specify a template name for #{h}"
@@ -61,39 +63,50 @@ module Beaker
61
63
  h['template'] = templatefolders.pop
62
64
  end
63
65
 
64
- @logger.notify "Requesting '#{h['template']}' VM from vCloud host pool"
66
+ request_payload[h['template']] = (request_payload[h['template']].to_i + 1).to_s
67
+ end
65
68
 
66
- last_wait, wait = 0, 1
67
- waited = 0 #the amount of time we've spent waiting for this host to provision
68
- begin
69
- uri = URI.parse(get_template_url(@options['pooling_api'], h['template']))
69
+ @logger.notify "Requesting VM set from vCloud host pool"
70
70
 
71
- http = Net::HTTP.new( uri.host, uri.port )
72
- request = Net::HTTP::Post.new(uri.request_uri)
71
+ last_wait, wait = 0, 1
72
+ waited = 0 #the amount of time we've spent waiting for this host to provision
73
+ begin
74
+ uri = URI.parse(@options['pooling_api'] + '/vm/')
73
75
 
74
- request.set_form_data({'pool' => @options['resourcepool'], 'folder' => 'foo'})
76
+ http = Net::HTTP.new(uri.host, uri.port)
77
+ request = Net::HTTP::Post.new(uri.request_uri)
78
+
79
+ request.body = request_payload.to_json
80
+
81
+ response = http.request(request)
82
+ parsed_response = JSON.parse(response.body)
83
+
84
+ if parsed_response['ok']
85
+ domain = parsed_response['domain']
86
+
87
+ @hosts.each_with_index do |h, i|
88
+ if parsed_response[h['template']]['hostname'].is_a?(Array)
89
+ hostname = parsed_response[h['template']]['hostname'].shift
90
+ else
91
+ hostname = parsed_response[h['template']]['hostname']
92
+ end
75
93
 
76
- response = http.request(request)
77
- parsed_response = JSON.parse(response.body)
78
- if parsed_response[h['template']] && parsed_response[h['template']]['ok'] && parsed_response[h['template']]['hostname']
79
- hostname = parsed_response[h['template']]['hostname']
80
- domain = parsed_response['domain']
81
94
  h['vmhostname'] = domain ? "#{hostname}.#{domain}" : hostname
82
- else
83
- raise "VcloudPooled.provision - no vCloud host free for #{h.name} in pool"
84
- end
85
- rescue JSON::ParserError, RuntimeError, *SSH_EXCEPTIONS => e
86
- if waited <= @options[:timeout].to_i
87
- @logger.debug("Retrying provision for vCloud host #{h.name} after waiting #{wait} second(s) (failed with #{e.class})")
88
- sleep wait
89
- waited += wait
90
- last_wait, wait = wait, last_wait + wait
91
- retry
95
+
96
+ @logger.notify "Using available vCloud host '#{h['vmhostname']}' (#{h.name})"
92
97
  end
93
- report_and_raise(@logger, e, 'vCloudPooled.provision')
98
+ else
99
+ raise "VcloudPooled.provision - requested vCloud hosts not available"
94
100
  end
95
-
96
- @logger.notify "Using available vCloud host '#{h['vmhostname']}' (#{h.name})"
101
+ rescue JSON::ParserError, RuntimeError, *SSH_EXCEPTIONS => e
102
+ if waited <= @options[:timeout].to_i
103
+ @logger.debug("Retrying provision for vCloud host after waiting #{wait} second(s) (failed with #{e.class})")
104
+ sleep wait
105
+ waited += wait
106
+ last_wait, wait = wait, last_wait + wait
107
+ retry
108
+ end
109
+ report_and_raise(@logger, e, 'vCloudPooled.provision')
97
110
  end
98
111
 
99
112
  @logger.notify 'Spent %.2f seconds grabbing VMs' % (Time.now - start)
@@ -1,5 +1,5 @@
1
1
  module Beaker
2
2
  module Version
3
- STRING = '2.4.1'
3
+ STRING = '2.5.0'
4
4
  end
5
5
  end
@@ -354,6 +354,7 @@ describe ClassMixedWithDSLInstallUtils do
354
354
  allow( subject ).to receive( :sign_certificate_for ).and_return( true )
355
355
  allow( subject ).to receive( :stop_agent_on ).and_return( true )
356
356
  allow( subject ).to receive( :sleep_until_puppetdb_started ).and_return( true )
357
+ allow( subject ).to receive( :version_is_less ).with('3.0', '4.0').and_return( true )
357
358
  allow( subject ).to receive( :version_is_less ).with('3.0', '3.4').and_return( true )
358
359
  allow( subject ).to receive( :version_is_less ).with('3.0', '3.0').and_return( false )
359
360
  allow( subject ).to receive( :version_is_less ).with('3.0', '3.4').and_return( true )
@@ -547,15 +548,15 @@ describe ClassMixedWithDSLInstallUtils do
547
548
  let(:platform) { "windows-2008r2-i386" }
548
549
  it 'installs specific version of puppet when passed :version' do
549
550
  allow(subject).to receive(:link_exists?).and_return( true )
550
- expect(subject).to receive(:on).with(hosts[0], 'curl -O /cygdrive/c/Windows/Temp/puppet-3000.msi http://downloads.puppetlabs.com/windows/puppet-3000.msi')
551
+ expect(subject).to receive(:on).with(hosts[0], 'curl -O http://downloads.puppetlabs.com/windows/puppet-3000.msi')
551
552
  expect(subject).to receive(:on).with(hosts[0], " echo 'export PATH=$PATH:\"/cygdrive/c/Program Files (x86)/Puppet Labs/Puppet/bin\":\"/cygdrive/c/Program Files/Puppet Labs/Puppet/bin\"' > /etc/bash.bashrc ")
552
- expect(subject).to receive(:on).with(hosts[0], 'msiexec /qn /i /cygdrive/c/Windows/Temp/puppet-3000.msi')
553
+ expect(subject).to receive(:on).with(hosts[0], 'cmd /C \'start /w msiexec.exe /qn /i puppet-3000.msi\'')
553
554
  subject.install_puppet(:version => '3000')
554
555
  end
555
556
  it 'installs from custom url when passed :win_download_url' do
556
557
  allow(subject).to receive(:link_exists?).and_return( true )
557
- expect(subject).to receive(:on).with(hosts[0], 'curl -O /cygdrive/c/Windows/Temp/puppet-3000.msi http://nightlies.puppetlabs.com/puppet-latest/repos/windows/puppet-3000.msi')
558
- expect(subject).to receive(:on).with(hosts[0], 'msiexec /qn /i /cygdrive/c/Windows/Temp/puppet-3000.msi')
558
+ expect(subject).to receive(:on).with(hosts[0], 'curl -O http://nightlies.puppetlabs.com/puppet-latest/repos/windows/puppet-3000.msi')
559
+ expect(subject).to receive(:on).with(hosts[0], 'cmd /C \'start /w msiexec.exe /qn /i puppet-3000.msi\'')
559
560
  subject.install_puppet( :version => '3000', :win_download_url => 'http://nightlies.puppetlabs.com/puppet-latest/repos/windows' )
560
561
  end
561
562
  end
data/spec/mocks.rb CHANGED
@@ -39,8 +39,8 @@ module MockNet
39
39
  @uri = uri
40
40
  end
41
41
 
42
- def set_form_data hash
43
-
42
+ def body= *args
43
+ hash
44
44
  end
45
45
  end
46
46
 
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: 2.4.1
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppetlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-13 00:00:00.000000000 Z
11
+ date: 2015-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -533,7 +533,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
533
533
  version: '0'
534
534
  requirements: []
535
535
  rubyforge_project:
536
- rubygems_version: 2.4.5
536
+ rubygems_version: 2.4.6
537
537
  signing_key:
538
538
  specification_version: 4
539
539
  summary: Let's test Puppet!