From dcf8dc5a80454529b6aa1801f21575b15818b706 Mon Sep 17 00:00:00 2001 From: Marc Deop Date: Thu, 18 Jan 2018 13:08:28 +0100 Subject: [PATCH] feat: add package_keyserver parameter --- README.md | 5 +++ manifests/init.pp | 1 + manifests/params.pp | 1 + manifests/repo/debian.pp | 4 +- spec/classes/collectd_init_spec.rb | 60 +++++++++++++++++++++--------- 5 files changed, 52 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 7b7e88994..c19f50f16 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,11 @@ On CentOS that will be EPEL: On Ubuntu that'll be the CollectD PPA: * https://launchpad.net/~collectd/+archive/ubuntu/collectd-5.5 +### Public key keyserver +In case you need to change the server where to download the public key from for +whatever reason (AKA: server is down) you can use the parameter +`$package_keyserver` + ### CI Packages Recently, Collectd CI packages are also avaliable from the CI repo diff --git a/manifests/init.pp b/manifests/init.pp index 15bf5342f..36f5e4b57 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,6 +15,7 @@ $minimum_version = $collectd::params::minimum_version, $package_ensure = $collectd::params::package_ensure, $package_install_options = $collectd::params::package_install_options, + String $package_keyserver = $collectd::params::package_keyserver, $package_name = $collectd::params::package_name, $package_provider = $collectd::params::package_provider, $plugin_conf_dir = $collectd::params::plugin_conf_dir, diff --git a/manifests/params.pp b/manifests/params.pp index 8da8a5a53..c180e4eaf 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -25,6 +25,7 @@ $package_install_options = undef $plugin_conf_dir_mode = '0750' $ci_package_repo = undef + $package_keyserver = 'keyserver.ubuntu.com' case $facts['kernel'] { 'OpenBSD': { $has_wordexp = false } diff --git a/manifests/repo/debian.pp b/manifests/repo/debian.pp index 20962dd5e..247e269d8 100644 --- a/manifests/repo/debian.pp +++ b/manifests/repo/debian.pp @@ -9,7 +9,7 @@ repos => "collectd-${$::collectd::ci_package_repo}", key => { 'id' => 'F806817DC3F5EA417F9FA2963994D24FB8543576', - 'server' => 'pgp.mit.edu', + 'server' => $::collectd::package_keyserver, }, } } else { @@ -22,7 +22,7 @@ repos => 'main', key => { 'id' => '7543C08D555DC473B9270ACDAF7ECBB3476ACEB3', - 'server' => 'keyserver.ubuntu.com', + 'server' => $::collectd::package_keyserver, }, } } diff --git a/spec/classes/collectd_init_spec.rb b/spec/classes/collectd_init_spec.rb index 15516ffc9..0bc89f4f9 100644 --- a/spec/classes/collectd_init_spec.rb +++ b/spec/classes/collectd_init_spec.rb @@ -199,25 +199,51 @@ end context 'and ci_package_repo set to a version' do - let(:params) do - { - manage_repo: true, - ci_package_repo: '5.6' - } - end + context 'and package_keyserver is default' do + let(:params) do + { + manage_repo: true, + ci_package_repo: '5.6' + } + end - if facts[:osfamily] == 'RedHat' - it { is_expected.to contain_yumrepo('collectd-ci').with_gpgkey('https://pkg.ci.collectd.org/pubkey.asc').with_baseurl("https://pkg.ci.collectd.org/rpm/collectd-5.6/epel-#{facts[:operatingsystemmajrelease]}-x86_64") } + if facts[:osfamily] == 'RedHat' + it { is_expected.to contain_yumrepo('collectd-ci').with_gpgkey('https://pkg.ci.collectd.org/pubkey.asc').with_baseurl("https://pkg.ci.collectd.org/rpm/collectd-5.6/epel-#{facts[:operatingsystemmajrelease]}-x86_64") } + end + if facts[:osfamily] == 'Debian' + it do + is_expected.to contain_apt__source('collectd-ci'). + with_location('https://pkg.ci.collectd.org/deb/'). + with_key( + 'id' => 'F806817DC3F5EA417F9FA2963994D24FB8543576', + 'server' => 'keyserver.ubuntu.com' + ). + with_repos('collectd-5.6') + end + end end - if facts[:osfamily] == 'Debian' - it do - is_expected.to contain_apt__source('collectd-ci'). - with_location('https://pkg.ci.collectd.org/deb/'). - with_key( - 'id' => 'F806817DC3F5EA417F9FA2963994D24FB8543576', - 'server' => 'pgp.mit.edu' - ). - with_repos('collectd-5.6') + context 'and package_keyserver is set' do + let(:params) do + { + manage_repo: true, + ci_package_repo: '5.6', + package_keyserver: 'pgp.mit.edu' + } + end + + if facts[:osfamily] == 'RedHat' + it { is_expected.to contain_yumrepo('collectd-ci').with_gpgkey('https://pkg.ci.collectd.org/pubkey.asc').with_baseurl("https://pkg.ci.collectd.org/rpm/collectd-5.6/epel-#{facts[:operatingsystemmajrelease]}-x86_64") } + end + if facts[:osfamily] == 'Debian' + it do + is_expected.to contain_apt__source('collectd-ci'). + with_location('https://pkg.ci.collectd.org/deb/'). + with_key( + 'id' => 'F806817DC3F5EA417F9FA2963994D24FB8543576', + 'server' => 'pgp.mit.edu' + ). + with_repos('collectd-5.6') + end end end end