beaker 1.19.1 → 1.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +8 -8
  2. data/HISTORY.md +295 -4
  3. data/README.md +4 -0
  4. data/lib/beaker/answers/version20.rb +103 -107
  5. data/lib/beaker/answers/version28.rb +111 -115
  6. data/lib/beaker/answers/version30.rb +194 -192
  7. data/lib/beaker/answers/version32.rb +27 -22
  8. data/lib/beaker/answers/version34.rb +6 -6
  9. data/lib/beaker/answers.rb +55 -21
  10. data/lib/beaker/cli.rb +13 -11
  11. data/lib/beaker/dsl/helpers.rb +2 -2
  12. data/lib/beaker/dsl/install_utils.rb +2 -4
  13. data/lib/beaker/host.rb +9 -5
  14. data/lib/beaker/host_prebuilt_steps.rb +33 -20
  15. data/lib/beaker/hypervisor/aws_sdk.rb +12 -10
  16. data/lib/beaker/hypervisor/ec2_helper.rb +1 -0
  17. data/lib/beaker/hypervisor/google_compute.rb +0 -1
  18. data/lib/beaker/hypervisor/vagrant.rb +11 -16
  19. data/lib/beaker/hypervisor/vagrant_fusion.rb +17 -0
  20. data/lib/beaker/hypervisor/vagrant_virtualbox.rb +26 -0
  21. data/lib/beaker/hypervisor/vagrant_workstation.rb +13 -0
  22. data/lib/beaker/hypervisor/vcloud_pooled.rb +3 -1
  23. data/lib/beaker/hypervisor.rb +22 -13
  24. data/lib/beaker/logger.rb +29 -0
  25. data/lib/beaker/options/command_line_parser.rb +2 -0
  26. data/lib/beaker/options/parser.rb +5 -4
  27. data/lib/beaker/options/presets.rb +58 -35
  28. data/lib/beaker/version.rb +1 -1
  29. data/spec/beaker/answers_spec.rb +156 -135
  30. data/spec/beaker/cli_spec.rb +35 -2
  31. data/spec/beaker/dsl/install_utils_spec.rb +2 -3
  32. data/spec/beaker/host_prebuilt_steps_spec.rb +47 -24
  33. data/spec/beaker/host_spec.rb +6 -6
  34. data/spec/beaker/hypervisor/ec2_helper_spec.rb +2 -2
  35. data/spec/beaker/hypervisor/hypervisor_spec.rb +35 -0
  36. data/spec/beaker/hypervisor/vagrant_fusion_spec.rb +34 -0
  37. data/spec/beaker/hypervisor/vagrant_spec.rb +39 -2
  38. data/spec/beaker/hypervisor/vagrant_virtualbox_spec.rb +34 -0
  39. data/spec/beaker/hypervisor/vagrant_workstation_spec.rb +34 -0
  40. data/spec/beaker/logger_spec.rb +30 -0
  41. data/spec/beaker/options/presets_spec.rb +4 -4
  42. data/spec/helpers.rb +2 -1
  43. data/spec/mocks.rb +5 -1
  44. metadata +9 -60
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MThkNzc4YjBmNjI1YmM1NzBiM2JlNzI0MThmMDZkY2VkNzRhOThjNg==
4
+ OTYxMDEzNzUwMmQwMDgwOTYyMTc3NzAyZTY5MzRlMzVmOTc1MmUzNw==
5
5
  data.tar.gz: !binary |-
6
- OTk3Yzk0MWZkMDRiMDY2YzAwYzY4MWRhZDM1MzkxNmNmYjdkM2E1YQ==
6
+ ZTVjNjAzZjE5ODUyOWUwZTgzZTY1MzEyZDg3NmNkMzMwOGFkODdjZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YWYwMDY2ZDViZGYwZGRjN2JmYjE0Y2ZhZWQyOTRjMzI2NzE0MTU5NTFhOGEz
10
- ZWM4MjRmN2I0MzkyZjIyY2RiNjZiYjY3MmQ4NGNlZDc4ODExZjJkODQyYWM1
11
- MDkxZmIxOGIyYmIwNzZhZjg2MjlmYzg3ODNiOWViMTMwNjk3M2U=
9
+ ZjNhZThjMGM2NzNlZWVjZTEwYjRiMjgzNDg2MzcyMWQ5N2IxODM0NTA4MTdj
10
+ NDAwZDY5MGQwOTU3ZDQ3MDFkOTc0ZTI1NWFiNWIyZDUxMDVmMmRhNjQ1ODU2
11
+ ZjZhOGZhMmI1YmE4NWE3ODRiOWE4NmFhNjlmNzc1MzU3ZDcyNWU=
12
12
  data.tar.gz: !binary |-
13
- ZjRhYzdiY2QxNmJkYmIyOTQ4NWE5NzQ3NjVhYzljOWYwMjFkNTgzOTZjMjU3
14
- MmNlZjY3MTIwYmM5MjRkMzIyNDM0MjAwMjg4NjdiNzBjMDgwODg5OTA1NTQ2
15
- MWIzMzIyODg5ZTZlNWRmMzcxNTMxNjgwNjkwNWQ0NjllYTgyMjQ=
13
+ YTA2ZGVjNTk0MTI5MjMwYmNlYjdhMWI3NWEwNTE3MzIzNzU1ZTg2NTJmYzdm
14
+ YWQxYjY5ZjQ3MDZmN2UzM2U5ODVjYzY2YjNlNDc4MzgzMjA1NTJhN2JmYmQ1
15
+ OGZhNWZlOWVhNDNmYjkwYmQ3YTE1NTI1ZTAxZTU1MTI0YzcwZDc=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
- # beaker - History
1
+ # default - History
2
2
  ## Tags
