- move packages from aggregator to other components
    which they belong in

  - ensure rails db is dropped before uninstalling
    aggregator packages

  - cleanup iwhd delay so that it only occurs after
    iwhd is launched and not on every bucket creation

  - small fix to iwhd service to make use of service status

  - small fix to postgres module to initialize db w/ UTF8
---
 contrib/deltacloud_recipe.spec                     |    7 ++-
 recipes/deltacloud_recipe/manifests/aggregator.pp  |   68 +------------------
 .../deltacloud_recipe/manifests/image-factory.pp   |   63 ++++++++++++++++++
 recipes/deltacloud_recipe/manifests/iwhd.pp        |   21 +++++-
 recipes/postgres/manifests/init.pp                 |    2 +-
 5 files changed, 91 insertions(+), 70 deletions(-)

diff --git a/contrib/deltacloud_recipe.spec b/contrib/deltacloud_recipe.spec
index a598101..02ed945 100644
--- a/contrib/deltacloud_recipe.spec
+++ b/contrib/deltacloud_recipe.spec
@@ -3,7 +3,7 @@
 
 Summary:  DeltaCloud Puppet Recipe
 Name:     deltacloud_recipe
-Version:  0.0.3
+Version:  0.0.4
 Release:  1%{?dist}
 
 Group:    Applications/Internet
@@ -49,6 +49,11 @@ rm -rf %{buildroot}
 %{dchome}
 
 %changelog
+* Wed Dec 22 2010 Mohammed Morsi <[email protected]> 0.0.4-1
+- Revamp deltacloud recipe to make it more puppetized,
+  use general purpose firewall, postgres, ntp modules,
+  and to fix many various things
+
 * Wed Sep 29 2010 Mohammed Morsi <[email protected]> 0.0.3-1
 - Renamed package from deltacloud appliance
 - to deltacloud recipe
