From 80d83c9fbb61e8e4081e25f953df6d1a327298c3 Mon Sep 17 00:00:00 2001 From: Brad Koby Date: Tue, 4 Oct 2022 19:43:01 -0400 Subject: [PATCH 1/7] Support other versions of remi repo on redhat --- manifests/repo/redhat.pp | 10 +++--- spec/classes/php_repo_redhat_spec.rb | 49 ++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 spec/classes/php_repo_redhat_spec.rb diff --git a/manifests/repo/redhat.pp b/manifests/repo/redhat.pp index 33688f4e..a908deca 100644 --- a/manifests/repo/redhat.pp +++ b/manifests/repo/redhat.pp @@ -7,12 +7,14 @@ # class php::repo::redhat ( - String[1] $yum_repo = 'remi_php56', + $version = '5.6', ) { + $releasever = $facts['os']['name'] ? { /(?i:Amazon)/ => '6', default => '$releasever', # Yum var } + $no_dot_version = $version.delete('.') yumrepo { 'remi': descr => 'Remi\'s RPM repository for Enterprise Linux $releasever - $basearch', @@ -23,9 +25,9 @@ priority => 1, } - yumrepo { 'remi-php56': - descr => 'Remi\'s PHP 5.6 RPM repository for Enterprise Linux $releasever - $basearch', - mirrorlist => "https://rpms.remirepo.net/enterprise/${releasever}/php56/mirror", + yumrepo { "remi-php${no_dot_version}": + descr => "Remi's PHP ${version} RPM repository for Enterprise Linux \$releasever - \$basearch", + mirrorlist => "https://rpms.remirepo.net/enterprise/${releasever}/php${no_dot_version}/mirror", enabled => 1, gpgcheck => 1, gpgkey => 'https://rpms.remirepo.net/RPM-GPG-KEY-remi', diff --git a/spec/classes/php_repo_redhat_spec.rb b/spec/classes/php_repo_redhat_spec.rb new file mode 100644 index 00000000..5a7a7a1f --- /dev/null +++ b/spec/classes/php_repo_redhat_spec.rb @@ -0,0 +1,49 @@ +require 'spec_helper' + +describe 'php::repo::redhat', type: :class do + on_supported_os.each do |os, facts| + context "on #{os}" do + let :facts do + facts + end + + case facts[:osfamily] + when 'RedHat' + describe 'when called with no parameters on RedHat' do + it { is_expected.to contain_yumrepo('remi-php56') } + end + + describe 'when called with version 7.0 on RedHat' do + let(:params) do + { + version: '7.0' + } + end + + it { is_expected.to contain_yumrepo('remi-php70') } + end + + describe 'when call with version 7.1 on RedHat' do + let(:params) do + { + version: '7.1' + } + end + + it { is_expected.to contain_yumrepo('remi-php71') } + end + + describe 'when call with version 7.2 on RedHat' do + let(:params) do + { + version: '7.2' + } + end + + it { is_expected.to contain_yumrepo('remi-php72') } + end + + end + end + end +end From d4bc190e97662d7ecd0c57814e0a8ff755240746 Mon Sep 17 00:00:00 2001 From: Brad Koby Date: Tue, 4 Oct 2022 21:34:32 -0400 Subject: [PATCH 2/7] Add acceptance --- manifests/repo/redhat.pp | 3 +-- spec/acceptance/php_repo_redhat_spec.rb | 32 +++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 spec/acceptance/php_repo_redhat_spec.rb diff --git a/manifests/repo/redhat.pp b/manifests/repo/redhat.pp index a908deca..87619397 100644 --- a/manifests/repo/redhat.pp +++ b/manifests/repo/redhat.pp @@ -7,9 +7,8 @@ # class php::repo::redhat ( - $version = '5.6', + String[1] $version = '5.6', ) { - $releasever = $facts['os']['name'] ? { /(?i:Amazon)/ => '6', default => '$releasever', # Yum var diff --git a/spec/acceptance/php_repo_redhat_spec.rb b/spec/acceptance/php_repo_redhat_spec.rb new file mode 100644 index 00000000..c3d24980 --- /dev/null +++ b/spec/acceptance/php_repo_redhat_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' +require 'spec_helper_acceptance' + +describe 'with RedHat', if: (fact('os.family') == 'RedHat') do + context 'default parameters' do + it_behaves_like 'an idempotent resource' do + let(:manifest) do + <<-PUPPET + include 'php::repo::redhat' + PUPPET + end + end + describe yumrepo('remi-php56') do + it { should exist } + end + end + + context 'with version 7.2' do + it_behaves_like 'an idempotent resource' do + let(:manifest) do + <<-PUPPET + class { 'php::repo::redhat': + version => '7.2', + } + PUPPET + end + end + describe yumrepo('remi-php72') do + it { should exist } + end + end +end From dc91e82e051e075cb017057de749a63cceb75320 Mon Sep 17 00:00:00 2001 From: Brad Koby Date: Wed, 5 Oct 2022 09:42:45 -0400 Subject: [PATCH 3/7] Fix lint errors --- spec/acceptance/php_repo_redhat_spec.rb | 6 ++++-- spec/classes/php_repo_redhat_spec.rb | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/spec/acceptance/php_repo_redhat_spec.rb b/spec/acceptance/php_repo_redhat_spec.rb index c3d24980..dda8861e 100644 --- a/spec/acceptance/php_repo_redhat_spec.rb +++ b/spec/acceptance/php_repo_redhat_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'spec_helper' require 'spec_helper_acceptance' @@ -11,7 +13,7 @@ end end describe yumrepo('remi-php56') do - it { should exist } + it { is_expected.to exist } end end @@ -26,7 +28,7 @@ class { 'php::repo::redhat': end end describe yumrepo('remi-php72') do - it { should exist } + it { is_expected.to exist } end end end diff --git a/spec/classes/php_repo_redhat_spec.rb b/spec/classes/php_repo_redhat_spec.rb index 5a7a7a1f..d99a070b 100644 --- a/spec/classes/php_repo_redhat_spec.rb +++ b/spec/classes/php_repo_redhat_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'spec_helper' describe 'php::repo::redhat', type: :class do From d0835cf37f89f2559aa6e7354df0c78012275faa Mon Sep 17 00:00:00 2001 From: Brad Koby Date: Wed, 5 Oct 2022 09:48:17 -0400 Subject: [PATCH 4/7] Remove erroneous require --- spec/acceptance/php_repo_redhat_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/acceptance/php_repo_redhat_spec.rb b/spec/acceptance/php_repo_redhat_spec.rb index dda8861e..d34fc31f 100644 --- a/spec/acceptance/php_repo_redhat_spec.rb +++ b/spec/acceptance/php_repo_redhat_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'spec_helper' require 'spec_helper_acceptance' describe 'with RedHat', if: (fact('os.family') == 'RedHat') do From 29aa2573ee8a671b2794b62477cafc827679c018 Mon Sep 17 00:00:00 2001 From: Brad Koby Date: Wed, 5 Oct 2022 13:10:20 -0400 Subject: [PATCH 5/7] Organize acceptance tests --- spec/acceptance/{ => repo}/php_repo_redhat_spec.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename spec/acceptance/{ => repo}/php_repo_redhat_spec.rb (100%) diff --git a/spec/acceptance/php_repo_redhat_spec.rb b/spec/acceptance/repo/php_repo_redhat_spec.rb similarity index 100% rename from spec/acceptance/php_repo_redhat_spec.rb rename to spec/acceptance/repo/php_repo_redhat_spec.rb From 8fe7527efca6cb0a1ee8b0b6925e0777ac744572 Mon Sep 17 00:00:00 2001 From: Brad Koby Date: Wed, 5 Oct 2022 15:08:05 -0400 Subject: [PATCH 6/7] Revert to using older param name --- manifests/repo/redhat.pp | 8 ++++---- spec/acceptance/repo/php_repo_redhat_spec.rb | 6 +++--- spec/classes/php_repo_redhat_spec.rb | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/manifests/repo/redhat.pp b/manifests/repo/redhat.pp index 87619397..7c746dd8 100644 --- a/manifests/repo/redhat.pp +++ b/manifests/repo/redhat.pp @@ -7,13 +7,13 @@ # class php::repo::redhat ( - String[1] $version = '5.6', + String[1] $yum_repo = 'remi_php56', ) { $releasever = $facts['os']['name'] ? { /(?i:Amazon)/ => '6', default => '$releasever', # Yum var } - $no_dot_version = $version.delete('.') + $no_dot_version = $yum_repo.match('php.+$')[0].strip yumrepo { 'remi': descr => 'Remi\'s RPM repository for Enterprise Linux $releasever - $basearch', @@ -24,8 +24,8 @@ priority => 1, } - yumrepo { "remi-php${no_dot_version}": - descr => "Remi's PHP ${version} RPM repository for Enterprise Linux \$releasever - \$basearch", + yumrepo { $yum_repo: + descr => "Remi's PHP ${no_dot_version} RPM repository for Enterprise Linux \$releasever - \$basearch", mirrorlist => "https://rpms.remirepo.net/enterprise/${releasever}/php${no_dot_version}/mirror", enabled => 1, gpgcheck => 1, diff --git a/spec/acceptance/repo/php_repo_redhat_spec.rb b/spec/acceptance/repo/php_repo_redhat_spec.rb index d34fc31f..bd036811 100644 --- a/spec/acceptance/repo/php_repo_redhat_spec.rb +++ b/spec/acceptance/repo/php_repo_redhat_spec.rb @@ -11,7 +11,7 @@ PUPPET end end - describe yumrepo('remi-php56') do + describe yumrepo('remi_php56') do it { is_expected.to exist } end end @@ -21,12 +21,12 @@ let(:manifest) do <<-PUPPET class { 'php::repo::redhat': - version => '7.2', + yum_repo => 'remi_php72', } PUPPET end end - describe yumrepo('remi-php72') do + describe yumrepo('remi_php72') do it { is_expected.to exist } end end diff --git a/spec/classes/php_repo_redhat_spec.rb b/spec/classes/php_repo_redhat_spec.rb index d99a070b..dabe9237 100644 --- a/spec/classes/php_repo_redhat_spec.rb +++ b/spec/classes/php_repo_redhat_spec.rb @@ -12,37 +12,37 @@ case facts[:osfamily] when 'RedHat' describe 'when called with no parameters on RedHat' do - it { is_expected.to contain_yumrepo('remi-php56') } + it { is_expected.to contain_yumrepo('remi_php56') } end describe 'when called with version 7.0 on RedHat' do let(:params) do { - version: '7.0' + yum_repo: 'remi_php70' } end - it { is_expected.to contain_yumrepo('remi-php70') } + it { is_expected.to contain_yumrepo('remi_php70') } end describe 'when call with version 7.1 on RedHat' do let(:params) do { - version: '7.1' + yum_repo: 'remi_php71' } end - it { is_expected.to contain_yumrepo('remi-php71') } + it { is_expected.to contain_yumrepo('remi_php71') } end describe 'when call with version 7.2 on RedHat' do let(:params) do { - version: '7.2' + yum_repo: 'remi_php72' } end - it { is_expected.to contain_yumrepo('remi-php72') } + it { is_expected.to contain_yumrepo('remi_php72') } end end From 564f4190a16704a431afc082b1f477b94254113b Mon Sep 17 00:00:00 2001 From: Brad Koby Date: Wed, 5 Oct 2022 15:47:30 -0400 Subject: [PATCH 7/7] Fix idiosyncrasy in repo name --- manifests/repo/redhat.pp | 8 ++++---- spec/acceptance/repo/php_repo_redhat_spec.rb | 4 ++-- spec/classes/php_repo_redhat_spec.rb | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/manifests/repo/redhat.pp b/manifests/repo/redhat.pp index 7c746dd8..d99d8b1b 100644 --- a/manifests/repo/redhat.pp +++ b/manifests/repo/redhat.pp @@ -13,7 +13,7 @@ /(?i:Amazon)/ => '6', default => '$releasever', # Yum var } - $no_dot_version = $yum_repo.match('php.+$')[0].strip + $version = $yum_repo.match('.\d$')[0] yumrepo { 'remi': descr => 'Remi\'s RPM repository for Enterprise Linux $releasever - $basearch', @@ -24,9 +24,9 @@ priority => 1, } - yumrepo { $yum_repo: - descr => "Remi's PHP ${no_dot_version} RPM repository for Enterprise Linux \$releasever - \$basearch", - mirrorlist => "https://rpms.remirepo.net/enterprise/${releasever}/php${no_dot_version}/mirror", + yumrepo { "remi-php${version}": + descr => "Remi's PHP ${version} RPM repository for Enterprise Linux \$releasever - \$basearch", + mirrorlist => "https://rpms.remirepo.net/enterprise/${releasever}/php${version}/mirror", enabled => 1, gpgcheck => 1, gpgkey => 'https://rpms.remirepo.net/RPM-GPG-KEY-remi', diff --git a/spec/acceptance/repo/php_repo_redhat_spec.rb b/spec/acceptance/repo/php_repo_redhat_spec.rb index bd036811..84c2f098 100644 --- a/spec/acceptance/repo/php_repo_redhat_spec.rb +++ b/spec/acceptance/repo/php_repo_redhat_spec.rb @@ -11,7 +11,7 @@ PUPPET end end - describe yumrepo('remi_php56') do + describe yumrepo('remi-php56') do it { is_expected.to exist } end end @@ -26,7 +26,7 @@ class { 'php::repo::redhat': PUPPET end end - describe yumrepo('remi_php72') do + describe yumrepo('remi-php72') do it { is_expected.to exist } end end diff --git a/spec/classes/php_repo_redhat_spec.rb b/spec/classes/php_repo_redhat_spec.rb index dabe9237..ea1577cc 100644 --- a/spec/classes/php_repo_redhat_spec.rb +++ b/spec/classes/php_repo_redhat_spec.rb @@ -12,7 +12,7 @@ case facts[:osfamily] when 'RedHat' describe 'when called with no parameters on RedHat' do - it { is_expected.to contain_yumrepo('remi_php56') } + it { is_expected.to contain_yumrepo('remi-php56') } end describe 'when called with version 7.0 on RedHat' do @@ -22,7 +22,7 @@ } end - it { is_expected.to contain_yumrepo('remi_php70') } + it { is_expected.to contain_yumrepo('remi-php70') } end describe 'when call with version 7.1 on RedHat' do @@ -32,7 +32,7 @@ } end - it { is_expected.to contain_yumrepo('remi_php71') } + it { is_expected.to contain_yumrepo('remi-php71') } end describe 'when call with version 7.2 on RedHat' do @@ -42,7 +42,7 @@ } end - it { is_expected.to contain_yumrepo('remi_php72') } + it { is_expected.to contain_yumrepo('remi-php72') } end end