beaker-pe 0.5.0 → 0.6.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
- ZTFkZTk0ODM1OWJkODQyM2M0NDVkNTA2MWIxN2FlYjU5MWI3MjRjMg==
4
+ OTEwNTk1YmQyODUyN2JkYzVmYzAzN2U2OGE5NDUwMWY4ZWIwODc4MQ==
5
5
  data.tar.gz: !binary |-
6
- NDNlMmY2MDBiZjMxNjE0NTUzZTI3YzBiZmJlNjA0OTRlYjAxMzQxYw==
6
+ NGZmNjljOThhNGU1MjAwZDk0MGZmYzZkZWE1YzBkNjFlZmNmMTBmMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YjcwOTkwYTE2ZTIxNzdmZWVmM2JkODM3MzhmMzlmYTIzZWEwMTNhMmYxMDAz
10
- YTdkMmIzZTBmN2YyMTI1ZWJmMDkyYWQwN2NlMjQ0NTAyODZmMzEzODJkOTEz
11
- YWVhN2YwNmYzNzRjNWY3OGE0OTI0YjNlZGJiMWQyYTg4MDliZDc=
9
+ MDI1Y2FlNjQyOThhZjNmNDVjNjQxZjg4MDJmMmRkOTc0MjZmNjgxOWU0MTQ4
10
+ MTk2YzQ5ZThlNDNjMGM5MjMwMzA2NWJlYmY3MjVlNTE0NGIwYzBjMzE4MzEy
11
+ ZWUwODBiODk3NTVjYzJiZDEwNDQ1ZjZmYTk3NjBlY2EzNTk3OWQ=
12
12
  data.tar.gz: !binary |-
13
- MWIxN2ZmZTc2NDE3MTE5NWNmMTY2OWRhYTUyZjcxZTRhZjNiNjU1NDZjMjcw
14
- OTlhYmMyNWRiOWY5NDc5YTUyYzgxMDFlM2MyOWU3MDNlYzgxZTNlMjhkNmMw
15
- NGI2MTRlMjc2MDAzY2YwN2E1MDBlNzQzMTMzMDI3MjRlNjllMjE=
13
+ YzJiNDQwZTY5YTdkMmZmYTU5MTg3MWI5NGJhZjZhNGE0MzJkOGMwZTUxYjk0
14
+ MWQ3MzY0NmQ4MzYyMDc4OTFkYTk2YjlhZDIwYjk4Yjc1MzZhYWYzNjUwNWY1
15
+ MWRhZTFhM2ExNjVlMzJmNmIyMDc0NTMwMmI2YTg0OTQwMzdhYzI=
data/HISTORY.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # default - History
2
2
  ## Tags
