beaker 2.13.0 → 2.14.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.
Files changed (62) hide show
  1. checksums.yaml +8 -8
  2. data/Gemfile +19 -0
  3. data/HISTORY.md +335 -2
  4. data/acceptance/pre_suite/puppet_git/install.rb +2 -2
  5. data/lib/beaker/answers.rb +45 -2
  6. data/lib/beaker/answers/version20.rb +9 -9
  7. data/lib/beaker/answers/version28.rb +9 -9
  8. data/lib/beaker/answers/version30.rb +19 -19
  9. data/lib/beaker/answers/version32.rb +1 -1
  10. data/lib/beaker/answers/version34.rb +4 -4
  11. data/lib/beaker/answers/version40.rb +1 -1
  12. data/lib/beaker/cli.rb +11 -4
  13. data/lib/beaker/command.rb +4 -2
  14. data/lib/beaker/command_factory.rb +5 -1
  15. data/lib/beaker/dsl/helpers/host_helpers.rb +17 -5
  16. data/lib/beaker/dsl/install_utils.rb +3 -2
  17. data/lib/beaker/dsl/install_utils/aio_defaults.rb +86 -0
  18. data/lib/beaker/dsl/install_utils/foss_defaults.rb +163 -0
  19. data/lib/beaker/dsl/install_utils/foss_utils.rb +988 -0
  20. data/lib/beaker/dsl/install_utils/pe_defaults.rb +139 -0
  21. data/lib/beaker/dsl/install_utils/pe_utils.rb +140 -38
  22. data/lib/beaker/dsl/install_utils/puppet_utils.rb +26 -751
  23. data/lib/beaker/dsl/structure.rb +7 -1
  24. data/lib/beaker/host.rb +35 -58
  25. data/lib/beaker/host/freebsd.rb +4 -16
  26. data/lib/beaker/host/mac.rb +3 -39
  27. data/lib/beaker/host/mac/pkg.rb +2 -1
  28. data/lib/beaker/host/pswindows.rb +2 -28
  29. data/lib/beaker/host/unix.rb +3 -51
  30. data/lib/beaker/host/unix/pkg.rb +34 -33
  31. data/lib/beaker/host/windows.rb +1 -45
  32. data/lib/beaker/host_prebuilt_steps.rb +11 -24
  33. data/lib/beaker/hypervisor/aixer.rb +1 -1
  34. data/lib/beaker/hypervisor/docker.rb +43 -4
  35. data/lib/beaker/hypervisor/openstack.rb +1 -0
  36. data/lib/beaker/hypervisor/solaris.rb +1 -1
  37. data/lib/beaker/hypervisor/vmpooler.rb +19 -8
  38. data/lib/beaker/network_manager.rb +5 -4
  39. data/lib/beaker/options/command_line_parser.rb +9 -9
  40. data/lib/beaker/options/parser.rb +21 -17
  41. data/lib/beaker/options/presets.rb +0 -33
  42. data/lib/beaker/platform.rb +7 -3
  43. data/lib/beaker/ssh_connection.rb +1 -1
  44. data/lib/beaker/version.rb +1 -1
  45. data/spec/beaker/answers_spec.rb +13 -8
  46. data/spec/beaker/cli_spec.rb +6 -6
  47. data/spec/beaker/command_spec.rb +18 -0
  48. data/spec/beaker/dsl/helpers/puppet_helpers_spec.rb +2 -0
  49. data/spec/beaker/dsl/install_utils/{puppet_utils_spec.rb → foss_utils_spec.rb} +34 -21
  50. data/spec/beaker/dsl/install_utils/pe_utils_spec.rb +2 -0
  51. data/spec/beaker/dsl/structure_spec.rb +8 -0
  52. data/spec/beaker/host/unix/pkg_spec.rb +15 -10
  53. data/spec/beaker/host_prebuilt_steps_spec.rb +1 -1
  54. data/spec/beaker/host_spec.rb +3 -54
  55. data/spec/beaker/hypervisor/docker_spec.rb +2 -0
  56. data/spec/beaker/hypervisor/vmpooler_spec.rb +67 -10
  57. data/spec/beaker/options/command_line_parser_spec.rb +2 -2
  58. data/spec/beaker/options/parser_spec.rb +35 -24
  59. data/spec/beaker/options/presets_spec.rb +0 -26
  60. data/spec/helpers.rb +5 -5
  61. data/spec/mocks.rb +1 -2
  62. metadata +7 -3
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzExY2M1YzU1ODQ1NmZmODdjYjUzYjg3OGRlYjg2NzE2ZGRiNDAwOQ==
4
+ MGI1NGE4MGQ2YjczY2E2OGM0M2Y5NzI3MTAzNjU1MDFlZmEyOThlNg==
5
5
  data.tar.gz: !binary |-
