beaker 2.2.0 → 2.3.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
- ODAwM2ViN2UzMjliZTZhNTMzZWNjZGIyNDM3YWE0MjExMjRlYWQyYQ==
4
+ ZjZjMDRmZTM0YjZiNDcyYmQ1M2FhZjJmOTk5NTM3YTVmOWRhODkxMA==
5
5
  data.tar.gz: !binary |-
6
- YTlhYjdkZDFjNGZiNjExYzMzZGUwYmUzYTM5NDZmOTE1Zjk0OGQxNg==
6
+ YWQwNTBlZDExNGZiZWRkMmUxZjk2YjgxYTZiODA3N2NiYmJmYTc5Ng==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjQyYWM5YzE2ZTYwNjIxYjA1ZDFiYWU0MTI1OTIxMGE0MzRhZWQxYzk1ZWMw
10
- NGQ3MjYzNTcxOTllMWY0NzVhN2I0YTBiZGM1MzY2MzcyNzA4NDRlNGQxZmRk
11
- MTUzNTYwYTYxNTM1YzgyMTIwMzFiNjQzYjU0ZGVlYTFhOTczYjE=
9
+ MWQ2Yjc3ZDIzODAzMWViNTc5YmUxMmUyNjU0MWUyY2FkOTcwNzMyNTU4NjEx
10
+ NDQ3NTU5YTZjZDE1ZmMzYzExM2Y4MTFjMjMyMjRmMjNjZDljY2IzOGM2NWI1
11
+ NWMwMGU2ZDI2YTRjZTI0NzJiYWY1MTZhY2YxN2I1ZTI3MjVmZWY=
12
12
  data.tar.gz: !binary |-
