beaker 2.24.0 → 2.25.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
- N2JhMzVjZDBiMDlmZmY5YTMwMmQwODI4OWE5OWEwOWEzM2Y0OWM0NA==
4
+ MjM3NjhmMGI2NTg3NDQ3ODViNWRjM2Q3ZTg2MTg0ODQ0NGYzMmIzZg==
5
5
  data.tar.gz: !binary |-
6
- NmVkNDllNTg5ZDU2MzAyMGRkNmU4NTI2NDcyMGE4NDA3MzUyNDFlNg==
6
+ MDhmOTFkMTVmOTYxN2VlYTEyMzcwZTZlNDYwNTIxM2E1MTk5MTRlNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MTNjYmZmZGYyZTQyMjlkZDk5OWZlYWViNDc1MTYwNTg2NDg5MWQ2ZTQxNTJh
10
- MWU0MGYwMzgwMWU2MjU5OWIxMTlkMDAwMjVmZjM0ODNiNmEyYWMyNzczMzkz
11
- N2FiYzA2Mjc3ZTdkODMwNjlkYmRjOGZkZDk2MThiZWJiMTQ0Zjk=
9
+ ODM4ODhjYzZiYWI3YmUyYWUwOTk0ZWYwYTI2OTQ5MWIyZjRlMzIyNzk1MDAw
10
+ ZDA2OTgzZmZjODRlYjM2ZDFkMmVlODc5MzZjOTVlZjNiZmFjZWQ5Y2I5OWU4
11
+ MTRiMWExYWIwYWRiYmJhOTQ2ZjIwMDk2YjA3N2Q4NzJjOWIyYjU=
12
12
  data.tar.gz: !binary |-
13
- ZWFiMjRiMGRkMzA0YTE2YjA2ZWY5YjcxOTQzMmE0MDIxMzQwZWFiYTEyMmJm
14
- NTY4YmNiZDU1NWEyNzkzNjg5YThkMDdjN2YyMjNiMjBlZmNjNWZhMGE1YzQy
15
- YjZiMGNkNWIwMjZkMjcyODhhMmE5YjQ2ZGNmYWE4NzA5ZGJjNTI=
13
+ ZWMwN2MxNDIxNDY0YWRkZjYwNzhmMTBmMDdmOWY4NDliNGI4ZmUwYWNkZjUz
14
+ YTJlMDgyZjQxZWNhYjJlMzk3OTc0ODc2ZjNiYjhmYjg2ZTQ1YzkzZDhjMDZm
15
+ YTdiMjQ0M2VkOTZkM2E1MWUyZTYxOTM2NTI0MWEyNmE4MmNiYWU=
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Getting Started
4
4
 
