| Index: modules/rietveld/manifests/init.pp | 
| =================================================================== | 
| --- a/modules/rietveld/manifests/init.pp | 
| +++ b/modules/rietveld/manifests/init.pp | 
| @@ -2,7 +2,8 @@ | 
| $domain, | 
| $certificate, | 
| $private_key, | 
| - $is_default=false | 
| + $is_default = false, | 
| + $fixtures = hiera('rietveld::fixtures', {}), | 
| ) inherits private::rietveld { | 
| include nginx | 
| @@ -85,4 +86,45 @@ | 
| cwd => "${rietveld_home}", | 
| require => Exec['install_rietveld'], | 
| } | 
| + | 
| + file {"${rietveld_home}/fixtures": | 
| + ensure => directory, | 
| + owner => 'rietveld', | 
| + mode => 0750, | 
| + require => Exec['install_rietveld'], | 
| + } | 
| + | 
| + define fixture( | 
| + $ensure = present, | 
| + $source = undef, | 
| + $content = undef, | 
| + ) { | 
| + | 
| + # Note that $script will return EXIT_SUCCESS when the .type is | 
| + # not recognized - although no action is done then. Thus we enforce | 
| + # JSON here, which is the default for command "dumpdata" anyway: | 
| + $script = "${rietveld::rietveld_home}/manage.py" | 
| + $destination = "${rietveld::rietveld_home}/fixtures/$name.json" | 
| + | 
| + exec {$destination: | 
| + command => shellquote($script, 'loaddata', $destination), | 
| + cwd => $rietveld::rietveld_home, | 
| + refreshonly => true, | 
| + user => 'rietveld', | 
| + } | 
| + | 
| + file {$destination: | 
| + ensure => $ensure, | 
| + content => $content, | 
| + source => $source, | 
| + owner => 'rietveld', | 
| + mode => 0640, | 
| + notify => $ensure ? { | 
| + present => Exec[$destination], | 
| 
 
Felix Dahlke
2015/03/21 21:08:52
So, when the fixture changes, the loaddata call is
 
mathias
2015/03/21 23:16:47
Indeed it does. Of course this is still not meant
 
 | 
| + default => [], | 
| + } | 
| + } | 
| + } | 
| + | 
| + create_resources(rietveld::fixture, $fixtures) | 
| } |