[PATCH conductor 1/3] Refactored catalog_entry model into catalog_entry and deployable models.
by Scott Seago
This allows deployables to be used in more than one catalog. For the moment, the UI is still unchanged -- catalog entry and deployable are constrained in a one-to-one relationship via the catalog_entry UI. This patch includes model and migration classes.
---
src/app/models/catalog.rb | 1 +
src/app/models/catalog_entry.rb | 69 +---------------
src/app/models/{catalog_entry.rb => deployable.rb} | 23 ++----
src/app/models/permission.rb | 2 +-
src/app/models/pool.rb | 12 ++--
src/db/migrate/20111122103000_add_deployables.rb | 68 ++++++++++++++++
.../migrate/20111122203000_add_deployable_roles.rb | 84 ++++++++++++++++++++
src/db/seeds.rb | 20 +++---
8 files changed, 181 insertions(+), 98 deletions(-)
copy src/app/models/{catalog_entry.rb => deployable.rb} (85%)
create mode 100644 src/db/migrate/20111122103000_add_deployables.rb
create mode 100644 src/db/migrate/20111122203000_add_deployable_roles.rb
diff --git a/src/app/models/catalog.rb b/src/app/models/catalog.rb
index 34024fa..1177b92 100644
--- a/src/app/models/catalog.rb
+++ b/src/app/models/catalog.rb
@@ -32,6 +32,7 @@ class Catalog < ActiveRecord::Base
belongs_to :pool
has_many :catalog_entries, :dependent => :destroy
+ has_many :deployables, :through => :catalog_entries
has_many :permissions, :as => :permission_object, :dependent => :destroy,
:include => [:role],
:order => "permissions.id ASC"
diff --git a/src/app/models/catalog_entry.rb b/src/app/models/catalog_entry.rb
index fff71a7..5190030 100644
--- a/src/app/models/catalog_entry.rb
+++ b/src/app/models/catalog_entry.rb
@@ -29,72 +29,13 @@
#
class CatalogEntry < ActiveRecord::Base
- include PermissionedObject
- validates_presence_of :name
- validates_uniqueness_of :name, :scope => :catalog_id
- validates_length_of :name, :maximum => 1024
- validates_presence_of :xml
- validates_presence_of :catalog
- validate :valid_deployable_xml?
-
- has_many :permissions, :as => :permission_object, :dependent => :destroy,
- :include => [:role],
- :order => "permissions.id ASC"
- belongs_to :owner, :class_name => "User", :foreign_key => "owner_id"
belongs_to :catalog
- after_create "assign_owner_roles(owner)"
-
- def valid_deployable_xml?
- deployable_xml = DeployableXML.new(xml)
- unless deployable_xml.validate!
- errors.add(:xml, I18n.t('catalog_entries.flash.warning.not_valid'))
- end
- end
-
- # Fetch the deployable contained at :url
- def fetch_deployable
- begin
- DeployableXML.new(xml)
- rescue
- return nil
- end
- end
+ belongs_to :deployable
- # Round up Catalog Entries, fetch their Deployables, and extract image UUIDs.
- def fetch_images
- images = []
- unless fetch_image_uuids.nil?
- fetch_image_uuids.each do |uuid|
- images << Aeolus::Image::Warehouse::Image.find(uuid)
- end
- return images.compact.uniq
- end
- end
-
- def fetch_image_uuids
- deployable = fetch_deployable
- deployable.image_uuids unless deployable.nil?
- end
-
- def hw_profile_for_image(image_id)
- fetch_deployable.assemblies.each do |as|
- if as.image_id == image_id
- return HardwareProfile.find_by_name(as.hwp)
- end
- end
- end
-
- #method used with uploading deployable xml in catalog_entries#new
- def xml=(data)
- #for new
- if data.instance_variables.include?("@original_filename") && data.instance_variables.include?("@tempfile")
- write_attribute :xml_filename, data.original_filename
- write_attribute :xml, data.tempfile.read
- #for update or new from_url
- else
- write_attribute :xml, data
- end
- end
+ validates_presence_of :catalog
+ validates_presence_of :deployable
+ # This probably goes away once we separate catalog entry creation from deployables
+ accepts_nested_attributes_for :deployable
end
diff --git a/src/app/models/catalog_entry.rb b/src/app/models/deployable.rb
similarity index 85%
copy from src/app/models/catalog_entry.rb
copy to src/app/models/deployable.rb
index fff71a7..449903c 100644
--- a/src/app/models/catalog_entry.rb
+++ b/src/app/models/deployable.rb
@@ -16,33 +16,23 @@
# MA 02110-1301, USA. A copy of the GNU General Public License is
# also available at http://www.gnu.org/copyleft/gpl.html.
-# == Schema Information
-#
-# Table name: catalog_entries
-#
-# id :integer not null, primary key
-# name :string(1024) not null
-# description :text not null
-# url :string(255)
-# owner_id :integer
-# catalog_id :integer not null
-#
-
-class CatalogEntry < ActiveRecord::Base
+class Deployable < ActiveRecord::Base
include PermissionedObject
validates_presence_of :name
- validates_uniqueness_of :name, :scope => :catalog_id
+ validates_uniqueness_of :name
validates_length_of :name, :maximum => 1024
+
validates_presence_of :xml
- validates_presence_of :catalog
validate :valid_deployable_xml?
has_many :permissions, :as => :permission_object, :dependent => :destroy,
:include => [:role],
:order => "permissions.id ASC"
+ has_many :catalog_entries
+ has_many :catalogs, :through => :catalog_entries
+
belongs_to :owner, :class_name => "User", :foreign_key => "owner_id"
- belongs_to :catalog
after_create "assign_owner_roles(owner)"
def valid_deployable_xml?
@@ -96,5 +86,4 @@ class CatalogEntry < ActiveRecord::Base
write_attribute :xml, data
end
end
-
end
diff --git a/src/app/models/permission.rb b/src/app/models/permission.rb
index 863d781..516b39d 100644
--- a/src/app/models/permission.rb
+++ b/src/app/models/permission.rb
@@ -52,7 +52,7 @@ class Permission < ActiveRecord::Base
:foreign_key => "permission_object_id"
belongs_to :deployment, :class_name => "Deployment",
:foreign_key => "permission_object_id"
- belongs_to :catalog_entry, :class_name => "CatalogEntry",
+ belongs_to :deployable, :class_name => "Deployable",
:foreign_key => "permission_object_id"
belongs_to :catalog, :class_name => "Catalog",
:foreign_key => "permission_object_id"
diff --git a/src/app/models/pool.rb b/src/app/models/pool.rb
index 14e8a6d..cbf5f70 100644
--- a/src/app/models/pool.rb
+++ b/src/app/models/pool.rb
@@ -124,18 +124,18 @@ class Pool < ActiveRecord::Base
end
def provider_image_map
- catalog_entries = catalogs.collect{|c| c.catalog_entries}.flatten
- all_images = catalog_entries.collect{|ce| ce.fetch_images}.flatten.uniq.compact
+ deployables = catalogs.collect{|c| c.deployables}.flatten
+ all_images = deployables.collect{|d| d.fetch_images}.flatten.uniq.compact
provider_images = Image.provider_images_for_image_list(all_images)
return_obj = {}
catalogs.each do |catalog|
return_obj[catalog] = {}
- catalog.catalog_entries.each do |catalog_entry|
- images = catalog_entry.fetch_images
+ catalog.deployables.each do |deployable|
+ images = deployable.fetch_images
unless images.nil?
- return_obj[catalog][catalog_entry] = {}
+ return_obj[catalog][deployable] = {}
images.each do |image|
- return_obj[catalog][catalog_entry][image] = provider_images.nil? ? {} : provider_images[image.uuid]
+ return_obj[catalog][deployable][image] = provider_images.nil? ? {} : provider_images[image.uuid]
end
end
end
diff --git a/src/db/migrate/20111122103000_add_deployables.rb b/src/db/migrate/20111122103000_add_deployables.rb
new file mode 100644
index 0000000..fc93a68
--- /dev/null
+++ b/src/db/migrate/20111122103000_add_deployables.rb
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2011 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA. A copy of the GNU General Public License is
+# also available at http://www.gnu.org/copyleft/gpl.html.
+
+class AddDeployables < ActiveRecord::Migration
+ def self.up
+ create_table :deployables do |t|
+ t.string :name, :null => false, :limit => 1024
+ t.text :description, :null => false
+ t.text :xml
+ t.string :xml_filename
+ t.integer :owner_id
+ end
+ add_column :catalog_entries, :deployable_id, :integer
+
+ CatalogEntry.all.each do |entry|
+ deployable = Deployable.new(:name => entry.name,
+ :description => entry.description,
+ :xml => entry.xml,
+ :xml_filename => entry.xml_filename,
+ :owner_id => entry.owner_id)
+ deployable.save!
+ entry.deployable = deployable
+ entry.save!
+ end
+ remove_column :catalog_entries, :name
+ remove_column :catalog_entries, :description
+ remove_column :catalog_entries, :xml
+ remove_column :catalog_entries, :xml_filename
+ remove_column :catalog_entries, :owner_id
+ end
+
+ def self.down
+ add_column :catalog_entries, :name, :string
+ add_column :catalog_entries, :description, :text
+ add_column :catalog_entries, :xml, :text
+ add_column :catalog_entries, :xml_filename, :string
+ add_column :catalog_entries, :owner_id, :integer
+
+ Deployable.all.each do |deployable|
+ entry = deployable.catalog_entries.first
+ if entry
+ entry.name = deployable.name
+ entry.description = deployable.description
+ entry.xml = deployable.xml
+ entry.xml_filename = deployable.xml_filename
+ entry.owner_id = deployable.owner_id
+ entry.save!
+ end
+ end
+ drop_column :catalog_entries, :deployable_id
+ drop_table :deployables
+ end
+end
diff --git a/src/db/migrate/20111122203000_add_deployable_roles.rb b/src/db/migrate/20111122203000_add_deployable_roles.rb
new file mode 100644
index 0000000..7535d11
--- /dev/null
+++ b/src/db/migrate/20111122203000_add_deployable_roles.rb
@@ -0,0 +1,84 @@
+#
+# Copyright (C) 2011 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA. A copy of the GNU General Public License is
+# also available at http://www.gnu.org/copyleft/gpl.html.
+
+class AddDeployableRoles < ActiveRecord::Migration
+ VIEW = "view"
+ USE = "use"
+ MOD = "modify"
+ CRE = "create"
+ VPRM = "view_perms"
+ GPRM = "set_perms"
+ NEW_ROLES = {
+ Deployable =>
+ {"Deployable User" => [false, {Deployable => [VIEW,USE]},
+ "CatalogEntry User"],
+ "Deployable Owner" => [true, {Deployable => [VIEW,USE,MOD,VPRM,GPRM]},
+ "CatalogEntry Owner"]},
+ BasePermissionObject =>
+ {"Deployable Administrator" => [false, {Deployable => [VIEW,USE,MOD,CRE,VPRM,GPRM]},
+ "CatalogEntry Administrator"],
+ "Deployable Global User" => [false, {Deployable=> [VIEW,USE]},
+ "CatalogEntry Global User"],
+ "Administrator" => [false, {Provider => [VIEW, MOD,CRE,VPRM,GPRM],
+ ProviderAccount => [VIEW,USE,MOD,CRE,VPRM,GPRM],
+ HardwareProfile => [VIEW, MOD,CRE,VPRM,GPRM],
+ Realm => [ USE,MOD,CRE,VPRM,GPRM],
+ User => [VIEW, MOD,CRE],
+ Pool => [VIEW, MOD,CRE,VPRM,GPRM],
+ Instance => [VIEW,USE,MOD,CRE,VPRM,GPRM],
+ Deployment => [VIEW,USE,MOD,CRE,VPRM,GPRM],
+ Quota => [VIEW, MOD],
+ PoolFamily => [VIEW, MOD,CRE,VPRM,GPRM],
+ Catalog => [VIEW,USE,MOD,CRE,VPRM,GPRM],
+ Deployable => [VIEW,USE,MOD,CRE,VPRM,GPRM],
+ BasePermissionObject => [ MOD, VPRM,GPRM]}]}}
+ def self.up
+ unless Role.all.size == 0
+ Role.transaction do
+ NEW_ROLES.each do |role_scope, scoped_hash|
+ scoped_hash.each do |role_name, role_def|
+ role = Role.find_or_initialize_by_name(role_def[2] ? role_def[2] : role_name)
+ role.update_attributes({:name => role_name, :scope => role_scope.name,
+ :assign_to_owner => role_def[0]})
+ role.privileges = {}
+ role.save!
+ role_def[1].each do |priv_type, priv_actions|
+ priv_actions.each do |action|
+ Privilege.create!(:role => role, :target_type => priv_type.name,
+ :action => action)
+ end
+ end
+ end
+ end
+
+ MetadataObject.remove("self_service_default_catalog_entry_obj")
+ MetadataObject.remove("self_service_default_catalog_entry_role")
+ MetadataObject.set("self_service_default_deployable_obj",
+ BasePermissionObject.general_permission_scope)
+ MetadataObject.set("self_service_default_deployable_role",
+ Role.find_by_name("Deployable Global User"))
+ MetadataObject.set("self_service_perms_list",
+ "[self_service_default_pool,self_service_default_role], [self_service_default_deployable_obj,self_service_default_deployable_role], [self_service_default_pool_global_user_obj,self_service_default_pool_global_user_role], [self_service_default_catalog_global_user_obj,self_service_default_catalog_global_user_role],[self_service_default_hwp_global_user_obj,self_service_default_hwp_global_user_role] ")
+
+ end
+ end
+ end
+
+ def self.down
+ end
+end
diff --git a/src/db/seeds.rb b/src/db/seeds.rb
index 3dc48d2..ceb0402 100644
--- a/src/db/seeds.rb
+++ b/src/db/seeds.rb
@@ -62,9 +62,9 @@ roles =
Catalog =>
{"Catalog User" => [false, {Catalog => [VIEW, USE]}],
"Catalog Administrator" => [true, {Catalog => [VIEW,USE,MOD,VPRM,GPRM]}]},
- CatalogEntry =>
- {"CatalogEntry User" => [false, {CatalogEntry => [VIEW,USE]}],
- "CatalogEntry Owner" => [true, {CatalogEntry => [VIEW,USE,MOD,VPRM,GPRM]}]},
+ Deployable =>
+ {"Deployable User" => [false, {Deployable => [VIEW,USE]}],
+ "Deployable Owner" => [true, {Deployable => [VIEW,USE,MOD,VPRM,GPRM]}]},
BasePermissionObject =>
{"Provider Creator" => [false, {Provider => [ CRE]}],
"Provider Administrator" => [false, {Provider => [VIEW, MOD,CRE,VPRM,GPRM],
@@ -77,8 +77,8 @@ roles =
Deployment => [VIEW,USE,MOD,CRE,VPRM,GPRM],
Quota => [VIEW, MOD],
PoolFamily => [VIEW, MOD,CRE,VPRM,GPRM]}],
- "CatalogEntry Administrator" => [false, {CatalogEntry => [VIEW,USE,MOD,CRE,VPRM,GPRM]}],
- "CatalogEntry Global User" => [false, {CatalogEntry=> [VIEW,USE]}],
+ "Deployable Administrator" => [false, {Deployable => [VIEW,USE,MOD,CRE,VPRM,GPRM]}],
+ "Deployable Global User" => [false, {Deployable=> [VIEW,USE]}],
"Catalog Global User" => [false, {Catalog => [VIEW,USE]}],
"HWP Global User" => [false, {HardwareProfile => [VIEW,USE]}],
"Pool Global User" => [false, {Pool => [VIEW],
@@ -96,7 +96,7 @@ roles =
Quota => [VIEW, MOD],
PoolFamily => [VIEW, MOD,CRE,VPRM,GPRM],
Catalog => [VIEW,USE,MOD,CRE,VPRM,GPRM],
- CatalogEntry => [VIEW,USE,MOD,CRE,VPRM,GPRM],
+ Deployable => [VIEW,USE,MOD,CRE,VPRM,GPRM],
BasePermissionObject => [ MOD, VPRM,GPRM]}]}}
Role.transaction do
roles.each do |role_scope, scoped_hash|
@@ -122,7 +122,7 @@ default_quota = Quota.create
default_pool = Pool.find_by_name("Default")
default_role = Role.find_by_name("Pool User")
-default_catalog_entry_role = Role.find_by_name("CatalogEntry Global User")
+default_deployable_role = Role.find_by_name("Deployable Global User")
default_pool_global_user_role = Role.find_by_name("Pool Global User")
default_catalog_global_user_role = Role.find_by_name("Catalog Global User")
default_hwp_global_user_role = Role.find_by_name("HWP Global User")
@@ -131,8 +131,8 @@ settings = {"allow_self_service_logins" => "true",
"self_service_default_quota" => default_quota,
"self_service_default_pool" => default_pool,
"self_service_default_role" => default_role,
- "self_service_default_catalog_entry_obj" => BasePermissionObject.general_permission_scope,
- "self_service_default_catalog_entry_role" => default_catalog_entry_role,
+ "self_service_default_deployable_obj" => BasePermissionObject.general_permission_scope,
+ "self_service_default_deployable_role" => default_deployable_role,
"self_service_default_pool_global_user_obj" => BasePermissionObject.general_permission_scope,
"self_service_default_pool_global_user_role" => default_pool_global_user_role,
"self_service_default_catalog_global_user_obj" => BasePermissionObject.general_permission_scope,
@@ -141,7 +141,7 @@ settings = {"allow_self_service_logins" => "true",
"self_service_default_hwp_global_user_role" => default_hwp_global_user_role,
# perm list in the format:
# "[resource1_key, resource1_role], [resource2_key, resource2_role], ..."
- "self_service_perms_list" => "[self_service_default_pool,self_service_default_role], [self_service_default_catalog_entry_obj,self_service_default_catalog_entry_role], [self_service_default_pool_global_user_obj,self_service_default_pool_global_user_role], [self_service_default_catalog_global_user_obj,self_service_default_catalog_global_user_role],[self_service_default_hwp_global_user_obj,self_service_default_hwp_global_user_role] "}
+ "self_service_perms_list" => "[self_service_default_pool,self_service_default_role], [self_service_default_deployable_obj,self_service_default_deployable_role], [self_service_default_pool_global_user_obj,self_service_default_pool_global_user_role], [self_service_default_catalog_global_user_obj,self_service_default_catalog_global_user_role],[self_service_default_hwp_global_user_obj,self_service_default_hwp_global_user_role] "}
settings.each_pair do |key, value|
MetadataObject.set(key, value)
end
--
1.7.6.4
12 years, 5 months
Clear names
by Angus Thomas
There's been a lot of discussion recently about the best way to name the
components that our users interact with.
We have sought to arrive at a set of names with which are:
- Descriptive and intuitive
- Internally consistent
- Consistent with the names used by similar applications which users
might be familiar with
Given that we'll need to update the code to reflect the new names, along
with the related documentation etc., there's a great deal to be said for
actually settling on a set of names.
So, here's the list:
Image template -> Component Outline
Assembly -> Component Blueprint
Deployable -> Application Blueprint
Deployment -> Application
Pool Family/Environment -> Cloud
Pool -> Cloud Resource Zone
User Defined Realm -> Cloud Resource Cluster
Provider -> Cloud Resource Provider
Hardware Profile -> Cloud Resource Profile
Angus
12 years, 5 months
[PATCH conductor] Added rake task to verify the status of licenses in the project
by Francesco Vollero
Signed-off-by: Francesco Vollero <fvollero(a)redhat.com>
---
src/lib/tasks/apache_license.rake | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
create mode 100644 src/lib/tasks/apache_license.rake
diff --git a/src/lib/tasks/apache_license.rake b/src/lib/tasks/apache_license.rake
new file mode 100644
index 0000000..d1b8e09
--- /dev/null
+++ b/src/lib/tasks/apache_license.rake
@@ -0,0 +1,29 @@
+# rake license:verify
+# If defined the environment variable with the command like:
+# rake license:verify list=<all>
+# list is set with values:
+# - all: list all the files
+# - gpl: list the files with gpl license
+# - gpl_nor_asl: list of files without licenses
+# - apache: list of files with apache license
+
+namespace :license do
+ desc 'Operations to verify status of licenses on files'
+
+ task :verify do |t, args|
+ gpl=%x[find ./ -type f -iname '*.rb' -exec grep -qE "http://www.gnu.org/copyleft/gpl.html" {} \\; -print].split
+ gpl_nor_asl=%x[find ./ -type f -iname '*.rb' \\! -exec grep -qE "http://www.gnu.org/copyleft/gpl.html" {} \\; -print].split
+ apache=%x[find ./ -type f -iname '*.rb' -exec grep -qE "Apache License" {} \\; -print].split
+ if (!ENV["list"] or ENV["list"].empty?)
+ puts "Files that contain GPL License: %d" % (gpl.size)
+ puts "Files that have neither GPL nor ASL: %d" % (gpl_nor_asl.size)
+ puts "Files that contain Apache license: %d" % (apache.size)
+ else
+ puts "Files that contain GPL License:"<<gpl.join(', ') if ENV["list"].include?("gpl") or ENV["list"]=="all"
+ puts "Files that have neither GPL nor ASL:" << gpl_nor_asl.join(', ') if ENV["list"].include?("gpl_nor_asl") or ENV["list"]=="all"
+ puts "Files that contain Apache license: " << apache.join(', ') if ENV["list"].include?("apache") or ENV["list"]=="all"
+ end
+ end
+
+ #namespace end
+end
--
1.7.4.4
12 years, 5 months
[PATCH configure] Rename mock account from mockuser to mock
by Richard Su
---
recipes/aeolus/manifests/profiles/conductor.pp | 2 +-
recipes/aeolus/manifests/profiles/mock.pp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/recipes/aeolus/manifests/profiles/conductor.pp b/recipes/aeolus/manifests/profiles/conductor.pp
index 6bfc0fe..7557f41 100644
--- a/recipes/aeolus/manifests/profiles/conductor.pp
+++ b/recipes/aeolus/manifests/profiles/conductor.pp
@@ -27,7 +27,7 @@ class aeolus::profiles::conductor {
type => "mock",
url => "http://localhost:3002/api"}
- aeolus::conductor::provider::account{"mockuser":
+ aeolus::conductor::provider::account{"mock":
provider => 'mock',
type => 'mock',
username => 'mockuser',
diff --git a/recipes/aeolus/manifests/profiles/mock.pp b/recipes/aeolus/manifests/profiles/mock.pp
index 1656815..4088b90 100644
--- a/recipes/aeolus/manifests/profiles/mock.pp
+++ b/recipes/aeolus/manifests/profiles/mock.pp
@@ -30,7 +30,7 @@ class aeolus::profiles::mock {
url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
- aeolus::conductor::provider::account{"mockuser":
+ aeolus::conductor::provider::account{"mock":
provider => 'mock',
type => 'mock',
username => 'mockuser',
--
1.7.6.4
12 years, 5 months
[PATCH configure] Changed iwhd user.js mode to 600
by Richard Su
Changed from 700 to 600 because execute is not needed.
---
recipes/aeolus/manifests/iwhd.pp | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/recipes/aeolus/manifests/iwhd.pp b/recipes/aeolus/manifests/iwhd.pp
index 1e93b01..61579e8 100644
--- a/recipes/aeolus/manifests/iwhd.pp
+++ b/recipes/aeolus/manifests/iwhd.pp
@@ -37,7 +37,7 @@ class aeolus::iwhd inherits aeolus {
file {"/etc/iwhd/users.js":
content => template("aeolus/iwhd-users.js"),
- mode => 700,
+ mode => 600,
require => Package['iwhd'] }
service { 'mongod':
--
1.7.6.4
12 years, 5 months
Audrey Demo
by Dan Radez
Here's a new demo that deploys wordpress as a basic example of what
audrey can do.
http://radez.fedorapeople.org/audrey-wp-demo.ogv
We're willing to do a question/answer demo if anyone is interested to
have one.
Also planning to eventually post this to youtube and the like, feedback
is welcome.
Radez
12 years, 5 months
iwhd-1.2 released [stable]
by Jim Meyering
Here is the latest version of iwhd.
iwhd is Aeolus' (http://aeolusproject.org/)
rule-based cloud-to-cloud image manager.
This includes a new feature, RHEV-M QCoW support, contributed by Ian McLeod.
Here are the compressed sources:
http://people.redhat.com/meyering/iwhd/iwhd-1.2.tar.xz (836KB)
Here are the GPG detached signatures[*]:
http://people.redhat.com/meyering/iwhd/iwhd-1.2.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-1.2.tar.xz.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.95-e0cb9
Automake 1.11a
Gnulib v0.0-6363-g996ce97
NEWS
* Noteworthy changes in release 1.2 (2011-12-06) [stable]
** New features
Add automatic qcow2 format detection to the dc-rhev-image helper
utility. This change allows you to use both raw and qcow2 images to
create templates in a RHEV-M environment.
12 years, 5 months