beaker-pe 1.15.0 → 1.16.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDU3YmFiNDg4M2FjMzYwNzRmNzI1NDdjZTcyY2NjNmJlNWQyOTllMw==
4
+ Yjg5OTg2MGZkMzdlYzY5ZTljN2JkMWY2NmFmNGI4ZDQxZDZmMGQ2OA==
5
5
  data.tar.gz: !binary |-
6
- Y2I2MDdlZDY2YTJmNWFiY2VlODFkZDJiMDhjMzdlYTJkZjU0OTAyMg==
6
+ NGQyNmZiMzU3MTAyZTY1MTYwYTE2NTNkZmMxYzI1ZDc1Yzk1NzM1Nw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MWUyNGExOTQ3NmVjMGE2NmEwZmYwOGYzZjUxZTU0NTQwOTcwZTUyNzgxODU5
10
- ZmFmOTY0ODczMzFlNjlmZWUxMzRlNDFmMDUyZGIwOGY0ZDE3OWUwMWRkYzc4
11
- MzhjMTUyYmM5NjdjZjEyNTFiMTk5NTVmNzkwZTJjZDcyNTA4OGE=
9
+ NTk0NTliMmU2ZTJhNDdmNmQ2NGU1ODBmZjZjNjc5NGY2OGVmZmY1YzQyYTZm
10
+ NmFmM2ViMzNjYTMwOTNkZmE1MDQ5YjAwNmZjMmZhNzQ4N2U5MGVhODRiOGY5
11
+ MGRjNmViZDdjY2Y5MWQ2ZDQ4NGE2OWVkMTcyNTA1NTdiZGZlMDM=
12
12
  data.tar.gz: !binary |-
13
- MGViNDFmZDI4OGExNTVkZmU3ZDlhMDA2ZGZlOThmZWFhMzkxODE2YmNhYjBm
14
- MmJkZTZjNmQ1NGQxMzAzM2Q0MWM2YzYzZjJiNWFlMmJmZTMyMmVkMzA3OGY1
15
- MzE3ZWQzMGE4ODdjNmE3NWU4MDE5MDE4OWVhN2VkZWQzNmFlZjc=
13
+ OTgyNDI0ZjQxNGYxNWI5MzZmNTA0NzA5MjJkMmUzY2UwMmNhOTBjNjNhMGQx
14
+ OTI3Y2JiYThmNDFhMDkxYjZjMGM5NjI5ZWU5NWY2MjkxYmFjNWMzZDdjMTc2
15
+ M2I1Yzk1NzUyNDA0YzM5N2YyZjU2OTFjODc3OWU0MTY4ZWRiZDk=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # worker - History
2
2
  ## Tags
