# confdroid_postgresql::bouncer::bouncer_rule.pp
# Module name: confdroid_postgresql
# Author: 12ww1160 (12ww1160@confdroid.com)
# @summary define manages rule entries for bouncer rules
# @see https://www.postgresql.org/docs/9.6/static/auth-pg-hba-conf.html
# @param [String] pl_bouncer_db_name db name for the bouncer rule
# @param [String] pl_bouncer_host IP of the db host to bounce to
# @param [String] pl_bouncer_host_port port of the db host to bounce to
# @param [String] pl_bouncer_user user for the connection. Must be defined in
#   userlist.txt
# @param [String] pl_bouncer_order the order in which the rule should appear
##############################################################################
define confdroid_postgresql::bouncer::bouncer_rule (

  String $pl_bouncer_db_name    = undef,
  String $pl_bouncer_host       = '127.0.0.1',
  String $pl_bouncer_host_port  = '5432',
  String $pl_bouncer_user       = undef,
  String $pl_bouncer_order      = undef,

) {
  $pl_bouncer_ini_file    = $confdroid_postgresql::params::pl_bouncer_ini_file
  $pl_bouncer_ini_erb     = $confdroid_postgresql::params::pl_bouncer_ini_erb
  $pl_bouncer_rule_erb    = $confdroid_postgresql::params::pl_bouncer_rule_erb

  concat::fragment { "pl_bouncer_rule_${name}":
    target  => $pl_bouncer_ini_file,
    content => template($pl_bouncer_rule_erb),
    order   => $pl_bouncer_order,
  }
}
