beaker-pe 1.40.0 → 1.40.1

Sign up to get free protection for your applications and to get access to all the features.
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