ACK with the following comments
On 02/03/2011 01:25 PM, Mike Orazi wrote:
Seeds aren't set up to be idempotent, so we use puppet to
ensure seeds are only run once per environment. This should
potentially revisited if seeds become more tolerant of re-runs.
---
recipes/deltacloud_recipe/manifests/aggregator.pp | 8 ++++++++
recipes/deltacloud_recipe/manifests/rails.pp | 10 +++++++++-
2 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/recipes/deltacloud_recipe/manifests/aggregator.pp
b/recipes/deltacloud_recipe/manifests/aggregator.pp
index 716d28c..506f1b8 100644
--- a/recipes/deltacloud_recipe/manifests/aggregator.pp
+++ b/recipes/deltacloud_recipe/manifests/aggregator.pp
@@ -14,6 +14,9 @@ class deltacloud::aggregator inherits deltacloud {
'rubygem-deltacloud-image-builder-agent',
'iwhd']}
+ file {"/var/lib/deltacloud-aggregator":
+ ensure => directory,
+ }
Eventually the aggegator/conductor package itself should own this
directory but its fine here for the time being.
### Setup selinux for deltacloud
selinux::mode{"permissive":}
@@ -96,6 +99,11 @@ class deltacloud::aggregator::disabled {
'deltacloud-aggregator-doc'],
Rails::Drop::Db["drop_deltacloud_database"]] }
+ file {"/var/lib/deltacloud-aggregator":
+ ensure => absent,
+ force => true
+ }
+
package { 'rubygem-deltacloud-client':
provider => 'yum', ensure => 'absent',
require => Package['deltacloud-aggregator']}
diff --git a/recipes/deltacloud_recipe/manifests/rails.pp
b/recipes/deltacloud_recipe/manifests/rails.pp
index 701abe3..cc91726 100644
--- a/recipes/deltacloud_recipe/manifests/rails.pp
+++ b/recipes/deltacloud_recipe/manifests/rails.pp
@@ -19,7 +19,14 @@ define rails::seed::db($cwd="", $rails_env=""){
exec{"seed_rails_database":
cwd => $cwd,
environment => "RAILS_ENV=${rails_env}",
- command => "/usr/bin/rake db:seed"}
+ command => "/usr/bin/rake db:seed",
+ creates =>
"/var/lib/deltacloud-aggregator/${rails_env}.seed"
+ }
+
+ file{"/var/lib/deltacloud-aggregator/${rails_env}.seed":
+ ensure => present,
+ recurse => true
+ }
I believe this file macro should require Exec['seed_rails_database'] and
the File['/var/lib/deltacloud-aggregator'] to work properly, else it
might be created before the db:seed is actually run or before the
directory exists. If you could make this change and verify (tested it
myself), just push.
-Mo