diff --git a/manifests/params.pp b/manifests/params.pp index 70fbdba444..0303d026a6 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -109,7 +109,11 @@ $psql_path = pick($psql_path, "${bindir}/psql") $perl_package_name = pick($perl_package_name, 'perl-DBD-Pg') - $python_package_name = pick($python_package_name, 'python-psycopg2') + if $facts['os']['family'] == 'RedHat' and versioncmp($facts['os']['release']['major'], '8') >= 0 { + $python_package_name = pick($python_package_name, 'python3-psycopg2') + } else { + $python_package_name = pick($python_package_name, 'python-psycopg2') + } if $postgresql::globals::postgis_package_name { $postgis_package_name = $postgresql::globals::postgis_package_name diff --git a/spec/unit/classes/lib/python_spec.rb b/spec/unit/classes/lib/python_spec.rb index cfc5afdae5..a0b8941894 100644 --- a/spec/unit/classes/lib/python_spec.rb +++ b/spec/unit/classes/lib/python_spec.rb @@ -22,6 +22,25 @@ } end + describe 'on a redhat based os with python 3' do + let :facts do + { + os: { + family: 'RedHat', + name: 'RedHat', + release: { 'full' => '8.2', 'major' => '8' }, + }, + } + end + + it { + is_expected.to contain_package('python-psycopg2').with( + name: 'python3-psycopg2', + ensure: 'present', + ) + } + end + describe 'on a debian based os' do let :facts do {