From 52a1f6e6538592b29a8e6e5b189ab43f27e6dd50 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Fri, 28 Aug 2015 15:07:23 -0500 Subject: [PATCH] Add an ensure option to nginx::resource::upstream::member. Currently there is no way to ensure => absent. I'm using these with stored configs to have servers register the member only, not the upstream. Removing them in a mis-configured incident is a bit of a burden without ensure => absent. Tests are passing under Ruby 2.1 --- manifests/resource/upstream/member.pp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/manifests/resource/upstream/member.pp b/manifests/resource/upstream/member.pp index 2ca5b55..60bac7b 100644 --- a/manifests/resource/upstream/member.pp +++ b/manifests/resource/upstream/member.pp @@ -9,6 +9,7 @@ # # # Parameters: +# [*ensure*] - Enables or disables the specified member (present|absent) # [*upstream*] - The name of the upstream resource # [*server*] - Hostname or IP of the upstream member server # [*port*] - Port of the listening service on the upstream member @@ -20,6 +21,7 @@ # Exporting the resource on a upstream member server: # # @@nginx::resource::upstream::member { $::fqdn: +# ensure => present, # upstream => 'proxypass', # server => $::ipaddress, # port => '3000', @@ -35,12 +37,22 @@ define nginx::resource::upstream::member ( $upstream, $server, + $ensure = 'present', $port = '80', $upstream_fail_timeout = '10s', ) { + validate_re($ensure, '^(present|absent)$', + "${ensure} is not supported for ensure. Allowed values are 'present' and 'absent'.") + + $ensure_real = $ensure ? { + 'absent' => absent, + default => present, + } + # Uses: $server, $port, $upstream_fail_timeout concat::fragment { "${upstream}_upstream_member_${name}": + ensure => $ensure_real, target => "${::nginx::config::conf_dir}/conf.d/${upstream}-upstream.conf", order => 40, content => template('nginx/conf.d/upstream_member.erb'),