diff options
author | James Shubin <james@shubin.ca> | 2013-12-23 16:47:04 -0500 |
---|---|---|
committer | James Shubin <james@shubin.ca> | 2013-12-24 06:42:57 -0500 |
commit | 680a7878af062decc9924dd49fe295e545b527ae (patch) | |
tree | 0e87391768dcd9c58993fe806446cd7f86322b36 /manifests/volume.pp | |
parent | a28e8e4507f70777fd896f7b66ec55eb4181da6d (diff) | |
download | puppet-gluster-680a7878af062decc9924dd49fe295e545b527ae.tar.gz puppet-gluster-680a7878af062decc9924dd49fe295e545b527ae.tar.xz puppet-gluster-680a7878af062decc9924dd49fe295e545b527ae.zip |
Added preliminary Exec['again'] support to puppet-gluster.
* This will make magic things happen faster.
* This doesn't give you an option to disable it.
* This doesn't let you set the timeout.
* This isn't necessarily complete. There might be more notify's needed.
Diffstat (limited to 'manifests/volume.pp')
-rw-r--r-- | manifests/volume.pp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/manifests/volume.pp b/manifests/volume.pp index d16db55..296849d 100644 --- a/manifests/volume.pp +++ b/manifests/volume.pp @@ -27,6 +27,7 @@ define gluster::volume( $start = undef # start volume ? true, false (stop it) or undef ) { include gluster::xml + include gluster::again include gluster::vardir include gluster::volume::base if $ping { @@ -36,6 +37,8 @@ define gluster::volume( #$vardir = $::gluster::vardir::module_vardir # with trailing slash $vardir = regsubst($::gluster::vardir::module_vardir, '\/$', '') + $shorewall = $::gluster::server::shorewall + $settle_count = 3 # three is a reasonable default! $maxlength = 3 if $maxlength < $settle_count { @@ -221,6 +224,10 @@ define gluster::volume( group => root, mode => 755, ensure => present, + # this notify is the first to kick off the 2nd step! it + # was put here after a process of elimination, and this + # location makes a lot of sense: on change exec[again]! + notify => Common::Again::Delta['gluster-exec-again'], require => File["${vardir}/volume/"], } @@ -259,6 +266,10 @@ define gluster::volume( logoutput => on_failure, onlyif => "/usr/sbin/gluster volume list | /bin/grep -qxF '${name}' -", unless => "/usr/sbin/gluster volume status ${name}", # returns false if stopped + notify => $shorewall ? { + false => undef, + default => Common::Again::Delta['gluster-exec-again'], + }, require => $settled ? { # require if type exists false => undef, default => Exec["gluster-volume-create-${name}"], @@ -286,7 +297,6 @@ define gluster::volume( } } - $shorewall = $::gluster::server::shorewall if $shorewall { $zone = $::gluster::server::zone # firewall zone @@ -367,6 +377,7 @@ define gluster::volume( # difference to record, or the sequence hasn't settled # we also check that we have our minimum settle count! onlyif => "/usr/bin/test ! -e '${watchfile}' || ${diff} || /usr/bin/test '1' != '${one}' || /usr/bin/test ${watch_trim_size} -lt ${settle_count}", + notify => Common::Again::Delta['gluster-exec-again'], require => [ File["${vardir}/volume/fsm/${name}/"], # easy way to ensure the transition types don't need to |