13
- ZmNiMTRhZmE0YTA3NzNlZWVkODE4ZmIwYTBhZDA1YmYyZGU1MTJjNWZjMTFh
14
- M2I2OGI5MjU3ZTE1MTBhMzc1MjVhMWE1M2IyMjRmN2Q4NGYzMzc1MjNmODBk
15
- MjRjN2QwNGI2YTk3NmU2NTkxODY4NDZkMTI5YjA2MWYzMGFhNTA=
13
+ MDM5N2I3YTE3MzViOWQ3MGUxZGNlYWE5YjEwMjE1ZTA3NjMzMjgwZWIwYWFi
14
+ ZjFiNTkwYjk0ZTY4NDdmNGZjMDJkMWM5ZTU4NTQ4YWRhNWU2ZTY2ZjBiMTA4
15
+ YjgzYWM4MGI0OTEzNDU0NDMwZDgxM2ZkMmEzOWI2ZWUwM2IwNTM=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 8 Jan, 2015 (4dde5f3a)](#LATEST)
3
+ * [LATEST - 29 Jan, 2015 (41028a79)](#LATEST)
4
+ * [beaker2.2.0 - 8 Jan, 2015 (cba5f7ed)](#beaker2.2.0)
4
5
  * [beaker2.1.0 - 17 Dec, 2014 (ec089b1a)](#beaker2.1.0)
5
6
  * [beaker2.0.0 - 5 Dec, 2014 (fb4b620b)](#beaker2.0.0)
6
7
  * [beaker1.20.1 - 17 Oct, 2014 (be250ad6)](#beaker1.20.1)
@@ -67,7 +68,224 @@
67
68
  * [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
68
69
 
69
70
  ## Details
70
- ### <a name = "LATEST">LATEST - 8 Jan, 2015 (4dde5f3a)
71
+ ### <a name = "LATEST">LATEST - 29 Jan, 2015 (41028a79)
72
+
73
+ * (GEM) update beaker version to 2.3.0 (41028a79)
74
+
75
+ * Merge pull request #644 from electrical/hiera_config (420b01f2)
76
+
77
+
78
+ ```
79
+ Merge pull request #644 from electrical/hiera_config
80
+
81
+ Add helper function to write hiera.yaml file
82
+ ```
83
+ * Merge pull request #631 from mcanevet/feature/no_sync_folder (2920fe63)
84
+
85
+
86
+ ```
87
+ Merge pull request #631 from mcanevet/feature/no_sync_folder
88
+
89
+ (GH-630) Add synced_folder option
90
+ ```
91
+ * Merge pull request #645 from kevpl/qeng1714_aio_masterrolepaths (b825c65a)
92
+
93
+
94
+ ```
95
+ Merge pull request #645 from kevpl/qeng1714_aio_masterrolepaths
96
+
97
+ (QENG-1714) fixed get_type for a machine with only non-agent roles
98
+ ```
99
+ * (QENG-1714) fixed non-agent AIO path issue (eacd3d31)
100
+
101
+ * Merge pull request #657 from mcanevet/fix/el (25296221)
102
+
103
+
104
+ ```
105
+ Merge pull request #657 from mcanevet/fix/el
106
+
107
+ (gh-656) fix "sudo: sorry, you must have a tty to run sudo"
108
+ ```
109
+ * (gh-656) fix "sudo: sorry, you must have a tty to run sudo" (0cde5cc7)
110
+
111
+ * Merge pull request #649 from branan/maint (60993e0c)
112
+
113
+
114
+ ```
115
+ Merge pull request #649 from branan/maint
116
+
117
+ (maint) Fix options access in PE 3.7 answers gen on upgrades
118
+ ```
119
+ * (maint) Fix options access in PE 3.7 answers gen on upgrades (673015be)
120
+
121
+ * Merge pull request #638 from kevpl/qeng1690_aio_installpackages (c9535a35)
122
+
123
+
124
+ ```
125
+ Merge pull request #638 from kevpl/qeng1690_aio_installpackages
126
+
127
+ (QENG-1690) added in helper installation method for packages
128
+ ```
129
+ * Add helper functions to manage hiera config and data files (c464f5f6)
130
+
131
+
132
+ ```
133
+ Add helper functions to manage hiera config and data files
134
+
135
+ - Added helper functions to manage hiera.yaml config file.
136
+ - Added helper functions to copy over hiera data files.
137
+ ```
138
+ * Merge pull request #640 from petems/QENG-1695-improve_osx_support (5b050f6c)
139
+
140
+
141
+ ```
142
+ Merge pull request #640 from petems/QENG-1695-improve_osx_support
143
+
144
+ (QENG-1695) Improves OSX Support
145
+ ```
146
+ * (QENG-1690) added in helper installation method for packages (bba212cf)
147
+
148
+
149
+ ```
150
+ (QENG-1690) added in helper installation method for packages
151
+
152
+ I had misunderstood the install_puppetlabs_dev_repo method before, thinking that it would install packages
153
+ from within the dev repo, but it's actually just installing the dev repo itself. These changes add a
154
+ corresponding installation method to install the packages found in these repos after they've been installed
155
+ ```
156
+ * (QENG-1695) Improves OSX Support (9f78eeed)
157
+
158
+
159
+ ```
160
+ (QENG-1695) Improves OSX Support
161
+
162
+ * Fixes for root key location copy
163
+ * Adds a Vagrant VB OSX option
164
+ * Fixes PermitRootLogin regex
165
+ * Adds option to enable GUI
166
+ * Raises error if version not given for DMG
167
+
168
+ Now works with an example OSX Virtualbox image :+1:
169
+ ```
170
+ * Merge pull request #621 from stefanmortensen/fix_root_login (a5d4d9b4)
171
+
172
+
173
+ ```
174
+ Merge pull request #621 from stefanmortensen/fix_root_login
175
+
176
+ (gh-620) Enable root if user is not root for the OpenStack hypervisor
177
+ ```
178
+ * Merge pull request #622 from doug-rosser/volume_size (76b8def6)
179
+
180
+
181
+ ```
182
+ Merge pull request #622 from doug-rosser/volume_size
183
+
184
+ (QENG-1676) Enable root volume size changes with volume_size in the config file
185
+ ```
186
+ * Merge pull request #564 from mcanevet/fix/openstack_hypervisor (7c1c52b1)
187
+
188
+
189
+ ```
190
+ Merge pull request #564 from mcanevet/fix/openstack_hypervisor
191
+
192
+ (GH-632) Fix Network creation
193
+ ```
194
+ * Merge pull request #636 from branan/lol_old_el (e7545fa0)
195
+
196
+
197
+ ```
198
+ Merge pull request #636 from branan/lol_old_el
199
+
200
+ (QENG-1684) Allow exit code of '1' when stopping puppet agent on centos4
201
+ ```
202
+ * (QENG-1684) Allow exit code of '1' when stopping puppet agent on centos4 (589ea1e1)
203
+
204
+
205
+ ```
206
+ (QENG-1684) Allow exit code of '1' when stopping puppet agent on centos4
207
+
208
+ When upgrading, the agent service is already stopped. On Centos4, this
209
+ causes a failure from the init script. We want to ignore that failure.
210
+ ```
211
+ * (GH-630) Add synced_folder option (619ead3d)
212
+
213
+ * Merge pull request #597 from kevpl/qeng144_masterless_supportadd (7c88b74a)
214
+
215
+
216
+ ```
217
+ Merge pull request #597 from kevpl/qeng144_masterless_supportadd
218
+
219
+ (QENG-144) created masterless option, and support for masterless installs
220
+ ```
221
+ * (QENG-1676) Enable root volume size changes with volume_size in the config file (f62ba27d)
222
+
223
+ * Merge pull request #614 from anodelman/aws (981ab44d)
224
+
225
+
226
+ ```
227
+ Merge pull request #614 from anodelman/aws
228
+
229
+ (QENG-1662) beaker smoketests failing on ec2 with security group error
230
+ ```
231
+ * (gh-620) Enable root if user is not root for the OpenStack hypervisor (3062d505)
232
+
233
+ * (QENG-1662) beaker smoketests failing on ec2 with security group error (9948ff49)
234
+
235
+
236
+ ```
237
+ (QENG-1662) beaker smoketests failing on ec2 with security group error
238
+
239
+ - ensure when looking for an appropriate security group that you are
240
+ looking in a) the provided vpc, b) in the default vpc or c) the
241
+ appropriate region if no default vpc is defined - do not allow
242
+ a mix of vpcs.
243
+ ```
244
+ * Merge pull request #602 from er0ck/feature/master/QENG-1628-add_bash_completion_scripts_for_beaker (1d6c9437)
245
+
246
+
247
+ ```
248
+ Merge pull request #602 from er0ck/feature/master/QENG-1628-add_bash_completion_scripts_for_beaker
249
+
250
+ (QENG-1628) Add bash completion scripts for beaker
251
+ ```
252
+ * Merge pull request #604 from kevpl/qeng1631_eos_successfail (d93961d8)
253
+
254
+
255
+ ```
256
+ Merge pull request #604 from kevpl/qeng1631_eos_successfail
257
+
258
+ (QENG-1631) allowed exit code 0 for puppet agent call for EOS during install
259
+ ```
260
+ * Merge pull request #610 from electrical/vagrant_stderr (1c2e33d4)
261
+
262
+
263
+ ```
264
+ Merge pull request #610 from electrical/vagrant_stderr
265
+
266
+ Add stderr output to stacktrace
267
+ ```
268
+ * (QENG-1631) allowed exit code 0 for puppet agent call for EOS during install (8b466d81)
269
+
270
+ * (MAINT) Add stderr output to stacktrace (f43a94c4)
271
+
272
+ * (QENG-1628) Add bash completion scripts for beaker (a71896b4)
273
+
274
+
275
+ ```
276
+ (QENG-1628) Add bash completion scripts for beaker
277
+
278
+ using this script, one can press tab after any portion (or none)
279
+ of a beaker option/command and bash will complete it or offer
280
+ suggestions.
281
+ ```
282
+ * (QENG-144) created masterless option, and support for masterless installs (57391c27)
283
+
284
+ * (GH-632) Fix Network creation (3ffff71e)
285
+
286
+ ### <a name = "beaker2.2.0">beaker2.2.0 - 8 Jan, 2015 (cba5f7ed)
287
+
288
+ * (HISTORY) update beaker history for gem release 2.2.0 (cba5f7ed)
71
289
 
72
290
  * (GEM) update beaker version to 2.2.0 (4dde5f3a)
73
291
 
@@ -363,10 +581,10 @@ Once that was fixed, beaker worked.
363
581
  ```
364
582
  * (gh-568) Throw descriptive exception when no snapshot exists (2496a73e)
365
583
 
366
- * (gh-568) Allow snapshot option to be optional (d7b6d4e6)
367
-
368
584
  * (gh-568) Allow snapshot option to be optional (838709b5)
369
585
 
586
+ * (gh-568) Allow snapshot option to be optional (d7b6d4e6)
587
+
370
588
  * (MAINT) exclude copying vendor dir to clients (5fec6251)
371
589
 
372
590
  * (QENG-1562) added AIO installation support for yum/apt on FOSS (eb4528c5)
@@ -0,0 +1,53 @@
1
+ ## bash completion script for beaker
2
+
3
+ # The contained completion routines provide support for completing:
4
+ #
5
+ # *) any option specified in beaker --help
6
+ # but not yet the arguments to the options
7
+
8
+ # To use these routines:
9
+ #
10
+ # 1) Copy this file to somewhere (e.g. ~/.beaker-completion.sh).
11
+ # 2) Add the following line to your .bashrc/.zshrc:
12
+ # source ~/.beaker-completion.sh
13
+ # 3) tab will now complete beaker's command line options
14
+
15
+ _beaker_complete()
16
+ {
17
+ # COMP_WORDS is an array of words in the current command line.
18
+ # COMP_CWORD is the index of the current word (the one the cursor is
19
+ # in). So COMP_WORDS[COMP_CWORD] is the current word; we also record
20
+ # the previous word here, although this specific script doesn't
21
+ # use it yet.
22
+ local cur_word="${COMP_WORDS[COMP_CWORD]}"
23
+ local prev_word="${COMP_WORDS[COMP_CWORD-1]}"
24
+
25
+ # Ask beaker to generate a list of args
26
+ # ensure other warnings/errors on stderr go to null
27
+ local beaker_help=`beaker --help 2>/dev/null`
28
+
29
+ # parse out commands and switches
30
+ # grep extended regex, only print match
31
+ local dash_words=`echo "${beaker_help}" | grep -oE ' \-(\w|\[|\]|-)+' | uniq`
32
+ # parse for negated commands
33
+ local negative_words=`echo "${dash_words}" | grep -oE '\-\-\[\w+-\](\w|-)+' | sed 's/\[//' | sed 's/\]//'`
34
+ # remove the negative portion from dash_words
35
+ local dash_words=`echo "${dash_words}" | sed 's/\[no\-\]//g'`
36
+
37
+ # TODO:
38
+ # Parse out arguments to commands
39
+ # Perform completion if the previous word is doubledash option and current word in argslist,
40
+
41
+ # Perform completion if the current word starts with a dash ('-'),
42
+ if [[ ${cur_word} == -* ]] ; then
43
+ # COMPREPLY is the array of possible completions, generated with
44
+ # the compgen builtin.
45
+ COMPREPLY=( $(compgen -W "${dash_words} ${negative_words}" -- ${cur_word}) )
46
+ else
47
+ COMPREPLY=()
48
+ fi
49
+ return 0
50
+ }
51
+
52
+ # Register _beaker_complete to provide completion for the following commands
53
+ complete -F _beaker_complete beaker pe-beaker
@@ -15,6 +15,7 @@ module Beaker
15
15
  def host_answers(host, master, database, dashboard, options)
16
16
  # Windows hosts don't have normal answers...
17
17
  return nil if host['platform'] =~ /windows/
18
+ masterless = options[:masterless]
18
19
 
19
20
  # Everything's an agent
20
21
  agent_a = {
@@ -23,7 +24,6 @@ module Beaker
23
24
  :q_verify_packages => options[:answers][:q_verify_packages],
24
25
  :q_puppet_symlinks_install => 'y',
25
26
  :q_puppetagent_certname => host,
26
- :q_puppetagent_server => master,
27
27
 
28
28
  # Disable database, console, and master by default
29
29
  # This will be overridden by other blocks being merged in.
@@ -33,6 +33,8 @@ module Beaker
33
33
  :q_puppetdb_install => 'n',
34
34
  :q_database_install => 'n',
35
35
  }
36
+ agent_a[:q_puppetagent_server] = masterless ? host : master
37
+ agent_a[:q_continue_or_reenter_master_hostname] = 'c' if masterless
36
38
 
37
39
  # These base answers are needed by all
38
40
  common_a = {
@@ -40,98 +42,100 @@ module Beaker
40
42
  :q_vendor_packages_install => 'y',
41
43
  }
42
44
 
43
- # master/database answers
44
- master_database_a = {
45
- :q_puppetmaster_certname => master
46
- }
47
-
48
- # Master/dashboard answers
49
- master_console_a = {
50
- :q_puppetdb_hostname => database,
51
- :q_puppetdb_port => answer_for(options, :q_puppetdb_port, 8081)
52
- }
53
-
54
- # Master only answers
55
- master_dns_altnames = [master.to_s, master['ip'], 'puppet'].compact.uniq.join(',')
56
- master_a = {
57
- :q_puppetmaster_install => 'y',
58
- :q_puppetmaster_dnsaltnames => master_dns_altnames,
59
- :q_puppetmaster_enterpriseconsole_hostname => dashboard,
60
- :q_puppetmaster_enterpriseconsole_port => answer_for(options, :q_puppetmaster_enterpriseconsole_port, 443),
61
- }
62
-
63
- # Common answers for console and database
64
- database_name = answer_for(options, :q_puppetdb_database_name, 'pe-puppetdb')
65
- database_user = answer_for(options, :q_puppetdb_database_user, 'mYpdBu3r')
66
- dashboard_password = "'#{options[:answers][:q_puppet_enterpriseconsole_auth_password]}'"
67
- puppetdb_password = "'#{options[:answers][:q_puppetdb_password]}'"
68
- auth_database_name = answer_for(options, :q_puppet_enterpriseconsole_auth_database_name, 'console_auth')
69
- auth_database_user = answer_for(options, :q_puppet_enterpriseconsole_auth_database_user, 'mYu7hu3r')
70
- console_database_name = answer_for(options, :q_puppet_enterpriseconsole_database_name, 'console')
71
- console_database_user = answer_for(options, :q_puppet_enterpriseconsole_database_user, 'mYc0nS03u3r')
72
- database_port = answer_for(options, :q_database_port, 5432)
73
-
74
- console_database_a = {
75
- :q_puppetdb_database_name => database_name,
76
- :q_puppetdb_database_user => database_user,
77
- :q_puppetdb_database_password => puppetdb_password,
78
- :q_puppet_enterpriseconsole_auth_database_name => auth_database_name,
79
- :q_puppet_enterpriseconsole_auth_database_user => auth_database_user,
80
- :q_puppet_enterpriseconsole_auth_database_password => dashboard_password,
81
- :q_puppet_enterpriseconsole_database_name => console_database_name,
82
- :q_puppet_enterpriseconsole_database_user => console_database_user,
83
- :q_puppet_enterpriseconsole_database_password => dashboard_password,
84
-
85
- :q_database_host => database,
86
- :q_database_port => database_port,
87
- }
88
-
89
- # Console only answers
90
- dashboard_user = "'#{options[:answers][:q_puppet_enterpriseconsole_auth_user_email]}'"
91
-
92
-
93
- smtp_host = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_host] || dashboard}'"
94
- smtp_port = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_port]}'"
95
- smtp_username = options[:answers][:q_puppet_enterpriseconsole_smtp_username]
96
- smtp_password = options[:answers][:q_puppet_enterpriseconsole_smtp_password]
97
- smtp_use_tls = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_use_tls]}'"
98
- console_inventory_port = answer_for(options, :q_puppet_enterpriseconsole_inventory_port, 8140)
99
- console_httpd_port = answer_for(options, :q_puppet_enterpriseconsole_httpd_port, 443)
100
-
101
- console_a = {
102
- :q_puppet_enterpriseconsole_install => 'y',
103
- :q_puppet_enterpriseconsole_inventory_hostname => host,
104
- :q_puppet_enterpriseconsole_inventory_certname => host,
105
- :q_puppet_enterpriseconsole_inventory_dnsaltnames => dashboard,
106
- :q_puppet_enterpriseconsole_inventory_port => console_inventory_port,
107
- :q_puppet_enterpriseconsole_master_hostname => master,
108
-
109
- :q_puppet_enterpriseconsole_auth_user_email => dashboard_user,
110
- :q_puppet_enterpriseconsole_auth_password => dashboard_password,
111
-
112
- :q_puppet_enterpriseconsole_httpd_port => console_httpd_port,
113
-
114
- :q_puppet_enterpriseconsole_smtp_host => smtp_host,
115
- :q_puppet_enterpriseconsole_smtp_use_tls => smtp_use_tls,
116
- :q_puppet_enterpriseconsole_smtp_port => smtp_port,
117
- }
45
+ unless masterless
46
+ # master/database answers
47
+ master_database_a = {
48
+ :q_puppetmaster_certname => master
49
+ }
50
+
51
+ # Master/dashboard answers
52
+ master_console_a = {
53
+ :q_puppetdb_hostname => database,
54
+ :q_puppetdb_port => answer_for(options, :q_puppetdb_port, 8081)
55
+ }
56
+
57
+ # Master only answers
58
+ master_dns_altnames = [master.to_s, master['ip'], 'puppet'].compact.uniq.join(',')
59
+ master_a = {
60
+ :q_puppetmaster_install => 'y',
61
+ :q_puppetmaster_dnsaltnames => master_dns_altnames,
62
+ :q_puppetmaster_enterpriseconsole_hostname => dashboard,
63
+ :q_puppetmaster_enterpriseconsole_port => answer_for(options, :q_puppetmaster_enterpriseconsole_port, 443),
64
+ }
65
+
66
+ # Common answers for console and database
67
+ database_name = answer_for(options, :q_puppetdb_database_name, 'pe-puppetdb')
68
+ database_user = answer_for(options, :q_puppetdb_database_user, 'mYpdBu3r')
69
+ dashboard_password = "'#{options[:answers][:q_puppet_enterpriseconsole_auth_password]}'"
70
+ puppetdb_password = "'#{options[:answers][:q_puppetdb_password]}'"
71
+ auth_database_name = answer_for(options, :q_puppet_enterpriseconsole_auth_database_name, 'console_auth')
72
+ auth_database_user = answer_for(options, :q_puppet_enterpriseconsole_auth_database_user, 'mYu7hu3r')
73
+ console_database_name = answer_for(options, :q_puppet_enterpriseconsole_database_name, 'console')
74
+ console_database_user = answer_for(options, :q_puppet_enterpriseconsole_database_user, 'mYc0nS03u3r')
75
+ database_port = answer_for(options, :q_database_port, 5432)
76
+
77
+ console_database_a = {
78
+ :q_puppetdb_database_name => database_name,
79
+ :q_puppetdb_database_user => database_user,
80
+ :q_puppetdb_database_password => puppetdb_password,
81
+ :q_puppet_enterpriseconsole_auth_database_name => auth_database_name,
82
+ :q_puppet_enterpriseconsole_auth_database_user => auth_database_user,
83
+ :q_puppet_enterpriseconsole_auth_database_password => dashboard_password,
84
+ :q_puppet_enterpriseconsole_database_name => console_database_name,
85
+ :q_puppet_enterpriseconsole_database_user => console_database_user,
86
+ :q_puppet_enterpriseconsole_database_password => dashboard_password,
87
+
88
+ :q_database_host => database,
89
+ :q_database_port => database_port,
90
+ }
91
+
92
+ # Console only answers
93
+ dashboard_user = "'#{options[:answers][:q_puppet_enterpriseconsole_auth_user_email]}'"
94
+
95
+
96
+ smtp_host = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_host] || dashboard}'"
97
+ smtp_port = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_port]}'"
98
+ smtp_username = options[:answers][:q_puppet_enterpriseconsole_smtp_username]
99
+ smtp_password = options[:answers][:q_puppet_enterpriseconsole_smtp_password]
100
+ smtp_use_tls = "'#{options[:answers][:q_puppet_enterpriseconsole_smtp_use_tls]}'"
101
+ console_inventory_port = answer_for(options, :q_puppet_enterpriseconsole_inventory_port, 8140)
102
+ console_httpd_port = answer_for(options, :q_puppet_enterpriseconsole_httpd_port, 443)
103
+
104
+ console_a = {
105
+ :q_puppet_enterpriseconsole_install => 'y',
106
+ :q_puppet_enterpriseconsole_inventory_hostname => host,
107
+ :q_puppet_enterpriseconsole_inventory_certname => host,
108
+ :q_puppet_enterpriseconsole_inventory_dnsaltnames => dashboard,
109
+ :q_puppet_enterpriseconsole_inventory_port => console_inventory_port,
110
+ :q_puppet_enterpriseconsole_master_hostname => master,
111
+
112
+ :q_puppet_enterpriseconsole_auth_user_email => dashboard_user,
113
+ :q_puppet_enterpriseconsole_auth_password => dashboard_password,
114
+
115
+ :q_puppet_enterpriseconsole_httpd_port => console_httpd_port,
116
+
117
+ :q_puppet_enterpriseconsole_smtp_host => smtp_host,
118
+ :q_puppet_enterpriseconsole_smtp_use_tls => smtp_use_tls,
119
+ :q_puppet_enterpriseconsole_smtp_port => smtp_port,
120
+ }
121
+
122
+ if smtp_password and smtp_username
123
+ console_a.merge!({
124
+ :q_puppet_enterpriseconsole_smtp_password => "'#{smtp_password}'",
125
+ :q_puppet_enterpriseconsole_smtp_username => "'#{smtp_username}'",
126
+ :q_puppet_enterpriseconsole_smtp_user_auth => 'y'
127
+ })
128
+ end
118
129
 
119
- if smtp_password and smtp_username
120
- console_a.merge!({
121
- :q_puppet_enterpriseconsole_smtp_password => "'#{smtp_password}'",
122
- :q_puppet_enterpriseconsole_smtp_username => "'#{smtp_username}'",
123
- :q_puppet_enterpriseconsole_smtp_user_auth => 'y'
124
- })
130
+ # Database only answers
131
+ database_a = {
132
+ :q_puppetdb_install => 'y',
133
+ :q_database_install => 'y',
134
+ :q_database_root_password => "'#{answer_for(options, :q_database_root_password, '=ZYdjiP3jCwV5eo9s1MBd')}'",
135
+ :q_database_root_user => answer_for(options, :q_database_root_user, 'pe-postgres'),
136
+ }
125
137
  end
126
138
 
127
- # Database only answers
128
- database_a = {
129
- :q_puppetdb_install => 'y',
130
- :q_database_install => 'y',
131
- :q_database_root_password => "'#{answer_for(options, :q_database_root_password, '=ZYdjiP3jCwV5eo9s1MBd')}'",
132
- :q_database_root_user => answer_for(options, :q_database_root_user, 'pe-postgres'),
133
- }
134
-
135
139
  # Special answers for special hosts
136
140
  aix_a = {
137
141
  :q_run_updtvpkg => 'y',
@@ -193,9 +197,10 @@ module Beaker
193
197
  # data.
194
198
  def generate_answers
195
199
  the_answers = {}
196
- database = only_host_with_role(@hosts, 'database')
197
- dashboard = only_host_with_role(@hosts, 'dashboard')
198
- master = only_host_with_role(@hosts, 'master')
200
+ masterless = @options[:masterless]
201
+ database = masterless ? nil : only_host_with_role(@hosts, 'database')
202
+ dashboard = masterless ? nil : only_host_with_role(@hosts, 'dashboard')
203
+ master = masterless ? nil : only_host_with_role(@hosts, 'master')
199
204
  @hosts.each do |h|
200
205
  if @options[:type] == :upgrade and h[:pe_ver] =~ /\A3.0/
201
206
  # 3.0.x to 3.0.x should require no answers