3
- * [LATEST - 19 Sep, 2014 (47f147e3)](#LATEST)
3
+ * [LATEST - 17 Oct, 2014 (ab118389)](#LATEST)
4
+ * [beaker1.19.1 - 19 Sep, 2014 (3aafc71d)](#beaker1.19.1)
4
5
  * [beaker1.19.0 - 19 Sep, 2014 (6a56cc90)](#beaker1.19.0)
5
6
  * [beaker1.18.0 - 18 Sep, 2014 (b9171d9c)](#beaker1.18.0)
6
7
  * [beaker1.17.7 - 2 Sep, 2014 (e47881f0)](#beaker1.17.7)
@@ -62,9 +63,299 @@
62
63
  * [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
63
64
 
64
65
  ## Details
65
- ### <a name = "LATEST">LATEST - 19 Sep, 2014 (47f147e3)
66
+ ### <a name = "LATEST">LATEST - 17 Oct, 2014 (ab118389)
66
67
 
67
- * (HISTORY) history update for beaker 1.19.1 gem (47f147e3)
68
+ * (GEM) update beaker version to 1.20.0 (ab118389)
69
+
70
+ * Merge pull request #497 from briancain/QENG1391/master/use-tls-for-pe-curl (d03ec9b6)
71
+
72
+
73
+ ```
74
+ Merge pull request #497 from briancain/QENG1391/master/use-tls-for-pe-curl
75
+
76
+ [UNDER REVIEW](QENG-1391) Use TLSv1 over SSLv3 for curl against PE
77
+ ```
78
+ * Merge pull request #498 from anodelman/ec2 (57f30946)
79
+
80
+
81
+ ```
82
+ Merge pull request #498 from anodelman/ec2
83
+
84
+ (MAINT) open port 4435 for dashboard
85
+ ```
86
+ * (MAINT) open port 4435 for dashboard (aa4af898)
87
+
88
+
89
+ ```
90
+ (MAINT) open port 4435 for dashboard
91
+
92
+ yup, do that
93
+ ```
94
+ * Merge pull request #446 from branan/use_vmpooler_fqdn (00e77f59)
95
+
96
+
97
+ ```
98
+ Merge pull request #446 from branan/use_vmpooler_fqdn
99
+
100
+ (QENG-1192) Use hostname specified by hypervisor everywhere.
101
+ ```
102
+ * (QENG-1391) Use TLSv1 over SSLv3 for curl against PE (6449a3b6)
103
+
104
+
105
+ ```
106
+ (QENG-1391) Use TLSv1 over SSLv3 for curl against PE
107
+
108
+ Prior to this commit, beaker was exclusively using SSLv3 against Puppet
109
+ Enterprise. Due to the recent information with POODLE, this commit updates
110
+ beaker to use TLS over SSL since we are disabling the use
111
+ of SSLv3.
112
+ ```
113
+ * Merge pull request #475 from er0ck/feature/master/QENG-1231-preserve_hosts_onpass (fa56d804)
114
+
115
+
116
+ ```
117
+ Merge pull request #475 from er0ck/feature/master/QENG-1231-preserve_hosts_onpass
118
+
119
+ (QENG-1231) add onpass option to --preserve-hosts
120
+ ```
121
+ * Merge pull request #486 from kevpl/qeng270_ntp_addoption (821884e6)
122
+
123
+
124
+ ```
125
+ Merge pull request #486 from kevpl/qeng270_ntp_addoption
126
+
127
+ (QENG-270) Added ntp_server as an option for host config
128
+ ```
129
+ * Merge pull request #490 from anodelman/ec2 (d12ba02d)
130
+
131
+
132
+ ```
133
+ Merge pull request #490 from anodelman/ec2
134
+
135
+ (QENG-1205) EC2 zombie killer can fail when instance not found
136
+ ```
137
+ * (QENG-1205) EC2 zombie killer can fail when instance not found (270d6417)
138
+
139
+
140
+ ```
141
+ (QENG-1205) EC2 zombie killer can fail when instance not found
142
+
143
+ - better error handling around zombie killing
144
+ ```
145
+ * (QENG-270) Added ntp_server as an option for host config (b148b657)
146
+
147
+
148
+ ```
149
+ (QENG-270) Added ntp_server as an option for host config
150
+
151
+ Before this, you couldn't specify an ntp server, so if you used the timesync option, it would only use the hard-coded value 'pool.ntp.org'.
152
+ This was a problem because occasionally that service couldn't be reached. In order to fix this, we've allowed people to specify a server, so that they can get more reliable ntp services, and not see failures based on being able to reach one.
153
+ ```
154
+ * Merge pull request #377 from waynr/feature/qeng-967-disable-iptables-on-el-hosts (c9145e5d)
155
+
156
+
157
+ ```
158
+ Merge pull request #377 from waynr/feature/qeng-967-disable-iptables-on-el-hosts
159
+
160
+ (QENG-967) Disable iptables on el hosts bringup.
161
+ ```
162
+ * Merge pull request #452 from anodelman/maint (c46271e0)
163
+
164
+
165
+ ```
166
+ Merge pull request #452 from anodelman/maint
167
+
168
+ (QENG-1209) scp in debug output shows far too much output
169
+ ```
170
+ * (QENG-1192) Use hostname specified by hypervisor everywhere (db171537)
171
+
172
+
173
+ ```
174
+ (QENG-1192) Use hostname specified by hypervisor everywhere
175
+
176
+ reviously, we would call out to `hostname` on the SUT when deploying
177
+ PE. This may give us a name that isn't resolvable our routable by
178
+ every host in the configuration. We should instead just use whatever
179
+ the hypervisor tells us is the correct way to connect to the host.
180
+
181
+ This also sneaks in a small change to the vmpooler hypervisor, to make
182
+ it return FQDNs. Using these FQDNs is really what this is all about.
183
+ ```
184
+ * Merge pull request #271 from hunner/add_fusion (9a00806f)
185
+
186
+
187
+ ```
188
+ Merge pull request #271 from hunner/add_fusion
189
+
190
+ (QENG-1146) Add vagrant_fusion, vagrant_workstation and vagrant_virtualbox providers
191
+ ```
192
+ * remove non-capture from regex groups (8e65b146)
193
+
194
+ * Merge pull request #462 from er0ck/fix/master/QENG-1261-fix_ntpdate_on_solaris10 (6f5162e7)
195
+
196
+
197
+ ```
198
+ Merge pull request #462 from er0ck/fix/master/QENG-1261-fix_ntpdate_on_solaris10
199
+
200
+ (QENG-1261) remove solaris-10 specific ntpdate options
201
+ ```
202
+ * Merge pull request #464 from anodelman/answers (e145c964)
203
+
204
+
205
+ ```
206
+ Merge pull request #464 from anodelman/answers
207
+
208
+ (QENG-1054) Add functionality to install_pe to modify answers...
209
+ ```
210
+ * Merge pull request #476 from leoarnold/master (189eb410)
211
+
212
+
213
+ ```
214
+ Merge pull request #476 from leoarnold/master
215
+
216
+ Added link to installation instructions to README.md
217
+ ```
218
+ * Merge pull request #479 from anodelman/epel (6ee6fe4c)
219
+
220
+
221
+ ```
222
+ Merge pull request #479 from anodelman/epel
223
+
224
+ (QENG-1206) Acceptance failing when trying to install epel-release...
225
+ ```
226
+ * (QENG-1206) Acceptance failing when trying to install epel-release... (17bd48be)
227
+
228
+
229
+ ```
230
+ (QENG-1206) Acceptance failing when trying to install epel-release...
231
+
232
+ and EPEL packages from public mirrors
233
+ - add ability to set epel_url, epel_arch and epel_package as global
234
+ options or on a per-host basis
235
+ - added reasonable default values
236
+ ```
237
+ * Added link to installation instructions to README.md (5b513899)
238
+
239
+ * (QENG-1231) add onpass option to --preserve-hosts (e772e289)
240
+
241
+
242
+ ```
243
+ (QENG-1231) add onpass option to --preserve-hosts
244
+ * add spec tests similar to onfail spec tests
245
+ * add cleanup to rescue when --preserve-hosts onpass
246
+ * add help statement for onpass
247
+ ```
248
+ * Merge pull request #418 from liamjbennett/vagrant_box_update (decdb05c)
249
+
250
+
251
+ ```
252
+ Merge pull request #418 from liamjbennett/vagrant_box_update
253
+
254
+ Adding support to vagrant for box_version and box_check_update.
255
+ ```
256
+ * Merge pull request #422 from liamjbennett/vagrant_natdns (a64a3bac)
257
+
258
+
259
+ ```
260
+ Merge pull request #422 from liamjbennett/vagrant_natdns
261
+
262
+ Enable natresolver and natdnsproxy for vagrant.
263
+ ```
264
+ * (QENG-1261) remove solaris-10 specific ntpdate options. -w causes an (a795d859)
265
+
266
+
267
+ ```
268
+ (QENG-1261) remove solaris-10 specific ntpdate options. -w causes an
269
+ error.
270
+ remove related spec test.
271
+ ```
272
+ * (gh-470) refactoring natdns to use the unless syntax (3d67a83a)
273
+
274
+ * (QENG-1054) Add functionality to install_pe to modify answers... (6a35cda6)
275
+
276
+
277
+ ```
278
+ (QENG-1054) Add functionality to install_pe to modify answers...
279
+
280
+ ...file before install
281
+
282
+ - add ability to add custom_answers to individual hosts to be appended
283
+ to answer file
284
+ - rework answer file code so that answers are an object that can be
285
+ queried for an answer string
286
+ - instead of querying env for individual answers just pull in anything
287
+ that matches q_*
288
+ - pull the default answer values into the presets so that it is more
289
+ easily tracked
290
+ ```
291
+ * (QENG-1209) scp in debug output shows far too much output (059248e7)
292
+
293
+
294
+ ```
295
+ (QENG-1209) scp in debug output shows far too much output
296
+
297
+ - move detailed output into a new log level called 'trace', could still
298
+ be useful for tracking networking failures - but will be disabled by
299
+ default
300
+ - add ability to flip on/off quiet output to logging
301
+ ```
302
+ * Enable natresolver and natdnsproxy for vagrant. (613ddba8)
303
+
304
+
305
+ ```
306
+ Enable natresolver and natdnsproxy for vagrant.
307
+
308
+ There are cases where tests run will fail when trying to download
309
+ from the outside world due to dns issues. In order to resolve this
310
+ I configured the natdnsproxy1 and natdnshostresolver1 vagrant settings
311
+ ```
312
+ * (gh-471) Adding support to vagrant for box_version and box_check_update. (24bb0951)
313
+
314
+
315
+ ```
316
+ (gh-471) Adding support to vagrant for box_version and box_check_update.
317
+
318
+ If using versioned boxes from vagrant cloud and a new update is
319
+ published, by default vagrant will attempt to update that box to
320
+ the latest version. This may be undesired behaviour. Like any other
321
+ versioned object you way wish to fix that initial download to a
322
+ fixed version or a version range.
323
+ ```
324
+ * (QENG-967) Disable iptables on el hosts bringup. (11cb16ef)
325
+
326
+
327
+ ```
328
+ (QENG-967) Disable iptables on el hosts bringup.
329
+
330
+ Also fixes bug in `disable_iptables` where per-array-element was invoking wrong
331
+ method. Looks like `disable_iptables` was originally copied from
332
+ `copy_ssh_to_root`
333
+
334
+ Also adds rspec for Beaker::Hypervisor.configure
335
+
336
+ Signed-off-by: Wayne <wayne@puppetlabs.com>
337
+ ```
338
+ * (QENG-1146) Add vagrant_fusion, vmware_workstation, and vagrant_virtualbox providers (fdcbac3d)
339
+
340
+
341
+ ```
342
+ (QENG-1146) Add vagrant_fusion, vmware_workstation, and vagrant_virtualbox providers
343
+
344
+ Currently the vagrant hypervisor provider just does virtualbox. This
345
+ allows the vagrant vmware_fusion and vmware_workstation plugins to be
346
+ used instead.
347
+ ```
348
+ ### <a name = "beaker1.19.1">beaker1.19.1 - 19 Sep, 2014 (3aafc71d)
349
+
350
+ * Merge pull request #467 from anodelman/master (3aafc71d)
351
+
352
+
353
+ ```
354
+ Merge pull request #467 from anodelman/master
355
+
356
+ create beaker 1.19.1 gem
357
+ ```
358
+ * (HISTORY) history update for beaker 1.19.1 gem (d5bea586)
68
359
 
69
360
  * (GEM) version bump for 1.19.1 gem (7538dc00)
70
361
 
data/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Puppet Labs cloud enabled acceptance testing tool.
4
4
 
5
+ # Installation
6
+
7
+ See [Beaker Installation](https://github.com/puppetlabs/beaker/wiki/Beaker-Installation) wiki page.
8
+
5
9
  #Documentation
6
10
 
7
11
  Documentation for Beaker can be found online at the
@@ -1,125 +1,121 @@
1
1
  module Beaker
2
- module Answers
3
- # This class provides answer file information for PE version 2.0
2
+ # This class provides answer file information for PE version 2.0
3
+ #
4
+ # @api private
5
+ class Version20 < Answers
6
+ # Return answer data for a host
4
7
  #
5
- # @api private
6
- module Version20
7
- # Return answer data for a host
8
- #
9
- # @param [Beaker::Host] host Host to return data for
10
- # @param [String] master_certname Hostname of the puppet master.
11
- # @param [Beaker::Host] master Host object representing the master
12
- # @param [Beaker::Host] dashboard Host object representing the dashboard
13
- # @param [Hash] options options for answer files
14
- # @option options [Symbol] :type Should be one of :upgrade or :install.
15
- # @return [Hash] A hash (keyed from hosts) containing hashes of answer file
16
- # data.
17
- def self.host_answers(host, master_certname, master, dashboard, options)
18
- return nil if host['platform'] =~ /windows/
8
+ # @param [Beaker::Host] host Host to return data for
9
+ # @param [Beaker::Host] master Host object representing the master
10
+ # @param [Beaker::Host] dashboard Host object representing the dashboard
11
+ # @param [Hash] options options for answer files
12
+ # @option options [Symbol] :type Should be one of :upgrade or :install.
13
+ # @return [Hash] A hash (keyed from hosts) containing hashes of answer file
14
+ # data.
15
+ def host_answers(host, master, dashboard, options)
16
+ return nil if host['platform'] =~ /windows/
19
17
 
20
- agent_a = {
21
- :q_install => 'y',
22
- :q_puppetagent_install => 'y',
23
- :q_puppet_cloud_install => 'y',
24
- :q_puppet_symlinks_install => 'y',
25
- :q_vendor_packages_install => 'y',
26
- :q_puppetagent_certname => host,
27
- :q_puppetagent_server => master,
18
+ agent_a = {
19
+ :q_install => 'y',
20
+ :q_puppetagent_install => 'y',
21
+ :q_puppet_cloud_install => 'y',
22
+ :q_puppet_symlinks_install => 'y',
23
+ :q_vendor_packages_install => 'y',
24
+ :q_puppetagent_certname => host,
25
+ :q_puppetagent_server => master,
28
26
 
29
- # Disable console and master by default
30
- # This will be overridden by other blocks being merged in
31
- :q_puppetmaster_install => 'n',
32
- :q_puppet_enterpriseconsole_install => 'n',
33
- }
27
+ # Disable console and master by default
28
+ # This will be overridden by other blocks being merged in
29
+ :q_puppetmaster_install => 'n',
30
+ :q_puppet_enterpriseconsole_install => 'n',
31
+ }
34
32
 
35
- master_a = {
36
- :q_puppetmaster_install => 'y',
37
- :q_puppetmaster_certname => master_certname,
38
- :q_puppetmaster_install => 'y',
39
- :q_puppetmaster_dnsaltnames => master_certname+",puppet",
40
- :q_puppetmaster_enterpriseconsole_hostname => dashboard,
41
- :q_puppetmaster_enterpriseconsole_port => 443,
42
- :q_puppetmaster_forward_facts => 'y',
43
- }
33
+ master_dns_altnames = [master.to_s, master['ip'], 'puppet'].compact.uniq.join(',')
34
+ master_a = {
35
+ :q_puppetmaster_install => 'y',
36
+ :q_puppetmaster_certname => master,
37
+ :q_puppetmaster_install => 'y',
38
+ :q_puppetmaster_dnsaltnames => master_dns_altnames,
39
+ :q_puppetmaster_enterpriseconsole_hostname => dashboard,
40
+ :q_puppetmaster_enterpriseconsole_port => answer_for(options, :q_puppetmaster_enterpriseconsole_port, 443),
41
+ :q_puppetmaster_forward_facts => 'y',
42
+ }
44
43
 
45
- if master['ip']
46
- master_a[:q_puppetmaster_dnsaltnames]+=","+master['ip']
47
- end
48
-
49
- dashboard_user = "'#{options[:answers][:q_puppet_enterpriseconsole_auth_user_email]}'"
50
- smtp_host = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_host] || dashboard}'"
51
- dashboard_password = options[:answers][:q_puppet_enterpriseconsole_auth_password]
52
- smtp_port = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_port]}'"
53
- smtp_username = options[:answers][:q_puppet_enterpriseconsole_smtp_username]
54
- smtp_password = options[:answers][:q_puppet_enterpriseconsole_smtp_password]
55
- smtp_use_tls = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_use_tls]}'"
56
-
57
- console_a = {
58
- :q_puppet_enterpriseconsole_install => 'y',
59
- :q_puppet_enterpriseconsole_database_install => 'y',
60
- :q_puppet_enterpriseconsole_auth_database_name => 'console_auth',
61
- :q_puppet_enterpriseconsole_auth_database_user => 'mYu7hu3r',
62
- :q_puppet_enterpriseconsole_auth_database_password => "'#{dashboard_password}'",
63
- :q_puppet_enterpriseconsole_database_name => 'console',
64
- :q_puppet_enterpriseconsole_database_user => 'mYc0nS03u3r',
65
- :q_puppet_enterpriseconsole_database_root_password => "'#{dashboard_password}'",
66
- :q_puppet_enterpriseconsole_database_password => "'#{dashboard_password}'",
67
- :q_puppet_enterpriseconsole_inventory_hostname => host,
68
- :q_puppet_enterpriseconsole_inventory_certname => host,
69
- :q_puppet_enterpriseconsole_inventory_dnsaltnames => master,
70
- :q_puppet_enterpriseconsole_inventory_port => 8140,
71
- :q_puppet_enterpriseconsole_master_hostname => master,
72
-
73
- :q_puppet_enterpriseconsole_auth_user_email => dashboard_user,
74
- :q_puppet_enterpriseconsole_auth_password => "'#{dashboard_password}'",
44
+ dashboard_user = "'#{answer_for(options, :q_puppet_enterpriseconsole_auth_user_email)}'"
45
+ smtp_host = "'#{answer_for(options, :q_puppet_enterpriseconsole_smtp_host, dashboard)}'"
46
+ dashboard_password = "'#{answer_for(options, :q_puppet_enterpriseconsole_auth_password)}'"
47
+ smtp_port = "'#{answer_for(options, :q_puppet_enterpriseconsole_smtp_port)}'"
48
+ smtp_username = answer_for(options, :q_puppet_enterpriseconsole_smtp_username)
49
+ smtp_password = answer_for(options, :q_puppet_enterpriseconsole_smtp_password)
50
+ smtp_use_tls = "'#{answer_for(options, :q_puppet_enterpriseconsole_smtp_use_tls)}'"
51
+ auth_database_name = answer_for(options, :q_puppet_enterpriseconsole_auth_database_name, 'console_auth')
52
+ auth_database_user = answer_for(options, :q_puppet_enterpriseconsole_auth_database_user, 'mYu7hu3r')
53
+ console_database_name = answer_for(options, :q_puppet_enterpriseconsole_database_name, 'console')
54
+ console_database_user = answer_for(options, :q_puppet_enterpriseconsole_database_user, 'mYc0nS03u3r')
55
+ console_inventory_port = answer_for(options, :q_puppet_enterpriseconsole_inventory_port, 8140)
56
+ console_httpd_port = answer_for(options, :q_puppet_enterpriseconsole_httpd_port, 443)
75
57
 
76
- :q_puppet_enterpriseconsole_httpd_port => 443,
58
+ console_a = {
59
+ :q_puppet_enterpriseconsole_install => 'y',
60
+ :q_puppet_enterpriseconsole_database_install => 'y',
61
+ :q_puppet_enterpriseconsole_auth_database_name => auth_database_name,
62
+ :q_puppet_enterpriseconsole_auth_database_user => auth_database_user,
63
+ :q_puppet_enterpriseconsole_auth_database_password => dashboard_password,
64
+ :q_puppet_enterpriseconsole_database_name => console_database_name,
65
+ :q_puppet_enterpriseconsole_database_user => console_database_user,
66
+ :q_puppet_enterpriseconsole_database_root_password => dashboard_password,
67
+ :q_puppet_enterpriseconsole_database_password => dashboard_password,
68
+ :q_puppet_enterpriseconsole_inventory_hostname => host,
69
+ :q_puppet_enterpriseconsole_inventory_certname => host,
70
+ :q_puppet_enterpriseconsole_inventory_dnsaltnames => master,
71
+ :q_puppet_enterpriseconsole_inventory_port => console_inventory_port,
72
+ :q_puppet_enterpriseconsole_master_hostname => master,
73
+ :q_puppet_enterpriseconsole_auth_user_email => dashboard_user,
74
+ :q_puppet_enterpriseconsole_auth_password => dashboard_password,
75
+ :q_puppet_enterpriseconsole_httpd_port => console_httpd_port,
76
+ :q_puppet_enterpriseconsole_smtp_host => smtp_host,
77
+ :q_puppet_enterpriseconsole_smtp_use_tls => smtp_use_tls,
78
+ :q_puppet_enterpriseconsole_smtp_port => smtp_port,
79
+ }
77
80
 
78
- :q_puppet_enterpriseconsole_smtp_host => smtp_host,
79
- :q_puppet_enterpriseconsole_smtp_use_tls => smtp_use_tls,
80
- :q_puppet_enterpriseconsole_smtp_port => smtp_port,
81
- }
82
-
83
- console_a[:q_puppet_enterpriseconsole_auth_user] = console_a[:q_puppet_enterpriseconsole_auth_user_email]
84
-
85
- if smtp_password and smtp_username
86
- console_a.merge!({
87
- :q_puppet_enterpriseconsole_smtp_password => "'#{smtp_password}'",
88
- :q_puppet_enterpriseconsole_smtp_username => "'#{smtp_username}'",
89
- :q_puppet_enterpriseconsole_smtp_user_auth => 'y'
90
- })
91
- end
81
+ console_a[:q_puppet_enterpriseconsole_auth_user] = console_a[:q_puppet_enterpriseconsole_auth_user_email]
92
82
 
93
- answers = agent_a.dup
94
- if host == master
95
- answers.merge! master_a
96
- end
83
+ if smtp_password and smtp_username
84
+ console_a.merge!({
85
+ :q_puppet_enterpriseconsole_smtp_password => "'#{smtp_password}'",
86
+ :q_puppet_enterpriseconsole_smtp_username => "'#{smtp_username}'",
87
+ :q_puppet_enterpriseconsole_smtp_user_auth => 'y'
88
+ })
89
+ end
97
90
 
98
- if host == dashboard
99
- answers.merge! console_a
100
- end
91
+ answers = agent_a.dup
92
+ if host == master
93
+ answers.merge! master_a
94
+ end
101
95
 
102
- return answers
96
+ if host == dashboard
97
+ answers.merge! console_a
103
98
  end
104
99
 
105
- # Return answer data for all hosts.
106
- #
107
- # @param [Array<Beaker::Host>] hosts An array of host objects.
108
- # @param [String] master_certname Hostname of the puppet master.
109
- # @param [Hash] options options for answer files
110
- # @option options [Symbol] :type Should be one of :upgrade or :install.
111
- # @return [Hash] A hash (keyed from hosts) containing hashes of answer file
112
- # data.
113
- def self.answers(hosts, master_certname, options)
114
- the_answers = {}
115
- dashboard = only_host_with_role(hosts, 'dashboard')
116
- master = only_host_with_role(hosts, 'master')
117
- hosts.each do |h|
118
- the_answers[h.name] = host_answers(h, master_certname, master, dashboard, options)
119
- h[:answers] = the_answers[h.name]
100
+ return answers
101
+ end
102
+
103
+ # Return answer data for all hosts.
104
+ #
105
+ # @return [Hash] A hash (keyed from hosts) containing hashes of answer file
106
+ # data.
107
+ def generate_answers
108
+ the_answers = {}
109
+ dashboard = only_host_with_role(@hosts, 'dashboard')
110
+ master = only_host_with_role(@hosts, 'master')
111
+ @hosts.each do |h|
112
+ the_answers[h.name] = host_answers(h, master, dashboard, @options)
113
+ if h[:custom_answers]
114
+ the_answers[h.name] = the_answers[h.name].merge(h[:custom_answers])
120
115
  end
121
- return the_answers
116
+ h[:answers] = the_answers[h.name]
122
117
  end
118
+ return the_answers
123
119
  end
124
120
  end
125
121
  end