Tests failing on f15, help!
by steve linabery
I'm unable to run 'cucumber' or 'rake spec' against conductor using f15.
1) Running 'cucumber' in the src directory gives me this:
no such file to load -- cucumber/rails (LoadError)
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/home/hudson/workspace/cloudEngine-conductor-westford-next/src/features/support/env.rb:7
[snip]
Before you send me to lmgtfy.com, I'm wanting to know if any other aeolus developers have hit this same error, and if so what was the workaround specific to our codebase. Is this an error in conductor code itself or a problem with my environment?
2) Running 'rake spec' in the src directory results in no output to stdout from the command, which exits immediately and with a clean exit status. Same if I run it as 'rake --verbose spec'...no output whatsoever.
Thank you, I now return to slowly hitting my head against my desk.
s|e
12 years, 7 months
Draft/RFC: What Aeolus is not
by Matt Wagner
Hi all,
After discussing the "What Is Aeolus?" document / mission statement, and
after reading an article about Aeolus that got a few technical details
wrong, it occurred to me that, in addition to "What Is Aeolus?", we
might want a "What Aeolus Is NOT" page.
Here's a quick stab at that. Obviously, I didn't set out to make a
complete list of things Aeolus is not (a trombone, pecan pie, etc.), but
I tried to focus on possible/common misconceptions. Could you let me
know if (a) the below is accurate and reasonably complete, and (b) if
you think it makes sense to have such a list or not?
* Aeolus is not a part of Linux. Although our packaging efforts
currently focus on Linux, Aeolus is not explicitly tied into Linux. It
is a suite of applications that run on Linux and related operated
systems.
(I struggled with how to word this one. I read an article that seemed to
imply Aeolus was a kernel module for the cloud or something of the sort,
which is the idea I'm trying to dispel.)
* Aeolus is not owned by Red Hat. Although the majority of Aeolus
developers are currently sponsored by Red Hat, the project is an
independent community effort.
* Aeolus is not a cloud. Aeolus is a project for managing existing
clouds (public and private), not an attempt at creating yet another
one.
-- Matt
12 years, 7 months
[PATCH conductor] Add privilege checking for Pool Families
by Tomas Sedovic
From: Tomas Sedovic <tsedovic(a)redhat.com>
https://www.aeolusproject.org/redmine/issues/2206
---
src/app/controllers/pool_families_controller.rb | 29 ++++++++++++++++++----
src/app/models/pool_family.rb | 1 +
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/app/controllers/pool_families_controller.rb b/src/app/controllers/pool_families_controller.rb
index 4cd4823..fd87caf 100644
--- a/src/app/controllers/pool_families_controller.rb
+++ b/src/app/controllers/pool_families_controller.rb
@@ -1,3 +1,5 @@
+require 'will_paginate/array'
+
class PoolFamiliesController < ApplicationController
before_filter :require_user
before_filter :set_params_and_header, :only => [:index, :show]
@@ -15,11 +17,14 @@ class PoolFamiliesController < ApplicationController
end
def new
+ require_privilege(Privilege::CREATE, PoolFamily)
@pool_family = PoolFamily.new(:quota => Quota.new)
end
def create
@pool_family = PoolFamily.new(params[:pool_family])
+ require_privilege(Privilege::CREATE, PoolFamily)
+
unless @pool_family.save
flash.now[:warning] = "Pool family's creation failed."
render :new and return
@@ -32,11 +37,14 @@ class PoolFamiliesController < ApplicationController
def edit
@pool_family = PoolFamily.find(params[:id])
+ require_privilege(Privilege::MODIFY, @pool_family)
@pool_family.quota ||= Quota.new
end
def update
@pool_family = PoolFamily.find(params[:id])
+ require_privilege(Privilege::MODIFY, @pool_family)
+
unless @pool_family.update_attributes(params[:pool_family])
flash[:error] = "Pool Family wasn't updated!"
render :action => 'edit' and return
@@ -48,6 +56,8 @@ class PoolFamiliesController < ApplicationController
def show
@pool_family = PoolFamily.find(params[:id])
+ require_privilege(Privilege::VIEW, @pool_family)
+
save_breadcrumb(pool_family_path(@pool_family), @pool_family.name)
respond_to do |format|
@@ -62,7 +72,9 @@ class PoolFamiliesController < ApplicationController
end
def destroy
- if PoolFamily.destroy(params[:id])
+ pool_family = PoolFamily.find(params[:id])
+ require_privilege(Privilege::MODIFY, pool_family)
+ if pool_family.destroy
flash[:notice] = "Pool Family was deleted!"
else
flash[:error] = "Pool Family cannot be deleted!"
@@ -72,7 +84,9 @@ class PoolFamiliesController < ApplicationController
def add_provider_account
@pool_family = PoolFamily.find(params[:id])
+ require_privilege(Privilege::MODIFY, @pool_family)
@provider_account = ProviderAccount.find(params[:provider_account_id])
+ require_privilege(Privilege::VIEW, @provider_account)
@pool_family.provider_accounts << @provider_account
flash[:notice] = "Provider Account has been added"
@@ -83,7 +97,7 @@ class PoolFamiliesController < ApplicationController
deleted = []
not_deleted = []
PoolFamily.find(params[:pool_family_selected]).each do |pool_family|
- if pool_family.destroy
+ if check_privilege(Privilege::MODIFY, pool_family) && pool_family.destroy
deleted << pool_family.name
else
not_deleted << pool_family.name
@@ -100,9 +114,12 @@ class PoolFamiliesController < ApplicationController
def multi_destroy_provider_accounts
@pool_family = PoolFamily.find(params[:pool_family_id])
+ require_privilege(Privilege::MODIFY, @pool_family)
ProviderAccount.find(params[:provider_account_selected]).each do |provider_account|
- @pool_family.provider_accounts.delete provider_account
+ if check_privilege(Privilege::VIEW, provider_account)
+ @pool_family.provider_accounts.delete provider_account
+ end
end
redirect_to pool_family_path(@pool_family, :details_tab => 'provider_accounts')
@@ -126,8 +143,8 @@ class PoolFamiliesController < ApplicationController
end
def load_pool_families
- @pool_families = PoolFamily.paginate(:page => params[:page] || 1,
- :order => (params[:order_field] || 'name') + ' ' + (params[:order_dir] || 'asc')
- )
+ @pool_families = PoolFamily.list_for_user(@current_user, Privilege::VIEW).paginate(
+ :page => params[:page] || 1,
+ :order => (params[:order_field] || 'name') + ' ' + (params[:order_dir] || 'asc'))
end
end
diff --git a/src/app/models/pool_family.rb b/src/app/models/pool_family.rb
index afbcd86..1c82dbe 100644
--- a/src/app/models/pool_family.rb
+++ b/src/app/models/pool_family.rb
@@ -41,6 +41,7 @@ class PoolFamily < ActiveRecord::Base
belongs_to :quota, :dependent => :destroy
accepts_nested_attributes_for :quota
has_and_belongs_to_many :provider_accounts
+ has_many :permissions, :as => :permission_object, :dependent => :destroy
validates_length_of :name, :maximum => 255
validates_format_of :name, :with => /^[\w -]*$/n, :message => "must only contain: numbers, letters, spaces, '_' and '-'"
--
1.7.6
12 years, 8 months
[PATCH configure] Redmine 2170 - Configure changes to move to single deltacloud-core instance
by Richard Su
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
12 years, 8 months
[PATCH configure 1/2] Added aeolus-check-services to specfile
by Maros Zatko
From: Maros Zatko <mzatko(a)redhat.com>
---
contrib/aeolus-configure.spec | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/contrib/aeolus-configure.spec b/contrib/aeolus-configure.spec
index 8960143..b8f7252 100644
--- a/contrib/aeolus-configure.spec
+++ b/contrib/aeolus-configure.spec
@@ -4,7 +4,7 @@
Summary: Aeolus Configure Puppet Recipe
Name: aeolus-configure
Version: 2.0.2
-Release: 1%{?extra_release}%{?dist}
+Release: 2%{?extra_release}%{?dist}
Group: Applications/Internet
License: GPLv2+
@@ -35,6 +35,7 @@ Aeolus Configure Puppet Recipe
%install
%{__mkdir} -p %{buildroot}/%{aeolushome}/modules/aeolus %{buildroot}/%{_sbindir}
+%{__mkdir} -p %{buildroot}/%{_bindir}
%{__mkdir} -p %{buildroot}%{_sysconfdir}/aeolus-configure/nodes
%{__cp} -R %{pbuild}/conf/* %{buildroot}%{_sysconfdir}/aeolus-configure/nodes
%{__mv} %{buildroot}%{_sysconfdir}/aeolus-configure/nodes/custom_template.tdl %{buildroot}%{_sysconfdir}/aeolus-configure/
@@ -43,6 +44,7 @@ Aeolus Configure Puppet Recipe
%{__cp} -R %{pbuild}/recipes/ntp/ %{buildroot}/%{aeolushome}/modules/ntp
%{__cp} -R %{pbuild}/recipes/openssl/ %{buildroot}/%{aeolushome}/modules/openssl
%{__cp} -R %{pbuild}/recipes/postgres/ %{buildroot}/%{aeolushome}/modules/postgres
+%{__cp} -R %{pbuild}/bin/aeolus-check-services %{buildroot}/%{_bindir}/
%{__cp} -R %{pbuild}/bin/aeolus-configure-image %{buildroot}/%{_sbindir}/
%{__cp} -R %{pbuild}/bin/aeolus-configure %{buildroot}/%{_sbindir}/
%{__cp} -R %{pbuild}/bin/aeolus-cleanup %{buildroot}/%{_sbindir}/
@@ -53,10 +55,14 @@ Aeolus Configure Puppet Recipe
%attr(0755, root, root) %{_sbindir}/aeolus-cleanup
%attr(0755, root, root) %{_sbindir}/aeolus-node
%config(noreplace) %{_sysconfdir}/aeolus-configure/*
+%attr(0755, root, root) %{_bindir}/aeolus-check-services
%{aeolushome}
%{_sbindir}/aeolus-configure-image
%changelog
+* Tue Aug 16 2011 Maros Zatko <mzatko(a)redhat.com> 2.0.2-2
+- Added script for listing running services
+
* Wed Aug 03 2011 Mo Morsi <mmorsi(a)redhat.com> 2.0.2-1
- update to include profiles, interactive installer
--
1.7.6
12 years, 8 months
CDL format documentation
by Lukas Zapletal
Hello,
I have started designing katello interface that will return katello
templates in CDL format and would like to ask for more information about
CDL.
I am particularly interested in all the tags that can appear in the XML
document. Also all possible values that are currently accepted is a must
for me - e.g. os tag (which operating system and version combinations
are supported atm).
I already found few exampled which gave me pretty nice overview how it
looks like:
<template>
<name>f13 jeos</name>
<os name="fedora" version="13"/>
<description>Fedora 13</description>
<repos>
<repo>http://repo.oddthesis.org/cirras/packages/fedora/13/RPMS/noarch/</repo>
</repos>
<packages>
<packagegroup>core</packagegroup>
<package><name>bash</name></package>
<package><name>kernel</name></package>
<package><name>grub</name></package>
</packages>
</template>
Let me describe current template in Katello. We associate template with
environment first, then users are able to add content to it (only using
CLI atm - no support in the UI):
- products (= 1 or more repositories)
- package (no package group support yet)
- erratum
- parameter
- foreman host group (not done yet - puppet classes definitions)
- parameters (for puppet classes)
Looking on the example above I have a nice match here:
CDL vs Katello
name = template name
description = description
os = product info
repos = products
packages = packages
package group = n/a
I guess we have all required information to build image template from
Katello, skipping package groups (we can add them later).
Opinions?
--
Later,
Lukas "lzap" Zapletal
12 years, 8 months
[2134] As a developer, I need to ensure that conductor encorces permission constriants consistently
by Tomas Hrcka
I checked all the controllers everything looks good except this list of
controller have no permission checking at all
*** provider_types_controller
*** hardware_profiles_controller
*** pool_families_controller
Next step should be to create subtasks for 2134 and implement the
permissions. Since I am leaving for PTO today afternoon it would be good
if someone can retake this task, or if it can wait till 12.9 i will
finish it.
12 years, 8 months
[PATCH 0/1 conductor] aeolus-conductor-devel script includes missing dependencies
by Matt Wagner
After messing things up locally and then provisioning a fresh box for testing, I realized that if I clone the conductor repo, install aeolus-conductor-devel, uncomment the 'development' section in Gemfile, and run "bundle install", it still fails with some errors.
This adds the three packages I needed to install in order to avoid fatal errors. It would be good if someone with a good handle on RPM packaging could sanity-check this, though.
-- Matt
12 years, 8 months
[PATCH imagefactory 0/3]: VMware cleanup
by Chris Lalancette
This series does a bit of cleanup on the imagefactory VMware builder. In
particular it moves it under builders, removes sys.exit from error paths,
and does a minor curl cleanup.
12 years, 8 months