Make storyboard idempotent

Previously the curl command was itself idempotent but this
was transparent to Puppet, meaning the node reported as
always changed. I have, somewhat akwardly, taught Puppet how to
check for changed files on the remote server. It pulls only HTTP
headers to save time/bandwidth.

Change-Id: I539e67f0c82ad91450dd3720512b92518e70c122
This commit is contained in:
Spencer Krum 2014-04-14 20:12:43 -07:00
parent 716abb695f
commit 3ddc335163

View File

@ -166,11 +166,12 @@ class storyboard (
group => 'storyboard',
}
# Using -z here to only download when the tarball has changed.
# Checking last modified time versus mtime on the file
exec { 'get-webclient':
command => "curl ${storyboard_webclient_url} -z ./${tarball} -o ${tarball}",
path => '/bin:/usr/bin',
cwd => '/var/lib/storyboard',
onlyif => "curl -I ${storyboard_webclient_url} -z ./${tarball} | grep '200 OK'",
require => [
File['/var/lib/storyboard'],
Package['curl'],
@ -178,10 +179,11 @@ class storyboard (
}
exec { 'unpack-webclient':
command => "tar -xzf ${tarball}",
path => '/bin:/usr/bin',
cwd => '/var/lib/storyboard',
require => Exec['get-webclient'],
command => "tar -xzf ${tarball}",
path => '/bin:/usr/bin',
cwd => '/var/lib/storyboard',
refreshonly => true,
subscribe => Exec['get-webclient'],
}
file { '/var/lib/storyboard/www':