Skip to content

Commit fd5bf2c

Browse files
Add support for AppStream package installation
1 parent f8b6ae8 commit fd5bf2c

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
@@ -204,6 +204,7 @@
204204
$passenger_package_ensure = 'present',
205205
String[1] $passenger_package_name = $nginx::params::passenger_package_name,
206206
Optional[Stdlib::HTTPUrl] $repo_source = undef,
207+
Optional[String[1]] $dnfmodule = undef,
207208
### END Package Configuration ###
208209

209210
### 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
@@ -103,6 +104,15 @@
103104
}
104105
}
105106

107+
if $dnfmodule and fact('os.family') == 'RedHat' and versioncmp(fact('os.release.full'), '8.0') >= 0 {
108+
package { "nginx:${dnfmodule}":
109+
ensure => $dnfmodule,
110+
name => 'nginx',
111+
provider => 'dnfmodule',
112+
enable_only => true,
113+
}
114+
}
115+
106116
package { 'nginx':
107117
ensure => $package_ensure,
108118
name => $package_name,

spec/classes/nginx_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,24 @@
151151
end
152152
end
153153

154+
context 'dnfmodule => 1.18' do
155+
let(:params) { { dnfmodule: '1.18' } }
156+
157+
if %w[8].include?(facts.dig(:os, 'release', 'major'))
158+
it do
159+
is_expected.to contain_package('nginx')
160+
is_expected.to contain_package('nginx:1.18').with(
161+
'ensure' => 'present',
162+
'before' => Package['nginx'],
163+
'provider' => 'dnfmodule'
164+
)
165+
end
166+
else
167+
it { is_expected.to contain_package('nginx') }
168+
it { is_expected.not_to contain_package('nginx:1.18') }
169+
end
170+
end
171+
154172
when 'Debian'
155173
context 'using defaults' do
156174
it { is_expected.to contain_package('nginx') }

0 commit comments

Comments
 (0)