Skip to content

Commit dd6797d

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

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-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[Float] $dnfmodule = undef,
199200
### END Package Configuration ###
200201

201202
### START Service Configuation ###

manifests/package/redhat.pp

Lines changed: 9 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,14 @@
9495
}
9596
}
9697

98+
if $dnfmodule and ($facts['os']['name'] in ['RedHat', 'CentOS', 'VirtuozzoLinux']) and ($facts['os']['release']['major'] in ['8']) {
99+
package { "nginx:${dnfmodule}":
100+
ensure => present,
101+
before => Package['nginx'],
102+
provider => dnfmodule,
103+
}
104+
}
105+
97106
package { 'nginx':
98107
ensure => $package_ensure,
99108
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 { is_expected.to contain_package('nginx') }
147+
it do
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)