[PATCH configure] replace deltacloud init script w/ systemd service specification
by Mo Morsi
---
recipes/aeolus/files/deltacloud-core.service | 10 +++
recipes/aeolus/files/deltacloud-core.sysconf | 24 ++++++
recipes/aeolus/manifests/deltacloud.pp | 11 ++-
recipes/aeolus/templates/deltacloud-core | 103 --------------------------
4 files changed, 40 insertions(+), 108 deletions(-)
create mode 100644 recipes/aeolus/files/deltacloud-core.service
create mode 100644 recipes/aeolus/files/deltacloud-core.sysconf
delete mode 100644 recipes/aeolus/templates/deltacloud-core
diff --git a/recipes/aeolus/files/deltacloud-core.service b/recipes/aeolus/files/deltacloud-core.service
new file mode 100644
index 0000000..3b9a5d7
--- /dev/null
+++ b/recipes/aeolus/files/deltacloud-core.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=An abstract cloud computing api
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/deltacloud-core.pid
+EnvironmentFile=/etc/sysconfig/deltacloud-core
+ExecStart=/usr/bin/deltacloudd -i $DRIVER -e $ENV -p $PORT -d --pid /var/run/deltacloud-core.pid
+ExecStop=/bin/kill -TERM $MAINPID
diff --git a/recipes/aeolus/files/deltacloud-core.sysconf b/recipes/aeolus/files/deltacloud-core.sysconf
new file mode 100644
index 0000000..9184c19
--- /dev/null
+++ b/recipes/aeolus/files/deltacloud-core.sysconf
@@ -0,0 +1,24 @@
+# Deltacloud API configuration
+# http://deltacloud.org
+
+# Default port where Deltacloud API will listen on (3002)
+# You should be able to access Deltacloud API on http://localhost:PORT/api
+
+PORT=3002
+
+# Bind to HOST address (default: localhost)
+# You can use both IP address or hostname
+
+HOST=localhost
+
+# Default driver to be used (EC2).
+# NOTE: Some drivers require some additional gems to be installed.
+# Please reffer to http://deltacloud.org to see what gems are needed for specific
+# drivers
+
+DRIVER="ec2"
+
+# Default log file for Deltacloud API
+# LOGFILE="/var/log/deltacloud-core/ec2.log"
+
+ENV='production'
diff --git a/recipes/aeolus/manifests/deltacloud.pp b/recipes/aeolus/manifests/deltacloud.pp
index ce9ad05..38e75c5 100644
--- a/recipes/aeolus/manifests/deltacloud.pp
+++ b/recipes/aeolus/manifests/deltacloud.pp
@@ -12,16 +12,17 @@ class aeolus::deltacloud::core {
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 }
+ file { "/var/log/deltacloud-core.log":}
+ file {"/lib/systemd/system/deltacloud-core.service":
+ source => "puppet:///modules/aeolus/deltacloud-core.service"}
+ file {"/etc/sysconfig/deltacloud-core":
+ source => "puppet:///modules/aeolus/deltacloud-core.sysconf"}
service { 'deltacloud-core':
ensure => 'running',
enable => true,
hasstatus => true,
- require => [Package['deltacloud-core'], File["/etc/init.d/deltacloud-core", "/var/log/deltacloud-core"]]}
+ require => [Package['deltacloud-core'], File["/lib/systemd/system/deltacloud-core.service", "/var/log/deltacloud-core.log", "/etc/sysconfig/deltacloud-core"]]}
}
class aeolus::deltacloud::ec2 {
diff --git a/recipes/aeolus/templates/deltacloud-core b/recipes/aeolus/templates/deltacloud-core
deleted file mode 100644
index 5f1f888..0000000
--- a/recipes/aeolus/templates/deltacloud-core
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/bash
-#
-#
-# deltacloud-core startup script for deltacloud-core server
-#
-# chkconfig: - 97 03
-# description: deltacloud-core is primary server process for the \
-# Deltacloud Core component.
-#
-
-[ -r /etc/sysconfig/deltacloud-core ] && . /etc/sysconfig/deltacloud-core
-
-ENV="${ENV:-production}"
-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
-
-STARTTIMEOUT=20
-
-. /etc/init.d/functions
-
-start() {
- echo -n "Starting deltacloud-core: "
-
- if [ -f $LOCKFILE ] || [ -f $PIDFILE ] && checkpid `cat $PIDFILE` ; then
- echo_success
- echo
- echo "deltacloud-$DRIVER has already been started"
- exit 0
- fi
-
- $PROG -i $DRIVER -e $ENV -p $PORT >> $LOGFILE 2>&1 &
- RETVAL=$?
- echo $! > $PIDFILE
- if [ $RETVAL -eq 0 ] ; then
- TIMEOUT="$STARTTIMEOUT"
- while [ $TIMEOUT -gt 0 ]; do
- /usr/bin/curl --silent http://localhost:$PORT/api >& /dev/null
- RETVAL=$?
- if [ $RETVAL -eq 0 ] ; then
- touch $LOCKFILE
- echo_success
- echo
- exit 0
- fi
- sleep 1
- let TIMEOUT=${TIMEOUT}-1
- done
- fi
-
- echo_failure
- echo
- exit 1
-}
-
-stop() {
- 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
- killproc -p $PIDFILE deltacloudd
- RETVAL=$?
- if [ $RETVAL -eq 0 ] && rm -f $LOCKFILE ; then
- echo_success
- echo
- else
- echo_failure
- echo
- fi
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- start
- ;;
- reload)
- ;;
- force-reload)
- restart
- ;;
- status)
- status -p $PIDFILE $PROG
- RETVAL=$?
- ;;
- *)
- echo "Usage: deltacloud-core {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-exit $RETVAL
--
1.7.6
12 years, 7 months
[PATCH configure] Redmine 2170 - Configure changes to move to single deltacloud-core instance
by Richard Su
v3- Rebased on top of mmorsi's profile changes. Consolidated into a single
patch to make changes easier to follow.
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.
Incorporated deltacloud_provider param when adding new providers to conductor.
Requires Scott conductor patch to expose deltacloud_provider in the add provider
form.
rhevm and vsphere configuration parameters have moved out of
default_configure and into default_rhevm and default_vsphere
in /etc/aeolus-configure/nodes. To make naming consistent,
vmware parameters have been renamed to vsphere.
---
conf/cleanup | 6 +--
conf/configure | 25 +--------
conf/rhevm | 19 +++++++
conf/vsphere | 18 ++++++
recipes/aeolus/manifests/conductor.pp | 12 +---
recipes/aeolus/manifests/deltacloud.pp | 48 ++++++-----------
recipes/aeolus/manifests/init.pp | 9 ---
recipes/aeolus/manifests/profiles/default.pp | 37 +++++++------
recipes/aeolus/manifests/profiles/rhevm.pp | 73 ++++++++++++++++++++++++++
recipes/aeolus/manifests/profiles/vsphere.pp | 37 +++++++++++++
recipes/aeolus/manifests/rhevm.pp | 51 ------------------
recipes/aeolus/manifests/vmware.pp | 22 --------
recipes/aeolus/templates/deltacloud-core | 22 ++++----
recipes/aeolus/templates/rhevm.json | 2 +-
recipes/aeolus/templates/vmware.json | 10 ++--
15 files changed, 208 insertions(+), 183 deletions(-)
create mode 100644 conf/rhevm
create mode 100644 conf/vsphere
create mode 100644 recipes/aeolus/manifests/profiles/rhevm.pp
create mode 100644 recipes/aeolus/manifests/profiles/vsphere.pp
delete mode 100644 recipes/aeolus/manifests/rhevm.pp
delete mode 100644 recipes/aeolus/manifests/vmware.pp
diff --git a/conf/cleanup b/conf/cleanup
index d43e906..5e2fcd7 100644
--- a/conf/cleanup
+++ b/conf/cleanup
@@ -17,8 +17,6 @@ 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
-#- aeolus::vmware::disabled
+#- aeolus::profiles::rhevm::disabled
diff --git a/conf/configure b/conf/configure
index ce79878..db33897 100644
--- a/conf/configure
+++ b/conf/configure
@@ -12,35 +12,16 @@
#apart from https on the web server for conductor, you should
#consider intermachine communications insecure. Securing
#intermachine service calls is on the roadmap.
+#
---
parameters:
enable_https: true
enable_security: false
package_provider: rpm
-# Uncomment this section and provide reasonable values to
-# enable RHEV values to be populated.
-# 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_username: username@fqdn
-# rhevm_deltacloud_password: password
-# rhevm_deltacloud_powershell_url: https://rhevm.server.com:8543/rhevm-api-powershell
-#
-# Uncomment this section and provide appropriate values to configure vmware
-# vmware_api_endpoint: vsphere.server.com
-# vmware_username: username
-# vmware_password: password
-# vmware_datastore: datastore
-# vmware_network_name: network_name
-# vmware_deltacloud_port: 3006
classes:
- aeolus::conductor
- aeolus::image-factory
- aeolus::iwhd
+- aeolus::deltacloud::core
+- aeolus::deltacloud::ec2
- aeolus::profiles::default
-# Uncomment this section to include rhev setup
-#- aeolus::rhevm
-#
-# Uncomment this section to include vmware setup
-#- aeolus::vmware
diff --git a/conf/rhevm b/conf/rhevm
new file mode 100644
index 0000000..14d1080
--- /dev/null
+++ b/conf/rhevm
@@ -0,0 +1,19 @@
+---
+parameters:
+ enable_https: true
+ enable_security: false
+ package_provider: rpm
+# Uncomment and provide values to match your RHEV environment.
+# Values below are examples.
+# rhevm_nfs_server: nfs.server.com
+# rhevm_nfs_export: /export/export_domain
+# rhevm_nfs_mount_point: /mnt/rhevm-nfs
+# rhevm_deltacloud_username: username@fqdn
+# rhevm_deltacloud_password: password
+# rhevm_deltacloud_provider: https://rhevm.server.com:8443/api
+classes:
+- aeolus::conductor
+- aeolus::image-factory
+- aeolus::iwhd
+- aeolus::deltacloud::core
+- aeolus::profiles::rhevm
diff --git a/conf/vsphere b/conf/vsphere
new file mode 100644
index 0000000..b000bc4
--- /dev/null
+++ b/conf/vsphere
@@ -0,0 +1,18 @@
+---
+parameters:
+ enable_https: true
+ enable_security: false
+ package_provider: rpm
+# Uncomment and provide values to match your vSphere environment.
+# Values below are examples.
+# vsphere_deltacloud_provider: vsphere.server.com
+# vsphere_username: username
+# vsphere_password: password
+# vsphere_datastore: datastore
+# vsphere_network_name: network_name
+classes:
+- aeolus::conductor
+- aeolus::image-factory
+- aeolus::iwhd
+- aeolus::deltacloud::core
+- aeolus::profiles::vsphere
diff --git a/recipes/aeolus/manifests/conductor.pp b/recipes/aeolus/manifests/conductor.pp
index aded6b3..ad7fb24 100644
--- a/recipes/aeolus/manifests/conductor.pp
+++ b/recipes/aeolus/manifests/conductor.pp
@@ -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,11 +190,12 @@ define aeolus::conductor::logout(){
}
# Create a new provider via the conductor
-define aeolus::conductor::provider($type="",$url=""){
+define aeolus::conductor::provider($deltacloud_driver="",$url="", $deltacloud_provider=""){
web_request{ "provider-$name":
post => "https://localhost/conductor/providers",
parameters => { 'provider[name]' => $name, 'provider[url]' => $url,
- 'provider[provider_type_codename]' => $type },
+ 'provider[provider_type_deltacloud_driver]' => $deltacloud_driver,
+ 'provider[deltacloud_provider]' => $deltacloud_provider },
returns => '200',
follow => true,
contains => "//html/body//li[text() = 'Provider added.']",
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..ae0f0c2 100644
--- a/recipes/aeolus/manifests/init.pp
+++ b/recipes/aeolus/manifests/init.pp
@@ -38,12 +38,3 @@ class aeolus {
source => $package_provider
}
}
-
-# 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] }
-}
diff --git a/recipes/aeolus/manifests/profiles/default.pp b/recipes/aeolus/manifests/profiles/default.pp
index b76cee5..9fa4403 100644
--- a/recipes/aeolus/manifests/profiles/default.pp
+++ b/recipes/aeolus/manifests/profiles/default.pp
@@ -1,4 +1,5 @@
class aeolus::profiles::default {
+ include aeolus::deltacloud::ec2
aeolus::create_bucket{"aeolus":}
@@ -11,33 +12,34 @@ class aeolus::profiles::default {
aeolus::conductor::login{"admin": password => "password",
require => Aeolus::Conductor::Site_admin['admin']}
- aeolus::provider{"mock":
- type => 'mock',
- port => 3002,
- require => Aeolus::Conductor::Login["admin"] }
+ aeolus::conductor::provider{"mock":
+ deltacloud_driver => 'mock',
+ url => 'http://localhost:3002/api',
+ require => Aeolus::Conductor::Login["admin"] }
+
aeolus::conductor::provider::account{"mockuser":
provider => 'mock',
type => 'mock',
username => 'mockuser',
password => 'mockpassword',
- require => Aeolus::Provider["mock"] }
+ require => Aeolus::Conductor::Provider["mock"] }
- aeolus::provider{"ec2-us-east-1":
- type => 'ec2',
- endpoint => 'us-east-1',
- port => 3003,
+ aeolus::conductor::provider{"ec2-us-east-1":
+ deltacloud_driver => 'ec2',
+ deltacloud_provider => 'us-east-1',
+ url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
- aeolus::provider{"ec2-us-west-1":
- type => 'ec2',
- endpoint => 'us-west-1',
- port => 3004,
+ aeolus::conductor::provider{"ec2-us-west-1":
+ deltacloud_driver => 'ec2',
+ deltacloud_provider => 'us-west-1',
+ url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
aeolus::conductor::hwp{"hwp1":
memory => "512",
cpu => "1",
- storage => "1",
+ storage => "",
architecture => "x86_64",
require => Aeolus::Conductor::Login["admin"] }
@@ -49,10 +51,9 @@ class aeolus::profiles::default {
require => Aeolus::Conductor::Login["admin"] }
aeolus::conductor::logout{"admin":
- require => [Aeolus::Provider['mock'],
+ require => [Aeolus::Conductor::Provider['mock'],
Aeolus::Conductor::Provider::Account['mockuser'],
- Aeolus::Provider['ec2-us-east-1'],
- Aeolus::Provider['ec2-us-west-1'],
+ Aeolus::Conductor::Provider['ec2-us-east-1'],
+ Aeolus::Conductor::Provider['ec2-us-west-1'],
Aeolus::Conductor::Hwp['hwp1', 'hwp2']] }
-
}
diff --git a/recipes/aeolus/manifests/profiles/rhevm.pp b/recipes/aeolus/manifests/profiles/rhevm.pp
new file mode 100644
index 0000000..3c39301
--- /dev/null
+++ b/recipes/aeolus/manifests/profiles/rhevm.pp
@@ -0,0 +1,73 @@
+class aeolus::profiles::rhevm {
+ file {"/etc/rhevm.json":
+ content => template("aeolus/rhevm.json"),
+ mode => 755,
+ require => Package['aeolus-conductor-daemons'] }
+
+ file {"/etc/iwhd/conf.js":
+ content => template("aeolus/iwhd-conf.js"),
+ mode => 755,
+ require => Package['aeolus-conductor-daemons'] }
+
+ file {"$rhevm_nfs_mount_point":
+ ensure => 'directory'}
+
+ mount {"$rhevm_nfs_mount_point":
+ ensure => mounted,
+ device => "$rhevm_nfs_server:$rhevm_nfs_export",
+ fstype => "nfs",
+ options => "rw",
+ require => File["$rhevm_nfs_mount_point"]}
+
+ # give iwhd a restart to pick up new configuration files
+ # in the event iwhd had already initialized at /var/lib/iwhd
+ exec { "/sbin/service iwhd restart":
+ require => [Service['iwhd'],
+ Mount["$rhevm_nfs_mount_point"],
+ File["/etc/rhevm.json"],
+ File["/etc/iwhd/conf.js"]]}
+
+ aeolus::create_bucket{"aeolus":}
+
+ aeolus::conductor::site_admin{"admin":
+ email => 'dcuser(a)aeolusproject.org',
+ password => "password",
+ first_name => 'aeolus',
+ last_name => 'user'}
+
+ aeolus::conductor::login{"admin": password => "password",
+ require => Aeolus::Conductor::Site_admin['admin']}
+
+ aeolus::conductor::provider{"rhevm":
+ deltacloud_driver => "rhevm",
+ url => "http://localhost:3002/api",
+ deltacloud_provider => "$rhevm_deltacloud_provider",
+ require => Aeolus::Conductor::Login["admin"] }
+
+ aeolus::conductor::provider::account{"rhevm":
+ provider => 'rhevm',
+ type => 'rhevm',
+ username => '$rhevm_deltacloud_username',
+ password => '$rhevm_deltacloud_password',
+ require => Aeolus::Conductor::Provider["rhevm"] }
+
+ aeolus::conductor::hwp{"hwp1":
+ memory => "512",
+ cpu => "1",
+ storage => "",
+ architecture => "x86_64",
+ require => Aeolus::Conductor::Login["admin"] }
+
+ aeolus::conductor::logout{"admin":
+ require => [Aeolus::Conductor::Provider['rhevm'],
+ Aeolus::Conductor::Provider::Account['rhevm'],
+ Aeolus::Conductor::Hwp['hwp1']] }
+
+ # TODO: create a realm and mappings
+}
+
+class aeolus::profiles::rhevm::disabled {
+ mount {"$rhevm_nfs_mount_point":
+ ensure => unmounted,
+ device => "$rhevm_nfs_server:$rhevm_nfs_export"}
+}
diff --git a/recipes/aeolus/manifests/profiles/vsphere.pp b/recipes/aeolus/manifests/profiles/vsphere.pp
new file mode 100644
index 0000000..bcfe315
--- /dev/null
+++ b/recipes/aeolus/manifests/profiles/vsphere.pp
@@ -0,0 +1,37 @@
+class aeolus::profiles::vsphere {
+ aeolus::create_bucket{"aeolus":}
+
+ aeolus::conductor::site_admin{"admin":
+ email => 'dcuser(a)aeolusproject.org',
+ password => "password",
+ first_name => 'aeolus',
+ last_name => 'user'}
+
+ aeolus::conductor::login{"admin": password => "password",
+ require => Aeolus::Conductor::Site_admin['admin']}
+
+ aeolus::conductor::provider{"vsphere":
+ deltacloud_driver => "vsphere",
+ url => "http://localhost:3002/api",
+ deltacloud_provider => "$vsphere_deltacloud_provider",
+ require => [Aeolus::Conductor::Login["admin"]] }
+
+ aeolus::conductor::provider::account{"vsphere":
+ provider => 'vsphere',
+ type => 'vsphere',
+ username => '$vsphere_username',
+ password => '$vsphere_password',
+ require => Aeolus::Conductor::Provider["vsphere"] }
+
+ aeolus::conductor::hwp{"hwp1":
+ memory => "512",
+ cpu => "1",
+ storage => "",
+ architecture => "x86_64",
+ require => Aeolus::Conductor::Login["admin"] }
+
+ aeolus::conductor::logout{"admin":
+ require => [Aeolus::Conductor::Provider['vsphere'],
+ Aeolus::Conductor::Provider::Account['vsphere'],
+ Aeolus::Conductor::Hwp['hwp1']] }
+}
diff --git a/recipes/aeolus/manifests/rhevm.pp b/recipes/aeolus/manifests/rhevm.pp
deleted file mode 100644
index daa84d2..0000000
--- a/recipes/aeolus/manifests/rhevm.pp
+++ /dev/null
@@ -1,51 +0,0 @@
-class aeolus::rhevm inherits aeolus {
- file {"/etc/rhevm.json":
- content => template("aeolus/rhevm.json"),
- mode => 755,
- require => Package['aeolus-conductor-daemons'] }
-
- file {"/etc/iwhd/conf.js":
- content => template("aeolus/iwhd-conf.js"),
- mode => 755,
- require => Package['aeolus-conductor-daemons'] }
-
- file {"$rhevm_nfs_mount_point":
- ensure => 'directory'}
-
- mount {"$rhevm_nfs_mount_point":
- ensure => mounted,
- device => "$rhevm_nfs_server:$rhevm_nfs_export",
- fstype => "nfs",
- options => "rw",
- require => File["$rhevm_nfs_mount_point"]}
-
- # give iwhd a restart to pick up new configuration files
- # in the event iwhd had already initialized at /var/lib/iwhd
- exec { "/sbin/service iwhd restart":
- require => [Service['iwhd'],
- Mount["$rhevm_nfs_mount_point"],
- 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":
- type => "rhevm",
- url => "http://localhost:${rhevm_deltacloud_port}/api",
- require => Aeolus::Deltacloud["rhevm"]}
-
- # TODO:
- # 1. since we have credentials, create provider account
- # 2. create a realm and mappings
-}
-
-class aeolus::rhevm::disabled {
- aeolus::deltacloud::disabled{"rhevm": }
-
- mount {"$rhevm_nfs_mount_point":
- ensure => unmounted,
- device => "$rhevm_nfs_server:$rhevm_nfs_export"}
-}
diff --git a/recipes/aeolus/manifests/vmware.pp b/recipes/aeolus/manifests/vmware.pp
deleted file mode 100644
index 4772b15..0000000
--- a/recipes/aeolus/manifests/vmware.pp
+++ /dev/null
@@ -1,22 +0,0 @@
-class aeolus::vmware inherits aeolus {
- file {"/etc/vmware.json":
- content => template("aeolus/vmware.json"),
- 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"]]}
-
-}
-
-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
diff --git a/recipes/aeolus/templates/rhevm.json b/recipes/aeolus/templates/rhevm.json
index 45e6d67..6a2bb43 100644
--- a/recipes/aeolus/templates/rhevm.json
+++ b/recipes/aeolus/templates/rhevm.json
@@ -5,7 +5,7 @@
"nfs-dir": "<%= rhevm_nfs_mount_point %>",
"nfs-path": "<%= rhevm_nfs_export %>",
"nfs-host": "<%= rhevm_nfs_server %>",
- "api-url": "<%= rhevm_deltacloud_powershell_url %>",
+ "api-url": "<%= rhevm_deltacloud_provider %>",
"password": "<%= rhevm_deltacloud_password %>",
"cluster": "_any_"
}
diff --git a/recipes/aeolus/templates/vmware.json b/recipes/aeolus/templates/vmware.json
index ec69d5e..6f70d62 100644
--- a/recipes/aeolus/templates/vmware.json
+++ b/recipes/aeolus/templates/vmware.json
@@ -1,10 +1,10 @@
{
"vsphere":
{
- "api-url": "https://<%= vmware_api_endpoint %>/sdk",
- "username": "<%= vmware_username %>",
- "password": "<%= vmware_password %>",
- "datastore": "<%= vmware_datastore %>",
- "network_name": "<%= vmware_network_name %>"
+ "api-url": "https://<%= vsphere_deltacloud_provider %>/sdk",
+ "username": "<%= vsphere_username %>",
+ "password": "<%= vsphere_password %>",
+ "datastore": "<%= vsphere_datastore %>",
+ "network_name": "<%= vsphere_network_name %>"
}
}
--
1.7.6
12 years, 7 months
[PATCH configure] replace configure init script w/ systemd service specification
by Mo Morsi
From: Mo Morsi <mmorsi(a)redhat.com>
---
recipes/aeolus/files/deltacloud-core.service | 10 +++
recipes/aeolus/files/deltacloud-core.sysconf | 24 ++++++
recipes/aeolus/manifests/deltacloud.pp | 11 ++-
recipes/aeolus/templates/deltacloud-core | 103 --------------------------
4 files changed, 40 insertions(+), 108 deletions(-)
create mode 100644 recipes/aeolus/files/deltacloud-core.service
create mode 100644 recipes/aeolus/files/deltacloud-core.sysconf
delete mode 100644 recipes/aeolus/templates/deltacloud-core
diff --git a/recipes/aeolus/files/deltacloud-core.service b/recipes/aeolus/files/deltacloud-core.service
new file mode 100644
index 0000000..3b9a5d7
--- /dev/null
+++ b/recipes/aeolus/files/deltacloud-core.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=An abstract cloud computing api
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/deltacloud-core.pid
+EnvironmentFile=/etc/sysconfig/deltacloud-core
+ExecStart=/usr/bin/deltacloudd -i $DRIVER -e $ENV -p $PORT -d --pid /var/run/deltacloud-core.pid
+ExecStop=/bin/kill -TERM $MAINPID
diff --git a/recipes/aeolus/files/deltacloud-core.sysconf b/recipes/aeolus/files/deltacloud-core.sysconf
new file mode 100644
index 0000000..9184c19
--- /dev/null
+++ b/recipes/aeolus/files/deltacloud-core.sysconf
@@ -0,0 +1,24 @@
+# Deltacloud API configuration
+# http://deltacloud.org
+
+# Default port where Deltacloud API will listen on (3002)
+# You should be able to access Deltacloud API on http://localhost:PORT/api
+
+PORT=3002
+
+# Bind to HOST address (default: localhost)
+# You can use both IP address or hostname
+
+HOST=localhost
+
+# Default driver to be used (EC2).
+# NOTE: Some drivers require some additional gems to be installed.
+# Please reffer to http://deltacloud.org to see what gems are needed for specific
+# drivers
+
+DRIVER="ec2"
+
+# Default log file for Deltacloud API
+# LOGFILE="/var/log/deltacloud-core/ec2.log"
+
+ENV='production'
diff --git a/recipes/aeolus/manifests/deltacloud.pp b/recipes/aeolus/manifests/deltacloud.pp
index ce9ad05..38e75c5 100644
--- a/recipes/aeolus/manifests/deltacloud.pp
+++ b/recipes/aeolus/manifests/deltacloud.pp
@@ -12,16 +12,17 @@ class aeolus::deltacloud::core {
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 }
+ file { "/var/log/deltacloud-core.log":}
+ file {"/lib/systemd/system/deltacloud-core.service":
+ source => "puppet:///modules/aeolus/deltacloud-core.service"}
+ file {"/etc/sysconfig/deltacloud-core":
+ source => "puppet:///modules/aeolus/deltacloud-core.sysconf"}
service { 'deltacloud-core':
ensure => 'running',
enable => true,
hasstatus => true,
- require => [Package['deltacloud-core'], File["/etc/init.d/deltacloud-core", "/var/log/deltacloud-core"]]}
+ require => [Package['deltacloud-core'], File["/lib/systemd/system/deltacloud-core.service", "/var/log/deltacloud-core.log", "/etc/sysconfig/deltacloud-core"]]}
}
class aeolus::deltacloud::ec2 {
diff --git a/recipes/aeolus/templates/deltacloud-core b/recipes/aeolus/templates/deltacloud-core
deleted file mode 100644
index 5f1f888..0000000
--- a/recipes/aeolus/templates/deltacloud-core
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/bash
-#
-#
-# deltacloud-core startup script for deltacloud-core server
-#
-# chkconfig: - 97 03
-# description: deltacloud-core is primary server process for the \
-# Deltacloud Core component.
-#
-
-[ -r /etc/sysconfig/deltacloud-core ] && . /etc/sysconfig/deltacloud-core
-
-ENV="${ENV:-production}"
-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
-
-STARTTIMEOUT=20
-
-. /etc/init.d/functions
-
-start() {
- echo -n "Starting deltacloud-core: "
-
- if [ -f $LOCKFILE ] || [ -f $PIDFILE ] && checkpid `cat $PIDFILE` ; then
- echo_success
- echo
- echo "deltacloud-$DRIVER has already been started"
- exit 0
- fi
-
- $PROG -i $DRIVER -e $ENV -p $PORT >> $LOGFILE 2>&1 &
- RETVAL=$?
- echo $! > $PIDFILE
- if [ $RETVAL -eq 0 ] ; then
- TIMEOUT="$STARTTIMEOUT"
- while [ $TIMEOUT -gt 0 ]; do
- /usr/bin/curl --silent http://localhost:$PORT/api >& /dev/null
- RETVAL=$?
- if [ $RETVAL -eq 0 ] ; then
- touch $LOCKFILE
- echo_success
- echo
- exit 0
- fi
- sleep 1
- let TIMEOUT=${TIMEOUT}-1
- done
- fi
-
- echo_failure
- echo
- exit 1
-}
-
-stop() {
- 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
- killproc -p $PIDFILE deltacloudd
- RETVAL=$?
- if [ $RETVAL -eq 0 ] && rm -f $LOCKFILE ; then
- echo_success
- echo
- else
- echo_failure
- echo
- fi
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- start
- ;;
- reload)
- ;;
- force-reload)
- restart
- ;;
- status)
- status -p $PIDFILE $PROG
- RETVAL=$?
- ;;
- *)
- echo "Usage: deltacloud-core {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-exit $RETVAL
--
1.7.6
12 years, 7 months
[PATCH 1/8] removed compass/960 text stylesheet
by Scott Seago
1) was having compilation errors
2) we don't use it anymore
---
src/app/stylesheets/_base.scss | 2 --
src/app/stylesheets/text.scss | 30 ------------------------------
2 files changed, 0 insertions(+), 32 deletions(-)
delete mode 100644 src/app/stylesheets/text.scss
diff --git a/src/app/stylesheets/_base.scss b/src/app/stylesheets/_base.scss
index 3ac43c6..096ec46 100644
--- a/src/app/stylesheets/_base.scss
+++ b/src/app/stylesheets/_base.scss
@@ -26,8 +26,6 @@ $goodcl: #bfcc29;
$okcl: #f6a20a;
$badcl: #cb292b;
-@import "text";
-
@mixin border-radius($radius) {
border-radius: $radius;
-moz-border-radius: $radius;
diff --git a/src/app/stylesheets/text.scss b/src/app/stylesheets/text.scss
deleted file mode 100644
index b6819c3..0000000
--- a/src/app/stylesheets/text.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-/* 960 Grid System ~ Text CSS.
- * Learn more ~ http://960.gs/
- * *
- * Licensed under GPL and MIT. */
-
-@import "960/text";
-
-@include text;
-
-/* Need to solve licensing first */
-@font-face {
- font-family: 'Roadgeek E';
- src: local('Roadgeek E'), local('RoadgeekE'),
- url(../../fonts/RoadgeekE.otf);
-}
-
-/* Headline Font based on Highway Gothic/FHWA to preserve RH identity on the web unachievable with Interstate */
-@font-face {
- font-family: 'FreeWay Bold';
- src: local('FreeWay Bold'), local('FreeWayBold'),
- url(../../fonts/FreeWay-Bold.ttf);
-}
-
-body {
- font: 12px/1.5 $screenfont;
-}
-
-h1,h2,h3,h4,h5 {
- font-family: $headlinefont;
-}
--
1.7.6
12 years, 7 months
[PATCH conductor] Remove compass
by Richard Su
Use sass to compile the stylesheets.
Removed unused text.scss and grid.scss.
---
aeolus-conductor.spec.in | 14 ++++-------
src/app/stylesheets/_base.scss | 4 ---
src/app/stylesheets/grid.scss | 39 ---------------------------------
src/app/stylesheets/text.scss | 30 -------------------------
src/config/compass.rb | 13 -----------
src/config/environments/production.rb | 4 +--
src/config/initializers/compass.rb | 5 ----
7 files changed, 6 insertions(+), 103 deletions(-)
delete mode 100644 src/app/stylesheets/grid.scss
delete mode 100644 src/app/stylesheets/text.scss
delete mode 100644 src/config/compass.rb
delete mode 100644 src/config/initializers/compass.rb
diff --git a/aeolus-conductor.spec.in b/aeolus-conductor.spec.in
index 9ec229b..7add074 100644
--- a/aeolus-conductor.spec.in
+++ b/aeolus-conductor.spec.in
@@ -26,8 +26,6 @@ Requires: rubygem(will_paginate) >= 3.0
Requires: rubygem(parseconfig)
Requires: rubygem(authlogic) >= 3.0.2
Requires: rubygem(deltacloud-client) >= 0.0.9.8
-Requires: rubygem(compass) >= 0.10.2
-Requires: rubygem(compass-960-plugin)
Requires: rubygem(simple-navigation)
Requires: rubygem(typhoeus)
Requires: rubygem(rest-client) >= 1.6.1
@@ -46,9 +44,6 @@ Requires: ruby-postgres
# and is accessible in the init script
Requires: curl
-BuildRequires: rubygem(compass) >= 0.10.2
-BuildRequires: rubygem(compass-960-plugin)
-
BuildArch: noarch
%description
@@ -174,10 +169,11 @@ for filetype in builder css feature gif haml html ico jpg js json key opts png \
done
# precompile stylesheets
-cd src
-compass compile --output-style compact
-%{__mv} public/stylesheets/compiled %{buildroot}%{app_root}/public/stylesheets/
-cd ..
+%{__mkdir} %{buildroot}%{app_root}/public/stylesheets/compiled
+sass --style compact ./src/app/stylesheets/application.scss %{buildroot}%{app_root}/public/stylesheets/compiled/application.css
+sass --style compact ./src/app/stylesheets/custom.scss %{buildroot}%{app_root}/public/stylesheets/compiled/custom.css
+sass --style compact ./src/app/stylesheets/layout.scss %{buildroot}%{app_root}/public/stylesheets/compiled/layout.css
+sass --style compact ./src/app/stylesheets/login.scss %{buildroot}%{app_root}/public/stylesheets/compiled/login.css
# misc files
%{__cp} src/Rakefile %{buildroot}%{app_root}
diff --git a/src/app/stylesheets/_base.scss b/src/app/stylesheets/_base.scss
index 3ac43c6..67a3c7b 100644
--- a/src/app/stylesheets/_base.scss
+++ b/src/app/stylesheets/_base.scss
@@ -1,5 +1,3 @@
-@import "grid";
-
$screenfont: "Liberation Sans", "Droid Sans", Helvetica, Arial, sans-serif;
/* $headlinefont: "Roadgeek E", Interstate, sans-serif; */
$headlinefont: "FreeWay Bold", FreeWay, Interstate, sans-serif;
@@ -26,8 +24,6 @@ $goodcl: #bfcc29;
$okcl: #f6a20a;
$badcl: #cb292b;
-@import "text";
-
@mixin border-radius($radius) {
border-radius: $radius;
-moz-border-radius: $radius;
diff --git a/src/app/stylesheets/grid.scss b/src/app/stylesheets/grid.scss
deleted file mode 100644
index 3b231ca..0000000
--- a/src/app/stylesheets/grid.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-/* 960 Grid System ~ Core CSS.
- * Learn more ~ http://960.gs/
- * *
- * Licensed under GPL and MIT. */
-
-@import "compass/reset";
-@import "960/grid";
-
-// The following generates the default grids provided by the css version of 960.gs
-.container_12 {
- @include grid-system(12);
-}
-
-.container_16 {
- @include grid-system(16);
-}
-
-// But most compass users prefer to construct semantic layouts like so (two column layout with header and footer):
-
-$ninesixty-columns: 24;
-
-.two-column {
- @include grid-container;
- #header,
- #footer,
- #sidebar,
- #main-content {
- @include grid-unit-base;
- }
- #header, #footer {
- @include grid-width(24);
- }
- #sidebar {
- @include grid-width(8);
- }
- #main-content {
- @include grid-width(16);
- }
-}
diff --git a/src/app/stylesheets/text.scss b/src/app/stylesheets/text.scss
deleted file mode 100644
index b6819c3..0000000
--- a/src/app/stylesheets/text.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-/* 960 Grid System ~ Text CSS.
- * Learn more ~ http://960.gs/
- * *
- * Licensed under GPL and MIT. */
-
-@import "960/text";
-
-@include text;
-
-/* Need to solve licensing first */
-@font-face {
- font-family: 'Roadgeek E';
- src: local('Roadgeek E'), local('RoadgeekE'),
- url(../../fonts/RoadgeekE.otf);
-}
-
-/* Headline Font based on Highway Gothic/FHWA to preserve RH identity on the web unachievable with Interstate */
-@font-face {
- font-family: 'FreeWay Bold';
- src: local('FreeWay Bold'), local('FreeWayBold'),
- url(../../fonts/FreeWay-Bold.ttf);
-}
-
-body {
- font: 12px/1.5 $screenfont;
-}
-
-h1,h2,h3,h4,h5 {
- font-family: $headlinefont;
-}
diff --git a/src/config/compass.rb b/src/config/compass.rb
deleted file mode 100644
index 985bb3a..0000000
--- a/src/config/compass.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# This configuration file works with both the Compass command line tool and within Rails.
-# Require any additional compass plugins here.
-require 'ninesixty'
-
-project_type = :rails
-project_path = Compass::AppIntegration::Rails.root
-# Set this to the root of your project when deployed:
-http_path = "/"
-css_dir = "public/stylesheets/compiled"
-sass_dir = "app/stylesheets"
-environment = Compass::AppIntegration::Rails.env
-# To enable relative paths to assets via compass helper functions. Uncomment:
-# relative_assets = true
diff --git a/src/config/environments/production.rb b/src/config/environments/production.rb
index 3bb1785..1aecd5f 100644
--- a/src/config/environments/production.rb
+++ b/src/config/environments/production.rb
@@ -65,7 +65,5 @@ Conductor::Application.configure do
# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify
-end
-# Disable stylesheet updates on production
-Compass.configuration.sass_options = { :never_update => true }
+end
diff --git a/src/config/initializers/compass.rb b/src/config/initializers/compass.rb
deleted file mode 100644
index 27f585c..0000000
--- a/src/config/initializers/compass.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require 'compass'
-rails_root = (defined?(Rails) ? Rails.root : RAILS_ROOT).to_s
-Compass.add_project_configuration(File.join(rails_root, "config", "compass.rb"))
-Compass.configure_sass_plugin!
-Compass.handle_configuration_change!
\ No newline at end of file
--
1.7.6
12 years, 7 months
[PATCH configure 1/2] Redmine 2170 - Configure changes to move to single deltacloud-core instance
by Richard Su
Rebased on top of mmorsi's profile changes.
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.
Incorporated deltacloud_provider param when adding new providers to conductor.
Requires Scott conductor patch to expose deltacloud_provider in the add provider
form.
Original patchset from morazi.
---
conf/cleanup | 2 +-
conf/configure | 6 ++-
recipes/aeolus/manifests/conductor.pp | 15 ++------
recipes/aeolus/manifests/deltacloud.pp | 48 +++++++++----------------
recipes/aeolus/manifests/init.pp | 9 -----
recipes/aeolus/manifests/profiles/default.pp | 34 +++++++++---------
recipes/aeolus/manifests/rhevm.pp | 12 ++-----
recipes/aeolus/manifests/vmware.pp | 16 ++------
recipes/aeolus/templates/deltacloud-core | 22 ++++++------
9 files changed, 61 insertions(+), 103 deletions(-)
diff --git a/conf/cleanup b/conf/cleanup
index d43e906..c17134e 100644
--- a/conf/cleanup
+++ b/conf/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/configure b/conf/configure
index ce79878..9b570a8 100644
--- a/conf/configure
+++ b/conf/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..aeaac87 100644
--- a/recipes/aeolus/manifests/conductor.pp
+++ b/recipes/aeolus/manifests/conductor.pp
@@ -42,7 +42,6 @@ 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 +115,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,18 +189,19 @@ define aeolus::conductor::logout(){
}
# Create a new provider via the conductor
-define aeolus::conductor::provider($type="",$url=""){
+define aeolus::conductor::provider($type_id="",$url="", $deltacloud_provider=""){
web_request{ "provider-$name":
post => "https://localhost/conductor/providers",
parameters => { 'provider[name]' => $name, 'provider[url]' => $url,
- 'provider[provider_type_codename]' => $type },
+ 'provider[provider_type_id]' => $type_id,
+ 'provider[deltacloud_provider]' => $deltacloud_provider },
returns => '200',
follow => true,
contains => "//html/body//li[text() = 'Provider added.']",
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'],Exec['grant_site_admin_privs']]
}
}
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..ae0f0c2 100644
--- a/recipes/aeolus/manifests/init.pp
+++ b/recipes/aeolus/manifests/init.pp
@@ -38,12 +38,3 @@ class aeolus {
source => $package_provider
}
}
-
-# 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] }
-}
diff --git a/recipes/aeolus/manifests/profiles/default.pp b/recipes/aeolus/manifests/profiles/default.pp
index b76cee5..8df15ac 100644
--- a/recipes/aeolus/manifests/profiles/default.pp
+++ b/recipes/aeolus/manifests/profiles/default.pp
@@ -11,33 +11,34 @@ class aeolus::profiles::default {
aeolus::conductor::login{"admin": password => "password",
require => Aeolus::Conductor::Site_admin['admin']}
- aeolus::provider{"mock":
- type => 'mock',
- port => 3002,
+ aeolus::conductor::provider{"mock":
+ type_id => '1',
+ url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
+
aeolus::conductor::provider::account{"mockuser":
provider => 'mock',
type => 'mock',
username => 'mockuser',
password => 'mockpassword',
- require => Aeolus::Provider["mock"] }
+ require => Aeolus::Conductor::Provider["mock"] }
- aeolus::provider{"ec2-us-east-1":
- type => 'ec2',
- endpoint => 'us-east-1',
- port => 3003,
+ aeolus::conductor::provider{"ec2-us-east-1":
+ type_id => '2',
+ deltacloud_provider => 'us-east-1',
+ url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
- aeolus::provider{"ec2-us-west-1":
- type => 'ec2',
- endpoint => 'us-west-1',
- port => 3004,
+ aeolus::conductor::provider{"ec2-us-west-1":
+ type_id => '2',
+ deltacloud_provider => 'us-west-1',
+ url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
aeolus::conductor::hwp{"hwp1":
memory => "512",
cpu => "1",
- storage => "1",
+ storage => "",
architecture => "x86_64",
require => Aeolus::Conductor::Login["admin"] }
@@ -49,10 +50,9 @@ class aeolus::profiles::default {
require => Aeolus::Conductor::Login["admin"] }
aeolus::conductor::logout{"admin":
- require => [Aeolus::Provider['mock'],
+ require => [Aeolus::Conductor::Provider['mock'],
Aeolus::Conductor::Provider::Account['mockuser'],
- Aeolus::Provider['ec2-us-east-1'],
- Aeolus::Provider['ec2-us-west-1'],
+ Aeolus::Conductor::Provider['ec2-us-east-1'],
+ Aeolus::Conductor::Provider['ec2-us-west-1'],
Aeolus::Conductor::Hwp['hwp1', 'hwp2']] }
-
}
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
12 years, 7 months
Deltacloud API nightly builds UPDATE
by Michal Fojtik
Hi,
Recently I updated the repository that some of you are using to get fresh Deltacloud API code
installed on your RHEL/Fedora machines without pain caused by ruby gems.
So what new?
First, I added special repo for EPEL (5,6) which is available here:
http://devel.mifo.sk/deltacloud/epel/current/deltacloud.repo
Use this repo instead of Fedora one in order to satisfy all dependencies not included in default EPEL
or RHEL.
Second I added nightly build of rubygem-deltacloud-client package you can use for testing stuff there
without building custom packages or waiting for release.
-- Michal
------------------------------------------------------
Michal Fojtik, mfojtik(a)redhat.com
Deltacloud API: http://deltacloud.org
12 years, 7 months
[PATCH conductor] Delegate dbomatic with starting RHEV instances
by Richard Su
Without condor, we need a mechanism to detect when RHEV instances
have been created and start them. We elected to use dbomatic.
It will start an instance if its state is STOPPED and it has
not been previously started by checking its total time in the
RUNNING state.
This patch should go in with the Taskomatic series.
---
src/dbomatic/dbomatic | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/src/dbomatic/dbomatic b/src/dbomatic/dbomatic
index b187063..a94e5c2 100755
--- a/src/dbomatic/dbomatic
+++ b/src/dbomatic/dbomatic
@@ -154,6 +154,24 @@ def check_one_account(account)
DBomaticLogger.instance.debug("ignoring unknown instance #{instance.name} #{instance.external_key}")
end
end
+
+ # For RHEV, we need to start up the instance after the vm has been created and state changes from
+ # PENDING to STOPPED
+ if instance.state == Instance::STATE_STOPPED and instance.total_state_time(Instance::STATE_RUNNING) == 0
+ api_instance = connection.instance(instance.external_key)
+ if api_instance
+ DBomaticLogger.instance.debug("starting instance #{instance.name}: #{instance.external_key}")
+ # TODO: do we need to set an actual user here instead of nil?
+ task = instance.queue_action(nil, 'start')
+ unless task
+ raise ActionError.new("start cannot be performed on this instance.")
+ end
+ Taskomatic.start_instance(task)
+ instance.state = Taskomatic.dcloud_to_instance_state(api_instance.state)
+ instance.save!
+ instance.events.create!(:status_code => instance.state, :event_time => now)
+ end
+ end
end
end
--
1.7.6
12 years, 7 months
[PATCH conductor 0/3] #2188 - Get Conductor set up for aeolus-image
by Matt Wagner
This patch gets aeolus-image integrated into Conductor.
Of note, it does NOT:
- Implement the UI for browsing images and building as needed (that's coming later, hopefully tomorrow).
- Remove the warehouse_model / warehouse_client stuff that was copied into aeolus-image. This seemed straightforward, but blew up in my face, and I decided to focus on getting everything working before I decided to remove legacy code.
This patch is somewhere between ACK'able and an RFC. It should work properly and shouldn't break anything, but it's not adding much testable functionality just yet, so it's not urgent to get it committed. I've just been sitting on patches that aren't independently useful for a bit and wanted to get something on the list.
-- Matt
12 years, 7 months