Skip to content

Commit 9f2dd0d

Browse files
committed
Merge pull request #233 from juniorsysadmin/package-manage-parameter
(MODULES-1479) Add package_manage parameter
2 parents 15bd628 + 5d821a8 commit 9f2dd0d

File tree

6 files changed

+44
-8
lines changed

6 files changed

+44
-8
lines changed

README.markdown

+13-1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ class { '::ntp':
8888
}
8989
```
9090

91+
###I'd like to configure and run ntp, but I don't need to install it.
92+
93+
```puppet
94+
class { '::ntp':
95+
package_manage => false,
96+
}
97+
```
98+
9199
###Looks great! But I'd like a different template; we need to do something unique here.
92100

93101
```puppet
@@ -168,7 +176,11 @@ Array of trusted keys.
168176

169177
####`package_ensure`
170178

171-
Sets the ntp package to be installed. Can be set to 'present', 'latest', or a specific version.
179+
Sets the ntp package to be installed. Can be set to 'present', 'latest', or a specific version.
180+
181+
####`package_manage`
182+
183+
Determines whether to manage the ntp package. Defaults to true.
172184

173185
####`package_name`
174186

manifests/init.pp

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
$keys_requestkey = $ntp::params::keys_requestkey,
1313
$keys_trusted = $ntp::params::keys_trusted,
1414
$package_ensure = $ntp::params::package_ensure,
15+
$package_manage = $ntp::params::package_manage,
1516
$package_name = $ntp::params::package_name,
1617
$panic = $ntp::params::panic,
1718
$preferred_servers = $ntp::params::preferred_servers,
@@ -36,6 +37,7 @@
3637
validate_re($keys_requestkey, ['^\d+$', ''])
3738
validate_array($keys_trusted)
3839
validate_string($package_ensure)
40+
validate_bool($package_manage)
3941
validate_array($package_name)
4042
validate_bool($panic)
4143
validate_array($preferred_servers)

manifests/install.pp

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
#
22
class ntp::install inherits ntp {
33

4-
package { $package_name:
5-
ensure => $package_ensure,
4+
if $package_manage {
5+
6+
package { $package_name:
7+
ensure => $package_ensure,
8+
}
9+
610
}
711

812
}

manifests/params.pp

+5
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
$default_package_name = ['ntp']
2929
$default_service_name = 'ntpd'
3030

31+
$package_manage = $::osfamily ? {
32+
'FreeBSD' => false,
33+
default => true,
34+
}
35+
3136
case $::osfamily {
3237
'AIX': {
3338
$config = $default_config

spec/acceptance/ntp_install_spec.rb

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
require 'spec_helper_acceptance'
22

3+
packagemanage = true
4+
35
case fact('osfamily')
46
when 'FreeBSD'
57
packagename = 'net/ntp'
@@ -30,9 +32,9 @@
3032
end
3133

3234
describe 'ntp::install class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
33-
it 'installs the package' do
35+
it 'installs the package when package_manage is set to true' do
3436
apply_manifest(%{
35-
class { 'ntp': }
37+
class { 'ntp': package_manage => true }
3638
}, :catch_failures => true)
3739
end
3840

@@ -41,4 +43,10 @@ class { 'ntp': }
4143
it { should be_installed }
4244
end
4345
end
46+
47+
it 'does not install the package when package_manage is set to false' do
48+
apply_manifest(%{
49+
class { 'ntp': package_manage => false }
50+
}, :catch_changes => true)
51+
end
4452
end

spec/classes/ntp_spec.rb

+8-3
Original file line numberDiff line numberDiff line change
@@ -128,21 +128,26 @@
128128
end
129129

130130
describe "ntp::install on #{system}" do
131-
let(:params) {{ :package_ensure => 'present', :package_name => ['ntp'], }}
131+
let(:params) {{ :package_ensure => 'present', :package_name => ['ntp'], :package_manage => true, }}
132132

133133
it { should contain_package('ntp').with(
134134
:ensure => 'present'
135135
)}
136136

137137
describe 'should allow package ensure to be overridden' do
138-
let(:params) {{ :package_ensure => 'latest', :package_name => ['ntp'] }}
138+
let(:params) {{ :package_ensure => 'latest', :package_name => ['ntp'], :package_manage => true, }}
139139
it { should contain_package('ntp').with_ensure('latest') }
140140
end
141141

142142
describe 'should allow the package name to be overridden' do
143-
let(:params) {{ :package_ensure => 'present', :package_name => ['hambaby'] }}
143+
let(:params) {{ :package_ensure => 'present', :package_name => ['hambaby'], :package_manage => true, }}
144144
it { should contain_package('hambaby') }
145145
end
146+
147+
describe 'should allow the package to be unmanaged' do
148+
let(:params) {{ :package_manage => false, :package_name => ['ntp'], }}
149+
it { should_not contain_package('ntp') }
150+
end
146151
end
147152

148153
describe 'ntp::service' do

0 commit comments

Comments
 (0)