X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fferm%2Fmanifests%2Fconf.pp;h=d7691947b38b5ca418a698f5645b71740ac4de8b;hb=e3d8cd6216ecc3fb76582209e55650b7402531fa;hp=dd3bb0c8f4983a74df972febb8c30dbccf7b2543;hpb=e81d2dd357118ed7157fa2fa5107b57f28c3cdf0;p=mirror%2Fdsa-puppet.git diff --git a/modules/ferm/manifests/conf.pp b/modules/ferm/manifests/conf.pp index dd3bb0c8f..d7691947b 100644 --- a/modules/ferm/manifests/conf.pp +++ b/modules/ferm/manifests/conf.pp @@ -1,23 +1,41 @@ -define ferm::conf ($content, $source) { +# +define ferm::conf ( + $source=undef, + $content=undef, + $ensure=present, + $prio="xx-10", +) { + include ferm case $ensure { - present,absent: {} - default: { fail ( "Invald ensure `${ensure}' for ${name}" ) } + present: { + if ! ($source or $content) { + fail ( "No configuration found for ${name}" ) + } + } + absent: {} + default: { fail ( "Unknown ensure value: '$ensure'" ) } } if ($source and $content) { fail ( "Can't define both source and content for ${name}" ) } - if $source { - file { "/etc/ferm/conf.d/${name}": - ensure => $ensure, - source => $source + $fname = "/etc/ferm/conf.d/${prio}_${name}.conf" + + if $content { + file { $fname: + ensure => $ensure, + mode => '0400', + content => $content, + notify => Service['ferm'], } - } elsif $content { - file { "/etc/ferm/conf.d/${name}": - ensure => $ensure, - content => $content, + } else { + file { $fname: + ensure => $ensure, + mode => '0400', + source => $source, + notify => Service['ferm'], } } }