beaker 2.5.0 → 2.5.1

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTAxY2VmNjc1ZjM2NDAyOWM3YjM1NWYxZGI5YTE0ZTk4YzhjYTczOQ==
4
+ NTAxNmJlODdhMDI1ODUxMTExMDEzZDQ5ODllMjliZDdmZDVlODU4NQ==
5
5
  data.tar.gz: !binary |-
6
- YTY1MzczMWY5YmNjOTRjZDA3MDE0MjM1ZjdmMjBmMzM3MjdhODI2ZQ==
6
+ YjU0MTg3ZTI3ZmFiMGNlYTdjOTFjZmJhYTUzOWI0NDkzODk0OTAzOA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YWQwZGE3YzVjZmRkZWZiODE5NTFmZTViMWViNGVlMTllMzFkYzMzMTdlYTM3
10
- YWU4MTE2MDdiOTgzZDRmYTIxZjMyYjU2MDcxYjNmMjkyZDcyMTYyNGQwZDIx
11
- YmVlYmRmNTQ5OTgxYWViOTgyZjM3NTQ5ZjJlMmUyYWQxYTE3ZjY=
9
+ YjU5NTJkOTRlYTg5NGRjMjgzMDU3N2RkNzUxMDM1YmY5MjFlNDBjNDc3ZjM4
10
+ NWVkMTg2ZmU2ZmUzZTU3MGU4ZDU5YjhjYjRjNmQzOGVlNzMxYTdkODBhMDFj
11
+ YTY3OTEyNzdiZjM5MjEwMWU5M2RmOWFkZGUzMGFiMDA4YzFjMjA=
12
12
  data.tar.gz: !binary |-
