Skip to content

Commit 09bb47c

Browse files
Add support for AppStream package installation
1 parent fffe7a3 commit 09bb47c

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

manifests/init.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@
196196
$passenger_package_ensure = 'present',
197197
String[1] $passenger_package_name = $nginx::params::passenger_package_name,
198198
Optional[Stdlib::HTTPUrl] $repo_source = undef,
199+
Optional[String[1]] $dnfmodule = undef,
199200
### END Package Configuration ###
200201

201202
### START Service Configuation ###

manifests/package/redhat.pp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
$passenger_package_name = $nginx::passenger_package_name
1010
$manage_repo = $nginx::manage_repo
1111
$purge_passenger_repo = $nginx::purge_passenger_repo
12+
$dnfmodule = $nginx::dnfmodule
1213

1314
#Install the CentOS-specific packages on that OS, otherwise assume it's a RHEL
1415
#clone and provide the Red Hat-specific package. This comes into play when not
@@ -94,6 +95,15 @@
9495
}
9596
}
9697

98+
if $dnfmodule and fact('os.family') == 'RedHat' and versioncmp(fact('os.release.full'), '8.0') >= 0 {
99+
package { "nginx:${dnfmodule}":
100+
ensure => $dnfmodule,
101+
name => 'nginx',
102+
provider => 'dnfmodule',
103+
enable_only => true,
104+
}
105+
}
106+
97107
package { 'nginx':
98108
ensure => $package_ensure,
99109
name => $package_name,

spec/classes/nginx_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,24 @@
139139
end
140140
end
141141

142+
context 'dnfmodule => 1.18' do
143+
let(:params) { { dnfmodule: '1.18' } }
144+
145+
if %w[8].include?(facts.dig(:os, 'release', 'major'))
146+
it do
147+
is_expected.to contain_package('nginx')
148+
is_expected.to contain_package('nginx:1.18').with(
149+
'ensure' => 'present',
150+
'before' => 'Package[nginx]',
151+
'provider' => 'dnfmodule'
152+
)
153+
end
154+
else
155+
it { is_expected.to contain_package('nginx') }
156+
it { is_expected.not_to contain_package('nginx:1.18') }
157+
end
158+
end
159+
142160
when 'Debian'
143161
context 'using defaults' do
144162
it { is_expected.to contain_package('nginx') }

0 commit comments

Comments
 (0)