Defined Type: postfix::map
- Defined in:
- manifests/map.pp
Summary
Create a Postfix map fileOverview
Creates Postfix “map” files. It will create “$name”, and then build “$name.db” using the “postmap” command. The map file can then be referred to using postfix::config.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'manifests/map.pp', line 37
define postfix::map (
Enum['present', 'absent'] $ensure = 'present',
Optional[Variant[Array[String], String]] $source = undef,
Optional[Variant[Sensitive[String], String]] $content = undef,
String[1] $type = 'hash',
Optional[Stdlib::Absolutepath] $path = undef,
Stdlib::Filemode $mode = '0640',
) {
include postfix
include postfix::params
$_path = pick($path, "${postfix::confdir}/${name}")
if (!defined(Class['postfix'])) {
fail 'You must define class postfix before using postfix::config!'
}
if $source and $content {
fail 'You must provide either \'source\' or \'content\', not both'
}
$_generated_suffix = $type ? {
'cdb' => 'cdb',
'dbm' => 'dir',
'lmdb' => 'lmdb',
'sdbm' => 'dir',
default => 'db',
}
# CIDR and PCRE maps need a postfix reload, but not a postmap
if $type =~ /^(cidr|pcre|regexp)$/ {
$manage_notify = Service['postfix']
} else {
if $ensure == 'present' {
$manage_notify = Exec["generate ${name}.${_generated_suffix}"]
} else {
$manage_notify = undef
}
}
file { "postfix map ${name}":
ensure => $ensure,
path => $_path,
source => $source,
content => $content,
owner => 'root',
group => 'postfix',
mode => $mode,
require => Package['postfix'],
notify => $manage_notify,
}
if $type !~ /^(cidr|pcre|regexp)$/ {
file { "postfix map ${name}.${_generated_suffix}":
ensure => $ensure,
path => "${_path}.${_generated_suffix}",
owner => 'root',
group => 'postfix',
mode => $mode,
require => File["postfix map ${name}"],
notify => $manage_notify,
}
}
$generate_cmd = $ensure ? {
'absent' => "rm ${_path}.${_generated_suffix}",
'present' => "postmap ${type}:${_path}",
}
exec { "generate ${name}.${_generated_suffix}":
command => $generate_cmd,
path => $facts['path'],
#creates => "${name}.db", # this prevents postmap from being run !
refreshonly => true,
}
}
|