3
- * [LATEST - 15 Jun, 2016 (985fe231)](#LATEST)
3
+ * [LATEST - 11 Jul, 2016 (48b663eb)](#LATEST)
4
+ * [0.5.0 - 15 Jun, 2016 (8f2874fe)](#0.5.0)
4
5
  * [0.4.0 - 1 Jun, 2016 (f5ad1884)](#0.4.0)
5
6
  * [0.3.0 - 26 May, 2016 (0d6b6d4c)](#0.3.0)
6
7
  * [0.2.0 - 18 May, 2016 (a65f2083)](#0.2.0)
@@ -9,7 +10,39 @@
9
10
  * [0.1.0 - 29 Feb, 2016 (4fc88d8c)](#0.1.0)
10
11
 
11
12
  ## Details
12
- ### <a name = "LATEST">LATEST - 15 Jun, 2016 (985fe231)
13
+ ### <a name = "LATEST">LATEST - 11 Jul, 2016 (48b663eb)
14
+
15
+ * (GEM) update beaker-pe version to 0.6.0 (48b663eb)
16
+
17
+ * Merge pull request #14 from ericwilliamson/task/master/PE-16566-download-gpg-key (99c5008f)
18
+
19
+
20
+ ```
21
+ Merge pull request #14 from ericwilliamson/task/master/PE-16566-download-gpg-key
22
+
23
+ (PE-16566) Add method to download life support gpg key
24
+ ```
25
+ * (PE-16566) Add method to download life support gpg key (df1f14bf)
26
+
27
+
28
+ ```
29
+ (PE-16566) Add method to download life support gpg key
30
+
31
+ As of July 8th, 2016 the GPG key that was shipped with and used to sign
32
+ repos inside of PE tarballs expired. A new life support key was created
33
+ that extended the expiration date to Jan 2017. That key shipped with PE
34
+ 3.8.5 and 2016.1.2.
35
+
36
+ apt based platforms appear to be the only package manager failing due to
37
+ an expired key, while rpm is fine.
38
+
39
+ This commit adds a new helper method to additionally download and
40
+ install the extended key for PE versions that have already been released
41
+ and are needing to be tested.
42
+ ```
43
+ ### <a name = "0.5.0">0.5.0 - 15 Jun, 2016 (8f2874fe)
44
+
45
+ * (HISTORY) update beaker-pe history for gem release 0.5.0 (8f2874fe)
13
46
 
14
47
  * (GEM) update beaker-pe version to 0.5.0 (985fe231)
15
48
 
@@ -352,6 +352,11 @@ module Beaker
352
352
  hosts_agent_only, hosts_not_agent_only = [], hosts.dup
353
353
  end
354
354
 
355
+ # On July 8th, 2016, the GPG key used to sign repos inside PE tarballs
356
+ # expired. Add a temporary, extended key to the host first so that it
357
+ # can still install those old PE tarballs.
358
+ add_extended_gpg_key_to_hosts(hosts, opts)
359
+
355
360
  # Set PE distribution for all the hosts, create working dir
356
361
  use_all_tar = ENV['PE_USE_ALL_TAR'] == 'true'
357
362
  hosts.each do |host|
@@ -516,6 +521,26 @@ module Beaker
516
521
  !version_is_less(version, MEEP_CUTOVER_VERSION)
517
522
  end
518
523
 
524
+ # On July 8th, 2016, the gpg key that was shipped and used to sign repos in
525
+ # PE tarballs expired. This affects all PE version earlier then 3.8.5, and
526
+ # versions between 2015.2 to 2016.1.2.
527
+ #
528
+ # PE 3.8.5 and 2016.1.2 shipped with a version of the key that had it's
529
+ # expiration date extended by 6 months (to Janurary 2017).
530
+ def add_extended_gpg_key_to_hosts(hosts, opts)
531
+ hosts.each do |host|
532
+ # RPM based platforms do not seem to be effected by an expired GPG key,
533
+ # while deb based platforms are failing.
534
+ if host['platform'] =~ /debian|ubuntu/
535
+ host_ver = host['pe_ver'] || opts['pe_ver']
536
+
537
+ if version_is_less(host_ver, '3.8.5') || (!version_is_less(host_ver, '2015.2.0') && version_is_less(host_ver, '2016.1.2'))
538
+ on(host, 'curl http://apt.puppetlabs.com/pubkey.gpg | apt-key add -')
539
+ end
540
+ end
541
+ end
542
+ end
543
+
519
544
  # Set installer options on the passed *host* according to current
520
545
  # version.
521
546
  #
@@ -3,7 +3,7 @@ module Beaker
3
3
  module PE
4
4
 
5
5
  module Version
6
- STRING = '0.5.0'
6
+ STRING = '0.6.0'
7
7
  end
8
8
 
9
9
  end
@@ -444,6 +444,79 @@ describe ClassMixedWithDSLInstallUtils do
444
444
  end
445
445
  end
446
446
 
447
+ describe 'add_extended_gpg_key_to_hosts' do
448
+ let(:on_cmd) { 'curl http://apt.puppetlabs.com/pubkey.gpg | apt-key add -' }
449
+ let(:deb_host) do
450
+ host = hosts.first
451
+ host['platform'] = 'debian'
452
+ host
453
+ end
454
+
455
+ context 'mixed platforms' do
456
+ before(:each) do
457
+ hosts[0]['platform'] = 'centos'
458
+ hosts[1]['platform'] = 'debian'
459
+ hosts[2]['platform'] = 'ubuntu'
460
+ end
461
+
462
+ it 'does nothing on el platforms' do
463
+ expect(subject).not_to receive(:on).with(hosts[0], on_cmd)
464
+ subject.add_extended_gpg_key_to_hosts(hosts, opts)
465
+ end
466
+
467
+ it 'installs key on debian based platforms' do
468
+ expect(subject).to receive(:on).with(hosts[1], on_cmd)
469
+ expect(subject).to receive(:on).with(hosts[2], on_cmd)
470
+ subject.add_extended_gpg_key_to_hosts(hosts, opts)
471
+ end
472
+ end
473
+
474
+ context 'mixed pe_versions' do
475
+ before(:each) do
476
+ hosts[0]['platform'] = 'debian'
477
+ hosts[0]['pe_ver'] = '2016.2.0'
478
+ hosts[1]['platform'] = 'debian'
479
+ hosts[1]['pe_ver'] = '3.8.4'
480
+ end
481
+
482
+ it 'adds key to required hosts' do
483
+ expect(subject).not_to receive(:on).with(hosts[0], on_cmd)
484
+ expect(subject).to receive(:on).with(hosts[1], on_cmd)
485
+ subject.add_extended_gpg_key_to_hosts(hosts, opts)
486
+ end
487
+ end
488
+
489
+ context 'PE versions earlier than 3.8.5' do
490
+ ['3.3.2', '3.7.3', '3.8.2'].each do |pe_ver|
491
+ it "Adds key on PE #{pe_ver}" do
492
+ deb_host['pe_ver'] = pe_ver
493
+ expect(subject).to receive(:on).with(deb_host, on_cmd)
494
+ subject.add_extended_gpg_key_to_hosts(hosts, opts)
495
+ end
496
+ end
497
+ end
498
+
499
+ context 'PE versions between 2015.2.0 and 2016.1.1' do
500
+ ['2015.2.0', '2015.3.1', '2016.1.1'].each do |pe_ver|
501
+ it "Adds key on PE #{pe_ver}" do
502
+ deb_host['pe_ver'] = pe_ver
503
+ expect(subject).to receive(:on).with(deb_host, on_cmd)
504
+ subject.add_extended_gpg_key_to_hosts(hosts, opts)
505
+ end
506
+ end
507
+ end
508
+
509
+ ['3.8.5', '3.8.6', '2016.1.2', '2016.2.0'].each do |pe_ver|
510
+ context "PE #{pe_ver}" do
511
+ it 'does nothing' do
512
+ deb_host['pe_ver'] = pe_ver
513
+ expect(subject).not_to receive(:on).with(deb_host, on_cmd)
514
+ subject.add_extended_gpg_key_to_hosts(hosts, opts)
515
+ end
516
+ end
517
+ end
518
+ end
519
+
447
520
  describe 'fetch_pe' do
448
521
 
449
522
  it 'can push a local PE .tar.gz to a host and unpack it' do
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: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppetlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-15 00:00:00.000000000 Z
11
+ date: 2016-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec