- 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
---
 deltacloud_recipe/manifests/aggregator.pp    |   68 +------------------------
 deltacloud_recipe/manifests/image-factory.pp |   62 +++++++++++++++++++++++
 deltacloud_recipe/manifests/iwhd.pp          |   19 ++++++--
 3 files changed, 80 insertions(+), 69 deletions(-)

diff --git a/deltacloud_recipe/manifests/aggregator.pp 
b/deltacloud_recipe/manifests/aggregator.pp
index 0072a0f..7de7a26 100644
--- a/deltacloud_recipe/manifests/aggregator.pp
+++ b/deltacloud_recipe/manifests/aggregator.pp
@@ -2,33 +2,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 +74,12 @@ 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/deltacloud_recipe/manifests/image-factory.pp 
b/deltacloud_recipe/manifests/image-factory.pp
index 0888dd8..8023fd5 100644
--- a/deltacloud_recipe/manifests/image-factory.pp
+++ b/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,43 @@ 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/deltacloud_recipe/manifests/iwhd.pp 
b/deltacloud_recipe/manifests/iwhd.pp
index 9711b75..e3b7435 100644
--- a/deltacloud_recipe/manifests/iwhd.pp
+++ b/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,14 @@ 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 +35,16 @@ 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]] }
-- 
1.7.2.3

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

Reply via email to