Red Hat Elected to DMTF Board of Directors
by Michal Fojtik
Hi,
Awesome news :-)
“Red Hat is excited to join the DMTF Board of Directors and help drive the development of industry-wide cloud management standards,” said David Lutterkort, principal software engineer at Red Hat, who will represent Red Hat on the Board. “We look forward to working in partnership with the other companies on the Board to speed adoption of DMTF interoperability standards, while offering our perspective and expertise as a leader in open source and cloud computing. As the lead of the Apache Deltacloud[1] project, I see great value in leveraging DMTF’s open standards.”
more: http://www.dmtf.org/news/pr/2011/5/red-hat-elected-dmtf-board-directors
-- Michal
------------------------------------------------------
Michal Fojtik, mfojtik(a)redhat.com
Deltacloud API: http://deltacloud.org
12 years, 11 months
Set up Connector to point at conductor anywhere.
by Jason Guiditta
[PATCH conductor] Issue #1432: Make connector able to point at
This patch should get all tests passing again, run from image_factory_connector
folder with 'rake spec'. Both gem and rpm build should work fine. If you want
to test the rpm, I suggest building it from the conductor root with 'make rpms'
so you get the dev revision and yum will allow you to install it. There will be
a subsequent patch (spearate issue #) to install the yml file in /etc, for now
we use the bundled one in the gem/rpm.
-j
12 years, 11 months
[PATCH] fix RPM build scripts
by Jirka Tomasek
From: Jiri Tomasek <jtomasek(a)redhat.com>
---
aeolus-conductor.spec.in | 24 ++++++++++++------------
1 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/aeolus-conductor.spec.in b/aeolus-conductor.spec.in
index e5f7d62..42913f1 100644
--- a/aeolus-conductor.spec.in
+++ b/aeolus-conductor.spec.in
@@ -142,16 +142,16 @@ erb="app/views/layouts"
fcgi="public"
feature="features"
gif="public/images public/stylesheets/images"
-haml="app/views/admin/hardware_profiles app/views/admin/realm_mappings \
- app/views/admin/users app/views/admin/provider_accounts \
- app/views/admin/roles app/views/admin/providers app/views/admin/settings \
- app/views/admin/realms app/views/admin/pool_families app/views/layouts\
- app/views/quotas app/views/image_factory/deployables \
- app/views/image_factory/image_imports app/views/image_factory/assemblies \
- app/views/image_factory/templates app/views/image_factory/builds \
+haml="app/views/hardware_profiles app/views/realm_mappings \
+ app/views/users app/views/provider_accounts \
+ app/views/roles app/views/providers app/views/settings \
+ app/views/realms app/views/pool_families app/views/layouts\
+ app/views/quotas app/views/deployables \
+ app/views/image_imports app/views/assemblies \
+ app/views/templates app/views/builds \
app/views/permissions app/views/templates/xml \
- app/views/resources/deployments app/views/resources/pools \
- app/views/resources/instances app/views/user_sessions"
+ app/views/deployments app/views/pools \
+ app/views/instances app/views/user_sessions"
html="public"
ico="public"
jpg="public/images public/stylesheets/images"
@@ -164,9 +164,9 @@ opts="spec"
png="public/images public/images/icons public/stylesheets/images \
public/stylesheets/jquery.ui-1.8.1/images"
rake="lib/tasks"
-rb="app/models app/controllers app/controllers/admin \
- app/controllers/image_factory app/controllers/resources app/helpers \
- app/helpers/resources app/services app/util app/util/repository_manager \
+rb="app/models app/controllers \
+ app/helpers \
+ app/services app/util app/util/repository_manager \
config config/initializers config/environments db db/migrate dutils \
features/support features/step_definitions lib public spec \
spec/controllers spec/factories spec/helpers spec/models spec/services \
--
1.7.4.2
12 years, 11 months
RPM build errors: Bad exit status
by seb delta
Hi,
I am newbie in aeolus project.
I try to install and configure it. As I try to build Conductor and execute
the command "make rpms" I encounter this error:
*error: Bad exit status from /var/tmp/rpm-tmp.WctxlY (%install)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.WctxlY (%install)
make: *** [rpms] Error 1
*
can someone help me please?
12 years, 11 months
[PATCH conductor] Add the ViewState model
by Tomas Sedovic
From: Tomas Sedovic <tsedovic(a)redhat.com>
This implements Redmine #1348.
---
src/app/models/user.rb | 1 +
src/app/models/view_state.rb | 41 +++++++++++
.../migrate/20110504124706_create_view_states.rb | 17 +++++
src/spec/factories/view_state.rb | 8 ++
src/spec/models/view_state_spec.rb | 77 ++++++++++++++++++++
5 files changed, 144 insertions(+), 0 deletions(-)
create mode 100644 src/app/models/view_state.rb
create mode 100644 src/db/migrate/20110504124706_create_view_states.rb
create mode 100644 src/spec/factories/view_state.rb
create mode 100644 src/spec/models/view_state_spec.rb
diff --git a/src/app/models/user.rb b/src/app/models/user.rb
index ead459a..f795542 100644
--- a/src/app/models/user.rb
+++ b/src/app/models/user.rb
@@ -59,6 +59,7 @@ class User < ActiveRecord::Base
has_many :permissions
has_many :owned_instances, :class_name => "Instance", :foreign_key => "owner_id"
+ has_many :view_states
belongs_to :quota, :autosave => true
accepts_nested_attributes_for :quota
diff --git a/src/app/models/view_state.rb b/src/app/models/view_state.rb
new file mode 100644
index 0000000..7e0d982
--- /dev/null
+++ b/src/app/models/view_state.rb
@@ -0,0 +1,41 @@
+# == Schema Information
+# Schema version: 20110504124706
+#
+# Table name: view_states
+#
+# id :integer not null, primary key
+# user_id :integer
+# name :string(255) not null
+# controller :string(255) not null
+# action :string(255) not null
+# state :text
+# created_at :datetime
+# updated_at :datetime
+#
+
+class ViewState < ActiveRecord::Base
+ belongs_to :user
+
+ validates_presence_of :name
+ validates_uniqueness_of :name
+ validates_presence_of :user_id
+ validates_presence_of :controller
+ validates_presence_of :action
+ validates_presence_of :state
+
+ # Things that make sense to remember for the session ViewState but not for
+ # the saved state -- such as position in the pagination.
+ SESSION_ONLY_KEYS = ['page']
+
+ def state
+ unless read_attribute(:state).blank?
+ JSON.load(read_attribute :state)
+ end
+ end
+
+ def state=(attrs)
+ attrs = attrs || {}
+ persistent_attributes = attrs.reject { |k,v| SESSION_ONLY_KEYS.include? k }
+ write_attribute :state, JSON.dump(persistent_attributes)
+ end
+end
diff --git a/src/db/migrate/20110504124706_create_view_states.rb b/src/db/migrate/20110504124706_create_view_states.rb
new file mode 100644
index 0000000..209587d
--- /dev/null
+++ b/src/db/migrate/20110504124706_create_view_states.rb
@@ -0,0 +1,17 @@
+class CreateViewStates < ActiveRecord::Migration
+ def self.up
+ create_table :view_states do |t|
+ t.integer :user_id
+ t.string :name, :null => false
+ t.string :controller, :null => false
+ t.string :action, :null => false
+ t.text :state
+
+ t.timestamps
+ end
+ end
+
+ def self.down
+ drop_table :view_states
+ end
+end
diff --git a/src/spec/factories/view_state.rb b/src/spec/factories/view_state.rb
new file mode 100644
index 0000000..8564804
--- /dev/null
+++ b/src/spec/factories/view_state.rb
@@ -0,0 +1,8 @@
+Factory.define :view_state do |vs|
+ vs.sequence(:name) { |n| "view-state#{n}" }
+ vs.controller 'pools'
+ vs.action 'view'
+ vs.state({"sort-column" => "name", "sort-order" => "desc",
+ "columns" => ["name", "deployments", "instances"]})
+ vs.association :user
+end
diff --git a/src/spec/models/view_state_spec.rb b/src/spec/models/view_state_spec.rb
new file mode 100644
index 0000000..8c8ba06
--- /dev/null
+++ b/src/spec/models/view_state_spec.rb
@@ -0,0 +1,77 @@
+require 'spec_helper'
+
+describe ViewState do
+
+ before(:each) do
+ @view_state = Factory :view_state
+ end
+
+ it "should require a unique name" do
+ vs = Factory.build :view_state, :name => nil
+ vs.should_not be_valid
+
+ vs.name = @view_state.name
+ vs.should_not be_valid
+
+ vs.name = "a nice unique name"
+ vs.should be_valid
+ end
+
+ it "should require a controller and action" do
+ @view_state.controller = nil
+ @view_state.should_not be_valid
+
+ @view_state.controller = "deployments"
+ @view_state.should be_valid
+
+ @view_state.action = nil
+ @view_state.should_not be_valid
+
+ @view_state.action = "view"
+ @view_state.should be_valid
+ end
+
+ it "should require a non-empty state" do
+ @view_state.state = nil
+ @view_state.should_not be_valid
+
+ @view_state.state = {}
+ @view_state.should_not be_valid
+
+ @view_state.state = {:a => 1}
+ @view_state.should be_valid
+ end
+
+ it "should be associated to a user" do
+ @view_state.user_id = nil
+ @view_state.should_not be_valid
+
+ user = Factory :user
+ @view_state.user_id = user.id
+ @view_state.should be_valid
+ end
+
+ it "should provide an access to the key-value attributes" do
+ @view_state.state.should eql({'sort-column' => 'name', 'sort-order' => 'desc',
+ 'columns' => ['name', 'deployments', 'instances']})
+ end
+
+ it "should allow setting the key-value attributes" do
+ custom_attributes = {'a' => 1, 'b' => 2, 'nested' => {'x' => 'hello', 'y' => 'world'} }
+ @view_state.state = custom_attributes
+ @view_state.save!
+
+ @view_state.state.should eql(custom_attributes)
+ ViewState.find((a)view_state).state.should eql(custom_attributes)
+ end
+
+ it "should not save attributes that are only relevant in a user session" do
+ @view_state.state = { 'sort-column' => 'name', 'page' => 3 }
+ @view_state.save!
+
+ expected_attributes = {'sort-column' => 'name'}
+ @view_state.state.should eql(expected_attributes)
+ ViewState.find((a)view_state).state.should eql(expected_attributes)
+ end
+
+end
--
1.7.4.4
12 years, 11 months
[PATCH] Update builds URL in image_factory_connector
by Mark McLoughlin
commit 75533078651 removed the image_factory/ namespace.
---
.../factory_rest_handler.rb | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/services/image_factory/image_factory_connector/lib/image_factory_connector/factory_rest_handler.rb b/services/image_factory/image_factory_connector/lib/image_factory_connector/factory_rest_handler.rb
index 2a0cead..a2fd841 100644
--- a/services/image_factory/image_factory_connector/lib/image_factory_connector/factory_rest_handler.rb
+++ b/services/image_factory/image_factory_connector/lib/image_factory_connector/factory_rest_handler.rb
@@ -44,7 +44,7 @@ class FactoryRestHandler < BaseHandler
# 2. Call the conductor api with uuid and status
hydra = Typhoeus::Hydra.new
- request = Typhoeus::Request.new("http://localhost:3000/conductor/image_factory/builds/update_status",
+ request = Typhoeus::Request.new("http://localhost:3000/conductor/builds/update_status",
:method => :post,
:timeout => 2000, # in milliseconds
:headers => {:Accepts => "application/xml"},
--
1.7.4.4
12 years, 11 months
Aeolus 0.2.0 Released and Ready for installation
by Justin Clift
All,
The Aeolus team are pleased to announce a significant new release of
Aeolus, the multi-cloud deployment solution, sponsored by Red
Hat.
This release, version 0.2.0, marks the introduction of several important
enhancements:
* Added capability to import Amazon AMIs through web UI
* Self-service users can now create templates and launch instances
* Streamlined configuration data to provide immediately usable installation
* Now uses the 2nd incarnation of Image Factory to build images
* Added ability to upload existing images to newly added Cloud Providers
* Added ability to create pools
* Added ability to map Cloud Provider Realms to Cloud Engine Realms
And several minor fixes or functionality improvements:
* Image Warehouse is now the canonical store for image-related data
* Improved stability and error reporting of QMF communication
with Image Factory
* Web interface verified to work end-to-end with the testing driver (mock)
* Added ability to search on Instance owner
* Added end-to-end testing framework for Aeolus scripts
* Bugfix: BZ #690467 - Realm: Deleting mapping of realm w/o
selecting anything throws error
Aeolus is still some way from feature complete, so is suitable for
testing with. But please don't use it with live data at this stage.
Installation is very straightforward, with instructions on the website:
http://www.aeolusproject.org/get_it.html
Packages are available for Fedora 14 x86_64, and RHEL 6.1 x86_64
(Release Candidate or later). Support for Fedora 13 has been discontinued
with this release.
Upgrading from previous releases can be done using yum. Due to a
recent reorganisation of the yum repositories, you need to point to
a new repo first, as shown in the above instructions.
All testing and bug reports are hugely appreciated, directly contributing
towards the quality of Aeolus releases and future growth.
If you're a world class Ruby on Rails (RoR) UI designer, our team in Red
Hat are hiring, so please get in contact:
https://careers.redhat.com/ext/search?act=list&Keyword=Aeolus
Regards and best wishes,
Justin Clift
--
Aeolus Community Manager
http://www.aeolusproject.org
12 years, 11 months
iwhd-0.94 imminent: any pending bugs/changes?
by Jim Meyering
With the segfault bug out of the way, I plan to release iwhd-0.94
within the next few hours. If you have a pending issue or any
type of change that belongs, please reply to this.
12 years, 11 months
iwhd-0.94 released [stable]
by Jim Meyering
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Here's the latest version of iwhd.
iwhd is Aeolus' (http://aeolusproject.org/)
rule-based cloud-to-cloud image manager.
Here are the compressed sources:
http://people.redhat.com/meyering/iwhd/iwhd-0.94.tar.gz (1.2MB)
http://people.redhat.com/meyering/iwhd/iwhd-0.94.tar.xz (752KB)
Here are the GPG detached signatures[*]:
http://people.redhat.com/meyering/iwhd/iwhd-0.94.tar.gz.sig
http://people.redhat.com/meyering/iwhd/iwhd-0.94.tar.xz.sig
[*] You can use either of the above signature files to verify that
the corresponding file (without the .sig suffix) is intact. First,
be sure to download both the .sig file and the corresponding tarball.
Then, run a command like this:
gpg --verify iwhd-0.94.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 000BEEEE
and rerun the `gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.68.71-af300
Automake 1.11a
Gnulib v0.0-5239-gd801cb7
NEWS
* Noteworthy changes in release 0.94 (2011-05-06) [stable]
** Bug fixes
iwhd no longer segfaults during garbage-collection
[bug introduced in 0.91]
iwhd now emits syntactically valid JSON output for the root query.
Before, it omitted the "providers": tag before the list of
provider descriptions. [bug introduced in the beginning]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAEBCAAGBQJNxDx9AAoJEH/Z/MsAC+7uIzMP/1a8cxkS0F2Fv0D/vxglo4Ko
wpNe0oLuDHxGVJyfxNc0/FcK3po44feJgVkfDCRybtyXVDKjoXhGit9CJDKxFKBP
/msHm6cc8GFya8+j428oROV/dPFIn+cYfTIi2h9hH531ZJbbspVNAbApejduXIki
Zqw2Iv1jjOsAMH5j+qZZrQEL92BN7G4vGsHx0f+77g89mO+Pu8Jmw4novy0U8v/4
jRtV73mpMOkbzeA+tl5ytaLdtTYtclRi/I9mGV31QnyD1+rj5EAVLxZGpKRDoCu6
gVlWXMPLQGXd0IwN9DFSEeCUwx3Gji0mwwhZ8/Roe1xXLQb/nl5zCGpE9UWV73Sz
49qiGp2ZrnO3WQr79criIUJlPGjfIGUtfEwyupvoeSOPE3aeaGwM35lbCPNKRMVx
j7Zg+bdueI0TSn0spmDghQEqiwGEYGiyi5i6Xzx2WW3nS6fQn1Zeea4XnOEWi0aZ
H6mB2YwvdR/klnhrNiLluHjwaJphBH7L7xudkq/MvR+As1sJt27U7PgCwIgtQKPW
9FMneNbJeuFxjs2vNr0vKTYr43DtT8OAcW7oTF5PY/66tlGp3O/fHnHMeqhGvK0Q
D7+7e3ilqPy982yn+Ur79LH6UWry7+KhsodujPiPdGn2RffPKZHf494YszLaOXfV
HrmhVbU+sxndgZF8d2kd
=Rtqh
-----END PGP SIGNATURE-----
12 years, 11 months
[PATCH aeolus] Fixed bug in HWP generate overrides
by Martyn Taylor
From: Martyn Taylor <mtaylor(a)redhat.com>
---
src/app/models/hardware_profile.rb | 10 +++++++---
src/spec/models/hardware_profile_spec.rb | 8 ++++++++
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/app/models/hardware_profile.rb b/src/app/models/hardware_profile.rb
index 836717e..85ebf15 100644
--- a/src/app/models/hardware_profile.rb
+++ b/src/app/models/hardware_profile.rb
@@ -156,15 +156,17 @@ class HardwareProfile < ActiveRecord::Base
return property_overrides
end
+
private
+ # Assumes that the properties have already been matched.
def self.generate_override_property_value(front_end_property, back_end_property)
case back_end_property.kind
when "fixed"
return back_end_property.value
when "range"
- return front_end_property.value
+ return front_end_property.value >= back_end_property.range_first ? front_end_property.value : back_end_property.range_first
when "enum"
- create_array_from_property(back_end_property).sort!.each do |value|
+ create_array_from_property(back_end_property).each do |value|
if BigDecimal.new(value) >= BigDecimal.new(front_end_property.value)
return value
end
@@ -212,7 +214,9 @@ class HardwareProfile < ActiveRecord::Base
return [p.value]
when 'enum'
- return p.property_enum_entries.map { |enum| enum.value }
+ values = p.property_enum_entries.map { |enum| enum.value }
+ values.sort! {|x,y| BigDecimal.new(x) <=> BigDecimal.new(y) }
+ return values
end
end
diff --git a/src/spec/models/hardware_profile_spec.rb b/src/spec/models/hardware_profile_spec.rb
index 7a971a3..a1e8619 100644
--- a/src/spec/models/hardware_profile_spec.rb
+++ b/src/spec/models/hardware_profile_spec.rb
@@ -116,6 +116,10 @@ describe HardwareProfile do
front_end_cpu = Factory(:hwpp_fixed, :name => 'cpu', :unit => 'count', :value => '2')
front_end_architecture = Factory(:hwpp_fixed, :name => 'architecture', :unit => 'label', :value => 'x86_64')
+ front_end_memory_min = Factory(:hwpp_fixed, :name => 'memory', :unit => 'MB', :value => '1')
+ front_end_storage_min = Factory(:hwpp_fixed, :name => 'storage', :unit => 'GB', :value => '1')
+ front_end_cpu_min = Factory(:hwpp_fixed, :name => 'cpu', :unit => 'count', :value => '1')
+
back_end_memory = Factory(:hwpp_range, :name => 'memory', :unit => 'MB', :value => '4048', :range_first => '1024', :range_last => '4048')
back_end_storage = create_hwpp_enum(['500', '1500', '2000'], {:name => 'storage', :unit => 'GB', :value => '1500'})
back_end_cpu = Factory(:hwpp_range, :name => 'cpu', :unit => 'count', :value => '4', :range_first => '1', :range_last => '8')
@@ -124,6 +128,10 @@ describe HardwareProfile do
HardwareProfile.generate_override_property_value(front_end_memory, back_end_memory).should == '2048'
HardwareProfile.generate_override_property_value(front_end_storage, back_end_storage).should == '1500'
HardwareProfile.generate_override_property_value(front_end_cpu, back_end_cpu).should == '2'
+
+ HardwareProfile.generate_override_property_value(front_end_memory_min, back_end_memory).should == '1024'
+ HardwareProfile.generate_override_property_value(front_end_storage_min, back_end_storage).should == '500'
+ HardwareProfile.generate_override_property_value(front_end_cpu_min, back_end_cpu).should == '1'
end
it "should correctly match a front end hardware profile with a back end hardware profile" do
--
1.7.4
12 years, 11 months