5
- * If it is accessible to you, create a [Jira account](http://tickets.puppetlabs.com)
5
+ * Create a [Jira account](http://tickets.puppetlabs.com)
6
6
  * Make sure you have a [GitHub account](https://github.com/signup/free)
7
7
  * Submit a ticket for your issue, assuming one does not already exist.
8
8
  * Clearly describe the issue including steps to reproduce when it is a bug.
@@ -46,13 +46,8 @@
46
46
 
47
47
  ### Maintenance
48
48
 
49
- For changes of a trivial nature, it is not always necessary to create a new ticket in Jira. In this case, it is appropriate to start the first line of a commit with `(MAINT)` instead of a ticket/issue number.
49
+ **We are no longer accepting PRs marked as `(MAINT)` - all PRs must be associated with a Beaker Jira ticket number for book keeping purposes.**
50
50
 
51
- ````
52
- (MAINT) Fix whitespace
53
-
54
- - remove additional spaces that appear at EOL
55
- ````
56
51
  ### Version Bump For Gem Release
57
52
 
58
53
  To prepare for a new gem release of Beaker the `version.rb` file is updated with the upcoming gem version number. This is submitted with `(GEM)` instead of a ticket/issue number.
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 15 Sep, 2015 (96d9104d)](#LATEST)
3
+ * [LATEST - 1 Oct, 2015 (e21f5581)](#LATEST)
4
+ * [2.24.0 - 15 Sep, 2015 (c12e9054)](#2.24.0)
4
5
  * [2.23.0 - 9 Sep, 2015 (2532324a)](#2.23.0)
5
6
  * [2.22.0 - 1 Sep, 2015 (96ec20a7)](#2.22.0)
6
7
  * [2.21.0 - 26 Aug, 2015 (40281eb2)](#2.21.0)
@@ -96,7 +97,242 @@
96
97
  * [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
97
98
 
98
99
  ## Details
99
- ### <a name = "LATEST">LATEST - 15 Sep, 2015 (96d9104d)
100
+ ### <a name = "LATEST">LATEST - 1 Oct, 2015 (e21f5581)
101
+
102
+ * (GEM) update beaker version to 2.25.0 (e21f5581)
103
+
104
+ * Merge pull request #974 from anodelman/maint (65664e45)
105
+
106
+
107
+ ```
108
+ Merge pull request #974 from anodelman/maint
109
+
110
+ (BKR-568) no longer accept PRs marked as "(MAINT)"
111
+ ```
112
+ * Merge pull request #964 from kevpl/bkr522_ec2_nocachedkeys (3ec3e14d)
113
+
114
+
115
+ ```
116
+ Merge pull request #964 from kevpl/bkr522_ec2_nocachedkeys
117
+
118
+ (BKR-522) now creates new ec2 keys per run
119
+ ```
120
+ * (BKR-568) no longer accept PRs marked as "(MAINT)" (47d9d1ba)
121
+
122
+
123
+ ```
124
+ (BKR-568) no longer accept PRs marked as "(MAINT)"
125
+
126
+ - update CONTRIBUTING.md to indicate change in policy
127
+ ```
128
+ * Merge pull request #973 from anodelman/ruby-test (9b52fe4e)
129
+
130
+
131
+ ```
132
+ Merge pull request #973 from anodelman/ruby-test
133
+
134
+ (BKR-564) beaker no longer works on ruby 1.9.3
135
+ ```
136
+ * (BKR-564) beaker no longer works on ruby 1.9.3 (4f94d048)
137
+
138
+
139
+ ```
140
+ (BKR-564) beaker no longer works on ruby 1.9.3
141
+
142
+ - pin fog-google to 0.0.9, 0.1 release removed ruby 1.9 support
143
+ ```
144
+ * Merge pull request #970 from johnduarte/bkr-545-frozen-string (deb4377f)
145
+
146
+
147
+ ```
148
+ Merge pull request #970 from johnduarte/bkr-545-frozen-string
149
+
150
+ (BKR-545) Dup solaris puppet_agent_version
151
+ ```
152
+ * (BKR-545) Dup solaris puppet_agent_version (f1d2068b)
153
+
154
+
155
+ ```
156
+ (BKR-545) Dup solaris puppet_agent_version
157
+
158
+ This commit dups the `opts[:puppet_agent_version]` in the foss_utils to
159
+ prevent a `RuntimeError: can't modify frozen String` error
160
+ ```
161
+ * Merge pull request #963 from johnduarte/p5p-for-sol11 (b9e6a23e)
162
+
163
+
164
+ ```
165
+ Merge pull request #963 from johnduarte/p5p-for-sol11
166
+
167
+ (BKR-545) Use p5p for Solaris 11 puppet-agent pkgs
168
+ ```
169
+ * Merge pull request #969 from johnduarte/aix-repo-install (a7280515)
170
+
171
+
172
+ ```
173
+ Merge pull request #969 from johnduarte/aix-repo-install
174
+
175
+ (BKR-554) Install AIX packages via install repo
176
+ ```
177
+ * (BKR-554) Install AIX packages via install repo (973ff502)
178
+
179
+
180
+ ```
181
+ (BKR-554) Install AIX packages via install repo
182
+
183
+ This commit adds support for installing AIX 'packages' via the
184
+ install repo logic. AIX does not support repository management
185
+ and can only install 'RPM' files directly. Since this logic
186
+ is contained in the install repo logic in Beaker, we can use
187
+ this to install a package that has been mirrored to the standard
188
+ repo location.
189
+
190
+ This assumes that the package is mirrored to the repo location.
191
+ In other words, that the following files are the same.
192
+ * http://builds.delivery.puppetlabs.net/puppet-agent/1214e51d63b84a82df0c55cab99abc2a3f90a597/artifacts/aix/7.1/PC1/ppc/puppet-agent-1.2.5.49.g1214e51-1.aix7.1.ppc.rpm
193
+ * http://builds.delivery.puppetlabs.net/puppet-agent/1214e51d63b84a82df0c55cab99abc2a3f90a597/repos/aix/7.1/PC1/ppc/puppet-agent-1.2.5.49.g1214e51-1.aix7.1.ppc.rpm
194
+
195
+ It also assumes that the desired package is not defined for AIX
196
+ in the acceptance pre-suite for the project.
197
+ ```
198
+ * Merge pull request #967 from bkero/master (7852e6b3)
199
+
200
+
201
+ ```
202
+ Merge pull request #967 from bkero/master
203
+
204
+ (BKR-327) Add support for EL7 to epel_info_for and add_el_extras method
205
+ ```
206
+ * fix spec tests to match ArgumentError for epel_info_for (d78a8de4)
207
+
208
+ * Raise ArgumentErrors instead of generic errors (839b75e4)
209
+
210
+ * (BKR-327) add epel7 support to get_el_info and el_install (0e5a0257)
211
+
212
+
213
+ ```
214
+ (BKR-327) add epel7 support to get_el_info and el_install
215
+
216
+ Base work courtesy of Andrew Stangl <andrewstangl@gmail.com>
217
+ ```
218
+ * (BKR-327) add epel_7_pkg preset (0e9485d3)
219
+
220
+ * (BKR-327) add tests for retrieving epel el7 url (41730085)
221
+
222
+ * Merge pull request #960 from kevpl/bkr351_indent_add (7e91e61e)
223
+
224
+
225
+ ```
226
+ Merge pull request #960 from kevpl/bkr351_indent_add
227
+
228
+ (BKR-351) added indentation based on test/step nesting level
229
+ ```
230
+ * Merge pull request #959 from anodelman/subset-hosts (1810fae0)
231
+
232
+
233
+ ```
234
+ Merge pull request #959 from anodelman/subset-hosts
235
+
236
+ (BKR-535) Regression: confine_block does not skip tests...
237
+ ```
238
+ * Merge pull request #957 from anodelman/confine (8de4ee64)
239
+
240
+
241
+ ```
242
+ Merge pull request #957 from anodelman/confine
243
+
244
+ (BKR-533) Beaker's `confine` overwrites the array of all hosts
245
+ ```
246
+ * (BKR-522) now creates new ec2 keys per run (07bb7405)
247
+
248
+
249
+ ```
250
+ (BKR-522) now creates new ec2 keys per run
251
+
252
+ Before, ec2 keys would only be created if this was the first run for
253
+ a particular user/coordinator. This is a problem for F5 testing, in
254
+ which F5 hosts needed to be created with a particular key. We were
255
+ using cached keys, which weren't the ones being used in ec2.
256
+
257
+ The original solution was to delete the keys in ec2, so that they'd
258
+ be recreated as if this was the first run by a user. @justinstoller
259
+ brought up the good point that if this were to happen, certain
260
+ Beaker runs would have their keys deleted from a new F5 run. The
261
+ solution became that each Beaker run would generate its own key,
262
+ deleting it on cleanup.
263
+ ```
264
+ * (BKR-545) Use p5p for Solaris 11 puppet-agent pkgs (831b0bb5)
265
+
266
+
267
+ ```
268
+ (BKR-545) Use p5p for Solaris 11 puppet-agent pkgs
269
+
270
+ This commit updates install_utils/foss_utils to use `p5p` as
271
+ the expected package suffix for puppet-agent when the platform
272
+ is Solaris 11. Solaris 10 will continue to use `pkg.gz` as its
273
+ expected suffix.
274
+
275
+ The `p5p` package naming format is much more stringent. See
276
+ http://www.oracle.com/technetwork/articles/servers-storage-admin/ips-package-versioning-2232906.html
277
+ for details.
278
+ ```
279
+ * Merge pull request #955 from kevpl/bkr532_beakerhiera_merge (b181c059)
280
+
281
+
282
+ ```
283
+ Merge pull request #955 from kevpl/bkr532_beakerhiera_merge
284
+
285
+ (BKR-532) added beaker-hiera library usage
286
+ ```
287
+ * (BKR-535) Regression: confine_block does not skip tests... (72955d58)
288
+
289
+
290
+ ```
291
+ (BKR-535) Regression: confine_block does not skip tests...
292
+
293
+ ...with beaker 2.24.0
294
+
295
+ - allow users to include skip_test in block parameter for confine_block
296
+ - added acceptance test to ensure correct behavior
297
+ ```
298
+ * (BKR-533) Beaker's `confine` overwrites the array of all hosts (be1cc5dc)
299
+
300
+
301
+ ```
302
+ (BKR-533) Beaker's `confine` overwrites the array of all hosts
303
+
304
+ - make it possible to confine to a subset of hosts + all hosts not in
305
+ the subset.
306
+
307
+ To confine to only windows agents + any non-agent hosts
308
+
309
+ confine :to, { :platform => 'windows' }, agents
310
+
311
+ To confine to non-windows agents + any non-agent hosts
312
+
313
+ confine :except, { :platform => 'windows' }, agent
314
+
315
+ - Useful for cases where you want to use your master, but only operate
316
+ on a subset of agents
317
+ ```
318
+ * (BKR-351) added indentation based on test/step nesting level (cec66d21)
319
+
320
+
321
+ ```
322
+ (BKR-351) added indentation based on test/step nesting level
323
+
324
+ This will only affect tests where `test_name` or `step` has
325
+ been passed a block to execute.
326
+
327
+ The only exception to that statement is `host.exec`'s
328
+ logic, as it's more presentable to nest command output one
329
+ level under the command itself.
330
+ ```
331
+ * (BKR-532) added beaker-hiera library usage (127aa3de)
332
+
333
+ ### <a name = "2.24.0">2.24.0 - 15 Sep, 2015 (c12e9054)
334
+
335
+ * (HISTORY) update beaker history for gem release 2.24.0 (c12e9054)
100
336
 
101
337
  * (GEM) update beaker version to 2.24.0 (96d9104d)
102
338
 
@@ -60,4 +60,20 @@ test_name "dsl::structure" do
60
60
  fail "#confine_block raised unexpected SkipTest exception: #{e}"
61
61
  end
62
62
  end
63
+
64
+ step "#confine_block allows blocks to raise skip_test" do
65
+ previous_hosts = hosts.dup
66
+
67
+ begin
68
+ @in_confine = 0
69
+ confine_block :to, :platform => default["platform"] do
70
+ @in_confine +=1
71
+ skip_test "this block raises a skip"
72
+ end
73
+ rescue Beaker::DSL::Outcomes::SkipTest => e
74
+ assert_match /this block raises a skip/, e.message, "#confine_block raised an unexpected skip_test"
75
+ assert_equal 1, @in_confine, "#confine_block did not execute supplied block"
76
+ assert_equal hosts.dup, hosts, "#confine_block did not preserve the hosts array"
77
+ end
78
+ end
63
79
  end
@@ -39,8 +39,11 @@ Gem::Specification.new do |s|
39
39
  s.add_runtime_dependency 'inifile', '~> 2.0'
40
40
  s.add_runtime_dependency 'rsync', '~> 1.0.9'
41
41
  s.add_runtime_dependency 'open_uri_redirections', '~> 0.2.1'
42
+
43
+ # Run time dependencies that are Beaker libraries
42
44
  s.add_runtime_dependency 'beaker-answers', '~> 0.0'
43
45
  s.add_runtime_dependency 'stringify-hash', '~> 0.0'
46
+ s.add_runtime_dependency 'beaker-hiera', '~> 0.0'
44
47
 
45
48
  # Optional provisioner specific support
46
49
  s.add_runtime_dependency 'rbvmomi', '~> 1.8'
@@ -48,6 +51,7 @@ Gem::Specification.new do |s|
48
51
  s.add_runtime_dependency 'google-api-client', '~> 0.8'
49
52
  s.add_runtime_dependency 'aws-sdk', '~> 1.57'
50
53
  s.add_runtime_dependency 'docker-api'
54
+ s.add_runtime_dependency 'fog-google', '~> 0.0.9' # dropped ruby 1.9 support in 0.1
51
55
  s.add_runtime_dependency 'fog', '~> 1.25'
52
56
 
53
57
  # So fog doesn't always complain of unmet AWS dependencies
@@ -1,8 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
- [ 'facter', 'hiera', 'host', 'puppet', 'test', 'tk', 'web' ].each do |lib|
2
+ [ 'facter', 'host', 'puppet', 'test', 'tk', 'web' ].each do |lib|
3
3
  require "beaker/dsl/helpers/#{lib}_helpers"
4
4
  end
5
5
 
6
+ require "beaker-hiera"
6
7
  module Beaker
7
8
  module DSL
8
9
 
@@ -23,12 +24,12 @@ module Beaker
23
24
  #
24
25
  module Helpers
25
26
  include Beaker::DSL::Helpers::FacterHelpers
26
- include Beaker::DSL::Helpers::HieraHelpers
27
27
  include Beaker::DSL::Helpers::HostHelpers
28
28
  include Beaker::DSL::Helpers::PuppetHelpers
29
29
  include Beaker::DSL::Helpers::TestHelpers
30
30
  include Beaker::DSL::Helpers::TKHelpers
31
31
  include Beaker::DSL::Helpers::WebHelpers
32
+ include Beaker::DSL::Helpers::Hiera
32
33
  end
33
34
  end
34
35
  end
@@ -1111,6 +1111,10 @@ module Beaker
1111
1111
  variant = ((variant == 'centos') ? 'el' : variant)
1112
1112
  release_path << "#{variant}/#{version}/#{opts[:puppet_collection]}/#{arch}"
1113
1113
  release_file = "puppet-agent-#{opts[:puppet_agent_version]}-1.#{variant}#{version}.#{arch}.rpm"
1114
+ when /^(aix)$/
1115
+ if arch == 'power' then arch = 'ppc' end
1116
+ release_path << "#{variant}/#{version}/#{opts[:puppet_collection]}/#{arch}"
1117
+ release_file = "puppet-agent-#{opts[:puppet_agent_version]}-1.#{variant}#{version}.#{arch}.rpm"
1114
1118
  when /^(debian|ubuntu|cumulus)$/
1115
1119
  if arch == 'x86_64'
1116
1120
  arch = 'amd64'
@@ -1153,14 +1157,36 @@ module Beaker
1153
1157
  if arch == 'x86_64'
1154
1158
  arch = 'i386'
1155
1159
  end
1160
+ release_path << "solaris/#{version}/#{opts[:puppet_collection]}"
1161
+ solaris_revision_conjunction = '-'
1162
+ revision = '1'
1156
1163
  if version == '10'
1157
1164
  # Solaris 10 uses / as the root user directory. Solaris 11 uses /root.
1158
1165
  onhost_copy_base = '/'
1166
+ solaris_release_version = ''
1167
+ pkg_suffix = 'pkg.gz'
1168
+ solaris_name_conjunction = '-'
1169
+ component_version = opts[:puppet_agent_version]
1170
+ elsif version == '11'
1171
+ # Ref:
1172
+ # http://www.oracle.com/technetwork/articles/servers-storage-admin/ips-package-versioning-2232906.html
1173
+ #
1174
+ # Example to show package name components:
1175
+ # Full package name: puppet-agent@1.2.5.38.6813,5.11-1.sparc.p5p
1176
+ # Schema: <component-name><solaris_name_conjunction><component_version><solaris_release_version><solaris_revision_conjunction><revision>.<arch>.<pkg_suffix>
1177
+ solaris_release_version = ',5.11' # injecting comma to prevent from adding another var
1178
+ pkg_suffix = 'p5p'
1179
+ solaris_name_conjunction = '@'
1180
+ component_version = opts[:puppet_agent_version].dup
1181
+ component_version.gsub!(/[a-zA-Z]/, '')
1182
+ component_version.gsub!(/(^-)|(-$)/, '')
1183
+ # Here we strip leading 0 from version components but leave
1184
+ # singular 0 on their own.
1185
+ component_version = component_version.split('.').map(&:to_i).join('.')
1159
1186
  end
1160
- release_path << "solaris/#{version}/#{opts[:puppet_collection]}"
1161
- release_file = "puppet-agent-#{opts[:puppet_agent_version]}-1.#{arch}.pkg.gz"
1187
+ release_file = "puppet-agent#{solaris_name_conjunction}#{component_version}#{solaris_release_version}#{solaris_revision_conjunction}#{revision}.#{arch}.#{pkg_suffix}"
1162
1188
  if not link_exists?("#{release_path}/#{release_file}")
1163
- release_file = "puppet-agent-#{opts[:puppet_agent_version]}.#{arch}.pkg.gz"
1189
+ release_file = "puppet-agent#{solaris_name_conjunction}#{component_version}#{solaris_release_version}.#{arch}.#{pkg_suffix}"
1164
1190
  end
1165
1191
  else
1166
1192
  raise "No repository installation step for #{variant} yet..."
@@ -1173,6 +1199,25 @@ module Beaker
1173
1199
  case variant
1174
1200
  when /^(fedora|el|centos|sles)$/
1175
1201
  on host, "rpm -ivh #{onhost_copied_file}"
1202
+ when /^(aix)$/
1203
+ # NOTE: AIX does not support repo management. This block assumes
1204
+ # that the desired rpm has been mirrored to the 'repos' location.
1205
+ #
1206
+ # NOTE: tar is a dependency for puppet packages on AIX. So,
1207
+ # we install it prior to the 'repo' file.
1208
+ tar_pkg_path = "ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/tar"
1209
+ if version == "5.3" then
1210
+ tar_pkg_file = "tar-1.14-2.aix5.1.ppc.rpm"
1211
+ else
1212
+ tar_pkg_file = "tar-1.22-1.aix6.1.ppc.rpm"
1213
+ end
1214
+ fetch_http_file( tar_pkg_path, tar_pkg_file, copy_dir_local)
1215
+ scp_to host, File.join(copy_dir_local, tar_pkg_file), onhost_copy_base
1216
+ onhost_copied_tar_file = File.join(onhost_copy_base, tar_pkg_file)
1217
+ on host, "rpm -ivh #{onhost_copied_tar_file}"
1218
+
1219
+ # install the repo file
1220
+ on host, "rpm -ivh #{onhost_copied_file}"
1176
1221
  when /^(debian|ubuntu|cumulus)$/
1177
1222
  on host, "dpkg -i --force-all #{onhost_copied_file}"
1178
1223
  on host, "apt-get update"
@@ -1184,7 +1229,8 @@ module Beaker
1184
1229
  when /^osx$/
1185
1230
  host.install_package("#{mac_pkg_name}*")
1186
1231
  when /^solaris$/
1187
- noask = <<NOASK
1232
+ if version == '10'
1233
+ noask = <<NOASK
1188
1234
  # Write the noask file to a temporary directory
1189
1235
  # please see man -s 4 admin for details about this file:
1190
1236
  # http://www.opensolarisforum.org/man/man4/admin.html
@@ -1214,8 +1260,11 @@ action=nocheck
1214
1260
  # Install to the default base directory.
1215
1261
  basedir=default
1216
1262
  NOASK
1217
- create_remote_file host, File.join(onhost_copy_base, 'noask'), noask
1218
- on host, "gunzip -c #{release_file} | pkgadd -d /dev/stdin -a noask -n all"
1263
+ create_remote_file host, File.join(onhost_copy_base, 'noask'), noask
1264
+ on host, "gunzip -c #{release_file} | pkgadd -d /dev/stdin -a noask -n all"
1265
+ elsif version == '11'
1266
+ on host, "pkg install -g #{release_file} puppet-agent"
1267
+ end
1219
1268
  end
1220
1269
  configure_type_defaults_on( host )
1221
1270
  end