beaker-pe 1.15.0 → 1.16.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
- 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