13
- Zjk1NzdiNjg5N2Y2YjE3MGZhMzZkYTY5M2RiNWIyYWRjOTY5NTIzY2FjMjFl
14
- YTNkYmYxMTM0MmVkYTEzYzgzYTZmZjA3OGEzZTIzMzA2YzJjODM1YTY5ZTY3
15
- ZThkYTI3NTVkMzY4ZGVkNGYyYzNmNmUwNTA0OTkwZGQ0MDUwYzQ=
13
+ MWY1N2ZmYzBiNGFlMjQyOTdlOTUyMTIwOTU3NDE4NTMxNWI1ZTJkMTEwOWVm
14
+ MjllNzM3ODUxMDUyMWZkMzAwYWM2OTFmNTgzZjI4NThmOGM4YTI5NDBmOGMw
15
+ ODNhY2M4ZGM3ZDEwNTBhZmZmNzBlOWMyYmE5MWM1MWYwY2MwZDY=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 23 Feb, 2015 (9ad8bd4c)](#LATEST)
3
+ * [LATEST - 4 Mar, 2015 (958ab02d)](#LATEST)
4
+ * [beaker2.5.0 - 23 Feb, 2015 (c421cf95)](#beaker2.5.0)
4
5
  * [beaker2.4.1 - 13 Feb, 2015 (84400ed1)](#beaker2.4.1)
5
6
  * [beaker2.4.0 - 13 Feb, 2015 (bc5a6676)](#beaker2.4.0)
6
7
  * [beaker2.3.0 - 29 Jan, 2015 (3d185da0)](#beaker2.3.0)
@@ -71,7 +72,262 @@
71
72
  * [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
72
73
 
73
74
  ## Details
74
- ### <a name = "LATEST">LATEST - 23 Feb, 2015 (9ad8bd4c)
75
+ ### <a name = "LATEST">LATEST - 4 Mar, 2015 (958ab02d)
76
+
77
+ * (GEM) update beaker version to 2.5.1 (958ab02d)
78
+
79
+ * Merge pull request #719 from kevpl/qeng1841_aio_pathsupdate (c6a15c8f)
80
+
81
+
82
+ ```
83
+ Merge pull request #719 from kevpl/qeng1841_aio_pathsupdate
84
+
85
+ (QENG-1841) updated AIO pathing for linux & windows
86
+ ```
87
+ * Merge pull request #726 from anodelman/maint (a23acbf2)
88
+
89
+
90
+ ```
91
+ Merge pull request #726 from anodelman/maint
92
+
93
+ (maint) Upgrade google-api-client dependency to fix Ruby 1.9.x...
94
+ ```
95
+ * (maint) Upgrade google-api-client dependency to fix Ruby 1.9.x... (d5301654)
96
+
97
+
98
+ ```
99
+ (maint) Upgrade google-api-client dependency to fix Ruby 1.9.x...
100
+
101
+ - compatibility
102
+
103
+ - for puppetdb project:
104
+
105
+ "
106
+ Retriable was upgraded today (Jan 30th) and they shipped a version 2.0.0
107
+ that
108
+ requires Ruby >=2.0.0.
109
+
110
+ In google-api-client 0.7.1, we were pulling in version >= 1.4 of
111
+ retriable. In 0.8.2
112
+ they have a fix that pulls in ~> 1.4 version of retriable, thus pinning
113
+ the ceiling
114
+ on the upgrade to retriable 2.0.0.
115
+ "
116
+ ```
117
+ * Merge pull request #626 from carlossg/ssh-restart (31bc7aa4)
118
+
119
+
120
+ ```
121
+ Merge pull request #626 from carlossg/ssh-restart
122
+
123
+ [docker] No need to restart sshd
124
+ ```
125
+ * Merge pull request #721 from kevpl/qeng1913_aio_pullback (69130a54)
126
+
127
+
128
+ ```
129
+ Merge pull request #721 from kevpl/qeng1913_aio_pullback
130
+
131
+ (QENG-1913) rolling back the name change for pe-puppet that was made for AIO
132
+ ```
133
+ * Merge pull request #722 from puppetlabs/revert-715-acceptance (fdf906b8)
134
+
135
+
136
+ ```
137
+ Merge pull request #722 from puppetlabs/revert-715-acceptance
138
+
139
+ Revert "(QENG-1869) create beaker host.rb acceptance tests"
140
+ ```
141
+ * Revert "(QENG-1869) create beaker host.rb acceptance tests" (d7e2c7c3)
142
+
143
+ * (QENG-1913) rolling back the name change for pe-puppet that was made for AIO (d68fe7d7)
144
+
145
+ * Merge pull request #716 from anodelman/maint (6e420185)
146
+
147
+
148
+ ```
149
+ Merge pull request #716 from anodelman/maint
150
+
151
+ (QENG-1681) upgrade_pe method is generating errors when attempted...
152
+ ```
153
+ * (QENG-1841) updated AIO pathing for linux & windows (fdfa69be)
154
+
155
+ * Merge pull request #715 from anodelman/acceptance (c6c377c8)
156
+
157
+
158
+ ```
159
+ Merge pull request #715 from anodelman/acceptance
160
+
161
+ (QENG-1869) create beaker host.rb acceptance tests
162
+ ```
163
+ * Merge pull request #714 from kevpl/qeng1721_aio_windowsinstall (14f2239d)
164
+
165
+
166
+ ```
167
+ Merge pull request #714 from kevpl/qeng1721_aio_windowsinstall
168
+
169
+ (QENG-1721) added installation support of dev versions of windows puppet...
170
+ ```
171
+ * (QENG-1681) upgrade_pe method is generating errors when attempted... (ae0d7333)
172
+
173
+
174
+ ```
175
+ (QENG-1681) upgrade_pe method is generating errors when attempted...
176
+
177
+ ...on PE 3.7.0 and later
178
+
179
+ - do pe version comparison in the upgrader method, not the answer file
180
+ generator
181
+ - use proper semvar dot comparison of versions, not just string compare
182
+ - handle not knowing what the pe_ver is currently installed
183
+ - unrelated nit: remove duplicate key entries in answer file generation
184
+ ```
185
+ * Merge pull request #647 from mcanevet/feature/openstack/generate_key_pair (32e123e9)
186
+
187
+
188
+ ```
189
+ Merge pull request #647 from mcanevet/feature/openstack/generate_key_pair
190
+
191
+ (gh-646) Create random keypair
192
+ ```
193
+ * Merge pull request #699 from kevpl/qeng1429_should_fail_not_error (b757a552)
194
+
195
+
196
+ ```
197
+ Merge pull request #699 from kevpl/qeng1429_should_fail_not_error
198
+
199
+ (QENG-1429) added clause to catch Beaker & Minitest assertions
200
+ ```
201
+ * Merge pull request #708 from kevpl/qeng1847_aio_hostparams (a321d264)
202
+
203
+
204
+ ```
205
+ Merge pull request #708 from kevpl/qeng1847_aio_hostparams
206
+
207
+ (QENG-1847) changed internal host path attribute usage to host.puppet me...
208
+ ```
209
+ * Merge pull request #686 from mcanevet/fix/openstack/use_openstack_tenant (0aa7d5e6)
210
+
211
+
212
+ ```
213
+ Merge pull request #686 from mcanevet/fix/openstack/use_openstack_tenant
214
+
215
+ (gh-685) Add openstack_tenant to network_client init
216
+ ```
217
+ * Merge pull request #697 from anodelman/cygwin-less (ebda7a6d)
218
+
219
+
220
+ ```
221
+ Merge pull request #697 from anodelman/cygwin-less
222
+
223
+ (QENG-1735) set up local windows vm without cygwin and get it working
224
+ ```
225
+ * (QENG-1721) added installation support of dev versions of windows puppet-agent (45f92543)
226
+
227
+ * Merge pull request #670 from petems/MAINT-ps_windows_reindent (1f3034c5)
228
+
229
+
230
+ ```
231
+ Merge pull request #670 from petems/MAINT-ps_windows_reindent
232
+
233
+ (MAINT) Fix indentation
234
+ ```
235
+ * Merge pull request #711 from jonnytpuppet/rsync_support (27672383)
236
+
237
+
238
+ ```
239
+ Merge pull request #711 from jonnytpuppet/rsync_support
240
+
241
+ Added support for rsync
242
+ ```
243
+ * Merge pull request #713 from anodelman/maint (539f176d)
244
+
245
+
246
+ ```
247
+ Merge pull request #713 from anodelman/maint
248
+
249
+ (MAINT) fix broken spec tests
250
+ ```
251
+ * (MAINT) fix broken spec tests (76e06a75)
252
+
253
+
254
+ ```
255
+ (MAINT) fix broken spec tests
256
+
257
+ - accidental breakage of spec tests
258
+ - also removed deprecated rspec method call
259
+ ```
260
+ * Merge pull request #634 from liamjbennett/puppet_conf (baeee93d)
261
+
262
+
263
+ ```
264
+ Merge pull request #634 from liamjbennett/puppet_conf
265
+
266
+ (gh-474) Adding a utility method for puppet.conf file
267
+ ```
268
+ * Merge pull request #689 from liamjbennett/powershell_fix (854d0aa0)
269
+
270
+
271
+ ```
272
+ Merge pull request #689 from liamjbennett/powershell_fix
273
+
274
+ (gh-688) Fixing the powershell wrapper to use an array of arguments
275
+ ```
276
+ * QENG-1878 Added support for rsync (d2076dec)
277
+
278
+ * (QENG-1869) create beaker host.rb acceptance tests (e4c0fcf9)
279
+
280
+
281
+ ```
282
+ (QENG-1869) create beaker host.rb acceptance tests
283
+
284
+ - tests that exercise basic host.rb functionality
285
+ ```
286
+ * (QENG-1847) changed internal host path attribute usage to host.puppet method calls where possible (0179294e)
287
+
288
+ * (QENG-1380) design beaker DSL based acceptance tests (8341e56d)
289
+
290
+
291
+ ```
292
+ (QENG-1380) design beaker DSL based acceptance tests
293
+
294
+ - initial directory hierarchy for beaker acceptance testing
295
+ ```
296
+ * (QENG-1429) added clause to catch Beaker & Minitest assertions (d91692dd)
297
+
298
+ * (gh-688) Fixing the powershell wrapper to use an array of arguments (b5ebc137)
299
+
300
+ * (gh-685) Add openstack_tenant to network_client init (58c6eca1)
301
+
302
+ * (MAINT) Fix indentation (62c23595)
303
+
304
+ * (QENG-1735) set up local windows vm without cygwin and get it working (9c32cac7)
305
+
306
+
307
+ ```
308
+ (QENG-1735) set up local windows vm without cygwin and get it working
309
+
310
+ - ensure that you can install PE
311
+ - deal with setting PATH/RUBY env vars
312
+ - update DSL methods to work on windows without bash
313
+ ```
314
+ * (gh-646) Create random keypair (7b660047)
315
+
316
+ * (gh-474) Adding a utility method for puppet.conf file (8965fec0)
317
+
318
+ * (gh-626) [docker] Ensure that the ssh server can be restarted and container keeps running (85123f12)
319
+
320
+
321
+ ```
322
+ (gh-626) [docker] Ensure that the ssh server can be restarted and container keeps running
323
+
324
+ If the sshd process dies then the container stops
325
+ Allow configuring the execution or not of set_env
326
+ Fix #611
327
+ ```
328
+ ### <a name = "beaker2.5.0">beaker2.5.0 - 23 Feb, 2015 (c421cf95)
329
+
330
+ * (HISTORY) update beaker history for gem release 2.5.0 (c421cf95)
75
331
 
76
332
  * (GEM) update beaker version to 2.5.0 (9ad8bd4c)
77
333
 
data/beaker.gemspec CHANGED
@@ -38,11 +38,12 @@ Gem::Specification.new do |s|
38
38
  s.add_runtime_dependency 'net-ssh', '~> 2.9'
39
39
  s.add_runtime_dependency 'net-scp', '~> 1.2'
40
40
  s.add_runtime_dependency 'inifile', '~> 2.0'
41
+ s.add_runtime_dependency 'rsync', '~> 1.0.9'
41
42
 
42
43
  # Optional provisioner specific support
43
44
  s.add_runtime_dependency 'rbvmomi', '~> 1.8'
44
45
  s.add_runtime_dependency 'fission', '~> 0.4'
45
- s.add_runtime_dependency 'google-api-client', '~> 0.7'
46
+ s.add_runtime_dependency 'google-api-client', '~> 0.8'
46
47
  s.add_runtime_dependency 'aws-sdk', '~> 1.57'
47
48
  s.add_runtime_dependency 'docker-api'
48
49
  s.add_runtime_dependency 'fog', '~> 1.25'
@@ -34,7 +34,6 @@ module Beaker
34
34
  master_a = {
35
35
  :q_puppetmaster_install => 'y',
36
36
  :q_puppetmaster_certname => master,
37
- :q_puppetmaster_install => 'y',
38
37
  :q_puppetmaster_dnsaltnames => master_dns_altnames,
39
38
  :q_puppetmaster_enterpriseconsole_hostname => dashboard,
40
39
  :q_puppetmaster_enterpriseconsole_port => answer_for(options, :q_puppetmaster_enterpriseconsole_port, 443),
@@ -35,7 +35,6 @@ module Beaker
35
35
  master_a = {
36
36
  :q_puppetmaster_install => 'y',
37
37
  :q_puppetmaster_certname => master,
38
- :q_puppetmaster_install => 'y',
39
38
  :q_puppetmaster_dnsaltnames => master_dns_altnames,
40
39
  :q_puppetmaster_enterpriseconsole_hostname => dashboard,
41
40
  :q_puppetmaster_enterpriseconsole_port => answer_for(options, :q_puppetmaster_enterpriseconsole_port, 443),
@@ -37,7 +37,7 @@ module Beaker
37
37
  }
38
38
 
39
39
  # If we're installing or upgrading from a non-RBAC version, set the 'admin' password
40
- if @options[:type] == :upgrade && @options[:HOSTS][dashboard.name][:pe_ver] < "3.4.0"
40
+ if @options[:type] == :upgrade && @options[:set_console_password]
41
41
  dashboard_password = "'#{@options[:answers][:q_puppet_enterpriseconsole_auth_password]}'"
42
42
  the_answers[dashboard.name][:q_puppet_enterpriseconsole_auth_password] = dashboard_password
43
43
  end
@@ -70,7 +70,7 @@ module Beaker
70
70
  def cmd_line host, cmd = @command, env = @environment
71
71
  env_string = env.nil? ? '' : environment_string_for( host, env )
72
72
 
73
- cygwin = ((host['platform'] =~ /windows/) and @cmdexe) ? 'cmd.exe /c' : nil
73
+ cygwin = ((host['platform'] =~ /windows/) and host.is_cygwin? and @cmdexe) ? 'cmd.exe /c' : nil
74
74
 
75
75
  # This will cause things like `puppet -t -v agent` which is maybe bad.
76
76
  [env_string, cygwin, cmd, options_string, args_string].compact.reject(&:empty?).join(' ')
@@ -183,7 +183,7 @@ module Beaker
183
183
  end
184
184
  end
185
185
 
186
- # Move a local file to a remote host
186
+ # Move a local file to a remote host using scp
187
187
  # @note If using {Beaker::Host} for the hosts *scp* is not
188
188
  # required on the system as it uses Ruby's net/scp library. The
189
189
  # net-scp gem however is required (and specified in the gemspec.
@@ -210,6 +210,27 @@ module Beaker
210
210
  end
211
211
  end
212
212
 
213
+ # Move a local file or directory to a remote host using rsync
214
+ # @note rsync is required on the local host.
215
+ #
216
+ # @param [Host, #do_scp_to] host A host object that responds like
217
+ # {Beaker::Host}.
218
+ # @param [String] from_path A local path to a file or directory.
219
+ # @param [String] to_path A remote path to copy *from_path* to.
220
+ # @!macro common_opts
221
+ #
222
+ # @return [Result] Returns the result of the rsync operation
223
+ def rsync_to host, from_path, to_path, opts = {}
224
+ block_on host do | host |
225
+ if host['platform'] =~ /windows/ && to_path.match('`cygpath')
226
+ result = host.echo "#{to_path}"
227
+ to_path = result.raw_output.chomp
228
+ end
229
+ @result = host.do_rsync_to(from_path, to_path, opts)
230
+ @result
231
+ end
232
+ end
233
+
213
234
  # Deploy packaging configurations generated by
214
235
  # https://github.com/puppetlabs/packaging to a host.
215
236
  #
@@ -238,13 +259,24 @@ module Beaker
238
259
  # @param [String] file_path A remote path to place *file_content* at.
239
260
  # @param [String] file_content The contents of the file to be placed.
240
261
  # @!macro common_opts
262
+ # @option opts [String] :protocol Name of the underlying transfer method.
263
+ # Valid options are 'scp' or 'rsync'.
241
264
  #
242
265
  # @return [Result] Returns the result of the underlying SCP operation.
243
266
  def create_remote_file(hosts, file_path, file_content, opts = {})
244
267
  Tempfile.open 'beaker' do |tempfile|
245
268
  File.open(tempfile.path, 'w') {|file| file.puts file_content }
246
269
 
247
- scp_to hosts, tempfile.path, file_path, opts
270
+ opts[:protocol] ||= 'scp'
271
+ case opts[:protocol]
272
+ when 'scp'
273
+ scp_to hosts, tempfile.path, file_path, opts
274
+ when 'rsync'
275
+ rsync_to hosts, tempfile.path, file_path, opts
276
+ else
277
+ logger.debug "Unsupported transfer protocol, returning nil"
278
+ nil
279
+ end
248
280
  end
249
281
  end
250
282
 
@@ -553,7 +585,7 @@ module Beaker
553
585
  end
554
586
 
555
587
  begin
556
- backup_file = backup_the_file(host, host['puppetconfdir'], testdir, 'puppet.conf')
588
+ backup_file = backup_the_file(host, host.puppet('master')['confdir'], testdir, 'puppet.conf')
557
589
  lay_down_new_puppet_conf host, conf_opts, testdir
558
590
 
559
591
  if host.use_service_scripts? && !service_args[:bypass_service_script]
@@ -564,6 +596,8 @@ module Beaker
564
596
 
565
597
  yield self if block_given?
566
598
 
599
+ rescue Beaker::DSL::Assertions, Minitest::Assertion => early_assertion
600
+ fail_test(early_assertion)
567
601
  rescue Exception => early_exception
568
602
  original_exception = RuntimeError.new("PuppetAcceptance::DSL::Helpers.with_puppet_running_on failed (check backtrace for location) because: #{early_exception}\n#{early_exception.backtrace.join("\n")}\n")
569
603
  raise(original_exception)
@@ -612,8 +646,7 @@ module Beaker
612
646
 
613
647
  # @!visibility private
614
648
  def restore_puppet_conf_from_backup( host, backup_file )
615
- puppetpath = host['puppetconfdir']
616
- puppet_conf = File.join(puppetpath, "puppet.conf")
649
+ puppet_conf = host.puppet('master')['config']
617
650
 
618
651
  if backup_file
619
652
  host.exec( Command.new( "if [ -f '#{backup_file}' ]; then " +
@@ -693,8 +726,9 @@ module Beaker
693
726
 
694
727
  # @!visibility private
695
728
  def lay_down_new_puppet_conf( host, configuration_options, testdir )
696
- puppetconf_test = "#{testdir}/puppet.conf"
697
- puppetconf_main = "#{host['puppetconfdir']}/puppet.conf"
729
+ puppetconf_main = host.puppet('master')['config']
730
+ puppetconf_filename = File.basename(puppetconf_main)
731
+ puppetconf_test = File.join(testdir, puppetconf_filename)
698
732
 
699
733
  new_conf = puppet_conf_for( host, configuration_options )
700
734
  create_remote_file host, puppetconf_test, new_conf.to_s
@@ -708,7 +742,7 @@ module Beaker
708
742
 
709
743
  # @!visibility private
710
744
  def puppet_conf_for host, conf_opts
711
- puppetconf = host.exec( Command.new( "cat #{host['puppetconfdir']}/puppet.conf" ) ).stdout
745
+ puppetconf = host.exec( Command.new( "cat #{host.puppet('master')['config']}" ) ).stdout
712
746
  new_conf = IniFile.new( puppetconf ).merge( conf_opts )
713
747
 
714
748
  new_conf
@@ -1240,23 +1274,17 @@ module Beaker
1240
1274
  vardir = agent.puppet['vardir']
1241
1275
  agent_running = true
1242
1276
  while agent_running
1243
- result = on host, "[ -e '#{vardir}/state/agent_catalog_run.lock' ]", :acceptable_exit_codes => [0,1]
1244
- agent_running = (result.exit_code == 0)
1245
- sleep 2 unless agent_running
1277
+ agent_running = agent.file_exist?("#{vardir}/state/agent_catalog_run.lock")
1278
+ if agent_running
1279
+ sleep 2
1280
+ end
1246
1281
  end
1247
1282
 
1248
1283
  # The agent service is `pe-puppet` everywhere EXCEPT certain linux distros on PE 2.8
1249
1284
  # In all the case that it is different, this init script will exist. So we can assume
1250
1285
  # that if the script doesn't exist, we should just use `pe-puppet`
1251
- result = on agent, "[ -e /etc/init.d/pe-puppet-agent ]", :acceptable_exit_codes => [0,1]
1252
1286
  agent_service = 'pe-puppet-agent'
1253
- if result.exit_code != 0
1254
- if agent['pe_ver'] && !version_is_less(agent['pe_ver'], '4.0')
1255
- agent_service = 'puppet'
1256
- else
1257
- agent_service = 'pe-puppet'
1258
- end
1259
- end
1287
+ agent_service = 'pe-puppet' unless agent.file_exist?('/etc/init.d/pe-puppet-agent')
1260
1288
 
1261
1289
  # Under a number of stupid circumstances, we can't stop the
1262
1290
  # agent using puppet. This is usually because of issues with
@@ -1380,7 +1408,7 @@ module Beaker
1380
1408
  hiera_config[:yaml][:datadir] = host[:hieradatadir]
1381
1409
  hiera_config[:hierarchy] = hierarchy
1382
1410
  hiera_config[:logger] = 'console'
1383
- create_remote_file host, host[:hieraconf], hiera_config.to_yaml
1411
+ create_remote_file host, host.puppet['hiera_config'], hiera_config.to_yaml
1384
1412
  end
1385
1413
  end
1386
1414