6
- ZWQ2ZWFlNDFkY2EyZmQxZjkyZjRmOWVmM2U4YTI2YjBlN2Y2MjhiZQ==
6
+ NzMyYWI5YjU0ZmNlZDE5NDliYWUyNzBjZTQ3MDIzZmU1YTgyOTEwNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- M2ZkMDlkNzRiOThjNWFjNDUxYjQyNzc5NTRiNmJlYzFmYTdjYzQ4MTdiMzQw
10
- OTYzMTFmZDEyYjIzNmI4NzYyYmQyZWUyMDE5YTVjMGU1NTQ5MGZmYTcwMDc3
11
- MjdiN2Y4ZWM0Y2JiYTdhYzkwYTc0YWZkZmZmNmJiZjNlOGExMDQ=
9
+ Y2IyZGJiMmQxMmI0Yzk4Mjk4ZmQ4NmJjMzc3ZmIxMzcyMzhhM2M4YjY1MDEx
10
+ MDY1NWE4NWNjNmUyZTg5YzNmZTNhYmRiNGNkMjFhZWU2MzI1MTljMmZmODY0
11
+ ZTJhOGMzNWU0MWYzYTdiNDdjMTg2Zjg4ZDQ1MTE2OTRiMDhjNjc=
12
12
  data.tar.gz: !binary |-
13
- NDU5MmFmMGVjZGI4YzQ0ZDUyYzJiMDEzMTFmOTRiNzU3YTNjM2FiNjRiYjVi
14
- ZGQyNWI5YmE0YTZmMzM3NTVlMzdlZmQ3YTRlNDk3ZWE1MDRmZjY2ZGQ5YTdm
15
- MDM1ZmYzNmNhNDI2NjAzNDc5ODE2N2Q3MDZmN2ZlNjI0MTM3M2Q=
13
+ NTgyZDY4NjRlNTA4NzU1MzUxYWIyMmZlZGVkNDI3YjlmYzE3MWU2Mzc4MDM3
14
+ YmI3OWJmMmVlMThlMTg5MGUyMjZkODc2OGQwOWQ4MzcwZWI0ZmNjNjk2NGE3
15
+ ZGE3MzI4ZmQ4MjNmMGUwNGMzZTIxNWE5Y2Y3ZmE3ODZlNTU2OTU=
data/Gemfile CHANGED
@@ -1,3 +1,22 @@
1
1
  source ENV['GEM_SOURCE'] || "https://rubygems.org"
2
2
 
3
+ def location_for(place, fake_version = nil)
4
+ if place =~ /^(git:[^#]*)#(.*)/
5
+ [fake_version, { :git => $1, :branch => $2, :require => false }].compact
6
+ elsif place =~ /^file:\/\/(.*)/
7
+ ['>= 0', { :path => File.expand_path($1), :require => false }]
8
+ else
9
+ [place, { :require => false }]
10
+ end
11
+ end
12
+
13
+ scooter_version = ENV['SCOOTER_VERSION']
14
+ if ENV['GEM_SOURCE'] =~ /rubygems\.delivery\.puppetlabs\.net/
15
+ if scooter_version
16
+ gem 'scooter', *location_for(scooter_version)
17
+ else
18
+ gem 'scooter', '~> 2.0'
19
+ end
20
+ end
21
+
3
22
  gemspec
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 29 May, 2015 (c801d4c8)](#LATEST)
3
+ * [LATEST - 4 Jun, 2015 (656f30be)](#LATEST)
4
+ * [2.13.0 - 29 May, 2015 (dd70aa66)](#2.13.0)
4
5
  * [2.12.0 - 20 May, 2015 (62845ce9)](#2.12.0)
5
6
  * [2.11.0 - 6 May, 2015 (b775cc73)](#2.11.0)
6
7
  * [2.10.0 - 22 Apr, 2015 (c4f37479)](#2.10.0)
@@ -81,7 +82,339 @@
81
82
  * [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
82
83
 
83
84
  ## Details
84
- ### <a name = "LATEST">LATEST - 29 May, 2015 (c801d4c8)
85
+ ### <a name = "LATEST">LATEST - 4 Jun, 2015 (656f30be)
86
+
87
+ * (GEM) update beaker version to 2.14.0 (656f30be)
88
+
89
+ * Merge pull request #837 from justinstoller/maint/master/bkrsomethingsomething (0d0ceab9)
90
+
91
+
92
+ ```
93
+ Merge pull request #837 from justinstoller/maint/master/bkrsomethingsomething
94
+
95
+ [WIP] add install_puppet_agent_on method to install_utils
96
+ ```
97
+ * Merge pull request #836 from rick/bkr-301/add-warning-when-empty-fog-file-is-encountered (0d102203)
98
+
99
+
100
+ ```
101
+ Merge pull request #836 from rick/bkr-301/add-warning-when-empty-fog-file-is-encountered
102
+
103
+ [BKR-301] add warning when empty fog file is encountered
104
+ ```
105
+ * Merge pull request #838 from thallgren/master (4e8be4e2)
106
+
107
+
108
+ ```
109
+ Merge pull request #838 from thallgren/master
110
+
111
+ (maint) Fix typo Error -> Errno
112
+ ```
113
+ * (maint) Fix typo Error -> Errno (670b1509)
114
+
115
+ * (BKR-195) Simplified install of released puppet-agent (fcac8e03)
116
+
117
+
118
+ ```
119
+ (BKR-195) Simplified install of released puppet-agent
120
+
121
+ Previously installing the puppet-agent package required writing a
122
+ pre-suite to manually install the correct dev repositories and
123
+ installing a dev build of puppet-agent.
124
+
125
+ This is problematic for downstream consumers that do not want to test
126
+ puppet-agent or the code in it, but want to test that their code works
127
+ with puppet-agent (eg module authors).
128
+
129
+ This commit creates the DSL method `install_puppet_agent_on()`, an
130
+ analog to the `install_puppet_on()` method that allows installing
131
+ puppet-agent.
132
+
133
+ It also allows the `install_puppet()` method to install puppet-agent if
134
+ given a version of Puppet greater than 4.0.0 (by delegating to
135
+ `install_puppet_agent_on()`).
136
+
137
+ Errata:
138
+ * Follows the pattern of naming helpers `*_on` and
139
+ normalizes the helpers it touches to follow the same pattern.
140
+ * Updates the MSI and DMG methods to allow for latest builds
141
+ (prior to this they required explicit versions and so were rarely
142
+ used even by our internal teams).
143
+ * Also updates legacy puppet MSI and DMG install helpers to
144
+ delegate to newer install puppet-agent helpers using the same
145
+ criteria as used in `install_puppet_on()` (despite being marked as
146
+ api private they are used internally).
147
+ * Uses newer `install_puppetlabs_release_repo_on` and
148
+ `Host#install_package` and updates old helpers to do the same
149
+ ```
150
+ * Merge pull request #833 from thallgren/issue/bkr-304/redundant-scp-copying (adb9c37a)
151
+
152
+
153
+ ```
154
+ Merge pull request #833 from thallgren/issue/bkr-304/redundant-scp-copying
155
+
156
+ (BKR-304) Prevent redundant copying when doing scp
157
+ ```
158
+ * Merge pull request #796 from fiddyspence/bug/rsync_fails_with_docker (82286b54)
159
+
160
+
161
+ ```
162
+ Merge pull request #796 from fiddyspence/bug/rsync_fails_with_docker
163
+
164
+ (BKR-226) - rsync fails because of NATted ports
165
+ ```
166
+ * (BKR-301) Add "happy path" tests for credential loading (22c39286)
167
+
168
+
169
+ ```
170
+ (BKR-301) Add "happy path" tests for credential loading
171
+
172
+ Since we've tested that `#load_credentials` behaves ok during hard times, let's
173
+ actually test that it does what it's supposed to do.
174
+ ```
175
+ * (BKR-301) Tests and code for empty fog file case (d33ac6d6)
176
+
177
+
178
+ ```
179
+ (BKR-301) Tests and code for empty fog file case
180
+
181
+ Numerous small refactorings in `#load_credentials` after getting the test green.
182
+ ```
183
+ * (BKR-301) New test and testing seams (bf8a9a26)
184
+
185
+
186
+ ```
187
+ (BKR-301) New test and testing seams
188
+
189
+ This splits off tests for #load_credentials, as we have untested
190
+ behavior there, and the point of this work is to fix a mis-feature
191
+ in that area (not catching the hard-to-decipher exception when
192
+ an empty fog file is presented). The main tests all stub out the
193
+ fog file loading, so here we introduce a different stub.
194
+
195
+ This also modifies the `Vmpooler` class to split out a testing seam:
196
+ the `#read_fog_file` method can be stubbed now independently of the
197
+ `#load_credentials method`, so we can feed in post-YAML output to
198
+ the `#load_credentials` under test.
199
+
200
+ Since `#load_credentials` is called as part of the constructor (a mild
201
+ anti-pattern, but lazy loading can be cumbersome), we need to validate
202
+ its results via testing post-constructed object state. Unfortunately,
203
+ we can't get the resultant credentials state without piercing the
204
+ instance-variable boundary of the `Vmpooler` object, so we added another
205
+ seam: the `attr_reader` for `:credentials`.
206
+
207
+ While we're there, we added the reader for the remainder of the
208
+ options handed into the constructor, as it makes sense to at least
209
+ be uniform in the library, even if it is under-tested.
210
+ ```
211
+ * (MAINT) clean up whitespace in spec file (98631575)
212
+
213
+ * Merge pull request #835 from waynr/bkr-307 (5c17aaec)
214
+
215
+
216
+ ```
217
+ Merge pull request #835 from waynr/bkr-307
218
+
219
+ (BKR-307) Add Beaker::Platform support for debian jessie (aka 8)
220
+ ```
221
+ * Merge pull request #832 from anodelman/login-as-user (33f4d6b7)
222
+
223
+
224
+ ```
225
+ Merge pull request #832 from anodelman/login-as-user
226
+
227
+ (BKR-248) support connecting to SUTs with user/password
228
+ ```
229
+ * (BKR-307) Add Beaker::Platform support for debian jessie (aka 8) (f87fc3fe)
230
+
231
+ * Merge pull request #826 from anodelman/cisco (a7c0cce2)
232
+
233
+
234
+ ```
235
+ Merge pull request #826 from anodelman/cisco
236
+
237
+ (BKR-292) Cisco platform changes + prepend command functionality
238
+ ```
239
+ * Merge pull request #831 from anodelman/remove-rake-task (ddf4a989)
240
+
241
+
242
+ ```
243
+ Merge pull request #831 from anodelman/remove-rake-task
244
+
245
+ (BKR-239) Remove dependency on puppet-dashboard rake tasks for...
246
+ ```
247
+ * Merge pull request #821 from anodelman/shallow (a22c86f1)
248
+
249
+
250
+ ```
251
+ Merge pull request #821 from anodelman/shallow
252
+
253
+ (BKR-273) Allow Setting Type by Host
254
+ ```
255
+ * (BKR-304) Prevent redundant copying when doing scp (7db1d724)
256
+
257
+
258
+ ```
259
+ (BKR-304) Prevent redundant copying when doing scp
260
+
261
+ Before this commit, the method Beaker::Host.do_scp_to would request
262
+ copying of both directories and files from the underlying scp
263
+ connection. This resulted in a lot of redundant copying since the
264
+ scp connection, when handed a directory, would copy it recursively.
265
+
266
+ This commit ensures that only the files are copied. This is safe
267
+ because all remote directories are already created in a preceding
268
+ step.
269
+ ```
270
+ * (BKR-248) support connecting to SUTs with user/password (4da57c9f)
271
+
272
+
273
+ ```
274
+ (BKR-248) support connecting to SUTs with user/password
275
+
276
+ - check to see if a custom ssh user has been defined, if so then use
277
+ that instead of the default user per-OS type
278
+ ```
279
+ * Merge pull request #830 from kevpl/puppet_git_branch_change (cc52b1e4)
280
+
281
+
282
+ ```
283
+ Merge pull request #830 from kevpl/puppet_git_branch_change
284
+
285
+ (MAINT) moving from stable to a release for facter & hiera
286
+ ```
287
+ * Merge pull request #829 from kevpl/bkr231_answers_update (4975d36f)
288
+
289
+
290
+ ```
291
+ Merge pull request #829 from kevpl/bkr231_answers_update
292
+
293
+ (BKR-231) updated answers to use v4 answers for puppet 4
294
+ ```
295
+ * (MAINT) moving from stable to a release for facter & hiera in puppet_git acceptance testing (89d6f425)
296
+
297
+ * Merge pull request #823 from anodelman/subset-hosts (e62404db)
298
+
299
+
300
+ ```
301
+ Merge pull request #823 from anodelman/subset-hosts
302
+
303
+ (BKR-280) ability to install pe/foss on subset of hosts
304
+ ```
305
+ * Merge pull request #813 from electrical/docker_swarm (b5818852)
306
+
307
+
308
+ ```
309
+ Merge pull request #813 from electrical/docker_swarm
310
+
311
+ (BKR-242) Docker swarm
312
+ ```
313
+ * (BKR-231) updated answers to use v4 answers for puppet 4 (49eed580)
314
+
315
+ * (BKR-239) Remove dependency on puppet-dashboard rake tasks for... (ce9aa43c)
316
+
317
+
318
+ ```
319
+ (BKR-239) Remove dependency on puppet-dashboard rake tasks for...
320
+
321
+ ... shallow gravy.
322
+
323
+ - wrap rake test call in version check, only run if pre 3.99
324
+ - use scooter for new frictionless workflow
325
+ ```
326
+ * (BKR-292) Cisco platform changes + prepend command functionality (685e43aa)
327
+
328
+
329
+ ```
330
+ (BKR-292) Cisco platform changes + prepend command functionality
331
+
332
+ - add cisco to supported platforms
333
+ - add ability to send a prepend_cmd string to a command object
334
+ ```
335
+ * Merge pull request #822 from justinstoller/maint/master/remove-step (b7915485)
336
+
337
+
338
+ ```
339
+ Merge pull request #822 from justinstoller/maint/master/remove-step
340
+
341
+ (maint) Remove step dsl usage from inside Beaker
342
+ ```
343
+ * Merge pull request #825 from mcanevet/dev/user_data (98453297)
344
+
345
+
346
+ ```
347
+ Merge pull request #825 from mcanevet/dev/user_data
348
+
349
+ (BKR-300) Always manage_etc_hosts in cloud-init
350
+ ```
351
+ * (BKR-300) Always manage_etc_hosts in cloud-init (b5a0885b)
352
+
353
+ * (BKR-280) ability to install pe/foss on subset of hosts (83accb53)
354
+
355
+
356
+ ```
357
+ (BKR-280) ability to install pe/foss on subset of hosts
358
+
359
+ - created install_pe_on, upgrade_pe_on, install_puppet_on that accept a
360
+ first argument of a host array and then correctly install pe/puppet on
361
+ provided hosts
362
+ ```
363
+ * (maint) Remove step dsl usage from inside Beaker (5d1cf55a)
364
+
365
+
366
+ ```
367
+ (maint) Remove step dsl usage from inside Beaker
368
+
369
+ Prior to this we would use the `step` DSL method in a couple of places
370
+ inside Beaker. This can be problematic when using Beaker as a library
371
+ and requires loading more of Beaker than is necessary for executing
372
+ certain helper methods. This commit removes the internal usage of step
373
+ and replaces it with calls to the the logger that will output the same
374
+ style of notification that calling step does.
375
+ ```
376
+ * (BKR-273) Allow Setting Type by Host (5c40b0d7)
377
+
378
+
379
+ ```
380
+ (BKR-273) Allow Setting Type by Host
381
+
382
+ - no longer use 'type' to control path/default host settings
383
+ - set environment and defaults post pe/foss installation
384
+ - dump more information post testing so that you can correctly pick up
385
+ the host again
386
+ ```
387
+ * (BKR-242) Add Swarm support to docker run (7d447a46)
388
+
389
+
390
+ ```
391
+ (BKR-242) Add Swarm support to docker run
392
+
393
+ To distribute the same built image between all swarm slaves we need to
394
+ push the image to a private registry.
395
+ If the image does not exist yet ( first build ) we tag + push it.
396
+ If it does exist we will re-use it.
397
+ If we built the image on Node A but then the run command is executed on
398
+ node B we will pull the image automatically and run it.
399
+
400
+ The only downside is that we will always build the image since we need
401
+ to know the resulting image ID.
402
+ Hopefully this can be improved in the future.
403
+ ```
404
+ * (BKR-242) Add logic to support swarm (917a2306)
405
+
406
+
407
+ ```
408
+ (BKR-242) Add logic to support swarm
409
+
410
+ When we want the IP address of the container with running swarm we have
411
+ to fetch the IP of the swarm slave it self.
412
+ ```
413
+ * (BKR-226) - rsync fails because of NATted ports fix (89c4d6ab)
414
+
415
+ ### <a name = "2.13.0">2.13.0 - 29 May, 2015 (dd70aa66)
416
+
417
+ * (HISTORY) update beaker history for gem release 2.13.0 (dd70aa66)
85
418
 
86
419
  * (GEM) update beaker version to 2.13.0 (c801d4c8)
87
420
 
@@ -1,6 +1,6 @@
1
1
  install = [
2
- 'facter#stable',
3
- 'hiera#stable',
2
+ 'facter#2.1.0',
3
+ 'hiera#1.3.4',
4
4
  'puppet#3.7.5'
5
5
  ]
6
6
 
@@ -3,6 +3,40 @@ module Beaker
3
3
  # information.
4
4
  class Answers
5
5
 
6
+ DEFAULT_ANSWERS = Beaker::Options::OptionsHash.new.merge({
7
+ :q_puppet_enterpriseconsole_auth_user_email => 'admin@example.com',
8
+ :q_puppet_enterpriseconsole_auth_password => '~!@#$%^*-/ aZ',
9
+ :q_puppet_enterpriseconsole_smtp_port => 25,
10
+ :q_puppet_enterpriseconsole_smtp_use_tls => 'n',
11
+ :q_verify_packages => 'y',
12
+ :q_puppetdb_password => '~!@#$%^*-/ aZ',
13
+ :q_puppetmaster_enterpriseconsole_port => 443,
14
+ :q_puppet_enterpriseconsole_auth_database_name => 'console_auth',
15
+ :q_puppet_enterpriseconsole_auth_database_user => 'mYu7hu3r',
16
+ :q_puppet_enterpriseconsole_database_name => 'console',
17
+ :q_puppet_enterpriseconsole_database_user => 'mYc0nS03u3r',
18
+ :q_database_root_password => '=ZYdjiP3jCwV5eo9s1MBd',
19
+ :q_database_root_user => 'pe-postgres',
20
+ :q_database_export_dir => '/tmp',
21
+ :q_puppetdb_database_name => 'pe-puppetdb',
22
+ :q_puppetdb_database_user => 'mYpdBu3r',
23
+ :q_database_port => 5432,
24
+ :q_puppetdb_port => 8081,
25
+ :q_classifier_database_user => 'DFGhjlkj',
26
+ :q_database_name => 'pe-classifier',
27
+ :q_classifier_database_password => '~!@#$%^*-/ aZ',
28
+ :q_activity_database_user => 'adsfglkj',
29
+ :q_activity_database_name => 'pe-activity',
30
+ :q_activity_database_password => '~!@#$%^*-/ aZ',
31
+ :q_rbac_database_user => 'RbhNBklm',
32
+ :q_rbac_database_name => 'pe-rbac',
33
+ :q_rbac_database_password => '~!@#$%^*-/ aZ',
34
+ :q_install_update_server => 'y',
35
+ :q_exit_for_nc_migrate => 'n',
36
+ :q_enable_future_parser => 'n',
37
+ :q_pe_check_for_updates => 'n',
38
+ })
39
+
6
40
  # When given a Puppet Enterprise version, a list of hosts and other
7
41
  # qualifying data this method will return the appropriate object that can be used
8
42
  # to generate answer file data.
@@ -16,7 +50,7 @@ module Beaker
16
50
  def self.create version, hosts, options
17
51
  case version
18
52
  when /\A4\.0/
19
- return Version34.new(version, hosts, options)
53
+ return Version40.new(version, hosts, options)
20
54
  when /\A3\.99/
21
55
  return Version40.new(version, hosts, options)
22
56
  when /\A3\.8/
@@ -46,7 +80,16 @@ module Beaker
46
80
  # @param [String] default Should there be no user value for the provided question name return this default
47
81
  # @return [String] The answer value
48
82
  def answer_for(options, q, default = nil)
49
- options[:answers][q] ? options[:answers][q] : default
83
+ answer = DEFAULT_ANSWERS[q]
84
+ # check to see if there is a value for this in the provided options
85
+ if options[:answers] && options[:answers][q]
86
+ answer = options[:answers][q]
87
+ end
88
+ # use the default if we don't have anything
89
+ if not answer
90
+ answer = default
91
+ end
92
+ answer
50
93
  end
51
94
 
52
95
  # When given a Puppet Enterprise version, a list of hosts and other