I updated the patch and have pushed. See below for details.
----- Original Message -----
Sets the default settings to ensure packages exist in
deltacloud-configure
but leave installed packages as is in deltacloud-cleanup
---
bin/deltacloud-cleanup | 1 +
bin/deltacloud-configure | 1 +
.../lib/puppet/parser/functions/return_if.rb | 7 ++
recipes/deltacloud_recipe/manifests/aggregator.pp | 70 ++++++++-------
recipes/deltacloud_recipe/manifests/core.pp | 16 ++--
recipes/deltacloud_recipe/manifests/deltacloud.pp | 5 +
.../deltacloud_recipe/manifests/image-factory.pp | 92
++++++++++---------
recipes/deltacloud_recipe/manifests/iwhd.pp | 23 +++--
8 files changed, 123 insertions(+), 92 deletions(-)
create mode 100644
recipes/deltacloud_recipe/lib/puppet/parser/functions/return_if.rb
diff --git a/bin/deltacloud-cleanup b/bin/deltacloud-cleanup
index a988f52..5cd1e75 100755
--- a/bin/deltacloud-cleanup
+++ b/bin/deltacloud-cleanup
@@ -1,5 +1,6 @@
#!/bin/sh
export FACTER_DELTACLOUD_ENABLE_SECURITY=true
+export FACTER_AEOLUS_ENABLE_PACKAGES=false
puppet /usr/share/deltacloud-configure/deltacloud_uninstall.pp \
--modulepath=/usr/share/deltacloud-configure/modules/
diff --git a/bin/deltacloud-configure b/bin/deltacloud-configure
index bfd340e..b8ca3fc 100755
--- a/bin/deltacloud-configure
+++ b/bin/deltacloud-configure
@@ -1,5 +1,6 @@
#!/bin/sh
export FACTER_DELTACLOUD_ENABLE_SECURITY=true
+export FACTER_AEOLUS_ENABLE_PACKAGES=true
puppet /usr/share/deltacloud-configure/deltacloud_recipe.pp \
--modulepath=/usr/share/deltacloud-configure/modules/
diff --git
a/recipes/deltacloud_recipe/lib/puppet/parser/functions/return_if.rb
b/recipes/deltacloud_recipe/lib/puppet/parser/functions/return_if.rb
new file mode 100644
index 0000000..0e943ea
--- /dev/null
+++
b/recipes/deltacloud_recipe/lib/puppet/parser/functions/return_if.rb
@@ -0,0 +1,7 @@
+module Puppet::Parser::Functions
+ newfunction(:return_if, :type => :rvalue) do |args|
+ condition = args[0]
+ value = args[1]
+ condition ? value : []
+ end
+end
diff --git a/recipes/deltacloud_recipe/manifests/aggregator.pp
b/recipes/deltacloud_recipe/manifests/aggregator.pp
index f2bcc8f..8ffe3ea 100644
--- a/recipes/deltacloud_recipe/manifests/aggregator.pp
+++ b/recipes/deltacloud_recipe/manifests/aggregator.pp
@@ -3,16 +3,18 @@
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 { 'rubygem-deltacloud-client':
- provider => 'yum', ensure => 'installed', require =>
Yumrepo['deltacloud_arch', 'deltacloud_noarch'] }
-
- package {['deltacloud-aggregator',
- 'deltacloud-aggregator-daemons',
- 'deltacloud-aggregator-doc']:
- provider => 'yum', ensure => 'installed',
- require => Package['rubygem-deltacloud-client',
- 'rubygem-deltacloud-image-builder-agent',
- 'iwhd']}
+ if $enable_packages {
+ package { 'rubygem-deltacloud-client':
+ provider => 'yum', ensure => 'installed', require =>
Yumrepo['deltacloud_arch', 'deltacloud_noarch'] }
+
+ package {['deltacloud-aggregator',
+ 'deltacloud-aggregator-daemons',
+ 'deltacloud-aggregator-doc']:
+ provider => 'yum', ensure => 'installed',
+ require => Package['rubygem-deltacloud-client',
+ 'rubygem-deltacloud-image-builder-agent',
+ 'iwhd']}
+ }
file {"/var/lib/deltacloud-aggregator":
ensure => directory,
@@ -27,7 +29,7 @@ class deltacloud::aggregator inherits deltacloud {
### Start the deltacloud services
file {"/var/lib/condor/condor_config.local":
source => "puppet:///modules/deltacloud_recipe/condor_config.local",
- require => Package['deltacloud-aggregator-daemons'] }
+ require => return_if($enable_packages,
Package['deltacloud-aggregator-daemons']) }
service { 'condor':
ensure => 'running',
enable => true,
@@ -38,7 +40,7 @@ class deltacloud::aggregator inherits deltacloud {
ensure => 'running',
enable => true,
hasstatus => true,
- require => [Package['deltacloud-aggregator-daemons'],
+ require => [return_if($enable_packages,
Package['deltacloud-aggregator-daemons']),
Rails::Seed::Db[seed_deltacloud_database],
Service[condor]] }
@@ -87,7 +89,7 @@ class deltacloud::aggregator inherits deltacloud {
rails::create::db{"create_deltacloud_database":
cwd => "/usr/share/deltacloud-aggregator",
rails_env => "production",
- require => [Postgres::User[dcloud],
Package['deltacloud-aggregator']]}
+ require => [Postgres::User[dcloud], return_if($enable_packages,
Package['deltacloud-aggregator'])] }
rails::migrate::db{"migrate_deltacloud_database":
cwd => "/usr/share/deltacloud-aggregator",
rails_env => "production",
@@ -105,7 +107,7 @@ class deltacloud::aggregator inherits deltacloud {
hasstatus => "false",
pattern => "solr",
ensure => 'running',
- require => [Package['deltacloud-aggregator'],
Rails::Create::Db['create_deltacloud_database']]}
+ require => [return_if($enable_packages,
Package['deltacloud-aggregator']),
Rails::Create::Db['create_deltacloud_database']]}
exec{"build_solr_index":
cwd => "/usr/share/deltacloud-aggregator",
@@ -124,30 +126,34 @@ class deltacloud::aggregator inherits deltacloud
{
class deltacloud::aggregator::disabled {
### Uninstall the deltacloud components
- package {['deltacloud-aggregator-daemons',
- 'deltacloud-aggregator-doc']:
- provider => 'yum', ensure => 'absent',
- require => Service['deltacloud-aggregator',
- 'deltacloud-condor_refreshd',
- 'deltacloud-dbomatic',
- 'imagefactoryd',
- 'deltacloud-image_builder_service']}
-
- package {'deltacloud-aggregator':
- provider => 'yum', ensure => 'absent',
- require => [Package['deltacloud-aggregator-daemons',
- 'deltacloud-aggregator-doc'],
- Service['solr'],
- Rails::Drop::Db["drop_deltacloud_database"]] }
+ if $enable_packages {
+ package {['deltacloud-aggregator-daemons',
+ 'deltacloud-aggregator-doc']:
+ provider => 'yum', ensure => 'absent',
+ require => Service['deltacloud-aggregator',
+ 'deltacloud-condor_refreshd',
+ 'deltacloud-dbomatic',
+ 'imagefactoryd',
+ 'deltacloud-image_builder_service']}
+
+ package {'deltacloud-aggregator':
+ provider => 'yum', ensure => 'absent',
+ require => [Package['deltacloud-aggregator-daemons',
+ 'deltacloud-aggregator-doc'],
+ Service['solr'],
+ 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']}
+ if $enable_packages {
+ package { 'rubygem-deltacloud-client':
+ provider => 'yum', ensure => 'absent',
+ require => Package['deltacloud-aggregator']}
+ }
### Stop the deltacloud services
service { 'condor':
diff --git a/recipes/deltacloud_recipe/manifests/core.pp
b/recipes/deltacloud_recipe/manifests/core.pp
index 443268d..0c649d5 100644
--- a/recipes/deltacloud_recipe/manifests/core.pp
+++ b/recipes/deltacloud_recipe/manifests/core.pp
@@ -2,8 +2,10 @@
class deltacloud::core inherits deltacloud {
### Install the deltacloud components
- package { 'rubygem-deltacloud-core':
- provider => 'yum', ensure => 'installed', require =>
Yumrepo['deltacloud_arch', 'deltacloud_noarch']}
+ if $enable_packages {
+ package { 'rubygem-deltacloud-core':
+ provider => 'yum', ensure => 'installed', require =>
Yumrepo['deltacloud_arch', 'deltacloud_noarch']}
+ }
file { "/var/log/deltacloud-core": ensure => 'directory' }
### we need to sync time to communicate w/ cloud providers
@@ -16,15 +18,17 @@ class deltacloud::core inherits deltacloud {
service { 'deltacloud-core':
ensure => 'running',
enable => true,
- require => [Package['rubygem-deltacloud-core'],
+ require => [return_if($enable_packages,
Package['rubygem-deltacloud-core']),
File['/etc/init.d/deltacloud-core']] }
}
class deltacloud::core::disabled {
### Uninstall the deltacloud components
- package { 'rubygem-deltacloud-core':
- provider => 'yum', ensure => 'absent',
- require => Service['deltacloud-core']}
+ if $enable_packages {
+ package { 'rubygem-deltacloud-core':
+ provider => 'yum', ensure => 'absent',
+ require => Service['deltacloud-core']}
+ }
### Stop the deltacloud services
service { 'deltacloud-core':
diff --git a/recipes/deltacloud_recipe/manifests/deltacloud.pp
b/recipes/deltacloud_recipe/manifests/deltacloud.pp
index c7693c1..4c6cdb6 100644
--- a/recipes/deltacloud_recipe/manifests/deltacloud.pp
+++ b/recipes/deltacloud_recipe/manifests/deltacloud.pp
@@ -20,6 +20,11 @@ if $deltacloud_enable_security == "true" or
$deltacloud_enable_security == "1" {
$enable_security = false
}
+if $aeolus_enable_packages == "true" or $aeolus_enable_packages ==
"1" {
+ $enable_packages = true
+} else {
+ $enable_packages = false
+}
# Base deltacloud class
class deltacloud {
diff --git a/recipes/deltacloud_recipe/manifests/image-factory.pp
b/recipes/deltacloud_recipe/manifests/image-factory.pp
index c584d5a..6d4be23 100644
--- a/recipes/deltacloud_recipe/manifests/image-factory.pp
+++ b/recipes/deltacloud_recipe/manifests/image-factory.pp
@@ -3,14 +3,16 @@
class deltacloud::image-factory inherits deltacloud {
# 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' }
+ if $enable_packages {
+ 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['ec2-ami-tools'], Yumrepo['deltacloud_arch',
'deltacloud_noarch']]}
+ package { 'rubygem-deltacloud-image-builder-agent':
+ provider => 'yum', ensure => 'installed',
+ require => [Package['ec2-ami-tools'], Yumrepo['deltacloud_arch',
'deltacloud_noarch']]}
+ }
### Configure boxgrinder, this should go into the boxgrinder rpms
eventually
@@ -49,12 +51,12 @@ class deltacloud::image-factory inherits
deltacloud {
ensure => 'running',
enable => true,
require => [File['/etc/qpidd.conf'],
- Package['deltacloud-aggregator-daemons']]}
+ return_if($enable_packages,
Package['deltacloud-aggregator-daemons'])]}
file { "/etc/imagefactory.yml":
source => "puppet:///modules/deltacloud_recipe/imagefactory.yml",
mode => 644 }
- $requires = [Package['rubygem-deltacloud-image-builder-agent'],
- Package['deltacloud-aggregator-daemons'],
+ $requires = [return_if($enable_packages,
Package['rubygem-deltacloud-image-builder-agent']),
+ return_if($enable_packages,
Package['deltacloud-aggregator-daemons']),
File['/etc/imagefactory.yml'],
Service[qpidd],
Rails::Seed::Db[seed_deltacloud_database],
@@ -88,40 +90,42 @@ class deltacloud::image-factory::disabled {
### 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']}
+ if $enable_packages {
+ 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
diff --git a/recipes/deltacloud_recipe/manifests/iwhd.pp
b/recipes/deltacloud_recipe/manifests/iwhd.pp
index ed5bd7a..d5540cf 100644
--- a/recipes/deltacloud_recipe/manifests/iwhd.pp
+++ b/recipes/deltacloud_recipe/manifests/iwhd.pp
@@ -2,10 +2,12 @@
class deltacloud::iwhd inherits deltacloud {
### Install the deltacloud components
- package { 'iwhd':
- provider => 'yum', ensure => 'installed',
- require => Yumrepo['deltacloud_arch', 'deltacloud_noarch']
- }
+ if $enable_packages{
+ package { 'iwhd':
+ provider => 'yum', ensure => 'installed',
+ require => Yumrepo['deltacloud_arch', 'deltacloud_noarch']
+ }
+ }
### Start the deltacloud services
file { "/data": ensure => 'directory' }
@@ -23,13 +25,13 @@ class deltacloud::iwhd inherits deltacloud {
service { 'mongod':
ensure => 'running',
enable => true,
- require => [Package['iwhd'], File["/data/db"]]}
+ require => [return_if($enable_package, Package['iwhd']),
File["/data/db"]]}
service { 'iwhd':
ensure => 'running',
enable => true,
hasstatus => true,
require => [File['/etc/rc.d/init.d/iwhd', '/etc/iwhd/conf.js'],
- Package['iwhd'],
+ return_if($enable_package, Package['iwhd']),
Service[mongod]]}
# XXX ugly hack but iwhd might take some time to come up
@@ -45,10 +47,11 @@ class deltacloud::iwhd::disabled {
ensure => 'stopped',
enable => false,
require => Service[iwhd]}
- service { 'iwhd':
- ensure => 'stopped',
- enable => false,
- hasstatus => true}
+ if $enable_packages {
+ package { 'iwhd':
+ provider => 'yum', ensure => 'absent',
+ require => [Package['deltacloud-aggregator'], Service['iwhd']]}
+ }
Fairly obvious misclip above. I returned the service and snipped the non-conditional
package removal stanza.
### Uninstall the deltacloud components
--
1.7.2.3
_______________________________________________
aeolus-devel mailing list
aeolus-devel(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/aeolus-devel