Changed providers to use same deltacloud-core instance at port 3002.
New deltacloud classes added to default_configure. Replaced
conductor::removed_seed_data class in default_cleanup with deltacloud::disable.
Removed unused provider-specific parameters from deltacloud-core init script.
Disabled admin logout from default profile because it causes rhev
and vsphere provider adds to fail.
Original patchset from morazi.
---
conf/default_cleanup | 2 +-
conf/default_configure | 6 ++-
recipes/aeolus/manifests/conductor.pp | 12 ++-----
recipes/aeolus/manifests/deltacloud.pp | 48 +++++++++----------------
recipes/aeolus/manifests/init.pp | 3 +-
recipes/aeolus/manifests/profiles/default.pp | 17 +++++----
recipes/aeolus/manifests/rhevm.pp | 12 ++-----
recipes/aeolus/manifests/vmware.pp | 16 ++------
recipes/aeolus/templates/deltacloud-core | 22 ++++++------
9 files changed, 53 insertions(+), 85 deletions(-)
diff --git a/conf/default_cleanup b/conf/default_cleanup
index d43e906..c17134e 100644
--- a/conf/default_cleanup
+++ b/conf/default_cleanup
@@ -17,7 +17,7 @@ classes:
- aeolus::conductor::disabled
- aeolus::iwhd::disabled
- aeolus::image-factory::disabled
-- aeolus::conductor::remove_seed_data
+- aeolus::deltacloud::disabled
# Uncomment this to clean up RHEV details
#- aeolus::rhevm::disabled
# Uncomment to remove vmware
diff --git a/conf/default_configure b/conf/default_configure
index ce79878..9b570a8 100644
--- a/conf/default_configure
+++ b/conf/default_configure
@@ -22,7 +22,7 @@ parameters:
# rhevm_nfs_server:
nfs.server.com
# rhevm_nfs_export: /export/export_domain
# rhevm_nfs_mount_point: /mnt/rhevm-nfs
-# rhevm_deltacloud_port: 3005
+# rhevm_deltacloud_port: 3002
# rhevm_deltacloud_username: username@fqdn
# rhevm_deltacloud_password: password
# rhevm_deltacloud_powershell_url:
https://rhevm.server.com:8543/rhevm-api-powershell
@@ -33,12 +33,14 @@ parameters:
# vmware_password: password
# vmware_datastore: datastore
# vmware_network_name: network_name
-# vmware_deltacloud_port: 3006
+# vmware_deltacloud_port: 3002
classes:
- aeolus::conductor
- aeolus::image-factory
- aeolus::iwhd
- aeolus::profiles::default
+- aeolus::deltacloud::core
+- aeolus::deltacloud::ec2
# Uncomment this section to include rhev setup
#- aeolus::rhevm
#
diff --git a/recipes/aeolus/manifests/conductor.pp
b/recipes/aeolus/manifests/conductor.pp
index aded6b3..8eed224 100644
--- a/recipes/aeolus/manifests/conductor.pp
+++ b/recipes/aeolus/manifests/conductor.pp
@@ -42,7 +42,7 @@ class aeolus::conductor inherits aeolus {
} else{
apache::site{"aeolus-conductor": source =>
'puppet:///modules/aeolus/aggregator-httpd.conf'}
}
-
+
service { ['aeolus-conductor',
'conductor-dbomatic' ]:
ensure => 'running',
@@ -116,13 +116,6 @@ class aeolus::conductor inherits aeolus {
enable => 'true' }
}
-
-class aeolus::conductor::remove_seed_data {
- aeolus::deltacloud::disabled{"mock": }
- aeolus::deltacloud::disabled{"ec2-us-east-1": }
- aeolus::deltacloud::disabled{"ec2-us-west-1": }
-}
-
class aeolus::conductor::disabled {
file {"/var/lib/aeolus-conductor":
ensure => absent,
@@ -197,6 +190,7 @@ define aeolus::conductor::logout(){
}
# Create a new provider via the conductor
+# TODO: Removed dep on grant_site_admin_privs, which might create a timing hole
define aeolus::conductor::provider($type="",$url=""){
web_request{ "provider-$name":
post => "https://localhost/conductor/providers",
@@ -208,7 +202,7 @@ define
aeolus::conductor::provider($type="",$url=""){
use_cookies_at => '/tmp/aeolus-admin',
unless => { 'get' =>
'https://localhost/conductor/providers',
'contains' => "//html/body//a[text() =
'$name']" },
- require => [Service['aeolus-conductor'],
Exec['grant_site_admin_privs']]
+ require => [Service['aeolus-conductor']]
}
}
diff --git a/recipes/aeolus/manifests/deltacloud.pp
b/recipes/aeolus/manifests/deltacloud.pp
index df01d5a..ce9ad05 100644
--- a/recipes/aeolus/manifests/deltacloud.pp
+++ b/recipes/aeolus/manifests/deltacloud.pp
@@ -7,6 +7,21 @@ class aeolus::deltacloud::core {
package { 'deltacloud-core':
ensure => 'installed',
provider => $package_provider }
+
+ ### we need to sync time to communicate w/ cloud providers
+ include ntp::client
+
+ ### Start the aeolus services
+ file { "/var/log/deltacloud-core": ensure => 'directory' }
+ file {"/etc/init.d/deltacloud-core":
+ content => template("aeolus/deltacloud-core"),
+ mode => 755 }
+
+ service { 'deltacloud-core':
+ ensure => 'running',
+ enable => true,
+ hasstatus => true,
+ require => [Package['deltacloud-core'],
File["/etc/init.d/deltacloud-core", "/var/log/deltacloud-core"]]}
}
class aeolus::deltacloud::ec2 {
@@ -17,39 +32,10 @@ class aeolus::deltacloud::ec2 {
provider => $package_provider }
}
-
-# install the deltacloud component w/ the specified driver
-define aeolus::deltacloud($provider_type="", $endpoint='',
$port="3002") {
- include aeolus::deltacloud::core
-
- if $provider_type == "ec2" {
- include aeolus::deltacloud::ec2
- }
-
- ### we need to sync time to communicate w/ cloud providers
- include ntp::client
-
- ### Start the aeolus services
- file { "/var/log/deltacloud-${name}": ensure => 'directory' }
- file {"/etc/init.d/deltacloud-${name}":
- content => template("aeolus/deltacloud-core"),
- mode => 755 }
- service { "deltacloud-${name}":
- ensure => 'running',
- enable => true,
- require => [Package['deltacloud-core'],
- $provider_type ? { "ec2" =>
Package['rubygem-aws'], default => Package['deltacloud-core'] },
- File["/etc/init.d/deltacloud-${name}",
"/var/log/deltacloud-${name}"]] }
-}
-
-define aeolus::deltacloud::disabled() {
+class aeolus::deltacloud::disabled {
### Stop the aeolus services
- service { "deltacloud-${name}":
+ service { 'deltacloud-core':
ensure => 'stopped',
enable => false,
hasstatus => true}
- file {"/etc/init.d/deltacloud-${name}":
- ensure => absent,
- require => Service["deltacloud-${name}"]}
}
-
diff --git a/recipes/aeolus/manifests/init.pp b/recipes/aeolus/manifests/init.pp
index 4376838..03cc03c 100644
--- a/recipes/aeolus/manifests/init.pp
+++ b/recipes/aeolus/manifests/init.pp
@@ -41,9 +41,8 @@ class aeolus {
# Create a new provider in aeolus
define aeolus::provider($type, $port, $endpoint=""){
- aeolus::deltacloud{$name: provider_type => $type, endpoint => $endpoint, port
=> $port}
aeolus::conductor::provider{$name:
type => $type,
url =>
"http://localhost:${port}/api",
- require => Aeolus::Deltacloud[$name] }
+ require => [Service['deltacloud-core'],
Aeolus::Conductor::Hwp["hwp1"]] }
}
diff --git a/recipes/aeolus/manifests/profiles/default.pp
b/recipes/aeolus/manifests/profiles/default.pp
index 0021bbf..f8790ce 100644
--- a/recipes/aeolus/manifests/profiles/default.pp
+++ b/recipes/aeolus/manifests/profiles/default.pp
@@ -25,13 +25,13 @@ class aeolus::profiles::default {
aeolus::provider{"ec2-us-east-1":
type => 'ec2',
endpoint => 'us-east-1',
- port => 3003,
+ port => 3002,
require => Aeolus::Conductor::Login["admin"] }
aeolus::provider{"ec2-us-west-1":
type => 'ec2',
endpoint => 'us-west-1',
- port => 3004,
+ port => 3002,
require => Aeolus::Conductor::Login["admin"] }
aeolus::conductor::hwp{"hwp1":
@@ -48,11 +48,12 @@ class aeolus::profiles::default {
architecture => "x86_64",
require => Aeolus::Conductor::Login["admin"] }
- aeolus::conductor::logout{"admin":
- require => [Aeolus::Provider['mock'],
- Aeolus::Conductor::Provider::Account['mockuser'],
- Aeolus::Provider['ec2-us-east-1'],
- Aeolus::Provider['ec2-us-west-1'],
- Aeolus::Conductor::Hwp['hwp1']] }
+# Disabling because login is needed by vsphere and rhev
+# aeolus::conductor::logout{"admin":
+# require => [Aeolus::Provider['mock'],
+# Aeolus::Conductor::Provider::Account['mockuser'],
+# Aeolus::Provider['ec2-us-east-1'],
+# Aeolus::Provider['ec2-us-west-1'],
+# Aeolus::Conductor::Hwp['hwp1']] }
}
diff --git a/recipes/aeolus/manifests/rhevm.pp b/recipes/aeolus/manifests/rhevm.pp
index daa84d2..cc1d051 100644
--- a/recipes/aeolus/manifests/rhevm.pp
+++ b/recipes/aeolus/manifests/rhevm.pp
@@ -27,15 +27,10 @@ class aeolus::rhevm inherits aeolus {
File["/etc/rhevm.json"],
File["/etc/iwhd/conf.js"]]}
- aeolus::deltacloud{"rhevm":
- provider_type => 'rhevm',
- endpoint => "$rhevm_deltacloud_powershell_url",
- port => $rhevm_deltacloud_port}
-
- aeolus::conductor::provider{"rhevm":
+ aeolus::provider{"rhevm":
type => "rhevm",
- url => "http://localhost:${rhevm_deltacloud_port}/api",
- require => Aeolus::Deltacloud["rhevm"]}
+ port => 3002,
+ require => Aeolus::Conductor::Login["admin"] }
# TODO:
# 1. since we have credentials, create provider account
@@ -43,7 +38,6 @@ class aeolus::rhevm inherits aeolus {
}
class aeolus::rhevm::disabled {
- aeolus::deltacloud::disabled{"rhevm": }
mount {"$rhevm_nfs_mount_point":
ensure => unmounted,
diff --git a/recipes/aeolus/manifests/vmware.pp b/recipes/aeolus/manifests/vmware.pp
index 4772b15..cafb015 100644
--- a/recipes/aeolus/manifests/vmware.pp
+++ b/recipes/aeolus/manifests/vmware.pp
@@ -4,19 +4,11 @@ class aeolus::vmware inherits aeolus {
mode => 755,
require => Package['aeolus-conductor-daemons'] }
- aeolus::deltacloud{"vsphere":
- provider_type => 'vsphere',
- endpoint => "$vmware_api_endpoint",
- port => $vmware_deltacloud_port}
-
- aeolus::conductor::provider{"vsphere":
- type => "vsphere",
- url => "http://localhost:${vmware_deltacloud_port}/api",
- require => [Aeolus::Deltacloud["vsphere"]]}
-
+ aeolus::provider{"vsphere":
+ type => "vsphere",
+ port => 3002,
+ require => [Aeolus::Conductor::Login["admin"]] }
}
class aeolus::vmware::disabled {
- aeolus::deltacloud::disabled{"vsphere": }
-
}
diff --git a/recipes/aeolus/templates/deltacloud-core
b/recipes/aeolus/templates/deltacloud-core
index 0f52b65..5f1f888 100644
--- a/recipes/aeolus/templates/deltacloud-core
+++ b/recipes/aeolus/templates/deltacloud-core
@@ -8,15 +8,15 @@
# Deltacloud Core component.
#
-[ -r /etc/sysconfig/deltacloud-<%= name %> ] && .
/etc/sysconfig/deltacloud-<%= name %>
+[ -r /etc/sysconfig/deltacloud-core ] && . /etc/sysconfig/deltacloud-core
ENV="${ENV:-production}"
-DRIVER="${DRIVER:-<%= provider_type %>}"
-PORT="${PORT:-<%= port %>}"
-LOCKFILE="${LOCKFILE:-/var/lock/subsys/deltacloud-<%= name %> }"
-LOGFILE="${LOGFILE:-/var/log/deltacloud-<%= name %>/$DRIVER.log}"
-PIDFILE="${THIN_PID:-/var/run/deltacloud-<%= name %>.pid}"
-export DELTACLOUD_MOCK_STORAGE=/usr/lib/ruby/gems/1.8/gems/deltacloud-<%= name
%>-0.3.0/lib/deltacloud/drivers/mock/data/
+DRIVER="${DRIVER:-ec2}"
+PORT="${PORT:-3002}"
+LOCKFILE="${LOCKFILE:-/var/lock/subsys/deltacloud-core}"
+LOGFILE="${LOGFILE:-/var/log/deltacloud-core/$DRIVER.log}"
+PIDFILE="${THIN_PID:-/var/run/deltacloud-core.pid}"
+export
DELTACLOUD_MOCK_STORAGE=/usr/lib/ruby/gems/1.8/gems/deltacloud-core-0.3.0/lib/deltacloud/drivers/mock/data/
PROG=/usr/bin/deltacloudd
@@ -25,7 +25,7 @@ STARTTIMEOUT=20
. /etc/init.d/functions
start() {
- echo -n "Starting deltacloud-<%= name %>: "
+ echo -n "Starting deltacloud-core: "
if [ -f $LOCKFILE ] || [ -f $PIDFILE ] && checkpid `cat $PIDFILE` ; then
echo_success
@@ -34,7 +34,7 @@ start() {
exit 0
fi
- $PROG -i $DRIVER -e $ENV -p $PORT <%= "--provider #{endpoint}" unless
endpoint == "" %> >> $LOGFILE 2>&1 &
+ $PROG -i $DRIVER -e $ENV -p $PORT >> $LOGFILE 2>&1 &
RETVAL=$?
echo $! > $PIDFILE
if [ $RETVAL -eq 0 ] ; then
@@ -59,7 +59,7 @@ start() {
}
stop() {
- echo -n "Shutting down deltacloud-<%= name %>: "
+ echo -n "Shutting down deltacloud-core: "
# FIXME! we need to do a killproc -p <pidfile> here to ensure other deltacloud
# daemons are not killed as well
@@ -95,7 +95,7 @@ case "$1" in
RETVAL=$?
;;
*)
- echo "Usage: deltacloud-<%= name %> {start|stop|restart|status}"
+ echo "Usage: deltacloud-core {start|stop|restart|status}"
exit 1
;;
esac
--
1.7.6