Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tests/init.pp → examples/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
# Learn more about module testing here:
# https://docs.puppetlabs.com/guides/tests_smoke.html
#
class { '::nscd' :
class { 'nscd' :
service_defaults => true,
}
47 changes: 23 additions & 24 deletions manifests/cache.pp
Original file line number Diff line number Diff line change
@@ -1,39 +1,38 @@
# See README.md for usage information
#
# @param enable
# @param positive_ttl
# @param negative_ttl
# @param suggested_size
# @param check_files
# @param persistent
# @param shared
# @param max_db_size
# @param auto_propagate
#
define nscd::cache (
$enable = $::nscd::params::cache_enable,
$positive_ttl = $::nscd::params::cache_positive_ttl,
$negative_ttl = $::nscd::params::cache_negative_ttl,
$suggested_size = $::nscd::params::cache_suggested_size,
$check_files = $::nscd::params::cache_check_files,
$persistent = $::nscd::params::cache_persistent,
$shared = $::nscd::params::cache_shared,
$max_db_size = $::nscd::params::cache_max_db_size,
$auto_propagate = $::nscd::params::cache_auto_propagate,
Boolean $enable = $nscd::params::cache_enable,
Optional[Integer] $positive_ttl = $nscd::params::cache_positive_ttl,
Optional[Integer] $negative_ttl = $nscd::params::cache_negative_ttl,
Integer $suggested_size = $nscd::params::cache_suggested_size,
Boolean $check_files = $nscd::params::cache_check_files,
Boolean $persistent = $nscd::params::cache_persistent,
Boolean $shared = $nscd::params::cache_shared,
Integer $max_db_size = $nscd::params::cache_max_db_size,
Optional[Boolean] $auto_propagate = $nscd::params::cache_auto_propagate,
) {
# include nscd if not already defined
include nscd

# check that config file is being managed
if ! $::nscd::config_manage {
if ! $nscd::config_manage {
fail('nscd::cache was defined but nscd::config_manage is false')
}

validate_re($name, '^(passwd|group|hosts|services|netgroup)$')
validate_bool($enable, $check_files, $persistent, $shared)
validate_integer($positive_ttl)
validate_integer($negative_ttl)
validate_integer($suggested_size)
validate_integer($max_db_size)

if $auto_propagate {
validate_re($name, '^(passwd|group)$')
validate_bool($auto_propagate)
}

concat::fragment { "config_${name}_fragment" :
target => $::nscd::config_file,
target => $nscd::config_file,
content => template("${module_name}/config_cache.erb"),
order => '10',
notify => Class['::nscd::service'],
notify => Class['nscd::service'],
}
}
6 changes: 3 additions & 3 deletions manifests/config.pp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# PRIVATE CLASS: do not include directly
class nscd::config inherits nscd {
if $::nscd::config_manage {
concat { $::nscd::config_file :
if $nscd::config_manage {
concat { $nscd::config_file :
ensure => present,
owner => 'root',
group => 'root',
Expand All @@ -12,7 +12,7 @@
}

concat::fragment { 'config_header_fragment' :
target => $::nscd::config_file,
target => $nscd::config_file,
content => template("${module_name}/config_header.erb"),
order => '00',
}
Expand Down
96 changes: 53 additions & 43 deletions manifests/init.pp
Original file line number Diff line number Diff line change
@@ -1,51 +1,61 @@
# See README.md for usage information
#
# @param package_manage
# @param package_name
# @param package_ensure
# @param service_manage
# @param service_defaults
# @param service_name
# @param service_ensure
# @param service_enable
# @param service_user_manage
# @param service_user
# @param service_user_uid
# @param service_user_gid
# @param config_manage
# @param config_file
# @param log_file
# @param debug_level
# @param threads
# @param max_threads
# @param stat_user
# @param reload_count
# @param paranoia
# @param restart_interval
#
class nscd (
$package_manage = $::nscd::params::package_manage,
$package_name = $::nscd::params::package_name,
$package_ensure = $::nscd::params::package_ensure,

$service_manage = $::nscd::params::service_manage,
$service_defaults = $::nscd::params::service_defaults,
$service_name = $::nscd::params::service_name,
$service_ensure = $::nscd::params::service_ensure,
$service_enable = $::nscd::params::service_enable,
$service_user_manage = $::nscd::params::service_user_manage,
$service_user = $::nscd::params::service_user,
$service_user_uid = $::nscd::params::service_user_uid,
$service_user_gid = $::nscd::params::service_user_gid,

$config_manage = $::nscd::params::config_manage,
$config_file = $::nscd::params::config_file,

$log_file = $::nscd::params::log_file,
$debug_level = $::nscd::params::debug_level,
$threads = $::nscd::params::threads,
$max_threads = $::nscd::params::max_threads,
$stat_user = $::nscd::params::stat_user,
$reload_count = $::nscd::params::reload_count,
$paranoia = $::nscd::params::paranoia,
$restart_interval = $::nscd::params::restart_interval,
Boolean $package_manage = $nscd::params::package_manage,
String $package_name = $nscd::params::package_name,
String $package_ensure = $nscd::params::package_ensure,
Boolean $service_manage = $nscd::params::service_manage,
Boolean $service_defaults = $nscd::params::service_defaults,
String $service_name = $nscd::params::service_name,
String $service_ensure = $nscd::params::service_ensure,
Boolean $service_enable = $nscd::params::service_enable,
Boolean $service_user_manage = $nscd::params::service_user_manage,
String $service_user = $nscd::params::service_user,
Integer $service_user_uid = $nscd::params::service_user_uid,
Integer $service_user_gid = $nscd::params::service_user_gid,
Boolean $config_manage = $nscd::params::config_manage,
String $config_file = $nscd::params::config_file,
String $log_file = $nscd::params::log_file,
Integer $debug_level = $nscd::params::debug_level,
Integer $threads = $nscd::params::threads,
Integer $max_threads = $nscd::params::max_threads,
Optional[String] $stat_user = $nscd::params::stat_user,
Variant[Integer, String] $reload_count = $nscd::params::reload_count,
Boolean $paranoia = $nscd::params::paranoia,
Integer $restart_interval = $nscd::params::restart_interval,
) inherits nscd::params {
validate_absolute_path($config_file)
validate_absolute_path($log_file)
validate_integer($debug_level, '', 0)
validate_integer($threads, '', 1)
validate_integer($max_threads, '', $threads)
if is_string($reload_count) {
validate_re($reload_count, '^unlimited$')
} else {
validate_integer($reload_count)
}
validate_bool($paranoia)
validate_integer($restart_interval, '', 0)
contain 'nscd::install'
contain 'nscd::config'
contain 'nscd::service'

anchor { '::nscd::begin' : } ->
class { '::nscd::install' : } ->
class { '::nscd::config' : } ->
class { '::nscd::service' : } ->
anchor { '::nscd::end' : }
Class['nscd::install']
-> Class['nscd::config']
~> Class['nscd::service']

if $service_defaults {
class { '::nscd::service_defaults' : }
class { 'nscd::service_defaults' : }
}
}
6 changes: 3 additions & 3 deletions manifests/install.pp
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# PRIVATE CLASS: do not include directly
class nscd::install {
if $::nscd::package_manage {
if $nscd::package_manage {
package { 'nscd' :
ensure => $::nscd::package_ensure,
name => $::nscd::package_name,
ensure => $nscd::package_ensure,
name => $nscd::package_name,
}
}
}
45 changes: 22 additions & 23 deletions manifests/params.pp
Original file line number Diff line number Diff line change
@@ -1,33 +1,32 @@
# PRIVATE CLASS: do not include directly
class nscd::params {
$package_manage = true
$package_name = 'nscd'
$package_ensure = 'installed'
$package_manage = true
$package_name = 'nscd'
$package_ensure = 'installed'

$service_manage = true
$service_defaults = false
$service_name = 'nscd'
$service_ensure = 'running'
$service_enable = true
$service_manage = true
$service_defaults = false
$service_name = 'nscd'
$service_ensure = 'running'
$service_enable = true

$service_user_manage = true
$service_user = 'nscd'
$service_user_uid = 28
$service_user_gid = 28
$service_user = 'nscd'
$service_user_uid = 28
$service_user_gid = 28

$config_manage = true
$config_file = '/etc/nscd.conf'
$config_manage = true
$config_file = '/etc/nscd.conf'

$log_file = '/var/log/nscd.log'
$debug_level = 0
$threads = 4
$max_threads = 32
$stat_user = undef
$reload_count = 5
$paranoia = false
$restart_interval = 3600
$log_file = '/var/log/nscd.log'
$debug_level = 0
$threads = 4
$max_threads = 32
$stat_user = undef
$reload_count = 5
$paranoia = false
$restart_interval = 3600

case $::osfamily {
case $facts['os']['family'] {
'Debian': {
$service_user_shell = '/usr/sbin/nologin'
}
Expand Down
27 changes: 13 additions & 14 deletions manifests/service.pp
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
# PRIVATE CLASS: do no include directly
class nscd::service {
if $::nscd::service_manage {
service { $::nscd::service_name :
ensure => $::nscd::service_ensure,
enable => $::nscd::service_enable,
subscribe => Class['::nscd::config'],
if $nscd::service_manage {
service { $nscd::service_name :
ensure => $nscd::service_ensure,
enable => $nscd::service_enable,
subscribe => Class['nscd::config'],
}

if $::nscd::service_user_manage {
group { $::nscd::service_user :
if $nscd::service_user_manage {
group { $nscd::service_user :
ensure => present,
gid => $::nscd::service_user_uid,
} ->

user { $::nscd::service_user :
gid => $nscd::service_user_uid,
}
-> user { $nscd::service_user :
ensure => present,
uid => $::nscd::service_user_uid,
uid => $nscd::service_user_uid,
comment => 'NSCD Daemon',
home => '/',
system => true,
shell => $::nscd::service_user_shell,
before => Service[$::nscd::service_name],
shell => $nscd::service_user_shell,
before => Service[$nscd::service_name],
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion manifests/service_defaults.pp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
# netgroup caching is known-broken, so disable it in the default config,
# see: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1068889
nscd::cache { 'netgroup' :
enable => $::osfamily != 'Debian',
enable => $facts['os']['family'] != 'Debian',
positive_ttl => 28800,
negative_ttl => 20,
persistent => true,
Expand Down