Allow blank destinations
Allow blank destinations

It's possible to have a blank destination. A typical use case is discarding
everything except one domain[1].

example.org :
.example.org :
* discard:

One would implement this using puppet-postfix as follows:

postfix::transport { ['example.org', '.example.org']:
  destination => '',
}
postfix::transport { '*':
  destination => 'discard',
}

However, this will result into an error:

err: /Stage[main]/MyClass/Postfix::Transport[example.org]/Augeas[Postfix transport - example.org]: Could not evaluate: Save failed with return code false
err: /Stage[main]/MyClass/Postfix::Transport[.example.org]/Augeas[Postfix transport - .example.org]: Could not evaluate: Save failed with return code false

The solution is to use clear instead of set if the destination is empty. This
patch changes the destination to follow a similar pattern as nexthop. For
convenience it also adds a default to destination since that can now be handled
properly. Thus the following works.

postfix::transport { ['example.org', '.example.org']:
}
postfix::transport { '*':
  destination => 'discard',
}

[1]: http://dannyman.toldme.com/2008/09/15/howto-postfix-deliver-external-devnull/

alexjfisher/puppet-postfix,micah/puppet-postfix,craigwatson/puppet-postfix,saimonn/puppet-postfix,camptocamp/puppet-postfix,alexjfisher/puppet-postfix,micah/puppet-postfix,camptocamp/puppet-postfix,mcanevet/puppet-postfix,saimonn/puppet-postfix,mcanevet/puppet-postfix,craigwatson/puppet-postfix