3
- * [LATEST - 11 May, 2017 (6cdb9055)](#LATEST)
3
+ * [LATEST - 26 May, 2017 (053b1ab7)](#LATEST)
4
+ * [1.15.0 - 11 May, 2017 (0fddaad5)](#1.15.0)
4
5
  * [1.14.0 - 10 May, 2017 (874a7998)](#1.14.0)
5
6
  * [1.13.0 - 6 Apr, 2017 (a3c5d641)](#1.13.0)
6
7
  * [1.12.1 - 29 Mar, 2017 (fe8bbc82)](#1.12.1)
@@ -38,7 +39,38 @@
38
39
  * [0.1.0 - 29 Feb, 2016 (4fc88d8c)](#0.1.0)
39
40
 
40
41
  ## Details
41
- ### <a name = "LATEST">LATEST - 11 May, 2017 (6cdb9055)
42
+ ### <a name = "LATEST">LATEST - 26 May, 2017 (053b1ab7)
43
+
44
+ * (GEM) update beaker-pe version to 1.16.0 (053b1ab7)
45
+
46
+ * PE-20610 Fix install failure on windows for old pe versions (6c5c6143)
47
+
48
+
49
+ ```
50
+ PE-20610 Fix install failure on windows for old pe versions
51
+
52
+ Added logic to use the old generic_install method on windows when
53
+ installing old pe versions that requires an msi install because of
54
+ powershell2 issue PE-18351. The newly added simple_monolithic_install
55
+ does not have a check for those conditions and proceeds with
56
+ frictionless installation on those hosts which fails.
57
+ ```
58
+ * (PE-20589) After a simple monolithic install run puppet on non-infrastructure agents (d69499ee)
59
+
60
+
61
+ ```
62
+ (PE-20589) After a simple monolithic install run puppet on non-infrastructure agents
63
+
64
+ Previously after agents were installed via simple mono install, we ran the agents
65
+ all at once. This include the master. Occasionaly there would be a change done to
66
+ the console services that would require a restart.
67
+ This would cause other agent runs to fail. So to not have that happen, we will run
68
+ only the non-infrastructure agents. That should be fine since part of the process
69
+ of installing PE should have the puppet runs included there.
70
+ ```
71
+ ### <a name = "1.15.0">1.15.0 - 11 May, 2017 (0fddaad5)
72
+
73
+ * (HISTORY) update beaker-pe history for gem release 1.15.0 (0fddaad5)
42
74
 
43
75
  * (GEM) update beaker-pe version to 1.15.0 (6cdb9055)
44
76
 
@@ -423,6 +423,8 @@ module Beaker
423
423
  return :generic if hosts.map {|host| host['pe_ver']}.uniq.length > 1
424
424
  return :generic if opts[:type] == :upgrade
425
425
  return :generic if version_is_less(opts[:pe_ver] || hosts.first['pe_ver'], '2016.4')
426
+ #PE-20610 Do a generic install for old versions on windows that needs msi install because of PE-18351
427
+ return :generic if hosts.any? {|host| host['platform'] =~ /windows/ && install_via_msi?(host)}
426
428
 
427
429
  mono_roles = ['master', 'database', 'dashboard']
428
430
  if has_all_roles?(hosts.first, mono_roles) && hosts.drop(1).all? {|host| host['roles'].include?('frictionless')}
@@ -483,7 +485,7 @@ module Beaker
483
485
  end
484
486
 
485
487
  step "Run puppet to setup mcollective and pxp-agent" do
486
- on all_hosts, puppet_agent('-t'), :acceptable_exit_codes => [0,2], :run_in_parallel => true
488
+ run_puppet_on_non_infrastructure_nodes(all_hosts)
487
489
 
488
490
  #Workaround for windows frictionless install, see BKR-943 for the reason
489
491
  agents.select {|agent| agent['platform'] =~ /windows/}.each do |agent|
@@ -771,6 +773,14 @@ module Beaker
771
773
  (host['platform'] =~ /windows-2008r2/ && (!version_is_less(host['pe_ver'], '2016.4.99') && version_is_less(host['pe_ver'], '2016.5.99') && !version_is_less(host['pe_ver'], '3.99')))
772
774
  end
773
775
 
776
+ # Runs puppet on all nodes, unless they have the roles: master,database,console/dashboard
777
+ # @param [Array<Host>] hosts The sorted hosts to install or upgrade PE on
778
+ def run_puppet_on_non_infrastructure_nodes(all_hosts)
779
+ pe_infrastructure = select_hosts({:roles => ['master', 'compile_master', 'dashboard', 'database']}, all_hosts)
780
+ non_infrastructure = all_hosts.reject{|host| pe_infrastructure.include? host}
781
+ on non_infrastructure, puppet_agent('-t'), :acceptable_exit_codes => [0,2], :run_in_parallel => true
782
+ end
783
+
774
784
  # True if version is greater than or equal to MEEP_CLASSIFICATION_VERSION
775
785
  # (PE-18718) AND the temporary feature flag is true.
776
786
  #
@@ -3,7 +3,7 @@ module Beaker
3
3
  module PE
4
4
 
5
5
  module Version
6
- STRING = '1.15.0'
6
+ STRING = '1.16.0'
7
7
  end
8
8
 
9
9
  end
@@ -254,6 +254,27 @@ describe ClassMixedWithDSLInstallUtils do
254
254
  end
255
255
  end
256
256
 
257
+ describe 'run_puppet_on_non_infrastructure_nodes' do
258
+ let(:monolithic) { make_host('monolithic', :pe_ver => '2016.4', :platform => 'el-7-x86_64', :roles => [ 'master', 'database', 'dashboard' ]) }
259
+ let(:el_agent) { make_host('agent', :pe_ver => '2016.4', :platform => 'el-7-x86_64', :roles => ['frictionless']) }
260
+ let(:deb_agent) { make_host('agent', :pe_ver => '2016.4', :platform => 'debian-7-x86_64', :roles => ['frictionless']) }
261
+ let(:master) { make_host('master', :pe_ver => '2016.4', :platform => 'el-7-x86_64', :roles => [ 'master']) }
262
+ let(:database) { make_host('database', :pe_ver => '2016.4', :platform => 'el-7-x86_64', :roles => [ 'database']) }
263
+ let(:dashboard) { make_host('dashboard', :pe_ver => '2016.4', :platform => 'el-7-x86_64', :roles => [ 'dashboard']) }
264
+ it 'runs puppet on non-infra nodes with a monolithic master' do
265
+ expect(subject).to receive(:on).with([el_agent, deb_agent], proc {|cmd| cmd.command == "puppet agent"}, hash_including(:run_in_parallel => true)).once
266
+ expect(subject).to receive(:on).with([monolithic], proc {|cmd| cmd.command == "puppet agent"}, hash_including(:run_in_parallel => true)).never
267
+ subject.run_puppet_on_non_infrastructure_nodes([monolithic, el_agent, deb_agent])
268
+ end
269
+ it 'runs puppet on non-infra nodes with a split topology' do
270
+ expect(subject).to receive(:on).with([el_agent, deb_agent], proc {|cmd| cmd.command == "puppet agent"}, hash_including(:run_in_parallel => true)).once
271
+ expect(subject).to receive(:on).with([master], proc {|cmd| cmd.command == "puppet agent"}, hash_including(:run_in_parallel => true)).never
272
+ expect(subject).to receive(:on).with([database], proc {|cmd| cmd.command == "puppet agent"}, hash_including(:run_in_parallel => true)).never
273
+ expect(subject).to receive(:on).with([dashboard], proc {|cmd| cmd.command == "puppet agent"}, hash_including(:run_in_parallel => true)).never
274
+ subject.run_puppet_on_non_infrastructure_nodes([master, database, dashboard, el_agent, deb_agent])
275
+ end
276
+ end
277
+
257
278
  describe 'install_via_msi?' do
258
279
  it 'returns true if pe_version is before PE 2016.4.0' do
259
280
  the_host = winhost.dup
@@ -943,6 +964,11 @@ describe ClassMixedWithDSLInstallUtils do
943
964
  hosts = [monolithic, master, agent, agent, agent]
944
965
  expect(subject.determine_install_type(hosts, {})).to eq(:generic)
945
966
  end
967
+ it 'identifies an install that requires windows msi install as generic' do
968
+ win_agent = make_host('agent', :pe_ver => '2016.4.0', :platform => 'win-2008r2', :roles => ['frictionless'])
969
+ hosts = [monolithic, agent, win_agent]
970
+ expect(subject.determine_install_type(hosts, {})).to eq(:generic)
971
+ end
946
972
  end
947
973
 
948
974
  describe '#deploy_frictionless_to_master' do
@@ -1351,13 +1377,6 @@ describe ClassMixedWithDSLInstallUtils do
1351
1377
  subject.simple_monolithic_install(monolithic, agents)
1352
1378
  end
1353
1379
 
1354
- it 'runs agents in parallel, only one time' do
1355
- agents = [el_agent, el_agent, deb_agent, deb_agent]
1356
- expect(subject).to receive(:on).with([monolithic, *agents], proc {|cmd| cmd.command == "puppet agent"}, hash_including(:run_in_parallel => true)).once
1357
-
1358
- subject.simple_monolithic_install(monolithic, agents)
1359
- end
1360
-
1361
1380
  it "calls prepare_hosts on all hosts instead of just master" do
1362
1381
  expect(subject).to receive(:prepare_hosts).with([monolithic] + [el_agent, el_agent, el_agent], {})
1363
1382
  subject.simple_monolithic_install(monolithic, [el_agent, el_agent, el_agent])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-pe
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppetlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-11 00:00:00.000000000 Z
11
+ date: 2017-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec