beaker-pe 1.40.0 → 1.40.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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e428e5636faf6924ded6d1c00c1025cb31f5908f
4
- data.tar.gz: 89c7cab90ff40da8ae815a3c691a09bd25871daf
3
+ metadata.gz: 3d2f3a830172fb8639723a327bbb42f4b2653c2c
4
+ data.tar.gz: 94c9fce23f9dc3c23a25e0c8f9b868247d6024ad
5
5
  SHA512:
6
- metadata.gz: 27c581db08eb597e2d9064e6822d9240047c1e0800dfb61b64825dd0f460b4de4f489f52a6948e7472adaff4eb4cdbe4a96e838b3e6a616f29276bf632c7dbbc
7
- data.tar.gz: 1380918dbc0c4ac49d44a672bafb0c4c7a6735d5bc53c992f8b6f1e6bf4b2c2f2d8f7e60be78f9bac2f3a5196dfb2eba8114ac2343cf1fdb5a00a9a12a3a970d
6
+ metadata.gz: 726297dc8a378882eecbb8e6432e087770e5cc5c4b52d3dbc911e57c72959e9df464c26c17ebad402501596c4c52d587f16d0da62dde56cf908e37c092f9ddb7
7
+ data.tar.gz: 21ea61bb695784c515e407ebc74f7d4fa971e74a6b1f090a1122a8733ac7901b193c1622e91a94624d6dbce7c90127811dd7b831fcff9ce93539f3e46f03699c
data/Gemfile CHANGED
@@ -22,6 +22,8 @@ if ENV['GEM_SOURCE'] =~ /artifactory\.delivery\.puppetlabs\.net/
22
22
  gem "scooter", *location_for(ENV['SCOOTER_VERSION'] || '~> 3.0')
23
23
  end
24
24
 
25
+ gem 'deep_merge'
26
+
25
27
  if File.exists? "#{__FILE__}.local"
26
28
  eval(File.read("#{__FILE__}.local"), binding)
27
29
  end
@@ -5,6 +5,7 @@ require 'beaker-pe/install/feature_flags'
5
5
  require "beaker-answers"
6
6
  require "timeout"
7
7
  require "json"
8
+ require "deep_merge"
8
9
  module Beaker
9
10
  module DSL
10
11
  module InstallUtils
@@ -1106,6 +1107,16 @@ module Beaker
1106
1107
  Beaker::DSL::InstallUtils::FeatureFlags.new(opts).register_flags!
1107
1108
  end
1108
1109
 
1110
+ # PE 2018.1.0 has mco disabled by default. If we are running hosts with
1111
+ # roles hub or spoke then we intend to test mco. In this case we need
1112
+ # to change a setting in pe.conf to allow mco to be enabled.
1113
+ def get_mco_setting(hosts)
1114
+ if(version_is_less('2018.1', hosts[0]['pe_ver']) && (hosts.any? {|h| h['roles'].include?('hub') || h['roles'].include?('spoke')}))
1115
+ return {:answers => { 'pe_install::disable_mco' => false }}
1116
+ end
1117
+ return {}
1118
+ end
1119
+
1109
1120
  # Generates a Beaker Answers object for the passed *host* and creates
1110
1121
  # the answer or pe.conf configuration file on the *host* needed for
1111
1122
  # installation.
@@ -1119,6 +1130,9 @@ module Beaker
1119
1130
  # @param [Hash] opts The Beaker options hash
1120
1131
  # @return [BeakerAnswers::Answers] the generated answers object
1121
1132
  def generate_installer_conf_file_for(host, hosts, opts)
1133
+ possible_mco_enabled_setting = get_mco_setting(hosts)
1134
+ opts ||= {}
1135
+ opts = possible_mco_enabled_setting.deep_merge(opts)
1122
1136
  beaker_answers_opts = setup_beaker_answers_opts(host, opts)
1123
1137
  answers = BeakerAnswers::Answers.create(
1124
1138
  opts[:pe_ver] || host['pe_ver'], hosts, beaker_answers_opts
@@ -3,7 +3,7 @@ module Beaker
3
3
  module PE
4
4
 
5
5
  module Version
6
- STRING = '1.40.0'
6
+ STRING = '1.40.1'
7
7
  end
8
8
 
9
9
  end
@@ -707,6 +707,7 @@ describe ClassMixedWithDSLInstallUtils do
707
707
  '/tmp/answers',
708
708
  %r{q_install=y.*q_puppetmaster_certname=#{master}}m
709
709
  )
710
+ expect(subject).to receive(:get_mco_setting).and_return({})
710
711
  subject.generate_installer_conf_file_for(master, hosts, opts)
711
712
  end
712
713
 
@@ -718,6 +719,7 @@ describe ClassMixedWithDSLInstallUtils do
718
719
  '/tmp/pe.conf',
719
720
  %r{\{.*"puppet_enterprise::puppet_master_host": "#{master.hostname}"}m
720
721
  )
722
+ expect(subject).to receive(:get_mco_setting).and_return({})
721
723
  subject.generate_installer_conf_file_for(master, hosts, opts)
722
724
  end
723
725
  end
@@ -1445,6 +1447,33 @@ describe ClassMixedWithDSLInstallUtils do
1445
1447
  end
1446
1448
  end
1447
1449
 
1450
+ describe 'get_mco_setting' do
1451
+ let(:master) { make_host('master', :pe_ver => '2018.1.0', :platform => 'ubuntu-16.04-x86_64', :roles => ['master', 'database', 'dashboard']) }
1452
+ let(:hub) { make_host('agent', :pe_ver => '2018.1', :platform => 'el-7-x86_64', :roles => ['frictionless', 'hub', 'agent']) }
1453
+ let(:spoke) { make_host('agent', :pe_ver => '2018.1', :roles => ['frictionless', 'spoke', 'agent']) }
1454
+
1455
+ it 'returns mco enabled with both hub and spoke and version is greater' do
1456
+ hosts = [master, hub, spoke]
1457
+ allow(subject).to receive(:version_is_less).and_return(true)
1458
+ expect(subject.get_mco_setting(hosts)).to eq({:answers => {'pe_install::disable_mco' => false}})
1459
+ end
1460
+ it 'returns mco enabled with just hub and version is greater' do
1461
+ hosts = [master, hub]
1462
+ allow(subject).to receive(:version_is_less).and_return(true)
1463
+ expect(subject.get_mco_setting(hosts)).to eq({:answers => {'pe_install::disable_mco' => false}})
1464
+ end
1465
+ it 'returns mco enabled with just spoke and version is greater' do
1466
+ hosts = [master, spoke]
1467
+ allow(subject).to receive(:version_is_less).and_return(true)
1468
+ expect(subject.get_mco_setting(hosts)).to eq({:answers => {'pe_install::disable_mco' => false}})
1469
+ end
1470
+ it 'does not return anything if the version is less' do
1471
+ hosts = [master, hub, spoke]
1472
+ allow(subject).to receive(:version_is_less).and_return(false)
1473
+ expect(subject.get_mco_setting(hosts)).to eq({})
1474
+ end
1475
+ end
1476
+
1448
1477
  describe '#deploy_frictionless_to_master' do
1449
1478
  let(:master) { make_host('master', :pe_ver => '2017.2', :platform => 'ubuntu-16.04-x86_64', :roles => ['master', 'database', 'dashboard']) }
1450
1479
  let(:agent) { make_host('agent', :pe_ver => '2017.2', :platform => 'el-7-x86_64', :roles => ['frictionless']) }
@@ -1488,6 +1517,7 @@ describe ClassMixedWithDSLInstallUtils do
1488
1517
  end
1489
1518
 
1490
1519
  it 'can perform a simple installation' do
1520
+ expect(subject).to receive(:get_mco_setting).and_return({})
1491
1521
  allow( subject ).to receive( :verify_network_resources).with(hosts, nil)
1492
1522
  allow( subject ).to receive( :on ).and_return( Beaker::Result.new( {}, '' ) )
1493
1523
  allow( subject ).to receive( :fetch_pe ).and_return( true )
@@ -1560,6 +1590,7 @@ describe ClassMixedWithDSLInstallUtils do
1560
1590
  :roles => ['agent']
1561
1591
  }, 1)
1562
1592
  opts[:masterless] = true
1593
+ expect(subject).to receive(:get_mco_setting).and_return({})
1563
1594
 
1564
1595
  allow( subject ).to receive( :verify_network_resources).with(hosts, nil)
1565
1596
  allow( subject ).to receive( :hosts ).and_return( hosts )
@@ -1747,6 +1778,7 @@ describe ClassMixedWithDSLInstallUtils do
1747
1778
  hosts[0][:roles] = ['master', 'database', 'dashboard']
1748
1779
  hosts[1][:platform] = Beaker::Platform.new('el-6-x86_64')
1749
1780
  opts[:HOSTS] = {}
1781
+ expect(subject).to receive(:get_mco_setting).and_return({})
1750
1782
  hosts.each do |host|
1751
1783
  opts[:HOSTS][host.name] = host
1752
1784
  end
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.40.0
4
+ version: 1.40.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppetlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-02 00:00:00.000000000 Z
11
+ date: 2018-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec