beaker 2.13.0 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.
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