beaker 2.24.0 → 2.25.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
- 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