diff --git a/recipes/deltacloud_recipe/manifests/aggregator.pp 
b/recipes/deltacloud_recipe/manifests/aggregator.pp
index 0072a0f..2be247c 100644
--- a/recipes/deltacloud_recipe/manifests/aggregator.pp
+++ b/recipes/deltacloud_recipe/manifests/aggregator.pp
@@ -3,32 +3,8 @@
 class deltacloud::aggregator inherits deltacloud {
   ### Install the deltacloud components
     # specific versions of these two packages are needed and we need to pull 
the third in
-    package { 'python-imgcreate':
-               provider => 'rpm', ensure => installed,
-               source   => 
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/python-imgcreate-031-1.fc12.1.x86_64.rpm'}
-    package { 'livecd-tools':
-               provider => 'rpm', ensure => installed,
-               source   => 
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/livecd-tools-031-1.fc12.1.x86_64.rpm',
-               require  => Package['python-imgcreate']}
-    package { 'appliance-tools':
-               provider => 'yum', ensure => installed,
-               require  => Package["livecd-tools", "python-imgcreate"]}
-
-    # TODO:  Fix me, find a better way to do this...
-    # We need to also install this rpm from amazon
-    package{"ec2-ami-tools":
-            provider => "rpm",
-            source => 
"http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm";,
-            ensure => 'installed' }
-
      package { 'rubygem-deltacloud-client':
                  provider => 'yum', ensure => 'installed' }
-     package { 'rubygem-deltacloud-image-builder-agent':
-                 provider => 'yum', ensure => 'installed',
-                 require  => Package['appliance-tools', 'livecd-tools', 
'python-imgcreate', 'ec2-ami-tools']}
-     package { 'iwhd':
-                provider => 'yum', ensure => 'installed' }
-
 
      package {['deltacloud-aggregator',
                'deltacloud-aggregator-daemons',
@@ -99,49 +75,13 @@ class deltacloud::aggregator::disabled {
 
     package {'deltacloud-aggregator':
               provider => 'yum', ensure => 'absent',
-              require  => Package['deltacloud-aggregator-daemons',
-                                  'deltacloud-aggregator-doc'] }
+              require  => [Package['deltacloud-aggregator-daemons',
+                                   'deltacloud-aggregator-doc'],
+                           Rails::Drop::Db["drop_deltacloud_database"]] }
+
     package { 'rubygem-deltacloud-client':
                 provider => 'yum', ensure => 'absent',
                 require  => Package['deltacloud-aggregator']}
-    package { 'rubygem-deltacloud-image-builder-agent':
-                provider => 'yum', ensure => 'absent',
-                require  => Package['deltacloud-aggregator']}
-    package { 'iwhd':
-                provider => 'yum', ensure => 'absent',
-                require  => [Package['deltacloud-aggregator'], 
Service['iwhd']]}
-
-    # FIXME these lingering dependencies, pulled in for
-    # rubygem-deltacloud-image-builder-agent, need to be removed as
-    # ec2-ami-tools and appliance-tools depend on them and using
-    # 'absent' in the context of the 'yum' provider dispatches
-    # to 'rpm -e' instead of 'yum erase'
-    package { ['rubygem-boxgrinder-build-ec2-platform-plugin',
-               'rubygem-boxgrinder-build-centos-os-plugin',
-               'rubygem-boxgrinder-build-fedora-os-plugin']:
-               provider => "yum", ensure => 'absent',
-               require  => Package['rubygem-deltacloud-image-builder-agent']}
-    package { 'rubygem-boxgrinder-build-rhel-os-plugin':
-               provider => "yum", ensure => 'absent',
-               require  => 
Package['rubygem-boxgrinder-build-centos-os-plugin']}
-    package { 'rubygem-boxgrinder-build-rpm-based-os-plugin':
-               provider => "yum", ensure => 'absent',
-               require  => Package['rubygem-boxgrinder-build-rhel-os-plugin',
-                                   
'rubygem-boxgrinder-build-fedora-os-plugin']}
-
-    package { 'ec2-ami-tools':
-               provider => "yum", ensure => 'absent',
-               require  => 
Package['rubygem-boxgrinder-build-ec2-platform-plugin']}
-    package { 'appliance-tools':
-               provider => 'yum', ensure => 'absent',
-               require  => 
Package['rubygem-boxgrinder-build-rpm-based-os-plugin']}
-    package { 'livecd-tools':
-               provider => 'yum', ensure => 'absent',
-               require  => Package['appliance-tools']}
-    package { 'python-imgcreate':
-               provider => 'yum', ensure => 'absent',
-               require  => Package['appliance-tools', 'livecd-tools']}
-
 
   ### Stop the deltacloud services
     service { ['condor', 'httpd']:
diff --git a/recipes/deltacloud_recipe/manifests/image-factory.pp 
b/recipes/deltacloud_recipe/manifests/image-factory.pp
index 0888dd8..e82be1f 100644
--- a/recipes/deltacloud_recipe/manifests/image-factory.pp
+++ b/recipes/deltacloud_recipe/manifests/image-factory.pp
@@ -1,6 +1,31 @@
 # Deltacloud image factory puppet definitions
 
 class deltacloud::image-factory inherits deltacloud {
+  ### Install the deltacloud components
+    # specific versions of these two packages are needed and we need to pull 
the third in
+    package { 'python-imgcreate':
+               provider => 'rpm', ensure => installed,
+               source   => 
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/python-imgcreate-031-1.fc12.1.x86_64.rpm'}
+    package { 'livecd-tools':
+               provider => 'rpm', ensure => installed,
+               source   => 
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/livecd-tools-031-1.fc12.1.x86_64.rpm',
+               require  => Package['python-imgcreate']}
+    package { 'appliance-tools':
+               provider => 'yum', ensure => installed,
+               require  => Package["livecd-tools", "python-imgcreate"]}
+
+    # TODO:  Fix me, find a better way to do this...
+    # We need to also install this rpm from amazon
+    package{"ec2-ami-tools":
+            provider => "rpm",
+            source => 
"http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm";,
+            ensure => 'installed' }
+
+    package { 'rubygem-deltacloud-image-builder-agent':
+                provider => 'yum', ensure => 'installed',
+                require  => Package['appliance-tools', 'livecd-tools', 
'python-imgcreate', 'ec2-ami-tools']}
+
+
   ### Configure boxgrinder, this should go into the boxgrinder rpms eventually
     file { "/boxgrinder": ensure => "directory"}
     file { "/boxgrinder/appliances":
@@ -74,6 +99,44 @@ class deltacloud::image-factory::disabled {
         hasstatus => true,
         enable  => false}
 
+
+  ### Uninstall the deltacloud components
+    package { 'rubygem-deltacloud-image-builder-agent':
+                provider => 'yum', ensure => 'absent',
+                require  => Package['deltacloud-aggregator']}
+
+    # FIXME these lingering dependencies, pulled in for
+    # rubygem-deltacloud-image-builder-agent, need to be removed as
+    # ec2-ami-tools and appliance-tools depend on them and using
+    # 'absent' in the context of the 'yum' provider dispatches
+    # to 'rpm -e' instead of 'yum erase'
+    package { ['rubygem-boxgrinder-build-ec2-platform-plugin',
+               'rubygem-boxgrinder-build-centos-os-plugin',
+               'rubygem-boxgrinder-build-fedora-os-plugin']:
+               provider => "yum", ensure => 'absent',
+               require  => Package['rubygem-deltacloud-image-builder-agent']}
+    package { 'rubygem-boxgrinder-build-rhel-os-plugin':
+               provider => "yum", ensure => 'absent',
+               require  => 
Package['rubygem-boxgrinder-build-centos-os-plugin']}
+    package { 'rubygem-boxgrinder-build-rpm-based-os-plugin':
+               provider => "yum", ensure => 'absent',
+               require  => Package['rubygem-boxgrinder-build-rhel-os-plugin',
+                                   
'rubygem-boxgrinder-build-fedora-os-plugin']}
+
+    package { 'ec2-ami-tools':
+               provider => "yum", ensure => 'absent',
+               require  => 
Package['rubygem-boxgrinder-build-ec2-platform-plugin']}
+    package { 'appliance-tools':
+               provider => 'yum', ensure => 'absent',
+               require  => 
Package['rubygem-boxgrinder-build-rpm-based-os-plugin']}
+    package { 'livecd-tools':
+               provider => 'yum', ensure => 'absent',
+               require  => Package['appliance-tools']}
+    package { 'python-imgcreate':
+               provider => 'yum', ensure => 'absent',
+               require  => Package['appliance-tools', 'livecd-tools']}
+
+
   ### Destroy and cleanup deltacloud artifacts
     exec{"remove_deltacloud_templates": command => "/bin/rm -rf /templates"}
     exec{"remove_boxgrinder_dir":       command => "/bin/rm -rf /boxgrinder"}
diff --git a/recipes/deltacloud_recipe/manifests/iwhd.pp 
b/recipes/deltacloud_recipe/manifests/iwhd.pp
index 9711b75..b756735 100644
--- a/recipes/deltacloud_recipe/manifests/iwhd.pp
+++ b/recipes/deltacloud_recipe/manifests/iwhd.pp
@@ -1,6 +1,10 @@
 # Deltacloud iwhd puppet definitions
 
 class deltacloud::iwhd inherits deltacloud {
+  ### Install the deltacloud components
+    package { 'iwhd':
+               provider => 'yum', ensure => 'installed' }
+
   ### Start the deltacloud services
     file { "/data":    ensure => 'directory' }
     file { "/data/db": ensure => 'directory' }
@@ -11,8 +15,15 @@ class deltacloud::iwhd inherits deltacloud {
     service { 'iwhd':
       ensure  => 'running',
       enable  => true,
+      hasstatus => true,
       require => [Package['iwhd'],
                   Service[mongod]]}
+
+    # XXX ugly hack but iwhd might take some time to come up
+    exec{"iwhd_startup_pause":
+                command => "/bin/sleep 2",
+                unless  => '/usr/bin/curl http://localhost:9090',
+                require => Service[iwhd]}
 }
 
 class deltacloud::iwhd::disabled {
@@ -25,15 +36,17 @@ class deltacloud::iwhd::disabled {
       ensure  => 'stopped',
       enable  => false,
       hasstatus => true}
+
+
+  ### Uninstall the deltacloud components
+    package { 'iwhd':
+                provider => 'yum', ensure => 'absent',
+                require  => [Package['deltacloud-aggregator'], 
Service['iwhd']]}
 }
 
 # Create a named bucket in iwhd
 define deltacloud::create_bucket(){
   package{'curl': ensure => 'installed'}
-  # XXX ugly hack but iwhd might take some time to come up
-  exec{"iwhd_startup_pause":
-              command => "/bin/sleep 2",
-              require => Service[iwhd]}
   exec{"create-bucket-${name}":
          command => "/usr/bin/curl -X PUT http://localhost:9090/templates";,
          require => [Exec['iwhd_startup_pause'], Package[curl]] }
diff --git a/recipes/postgres/manifests/init.pp 
b/recipes/postgres/manifests/init.pp
index 4a4fb5e..fad0b6e 100644
--- a/recipes/postgres/manifests/init.pp
+++ b/recipes/postgres/manifests/init.pp
@@ -39,7 +39,7 @@ class postgres::server inherits postgres {
     }
 
     exec { "pginitdb":
-        command         => "/usr/bin/initdb --pgdata='/var/lib/pgsql/data'",
+        command         => "/usr/bin/initdb --pgdata='/var/lib/pgsql/data' -E 
UTF8",
         user            => "postgres",
         group           => "postgres",
         creates         => "/var/lib/pgsql/data/PG_VERSION",
-- 
1.7.2.3

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to