[PATCH aeolus 1/2] Added Search on CloudAccount Model
by steve linabery
From: Steve Linabery <slinabery(a)redhat.com>
Indexed attributes are 'name' and 'username'.
---
.../admin/provider_accounts_controller.rb | 19 ++++++++++++++++---
src/app/models/cloud_account.rb | 7 +++++++
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/app/controllers/admin/provider_accounts_controller.rb b/src/app/controllers/admin/provider_accounts_controller.rb
index 2c331f7..7a63d38 100644
--- a/src/app/controllers/admin/provider_accounts_controller.rb
+++ b/src/app/controllers/admin/provider_accounts_controller.rb
@@ -1,8 +1,18 @@
class Admin::ProviderAccountsController < ApplicationController
before_filter :require_user
- before_filter :load_accounts, :only => [:index, :show]
+ before_filter :load_accounts, :only => :show
+ before_filter :set_view_vars, :only => [:index,:show]
def index
+ @search_term = params[:q]
+ if @search_term.blank?
+ load_accounts
+ else
+ search = CloudAccount.search do
+ keywords(params[:q])
+ end
+ @accounts = search.results
+ end
end
def show
@@ -118,15 +128,18 @@ class Admin::ProviderAccountsController < ApplicationController
flash.now[:error] = "Test Connection Failed: Could not connect to provider"
end
- def load_accounts
+ def set_view_vars
@header = [
{ :name => "Name", :sort_attr => :name },
{ :name => "Username", :sort_attr => :username},
]
+ @url_params = params
+ end
+
+ def load_accounts
@accounts = CloudAccount.paginate(:all,
:page => params[:page] || 1,
:order => (params[:order_field] || 'label') +' '+ (params[:order_dir] || 'asc')
)
- @url_params = params
end
end
diff --git a/src/app/models/cloud_account.rb b/src/app/models/cloud_account.rb
index 4371a1a..334b7cb 100644
--- a/src/app/models/cloud_account.rb
+++ b/src/app/models/cloud_account.rb
@@ -20,8 +20,15 @@
# Likewise, all the methods added will be available for all controllers.
require 'nokogiri'
+require 'sunspot_rails'
class CloudAccount < ActiveRecord::Base
+
+ searchable do
+ text :name, :as => :code_substring
+ text :username, :as => :code_substring
+ end
+
include PermissionedObject
# Relations
--
1.7.3.4
12 years, 8 months
[PATCH aeolus 1/2] Added Search on CloudAccount Model
by Steve Linabery
Indexed attributes are 'name' and 'username'.
---
.../admin/provider_accounts_controller.rb | 19 ++++++++++++++++---
src/app/models/cloud_account.rb | 7 +++++++
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/app/controllers/admin/provider_accounts_controller.rb b/src/app/controllers/admin/provider_accounts_controller.rb
index 2c331f7..7a63d38 100644
--- a/src/app/controllers/admin/provider_accounts_controller.rb
+++ b/src/app/controllers/admin/provider_accounts_controller.rb
@@ -1,8 +1,18 @@
class Admin::ProviderAccountsController < ApplicationController
before_filter :require_user
- before_filter :load_accounts, :only => [:index, :show]
+ before_filter :load_accounts, :only => :show
+ before_filter :set_view_vars, :only => [:index,:show]
def index
+ @search_term = params[:q]
+ if @search_term.blank?
+ load_accounts
+ else
+ search = CloudAccount.search do
+ keywords(params[:q])
+ end
+ @accounts = search.results
+ end
end
def show
@@ -118,15 +128,18 @@ class Admin::ProviderAccountsController < ApplicationController
flash.now[:error] = "Test Connection Failed: Could not connect to provider"
end
- def load_accounts
+ def set_view_vars
@header = [
{ :name => "Name", :sort_attr => :name },
{ :name => "Username", :sort_attr => :username},
]
+ @url_params = params
+ end
+
+ def load_accounts
@accounts = CloudAccount.paginate(:all,
:page => params[:page] || 1,
:order => (params[:order_field] || 'label') +' '+ (params[:order_dir] || 'asc')
)
- @url_params = params
end
end
diff --git a/src/app/models/cloud_account.rb b/src/app/models/cloud_account.rb
index 4371a1a..334b7cb 100644
--- a/src/app/models/cloud_account.rb
+++ b/src/app/models/cloud_account.rb
@@ -20,8 +20,15 @@
# Likewise, all the methods added will be available for all controllers.
require 'nokogiri'
+require 'sunspot_rails'
class CloudAccount < ActiveRecord::Base
+
+ searchable do
+ text :name, :as => :code_substring
+ text :username, :as => :code_substring
+ end
+
include PermissionedObject
# Relations
--
1.7.3.4
12 years, 8 months
Model Annotation
by Martyn Taylor
Hi Guys,
To make development life a little easier, and to make it clear what models contain what fields. The models are to be annotated with their respective fields.
This is made easy by the following gem: http://annotate-models.rubyforge.org/
The only thing we need to be aware of, is to make sure we are updating the annotations, when any changes are made to the migrations to keep them in sync.
Hope this helps,
Cheers,
Martyn
12 years, 8 months
[PATCH aeolus] Annotated all Models
by Martyn Taylor
From: Martyn Taylor <mtaylor(a)redhat.com>
---
src/app/models/base_permission_object.rb | 11 ++++++++
src/app/models/cloud_account.rb | 19 ++++++++++++++
src/app/models/deployable.rb | 11 ++++++++
src/app/models/hardware_profile.rb | 18 +++++++++++++
src/app/models/hardware_profile_property.rb | 17 +++++++++++++
src/app/models/image.rb | 17 +++++++++++++
src/app/models/instance.rb | 33 +++++++++++++++++++++++++
src/app/models/instance_event.rb | 15 +++++++++++
src/app/models/instance_hwp.rb | 15 ++++++++++-
src/app/models/instance_key.rb | 14 ++++++++++
src/app/models/instance_task.rb | 22 ++++++++++++++++
src/app/models/metadata_object.rb | 14 ++++++++++
src/app/models/permission.rb | 15 +++++++++++
src/app/models/pool.rb | 15 +++++++++++
src/app/models/pool_family.rb | 13 ++++++++++
src/app/models/privilege.rb | 12 +++++++++
src/app/models/property_enum_entry.rb | 13 ++++++++++
src/app/models/provider.rb | 14 ++++++++++
src/app/models/quota.rb | 15 +++++++++++
src/app/models/realm.rb | 14 ++++++++++
src/app/models/replicated_image.rb | 13 ++++++++++
src/app/models/role.rb | 13 ++++++++++
src/app/models/task.rb | 22 ++++++++++++++++
src/app/models/template.rb | 22 ++++++++++++++++
src/app/models/user.rb | 27 ++++++++++++++++++++
src/spec/fixtures/base_permission_objects.yml | 11 ++++++++
src/spec/fixtures/privileges.yml | 12 +++++++++
src/spec/fixtures/roles.yml | 13 ++++++++++
src/test/fixtures/base_permission_objects.yml | 13 +++++++++-
src/test/fixtures/cloud_accounts.yml | 19 ++++++++++++++
src/test/fixtures/hardware_profiles.yml | 18 +++++++++++++
src/test/fixtures/images.yml | 17 +++++++++++++
src/test/fixtures/instances.yml | 33 +++++++++++++++++++++++++
src/test/fixtures/permissions.yml | 15 +++++++++++
src/test/fixtures/pools.yml | 15 +++++++++++
src/test/fixtures/privileges.yml | 12 +++++++++
src/test/fixtures/providers.yml | 14 ++++++++++
src/test/fixtures/quotas.yml | 15 +++++++++++
src/test/fixtures/realms.yml | 14 ++++++++++
src/test/fixtures/roles.yml | 13 ++++++++++
src/test/fixtures/users.yml | 27 ++++++++++++++++++++
41 files changed, 673 insertions(+), 2 deletions(-)
diff --git a/src/app/models/base_permission_object.rb b/src/app/models/base_permission_object.rb
index 5d64613..693f349 100644
--- a/src/app/models/base_permission_object.rb
+++ b/src/app/models/base_permission_object.rb
@@ -1,3 +1,14 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: base_permission_objects
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
# Written by Scott Seago <sseago(a)redhat.com>
diff --git a/src/app/models/cloud_account.rb b/src/app/models/cloud_account.rb
index 4371a1a..da1092b 100644
--- a/src/app/models/cloud_account.rb
+++ b/src/app/models/cloud_account.rb
@@ -1,3 +1,22 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: cloud_accounts
+#
+# id :integer not null, primary key
+# label :string(255) not null
+# username :string(255) not null
+# password :string(255) not null
+# provider_id :integer not null
+# quota_id :integer
+# lock_version :integer default(0)
+# account_number :string(255) not null
+# x509_cert_priv :text not null
+# x509_cert_pub :text not null
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/deployable.rb b/src/app/models/deployable.rb
index f4891d8..5fea983 100644
--- a/src/app/models/deployable.rb
+++ b/src/app/models/deployable.rb
@@ -1,2 +1,13 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: deployables
+#
+# id :integer not null, primary key
+# name :string(255)
+# created_at :datetime
+# updated_at :datetime
+#
+
class Deployable < ActiveRecord::Base
end
diff --git a/src/app/models/hardware_profile.rb b/src/app/models/hardware_profile.rb
index 5e6e9e8..1301f5b 100644
--- a/src/app/models/hardware_profile.rb
+++ b/src/app/models/hardware_profile.rb
@@ -1,3 +1,21 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: hardware_profiles
+#
+# id :integer not null, primary key
+# external_key :string(255) not null
+# name :string(1024) not null
+# memory_id :integer
+# storage_id :integer
+# cpu_id :integer
+# architecture_id :integer
+# provider_id :integer
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/hardware_profile_property.rb b/src/app/models/hardware_profile_property.rb
index 46e4b8e..cd55c87 100644
--- a/src/app/models/hardware_profile_property.rb
+++ b/src/app/models/hardware_profile_property.rb
@@ -1,3 +1,20 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: hardware_profile_properties
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# kind :string(255) not null
+# unit :string(255) not null
+# value :string(255) not null
+# range_first :string(255)
+# range_last :string(255)
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2010 Red Hat, Inc.
#
diff --git a/src/app/models/image.rb b/src/app/models/image.rb
index 8962bf1..1e73701 100644
--- a/src/app/models/image.rb
+++ b/src/app/models/image.rb
@@ -1,3 +1,20 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: images
+#
+# id :integer not null, primary key
+# uuid :string(255)
+# name :string(255) not null
+# build_id :string(255)
+# uri :string(255)
+# status :string(255)
+# target :string(255)
+# template_id :integer
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/instance.rb b/src/app/models/instance.rb
index e7757e3..798fcbd 100644
--- a/src/app/models/instance.rb
+++ b/src/app/models/instance.rb
@@ -1,3 +1,36 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: instances
+#
+# id :integer not null, primary key
+# external_key :string(255)
+# name :string(1024) not null
+# hardware_profile_id :integer not null
+# template_id :integer not null
+# realm_id :integer
+# owner_id :integer
+# pool_id :integer not null
+# cloud_account_id :integer
+# instance_hwp_id :integer
+# public_addresses :string(255)
+# private_addresses :string(255)
+# state :string(255)
+# condor_job_id :string(255)
+# last_error :text(255)
+# lock_version :integer default(0)
+# acc_pending_time :integer default(0)
+# acc_running_time :integer default(0)
+# acc_shutting_down_time :integer default(0)
+# acc_stopped_time :integer default(0)
+# time_last_pending :datetime
+# time_last_running :datetime
+# time_last_shutting_down :datetime
+# time_last_stopped :datetime
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/instance_event.rb b/src/app/models/instance_event.rb
index 5076f8a..ec66951 100644
--- a/src/app/models/instance_event.rb
+++ b/src/app/models/instance_event.rb
@@ -1,3 +1,18 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: instance_events
+#
+# id :integer not null, primary key
+# instance_id :integer not null
+# event_type :string(255) not null
+# event_time :datetime
+# status :string(255)
+# message :string(255)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Copyright (C) 2010 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
diff --git a/src/app/models/instance_hwp.rb b/src/app/models/instance_hwp.rb
index 8b52df9..f6849b6 100644
--- a/src/app/models/instance_hwp.rb
+++ b/src/app/models/instance_hwp.rb
@@ -1,3 +1,16 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: instance_hwps
+#
+# id :integer not null, primary key
+# memory :string(255)
+# cpu :string(255)
+# architecture :string(255)
+# storage :string(255)
+# lock_version :integer default(0)
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
@@ -23,4 +36,4 @@ class InstanceHwp < ActiveRecord::Base
has_one :instance
-end
\ No newline at end of file
+end
diff --git a/src/app/models/instance_key.rb b/src/app/models/instance_key.rb
index 9c941fe..ae3cc45 100644
--- a/src/app/models/instance_key.rb
+++ b/src/app/models/instance_key.rb
@@ -1,3 +1,17 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: instance_keys
+#
+# id :integer not null, primary key
+# instance_key_owner_id :integer not null
+# instance_key_owner_type :string(255) not null
+# name :string(255) not null
+# pem :text
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/instance_task.rb b/src/app/models/instance_task.rb
index be76a6e..699e33f 100644
--- a/src/app/models/instance_task.rb
+++ b/src/app/models/instance_task.rb
@@ -1,3 +1,25 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: tasks
+#
+# id :integer not null, primary key
+# user :string(255)
+# type :string(255)
+# action :string(255)
+# state :string(255)
+# task_target_id :integer
+# task_target_type :string(255)
+# args :string(255)
+# created_at :datetime
+# time_submitted :datetime
+# time_started :datetime
+# time_ended :datetime
+# message :text
+# failure_code :string(255)
+# lock_version :integer default(0)
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/metadata_object.rb b/src/app/models/metadata_object.rb
index 0db525e..f1d354c 100644
--- a/src/app/models/metadata_object.rb
+++ b/src/app/models/metadata_object.rb
@@ -1,3 +1,17 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: metadata_objects
+#
+# id :integer not null, primary key
+# key :string(255) not null
+# value :string(255) not null
+# object_type :string(255)
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2010 Red Hat, Inc.
#
diff --git a/src/app/models/permission.rb b/src/app/models/permission.rb
index 349b6a7..4b42cab 100644
--- a/src/app/models/permission.rb
+++ b/src/app/models/permission.rb
@@ -1,3 +1,18 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: permissions
+#
+# id :integer not null, primary key
+# role_id :integer not null
+# user_id :integer not null
+# permission_object_id :integer
+# permission_object_type :string(255)
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
# Written by Scott Seago <sseago(a)redhat.com>
diff --git a/src/app/models/pool.rb b/src/app/models/pool.rb
index 550ca79..6fb3e5d 100644
--- a/src/app/models/pool.rb
+++ b/src/app/models/pool.rb
@@ -1,3 +1,18 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: pools
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# exported_as :string(255)
+# quota_id :integer
+# pool_family_id :integer not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/pool_family.rb b/src/app/models/pool_family.rb
index bc96fee..9dcb1eb 100644
--- a/src/app/models/pool_family.rb
+++ b/src/app/models/pool_family.rb
@@ -1,3 +1,16 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: pool_families
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# description :string(255)
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2010 Red Hat, Inc.
#
diff --git a/src/app/models/privilege.rb b/src/app/models/privilege.rb
index 552beef..c6d1c61 100644
--- a/src/app/models/privilege.rb
+++ b/src/app/models/privilege.rb
@@ -1,3 +1,15 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: privileges
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
# Written by Scott Seago <sseago(a)redhat.com>
diff --git a/src/app/models/property_enum_entry.rb b/src/app/models/property_enum_entry.rb
index ff497ef..fff2057 100644
--- a/src/app/models/property_enum_entry.rb
+++ b/src/app/models/property_enum_entry.rb
@@ -1,3 +1,16 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: property_enum_entries
+#
+# id :integer not null, primary key
+# hardware_profile_property_id :integer not null
+# value :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2010 Red Hat, Inc.
#
diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb
index 6a195b0..fa672cf 100644
--- a/src/app/models/provider.rb
+++ b/src/app/models/provider.rb
@@ -1,3 +1,17 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: providers
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# cloud_type :string(255) not null
+# url :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/quota.rb b/src/app/models/quota.rb
index 9f79e04..593847e 100644
--- a/src/app/models/quota.rb
+++ b/src/app/models/quota.rb
@@ -1,3 +1,18 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: quotas
+#
+# id :integer not null, primary key
+# running_instances :integer default(0)
+# total_instances :integer default(0)
+# maximum_running_instances :integer
+# maximum_total_instances :integer
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/realm.rb b/src/app/models/realm.rb
index 4695792..fabff40 100644
--- a/src/app/models/realm.rb
+++ b/src/app/models/realm.rb
@@ -1,3 +1,17 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: realms
+#
+# id :integer not null, primary key
+# external_key :string(255) not null
+# name :string(1024) not null
+# provider_id :integer
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/replicated_image.rb b/src/app/models/replicated_image.rb
index ace66fc..488ff0c 100644
--- a/src/app/models/replicated_image.rb
+++ b/src/app/models/replicated_image.rb
@@ -1,3 +1,16 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: replicated_images
+#
+# id :integer not null, primary key
+# image_id :integer not null
+# provider_id :integer not null
+# provider_image_key :string(255)
+# uploaded :boolean
+# registered :boolean
+#
+
class ReplicatedImage < ActiveRecord::Base
belongs_to :provider
belongs_to :image
diff --git a/src/app/models/role.rb b/src/app/models/role.rb
index db4a9ac..7126138 100644
--- a/src/app/models/role.rb
+++ b/src/app/models/role.rb
@@ -1,3 +1,16 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: roles
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# scope :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
# Written by Scott Seago <sseago(a)redhat.com>
diff --git a/src/app/models/task.rb b/src/app/models/task.rb
index 8058089..c8c8182 100644
--- a/src/app/models/task.rb
+++ b/src/app/models/task.rb
@@ -1,3 +1,25 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: tasks
+#
+# id :integer not null, primary key
+# user :string(255)
+# type :string(255)
+# action :string(255)
+# state :string(255)
+# task_target_id :integer
+# task_target_type :string(255)
+# args :string(255)
+# created_at :datetime
+# time_submitted :datetime
+# time_started :datetime
+# time_ended :datetime
+# message :text
+# failure_code :string(255)
+# lock_version :integer default(0)
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/app/models/template.rb b/src/app/models/template.rb
index d545f9b..3952d56 100644
--- a/src/app/models/template.rb
+++ b/src/app/models/template.rb
@@ -1,3 +1,25 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: templates
+#
+# id :integer not null, primary key
+# uuid :string(255) not null
+# xml :binary not null
+# uri :string(255)
+# name :string(255)
+# platform :string(255)
+# platform_version :string(255)
+# architecture :string(255)
+# summary :text
+# complete :boolean
+# uploaded :boolean
+# imported :boolean
+# images_count :integer
+# created_at :datetime
+# updated_at :datetime
+#
+
require 'util/image_descriptor_xml'
require 'typhoeus'
diff --git a/src/app/models/user.rb b/src/app/models/user.rb
index 7942ae4..83cf0b6 100644
--- a/src/app/models/user.rb
+++ b/src/app/models/user.rb
@@ -1,3 +1,30 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: users
+#
+# id :integer not null, primary key
+# login :string(255) not null
+# email :string(255) not null
+# crypted_password :string(255) not null
+# password_salt :string(255) not null
+# persistence_token :string(255) not null
+# single_access_token :string(255) not null
+# perishable_token :string(255) not null
+# first_name :string(255)
+# last_name :string(255)
+# quota_id :integer
+# login_count :integer default(0), not null
+# failed_login_count :integer default(0), not null
+# last_request_at :datetime
+# current_login_at :datetime
+# last_login_at :datetime
+# current_login_ip :string(255)
+# last_login_ip :string(255)
+# created_at :datetime
+# updated_at :datetime
+#
+
#
# Copyright (C) 2009 Red Hat, Inc.
#
diff --git a/src/spec/fixtures/base_permission_objects.yml b/src/spec/fixtures/base_permission_objects.yml
index a520969..19ee95c 100644
--- a/src/spec/fixtures/base_permission_objects.yml
+++ b/src/spec/fixtures/base_permission_objects.yml
@@ -1,2 +1,13 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: base_permission_objects
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# created_at :datetime
+# updated_at :datetime
+#
+
general_permission_scope:
name: 'general_permission_scope'
diff --git a/src/spec/fixtures/privileges.yml b/src/spec/fixtures/privileges.yml
index 16723de..84cd22e 100644
--- a/src/spec/fixtures/privileges.yml
+++ b/src/spec/fixtures/privileges.yml
@@ -1,3 +1,15 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: privileges
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
# one:
diff --git a/src/spec/fixtures/roles.yml b/src/spec/fixtures/roles.yml
index d3ed623..9fa4f44 100644
--- a/src/spec/fixtures/roles.yml
+++ b/src/spec/fixtures/roles.yml
@@ -1,3 +1,16 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: roles
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# scope :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
# one:
diff --git a/src/test/fixtures/base_permission_objects.yml b/src/test/fixtures/base_permission_objects.yml
index 4cf58b8..d6b13b8 100644
--- a/src/test/fixtures/base_permission_objects.yml
+++ b/src/test/fixtures/base_permission_objects.yml
@@ -1,3 +1,14 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: base_permission_objects
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
# one:
@@ -6,4 +17,4 @@
# two:
# column: value
base_permission_object:
- name: general_permission_scope
\ No newline at end of file
+ name: general_permission_scope
diff --git a/src/test/fixtures/cloud_accounts.yml b/src/test/fixtures/cloud_accounts.yml
index 5099be1..b695353 100644
--- a/src/test/fixtures/cloud_accounts.yml
+++ b/src/test/fixtures/cloud_accounts.yml
@@ -1,3 +1,22 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: cloud_accounts
+#
+# id :integer not null, primary key
+# label :string(255) not null
+# username :string(255) not null
+# password :string(255) not null
+# provider_id :integer not null
+# quota_id :integer
+# lock_version :integer default(0)
+# account_number :string(255) not null
+# x509_cert_priv :text not null
+# x509_cert_pub :text not null
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
mock_account:
diff --git a/src/test/fixtures/hardware_profiles.yml b/src/test/fixtures/hardware_profiles.yml
index 7bdd345..a9978ee 100644
--- a/src/test/fixtures/hardware_profiles.yml
+++ b/src/test/fixtures/hardware_profiles.yml
@@ -1,3 +1,21 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: hardware_profiles
+#
+# id :integer not null, primary key
+# external_key :string(255) not null
+# name :string(1024) not null
+# memory_id :integer
+# storage_id :integer
+# cpu_id :integer
+# architecture_id :integer
+# provider_id :integer
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
m1_small_backend:
diff --git a/src/test/fixtures/images.yml b/src/test/fixtures/images.yml
index bfa6bba..fe8dfde 100644
--- a/src/test/fixtures/images.yml
+++ b/src/test/fixtures/images.yml
@@ -1,3 +1,20 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: images
+#
+# id :integer not null, primary key
+# uuid :string(255)
+# name :string(255) not null
+# build_id :string(255)
+# uri :string(255)
+# status :string(255)
+# target :string(255)
+# template_id :integer
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
fedora_13_image_backend:
diff --git a/src/test/fixtures/instances.yml b/src/test/fixtures/instances.yml
index 951258d..14bac21 100644
--- a/src/test/fixtures/instances.yml
+++ b/src/test/fixtures/instances.yml
@@ -1,3 +1,36 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: instances
+#
+# id :integer not null, primary key
+# external_key :string(255)
+# name :string(1024) not null
+# hardware_profile_id :integer not null
+# template_id :integer not null
+# realm_id :integer
+# owner_id :integer
+# pool_id :integer not null
+# cloud_account_id :integer
+# instance_hwp_id :integer
+# public_addresses :string(255)
+# private_addresses :string(255)
+# state :string(255)
+# condor_job_id :string(255)
+# last_error :text(255)
+# lock_version :integer default(0)
+# acc_pending_time :integer default(0)
+# acc_running_time :integer default(0)
+# acc_shutting_down_time :integer default(0)
+# acc_stopped_time :integer default(0)
+# time_last_pending :datetime
+# time_last_running :datetime
+# time_last_shutting_down :datetime
+# time_last_stopped :datetime
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
test_instance:
diff --git a/src/test/fixtures/permissions.yml b/src/test/fixtures/permissions.yml
index 4fba11c..1c73937 100644
--- a/src/test/fixtures/permissions.yml
+++ b/src/test/fixtures/permissions.yml
@@ -1,3 +1,18 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: permissions
+#
+# id :integer not null, primary key
+# role_id :integer not null
+# user_id :integer not null
+# permission_object_id :integer
+# permission_object_type :string(255)
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
admin_permission:
diff --git a/src/test/fixtures/pools.yml b/src/test/fixtures/pools.yml
index da63a52..b04ce5f 100644
--- a/src/test/fixtures/pools.yml
+++ b/src/test/fixtures/pools.yml
@@ -1,3 +1,18 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: pools
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# exported_as :string(255)
+# quota_id :integer
+# pool_family_id :integer not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
test_pool
diff --git a/src/test/fixtures/privileges.yml b/src/test/fixtures/privileges.yml
index d1f44ab..334ebe0 100644
--- a/src/test/fixtures/privileges.yml
+++ b/src/test/fixtures/privileges.yml
@@ -1,3 +1,15 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: privileges
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
# one:
diff --git a/src/test/fixtures/providers.yml b/src/test/fixtures/providers.yml
index 1669919..91c606f 100644
--- a/src/test/fixtures/providers.yml
+++ b/src/test/fixtures/providers.yml
@@ -1,3 +1,17 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: providers
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# cloud_type :string(255) not null
+# url :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
mock_provider:
diff --git a/src/test/fixtures/quotas.yml b/src/test/fixtures/quotas.yml
index cf8a3d9..d33f1b0 100644
--- a/src/test/fixtures/quotas.yml
+++ b/src/test/fixtures/quotas.yml
@@ -1,3 +1,18 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: quotas
+#
+# id :integer not null, primary key
+# running_instances :integer default(0)
+# total_instances :integer default(0)
+# maximum_running_instances :integer
+# maximum_total_instances :integer
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
test_pool_quota:
diff --git a/src/test/fixtures/realms.yml b/src/test/fixtures/realms.yml
index 6259f6c..38e757d 100644
--- a/src/test/fixtures/realms.yml
+++ b/src/test/fixtures/realms.yml
@@ -1,3 +1,17 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: realms
+#
+# id :integer not null, primary key
+# external_key :string(255) not null
+# name :string(1024) not null
+# provider_id :integer
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
us_realm:
diff --git a/src/test/fixtures/roles.yml b/src/test/fixtures/roles.yml
index 99df4b7..29958e5 100644
--- a/src/test/fixtures/roles.yml
+++ b/src/test/fixtures/roles.yml
@@ -1,3 +1,16 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: roles
+#
+# id :integer not null, primary key
+# name :string(255) not null
+# scope :string(255) not null
+# lock_version :integer default(0)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
# one:
diff --git a/src/test/fixtures/users.yml b/src/test/fixtures/users.yml
index d51db27..91be863 100644
--- a/src/test/fixtures/users.yml
+++ b/src/test/fixtures/users.yml
@@ -1,3 +1,30 @@
+# == Schema Information
+# Schema version: 20110112094108
+#
+# Table name: users
+#
+# id :integer not null, primary key
+# login :string(255) not null
+# email :string(255) not null
+# crypted_password :string(255) not null
+# password_salt :string(255) not null
+# persistence_token :string(255) not null
+# single_access_token :string(255) not null
+# perishable_token :string(255) not null
+# first_name :string(255)
+# last_name :string(255)
+# quota_id :integer
+# login_count :integer default(0), not null
+# failed_login_count :integer default(0), not null
+# last_request_at :datetime
+# current_login_at :datetime
+# last_login_at :datetime
+# current_login_ip :string(255)
+# last_login_ip :string(255)
+# created_at :datetime
+# updated_at :datetime
+#
+
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
test_user:
--
1.7.2.3
12 years, 8 months
[PATCH 2/2] Added permissions checking to roles controller and added the privilege list to the details pane.
by Scott Seago
Still missing are add/remove for privileges on a role, so any new roles that are added to the UI will be empty (no associated privileges).
This must be applied on top of the "refactored role/privilege model" patch.
Signed-off-by: Scott Seago <sseago(a)redhat.com>
---
src/app/controllers/admin/roles_controller.rb | 5 +++++
src/app/views/admin/roles/_properties.haml | 18 ++++++++++++++++++
src/features/role.feature | 24 +++++++++++++++---------
src/features/step_definitions/role_steps.rb | 23 ++++++++++++++++++++++-
4 files changed, 60 insertions(+), 10 deletions(-)
diff --git a/src/app/controllers/admin/roles_controller.rb b/src/app/controllers/admin/roles_controller.rb
index 70f0097..b47d917 100644
--- a/src/app/controllers/admin/roles_controller.rb
+++ b/src/app/controllers/admin/roles_controller.rb
@@ -3,6 +3,7 @@ class Admin::RolesController < ApplicationController
before_filter :load_roles, :only => [:index, :show]
def create
+ require_privilege(Privilege::ACTION_PERM_SET)
@role = Role.new(params[:role])
# TODO: (lmartinc) Fix this and let user select the scope. Consult with sseago.
@@ -17,6 +18,7 @@ class Admin::RolesController < ApplicationController
end
def show
+ require_privilege(Privilege::ACTION_PERM_VIEW)
@role = Role.find(params[:id])
@url_params = params.clone
@@ -34,10 +36,12 @@ class Admin::RolesController < ApplicationController
end
def edit
+ require_privilege(Privilege::ACTION_PERM_SET)
@role = Role.find(params[:id])
end
def update
+ require_privilege(Privilege::ACTION_PERM_SET)
@role = Role.find(params[:id])
if params[:commit] == "Reset"
@@ -53,6 +57,7 @@ class Admin::RolesController < ApplicationController
end
def multi_destroy
+ require_privilege(Privilege::ACTION_PERM_SET)
Role.destroy(params[:role_selected])
redirect_to admin_roles_url
end
diff --git a/src/app/views/admin/roles/_properties.haml b/src/app/views/admin/roles/_properties.haml
index 8645d33..bcb59f4 100644
--- a/src/app/views/admin/roles/_properties.haml
+++ b/src/app/views/admin/roles/_properties.haml
@@ -2,4 +2,22 @@
%h2 #{(a)role.name}
%strong Scope:
%span #{(a)role.scope}
+ %table
+ %thead
+ %tr
+ %th.show
+ Privileges
+ %th.show
+ %tbody
+ %tr
+ %td
+ %label Action
+ %td
+ %label Target type
+ -(a)role.privileges.each do |privilege|
+ %tr
+ %td
+ = privilege.action
+ %td
+ = privilege.target_type
= link_to t(:edit), edit_admin_role_path(@role), :class => 'button formbutton'
diff --git a/src/features/role.feature b/src/features/role.feature
index 1975f5a..70c99f0 100644
--- a/src/features/role.feature
+++ b/src/features/role.feature
@@ -6,34 +6,40 @@ Feature: Manage Roles
Background:
Given I am an authorised user
And I am logged in
- And there's no role
- And a role "Captan" exists
+ Given there's a list of roles
+ And a role "Captain" exists
And I am using new UI
Scenario: Change the name
Given I am on the admin roles page
- And there is a role "Captan"
- When I follow "Captan"
+ And there should be a role named "Captain"
+ When I follow "Captain"
And I follow "Edit"
Then I should see "Editing Role:"
When I fill in "role[name]" with "Admiral"
And I press "Save"
Then I should see "Role updated successfully!"
- Scenario: Show role detials
+ Scenario: Show role details
Given a role "Admiral" exists
And I am on the admin roles page
When I follow "Admiral"
Then I should be on Admiral's role page
+ Scenario: Show default role privileges
+ Given I am on the admin roles page
+ And there should be a role named "Administrator"
+ When I follow "Administrator"
+ Then I should be on Administrator's role page
+
Scenario: Delete roles
Given a role "Admiral" exists
And I am on the admin roles page
- And there are 2 roles
+ And there are 2 more roles
When I check "Admiral" role
- And I check "Captan" role
+ And I check "Captain" role
And I press "Destroy"
- Then there should only be 0 roles
+ Then there should be 0 more roles
And I should be on the admin roles page
- And I should not see "Captan"
+ And I should not see "Captain"
And I should not see "Admiral"
diff --git a/src/features/step_definitions/role_steps.rb b/src/features/step_definitions/role_steps.rb
index 3dac6d0..095216a 100644
--- a/src/features/step_definitions/role_steps.rb
+++ b/src/features/step_definitions/role_steps.rb
@@ -2,11 +2,15 @@ Given /there's no role/ do
Role.destroy_all
end
+Given /there's a list of roles/ do
+ @initial_num_roles = Role.count
+end
+
Given /^a role "([^"]*)" exists$/ do |role_name|
Role.create(:name => role_name, :scope => BasePermissionObject.to_s)
end
-Given /^there is a role "([^"]*)"$/ do |name|
+Given /^there should be a role named "([^\"]*)"$/ do |name|
Role.find_by_name(name).should_not == nil
end
@@ -14,6 +18,15 @@ Given /^there are (\d+) roles$/ do |number|
Role.count.should == number.to_i
end
+Given /^there are (\d+) more roles$/ do |number|
+ Role.count.should == @initial_num_roles + number.to_i
+end
+
+Given /^there are (\d+) fewer roles$/ do |number|
+ Role.count.should == @initial_num_roles - number.to_i
+ (@initial_num_roles + Role.count).should == number.to_i
+end
+
When /^(?:|I )check "([^"]*)" role$/ do |role_name|
role = Role.find_by_name(role_name)
check("role_checkbox_#{role.id}")
@@ -22,3 +35,11 @@ end
Then /^there should only be (\d+) roles$/ do |number|
Role.count.should == number.to_i
end
+
+Then /^there should be (\d+) more roles$/ do |number|
+ Role.count.should == @initial_num_roles + number.to_i
+end
+
+Then /^there should be (\d+) fewer roles$/ do |number|
+ Role.count.should == (@initial_num_roles - number.to_i)
+end
--
1.7.3.4
12 years, 8 months
Re: [deltacloud-devel] [PATCH 3/3] postgres/ssl support for the aeolus database
by Mike Orazi
ACK, but let's take an action to try to templatize pg_hba.conf rather
than have 2 versions of the file.
On 01/19/2011 04:54 PM, Mohammed Morsi wrote:
> ---
> recipes/deltacloud_recipe/files/pg_hba-ssl.conf | 5 +
> recipes/deltacloud_recipe/files/postgresql.conf | 503 +++++++++++++++++++++
> recipes/deltacloud_recipe/manifests/aggregator.pp | 34 ++-
> 3 files changed, 539 insertions(+), 3 deletions(-)
> create mode 100644 recipes/deltacloud_recipe/files/pg_hba-ssl.conf
> create mode 100644 recipes/deltacloud_recipe/files/postgresql.conf
>
> diff --git a/recipes/deltacloud_recipe/files/pg_hba-ssl.conf b/recipes/deltacloud_recipe/files/pg_hba-ssl.conf
> new file mode 100644
> index 0000000..94a64d0
> --- /dev/null
> +++ b/recipes/deltacloud_recipe/files/pg_hba-ssl.conf
> @@ -0,0 +1,5 @@
> +# we are still leaving Unix-domain sockets open, if we want to disable
> +# make sure to append "sslmode=require" and "-h localhost" to all psql
> +# commands
> +local all all trust
> +hostssl all all 127.0.0.1/32 md5
> diff --git a/recipes/deltacloud_recipe/files/postgresql.conf b/recipes/deltacloud_recipe/files/postgresql.conf
> new file mode 100644
> index 0000000..cf97fce
> --- /dev/null
> +++ b/recipes/deltacloud_recipe/files/postgresql.conf
> @@ -0,0 +1,503 @@
> +# -----------------------------
> +# PostgreSQL configuration file
> +# -----------------------------
> +#
> +# This file consists of lines of the form:
> +#
> +# name = value
> +#
> +# (The "=" is optional.) Whitespace may be used. Comments are introduced with
> +# "#" anywhere on a line. The complete list of parameter names and allowed
> +# values can be found in the PostgreSQL documentation.
> +#
> +# The commented-out settings shown in this file represent the default values.
> +# Re-commenting a setting is NOT sufficient to revert it to the default value;
> +# you need to reload the server.
> +#
> +# This file is read on server startup and when the server receives a SIGHUP
> +# signal. If you edit the file on a running system, you have to SIGHUP the
> +# server for the changes to take effect, or use "pg_ctl reload". Some
> +# parameters, which are marked below, require a server shutdown and restart to
> +# take effect.
> +#
> +# Any parameter can also be given as a command-line option to the server, e.g.,
> +# "postgres -c log_connections=on". Some parameters can be changed at run time
> +# with the "SET" SQL command.
> +#
> +# Memory units: kB = kilobytes Time units: ms = milliseconds
> +# MB = megabytes s = seconds
> +# GB = gigabytes min = minutes
> +# h = hours
> +# d = days
> +
> +
> +#------------------------------------------------------------------------------
> +# FILE LOCATIONS
> +#------------------------------------------------------------------------------
> +
> +# The default values of these variables are driven from the -D command-line
> +# option or PGDATA environment variable, represented here as ConfigDir.
> +
> +#data_directory = 'ConfigDir' # use data in another directory
> + # (change requires restart)
> +#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
> + # (change requires restart)
> +#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
> + # (change requires restart)
> +
> +# If external_pid_file is not explicitly set, no extra PID file is written.
> +#external_pid_file = '(none)' # write an extra PID file
> + # (change requires restart)
> +
> +
> +#------------------------------------------------------------------------------
> +# CONNECTIONS AND AUTHENTICATION
> +#------------------------------------------------------------------------------
> +
> +# - Connection Settings -
> +
> +#listen_addresses = 'localhost' # what IP address(es) to listen on;
> + # comma-separated list of addresses;
> + # defaults to 'localhost', '*' = all
> + # (change requires restart)
> +#port = 5432 # (change requires restart)
> +max_connections = 100 # (change requires restart)
> +# Note: Increasing max_connections costs ~400 bytes of shared memory per
> +# connection slot, plus lock space (see max_locks_per_transaction).
> +#superuser_reserved_connections = 3 # (change requires restart)
> +#unix_socket_directory = '' # (change requires restart)
> +#unix_socket_group = '' # (change requires restart)
> +#unix_socket_permissions = 0777 # begin with 0 to use octal notation
> + # (change requires restart)
> +#bonjour_name = '' # defaults to the computer name
> + # (change requires restart)
> +
> +# - Security and Authentication -
> +
> +#authentication_timeout = 1min # 1s-600s
> +#ssl = off # (change requires restart)
> +#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
> + # (change requires restart)
> +#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
> +#password_encryption = on
> +#db_user_namespace = off
> +
> +# Kerberos and GSSAPI
> +#krb_server_keyfile = ''
> +#krb_srvname = 'postgres' # (Kerberos only)
> +#krb_caseins_users = off
> +
> +# - TCP Keepalives -
> +# see "man 7 tcp" for details
> +
> +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
> + # 0 selects the system default
> +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
> + # 0 selects the system default
> +#tcp_keepalives_count = 0 # TCP_KEEPCNT;
> + # 0 selects the system default
> +
> +
> +#------------------------------------------------------------------------------
> +# RESOURCE USAGE (except WAL)
> +#------------------------------------------------------------------------------
> +
> +# - Memory -
> +
> +shared_buffers = 24MB # min 128kB
> + # (change requires restart)
> +#temp_buffers = 8MB # min 800kB
> +#max_prepared_transactions = 0 # zero disables the feature
> + # (change requires restart)
> +# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
> +# per transaction slot, plus lock space (see max_locks_per_transaction).
> +# It is not advisable to set max_prepared_transactions nonzero unless you
> +# actively intend to use prepared transactions.
> +#work_mem = 1MB # min 64kB
> +#maintenance_work_mem = 16MB # min 1MB
> +#max_stack_depth = 2MB # min 100kB
> +
> +# - Kernel Resource Usage -
> +
> +#max_files_per_process = 1000 # min 25
> + # (change requires restart)
> +#shared_preload_libraries = '' # (change requires restart)
> +
> +# - Cost-Based Vacuum Delay -
> +
> +#vacuum_cost_delay = 0ms # 0-100 milliseconds
> +#vacuum_cost_page_hit = 1 # 0-10000 credits
> +#vacuum_cost_page_miss = 10 # 0-10000 credits
> +#vacuum_cost_page_dirty = 20 # 0-10000 credits
> +#vacuum_cost_limit = 200 # 1-10000 credits
> +
> +# - Background Writer -
> +
> +#bgwriter_delay = 200ms # 10-10000ms between rounds
> +#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
> +#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round
> +
> +# - Asynchronous Behavior -
> +
> +#effective_io_concurrency = 1 # 1-1000. 0 disables prefetching
> +
> +
> +#------------------------------------------------------------------------------
> +# WRITE AHEAD LOG
> +#------------------------------------------------------------------------------
> +
> +# - Settings -
> +
> +#fsync = on # turns forced synchronization on or off
> +#synchronous_commit = on # immediate fsync at commit
> +#wal_sync_method = fsync # the default is the first option
> + # supported by the operating system:
> + # open_datasync
> + # fdatasync
> + # fsync
> + # fsync_writethrough
> + # open_sync
> +#full_page_writes = on # recover from partial page writes
> +#wal_buffers = 64kB # min 32kB
> + # (change requires restart)
> +#wal_writer_delay = 200ms # 1-10000 milliseconds
> +
> +#commit_delay = 0 # range 0-100000, in microseconds
> +#commit_siblings = 5 # range 1-1000
> +
> +# - Checkpoints -
> +
> +#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each
> +#checkpoint_timeout = 5min # range 30s-1h
> +#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
> +#checkpoint_warning = 30s # 0 disables
> +
> +# - Archiving -
> +
> +#archive_mode = off # allows archiving to be done
> + # (change requires restart)
> +#archive_command = '' # command to use to archive a logfile segment
> +#archive_timeout = 0 # force a logfile segment switch after this
> + # number of seconds; 0 disables
> +
> +
> +#------------------------------------------------------------------------------
> +# QUERY TUNING
> +#------------------------------------------------------------------------------
> +
> +# - Planner Method Configuration -
> +
> +#enable_bitmapscan = on
> +#enable_hashagg = on
> +#enable_hashjoin = on
> +#enable_indexscan = on
> +#enable_mergejoin = on
> +#enable_nestloop = on
> +#enable_seqscan = on
> +#enable_sort = on
> +#enable_tidscan = on
> +
> +# - Planner Cost Constants -
> +
> +#seq_page_cost = 1.0 # measured on an arbitrary scale
> +#random_page_cost = 4.0 # same scale as above
> +#cpu_tuple_cost = 0.01 # same scale as above
> +#cpu_index_tuple_cost = 0.005 # same scale as above
> +#cpu_operator_cost = 0.0025 # same scale as above
> +#effective_cache_size = 128MB
> +
> +# - Genetic Query Optimizer -
> +
> +#geqo = on
> +#geqo_threshold = 12
> +#geqo_effort = 5 # range 1-10
> +#geqo_pool_size = 0 # selects default based on effort
> +#geqo_generations = 0 # selects default based on effort
> +#geqo_selection_bias = 2.0 # range 1.5-2.0
> +
> +# - Other Planner Options -
> +
> +#default_statistics_target = 100 # range 1-10000
> +#constraint_exclusion = partition # on, off, or partition
> +#cursor_tuple_fraction = 0.1 # range 0.0-1.0
> +#from_collapse_limit = 8
> +#join_collapse_limit = 8 # 1 disables collapsing of explicit
> + # JOIN clauses
> +
> +
> +#------------------------------------------------------------------------------
> +# ERROR REPORTING AND LOGGING
> +#------------------------------------------------------------------------------
> +
> +# - Where to Log -
> +
> +#log_destination = 'stderr' # Valid values are combinations of
> + # stderr, csvlog, syslog and eventlog,
> + # depending on platform. csvlog
> + # requires logging_collector to be on.
> +
> +# This is used when logging to stderr:
> +logging_collector = on # Enable capturing of stderr and csvlog
> + # into log files. Required to be on for
> + # csvlogs.
> + # (change requires restart)
> +
> +# These are only used if logging_collector is on:
> +log_directory = 'pg_log' # directory where log files are written,
> + # can be absolute or relative to PGDATA
> +log_filename = 'postgresql-%a.log' # log file name pattern,
> + # can include strftime() escapes
> +log_truncate_on_rotation = on # If on, an existing log file of the
> + # same name as the new log file will be
> + # truncated rather than appended to.
> + # But such truncation only occurs on
> + # time-driven rotation, not on restarts
> + # or size-driven rotation. Default is
> + # off, meaning append to existing files
> + # in all cases.
> +log_rotation_age = 1d # Automatic rotation of logfiles will
> + # happen after that time. 0 disables.
> +log_rotation_size = 0 # Automatic rotation of logfiles will
> + # happen after that much log output.
> + # 0 disables.
> +
> +# These are relevant when logging to syslog:
> +#syslog_facility = 'LOCAL0'
> +#syslog_ident = 'postgres'
> +
> +#silent_mode = off # Run server silently.
> + # DO NOT USE without syslog or
> + # logging_collector
> + # (change requires restart)
> +
> +
> +# - When to Log -
> +
> +#client_min_messages = notice # values in order of decreasing detail:
> + # debug5
> + # debug4
> + # debug3
> + # debug2
> + # debug1
> + # log
> + # notice
> + # warning
> + # error
> +
> +#log_min_messages = warning # values in order of decreasing detail:
> + # debug5
> + # debug4
> + # debug3
> + # debug2
> + # debug1
> + # info
> + # notice
> + # warning
> + # error
> + # log
> + # fatal
> + # panic
> +
> +#log_error_verbosity = default # terse, default, or verbose messages
> +
> +#log_min_error_statement = error # values in order of decreasing detail:
> + # debug5
> + # debug4
> + # debug3
> + # debug2
> + # debug1
> + # info
> + # notice
> + # warning
> + # error
> + # log
> + # fatal
> + # panic (effectively off)
> +
> +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements
> + # and their durations,> 0 logs only
> + # statements running at least this number
> + # of milliseconds
> +
> +
> +# - What to Log -
> +
> +#debug_print_parse = off
> +#debug_print_rewritten = off
> +#debug_print_plan = off
> +#debug_pretty_print = on
> +#log_checkpoints = off
> +#log_connections = off
> +#log_disconnections = off
> +#log_duration = off
> +#log_hostname = off
> +#log_line_prefix = '' # special values:
> + # %u = user name
> + # %d = database name
> + # %r = remote host and port
> + # %h = remote host
> + # %p = process ID
> + # %t = timestamp without milliseconds
> + # %m = timestamp with milliseconds
> + # %i = command tag
> + # %c = session ID
> + # %l = session line number
> + # %s = session start timestamp
> + # %v = virtual transaction ID
> + # %x = transaction ID (0 if none)
> + # %q = stop here in non-session
> + # processes
> + # %% = '%'
> + # e.g. '<%u%%%d> '
> +#log_lock_waits = off # log lock waits>= deadlock_timeout
> +#log_statement = 'none' # none, ddl, mod, all
> +#log_temp_files = -1 # log temporary files equal or larger
> + # than the specified size in kilobytes;
> + # -1 disables, 0 logs all temp files
> +#log_timezone = unknown # actually, defaults to TZ environment
> + # setting
> +
> +
> +#------------------------------------------------------------------------------
> +# RUNTIME STATISTICS
> +#------------------------------------------------------------------------------
> +
> +# - Query/Index Statistics Collector -
> +
> +#track_activities = on
> +#track_counts = on
> +#track_functions = none # none, pl, all
> +#track_activity_query_size = 1024
> +#update_process_title = on
> +#stats_temp_directory = 'pg_stat_tmp'
> +
> +
> +# - Statistics Monitoring -
> +
> +#log_parser_stats = off
> +#log_planner_stats = off
> +#log_executor_stats = off
> +#log_statement_stats = off
> +
> +
> +#------------------------------------------------------------------------------
> +# AUTOVACUUM PARAMETERS
> +#------------------------------------------------------------------------------
> +
> +#autovacuum = on # Enable autovacuum subprocess? 'on'
> + # requires track_counts to also be on.
> +#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
> + # their durations,> 0 logs only
> + # actions running at least this number
> + # of milliseconds.
> +#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
> +#autovacuum_naptime = 1min # time between autovacuum runs
> +#autovacuum_vacuum_threshold = 50 # min number of row updates before
> + # vacuum
> +#autovacuum_analyze_threshold = 50 # min number of row updates before
> + # analyze
> +#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
> +#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
> +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
> + # (change requires restart)
> +#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
> + # autovacuum, in milliseconds;
> + # -1 means use vacuum_cost_delay
> +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
> + # autovacuum, -1 means use
> + # vacuum_cost_limit
> +
> +
> +#------------------------------------------------------------------------------
> +# CLIENT CONNECTION DEFAULTS
> +#------------------------------------------------------------------------------
> +
> +# - Statement Behavior -
> +
> +#search_path = '"$user",public' # schema names
> +#default_tablespace = '' # a tablespace name, '' uses the default
> +#temp_tablespaces = '' # a list of tablespace names, '' uses
> + # only default tablespace
> +#check_function_bodies = on
> +#default_transaction_isolation = 'read committed'
> +#default_transaction_read_only = off
> +#session_replication_role = 'origin'
> +#statement_timeout = 0 # in milliseconds, 0 is disabled
> +#vacuum_freeze_min_age = 50000000
> +#vacuum_freeze_table_age = 150000000
> +#xmlbinary = 'base64'
> +#xmloption = 'content'
> +
> +# - Locale and Formatting -
> +
> +datestyle = 'iso, mdy'
> +#intervalstyle = 'postgres'
> +#timezone = unknown # actually, defaults to TZ environment
> + # setting
> +#timezone_abbreviations = 'Default' # Select the set of available time zone
> + # abbreviations. Currently, there are
> + # Default
> + # Australia
> + # India
> + # You can create your own file in
> + # share/timezonesets/.
> +#extra_float_digits = 0 # min -15, max 2
> +#client_encoding = sql_ascii # actually, defaults to database
> + # encoding
> +
> +# These settings are initialized by initdb, but they can be changed.
> +lc_messages = 'en_US.UTF-8' # locale for system error message
> + # strings
> +lc_monetary = 'en_US.UTF-8' # locale for monetary formatting
> +lc_numeric = 'en_US.UTF-8' # locale for number formatting
> +lc_time = 'en_US.UTF-8' # locale for time formatting
> +
> +# default configuration for text search
> +default_text_search_config = 'pg_catalog.english'
> +
> +# - Other Defaults -
> +
> +#dynamic_library_path = '$libdir'
> +#local_preload_libraries = ''
> +
> +
> +#------------------------------------------------------------------------------
> +# LOCK MANAGEMENT
> +#------------------------------------------------------------------------------
> +
> +#deadlock_timeout = 1s
> +#max_locks_per_transaction = 64 # min 10
> + # (change requires restart)
> +# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
> +# max_locks_per_transaction * (max_connections + max_prepared_transactions)
> +# lock table slots.
> +
> +
> +#------------------------------------------------------------------------------
> +# VERSION/PLATFORM COMPATIBILITY
> +#------------------------------------------------------------------------------
> +
> +# - Previous PostgreSQL Versions -
> +
> +#add_missing_from = off
> +#array_nulls = on
> +#backslash_quote = safe_encoding # on, off, or safe_encoding
> +#default_with_oids = off
> +#escape_string_warning = on
> +#regex_flavor = advanced # advanced, extended, or basic
> +#sql_inheritance = on
> +#standard_conforming_strings = off
> +#synchronize_seqscans = on
> +
> +# - Other Platforms and Clients -
> +
> +#transform_null_equals = off
> +
> +
> +#------------------------------------------------------------------------------
> +# CUSTOMIZED OPTIONS
> +#------------------------------------------------------------------------------
> +
> +#custom_variable_classes = '' # list of custom variable class names
> +
> +ssl = on
> diff --git a/recipes/deltacloud_recipe/manifests/aggregator.pp b/recipes/deltacloud_recipe/manifests/aggregator.pp
> index 0c0c2e2..e8523cb 100644
> --- a/recipes/deltacloud_recipe/manifests/aggregator.pp
> +++ b/recipes/deltacloud_recipe/manifests/aggregator.pp
> @@ -43,9 +43,37 @@ class deltacloud::aggregator inherits deltacloud {
> # Right now we configure and start postgres, at some point I want
> # to make the db that gets setup configurable
> include postgres::server
> - file { "/var/lib/pgsql/data/pg_hba.conf":
> - source => "puppet:///modules/deltacloud_recipe/pg_hba.conf",
> - require => Exec["pginitdb"] }
> + if $enable_security {
> + openssl::certificate{"/var/lib/pgsql/data/server":
> + user => 'postgres',
> + group => 'postgres',
> + require => Exec["pginitdb"],
> + notify => Service['postgresql']}
> + # since we're self signing for now, use the same certificate for the root
> + file { "/var/lib/pgsql/data/root.crt":
> + require => Openssl::Certificate["/var/lib/pgsql/data/server"],
> + source => "/var/lib/pgsql/data/server.crt",
> + owner => 'postgres',
> + group => 'postgres',
> + notify => Service['postgresql'] }
> + file { "/var/lib/pgsql/data/pg_hba.conf":
> + source => "puppet:///modules/deltacloud_recipe/pg_hba-ssl.conf",
> + require => Exec["pginitdb"],
> + owner => 'postgres',
> + group => 'postgres',
> + notify => Service['postgresql']}
> + file { "/var/lib/pgsql/data/postgresql.conf":
> + source => "puppet:///modules/deltacloud_recipe/postgresql.conf",
> + require => Exec["pginitdb"],
> + owner => 'postgres',
> + group => 'postgres',
> + notify => Service['postgresql']}
> + } else {
> + file { "/var/lib/pgsql/data/pg_hba.conf":
> + source => "puppet:///modules/deltacloud_recipe/pg_hba.conf",
> + require => Exec["pginitdb"],
> + notify => Service['postgresql']}
> + }
> postgres::user{"dcloud":
> password => "v23zj59an",
> roles => "CREATEDB",
12 years, 8 months
Re: [deltacloud-devel] [PATCH 2/3] https configuration for the aeolus conductor
by Mike Orazi
Conditional ACK. I think it needs a few minor tweaks.
I believe setting the request header X_FORWARDED_PROTO will get you
around the redirection that you mentioned in your comment but please
double check that part.
On 01/19/2011 04:54 PM, Mohammed Morsi wrote:
> ---
> contrib/deltacloud-configure.spec | 1 +
> recipes/apache/manifests/init.pp | 34 +++++++++++++++++
> .../files/aggregator-httpd-ssl.conf | 38 ++++++++++++++++++++
> .../deltacloud_recipe/files/aggregator-httpd.conf | 23 ++++++++++++
> recipes/deltacloud_recipe/manifests/aggregator.pp | 15 ++++++--
> recipes/deltacloud_recipe/manifests/deltacloud.pp | 1 +
> 6 files changed, 109 insertions(+), 3 deletions(-)
> create mode 100644 recipes/apache/manifests/init.pp
> create mode 100644 recipes/deltacloud_recipe/files/aggregator-httpd-ssl.conf
> create mode 100644 recipes/deltacloud_recipe/files/aggregator-httpd.conf
>
> diff --git a/contrib/deltacloud-configure.spec b/contrib/deltacloud-configure.spec
> index e49877f..670d401 100644
> --- a/contrib/deltacloud-configure.spec
> +++ b/contrib/deltacloud-configure.spec
> @@ -33,6 +33,7 @@ rm -rf %{buildroot}
> %{__cp} -R %{pbuild}/recipes/deltacloud_recipe/deltacloud_recipe.pp %{buildroot}/%{dchome}
> %{__cp} -R %{pbuild}/recipes/deltacloud_recipe/deltacloud_uninstall.pp %{buildroot}/%{dchome}
> %{__cp} -R %{pbuild}/recipes/deltacloud_recipe/*/ %{buildroot}/%{dchome}/modules/deltacloud_recipe
> +%{__cp} -R %{pbuild}/recipes/apache/ %{buildroot}/%{dchome}/modules/apache
> %{__cp} -R %{pbuild}/recipes/firewall/ %{buildroot}/%{dchome}/modules/firewall
> %{__cp} -R %{pbuild}/recipes/ntp/ %{buildroot}/%{dchome}/modules/ntp
> %{__cp} -R %{pbuild}/recipes/postgres/ %{buildroot}/%{dchome}/modules/postgres
> diff --git a/recipes/apache/manifests/init.pp b/recipes/apache/manifests/init.pp
> new file mode 100644
> index 0000000..fa8fe53
> --- /dev/null
> +++ b/recipes/apache/manifests/init.pp
> @@ -0,0 +1,34 @@
> +$apache_dir = "/etc/httpd"
> +$apache_conf_dir = "${apache_dir}/conf.d"
> +
> +class apache {
> + # require apache and mod_ssl
> + package { "httpd": ensure => installed }
> +
> + if $enable_security {
> + package { "mod_ssl": ensure => installed }
> + }
> +
> + service { "httpd":
> + ensure => running,
> + require => Package["httpd"],
> + hasrestart => true,
> + hasstatus => true
> + }
> +
> + exec { "reload-apache":
> + command => "/sbin/service httpd reload",
> + refreshonly => true
> + }
> +}
> +
> +define apache::site ( $ensure = 'present', $source = '') {
> + $site_file = "${apache_conf_dir}/${name}.conf"
> + file {
> + $site_file:
> + ensure => $ensure,
> + source => $source,
> + notify => Exec["reload-apache"],
> + require => Service['httpd']
> + }
> +}
> diff --git a/recipes/deltacloud_recipe/files/aggregator-httpd-ssl.conf b/recipes/deltacloud_recipe/files/aggregator-httpd-ssl.conf
> new file mode 100644
> index 0000000..122952f
> --- /dev/null
> +++ b/recipes/deltacloud_recipe/files/aggregator-httpd-ssl.conf
> @@ -0,0 +1,38 @@
> +NameVirtualHost *:443
> +<VirtualHost *:443>
> +
> + ErrorLog /etc/httpd/logs/error_log
> + TransferLog /etc/httpd/logs/access_log
> + LogLevel debug
> +
> + ProxyRequests Off
> + SSLEngine On
> + SSLCertificateFile /etc/pki/tls/certs/localhost.crt
> + SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
RequestHeader set X_FORWARDED_PROTO 'https'
> + ProxyPreserveHost Off
> +
> +Alias /deltacloud/stylesheets "/usr/share/deltacloud-aggregator/public/"
> +Alias /deltacloud/images "/usr/share/deltacloud-aggregator/public/"
> +Alias /deltacloud/errors "/usr/share/deltacloud-aggregator/public/"
> +
Alias /deltacloud/stylesheets
"/usr/share/deltacloud-aggregator/public/stylesheets"
Alias /deltacloud/images "/usr/share/deltacloud-aggregator/public/images"
Alias /deltacloud/errors "/usr/share/deltacloud-aggregator/public/errors"
Alias /deltacloud/javascripts
"/usr/share/deltacloud-aggregator/public/javascripts"
Alias /fonts "/usr/share/deltacloud-aggregator/public/fonts"
> +# TODO Apache will set HTTP_X_FORWARDED_HOST here to the hostname minus the port.
> +# Rails (actioncontroller) will take this and use it for the hostname for redirects.
> +# Since we define the http->https rewrite below this isn't an issue but
> +# should probably be resolved at some point
> +ProxyPass /deltacloud/images !
> +ProxyPass /deltacloud/stylesheets !
> +ProxyPass /deltacloud/errors !
> +ProxyPass /deltacloud http://localhost:3000/deltacloud
> +ProxyPassReverse /deltacloud http://localhost:3000/deltacloud
> +ProxyPassReverse /deltacloud/images !
> +ProxyPassReverse /deltacloud/stylesheets !
> +ProxyPassReverse /deltacloud/errors !
> +
> +</VirtualHost>
> +
> +NameVirtualHost *:80
> +<VirtualHost *:80>
> + RewriteEngine On
> + RewriteCond %{HTTPS} off
> + RewriteRule /deltacloud(.*) https://%{HTTP_HOST}%{REQUEST_URI}
> +</VirtualHost>
> diff --git a/recipes/deltacloud_recipe/files/aggregator-httpd.conf b/recipes/deltacloud_recipe/files/aggregator-httpd.conf
> new file mode 100644
> index 0000000..6ef80b8
> --- /dev/null
> +++ b/recipes/deltacloud_recipe/files/aggregator-httpd.conf
> @@ -0,0 +1,23 @@
> +NameVirtualHost *:80
> +<VirtualHost *:80>
> +
> + ErrorLog /etc/httpd/logs/error_log
> + TransferLog /etc/httpd/logs/access_log
> + LogLevel warn
> +
> + ProxyRequests Off
> +
> +Alias /deltacloud/stylesheets "/usr/share/deltacloud-aggregator/public/stylesheets"
> +Alias /deltacloud/images "/usr/share/deltacloud-aggregator/public/images"
> +Alias /deltacloud/errors "/usr/share/deltacloud-aggregator/public/"
> +
Alias /deltacloud/stylesheets
"/usr/share/deltacloud-aggregator/public/stylesheets"
Alias /deltacloud/images "/usr/share/deltacloud-aggregator/public/images"
Alias /deltacloud/errors "/usr/share/deltacloud-aggregator/public/errors"
Alias /deltacloud/javascripts
"/usr/share/deltacloud-aggregator/public/javascripts"
Alias /fonts "/usr/share/deltacloud-aggregator/public/fonts"
> +ProxyPass /deltacloud/images !
> +ProxyPass /deltacloud/stylesheets !
> +ProxyPass /deltacloud/errors !
> +ProxyPass /deltacloud http://localhost:3000/deltacloud
> +ProxyPassReverse /deltacloud http://localhost:3000/deltacloud
> +ProxyPassReverse /deltacloud/images !
> +ProxyPassReverse /deltacloud/stylesheets !
> +ProxyPassReverse /deltacloud/errors !
> +
> +</VirtualHost>
> diff --git a/recipes/deltacloud_recipe/manifests/aggregator.pp b/recipes/deltacloud_recipe/manifests/aggregator.pp
> index 2be247c..0c0c2e2 100644
> --- a/recipes/deltacloud_recipe/manifests/aggregator.pp
> +++ b/recipes/deltacloud_recipe/manifests/aggregator.pp
> @@ -18,13 +18,14 @@ class deltacloud::aggregator inherits deltacloud {
> selinux::mode{"permissive":}
>
> ### Setup firewall for deltacloud
> - firewall::rule{"http": destination_port => '80'}
> + firewall::rule{"http": destination_port => '80' }
> + firewall::rule{"https": destination_port => '443'}
>
> ### Start the deltacloud services
> file {"/var/lib/condor/condor_config.local":
> source => "puppet:///modules/deltacloud_recipe/condor_config.local",
> require => Package['deltacloud-aggregator-daemons'] }
> - service { ['condor', 'httpd']:
> + service { 'condor':
> ensure => 'running',
> enable => true,
> require => File['/var/lib/condor/condor_config.local'] }
> @@ -60,6 +61,14 @@ class deltacloud::aggregator inherits deltacloud {
> cwd => "/usr/share/deltacloud-aggregator",
> rails_env => "production",
> require => Rails::Create::Db[create_deltacloud_database]}
> +
> + ### Setup apache for deltacloud
> + include apache
> + if $enable_security {
> + apache::site{"aggregator": source => 'puppet:///modules/deltacloud_recipe/aggregator-httpd-ssl.conf'}
#This takes over the /etc/httpd/conf.d/deltacloud-aggregator.conf from
#deltacloud-aggregator-daemons.rpm
#Do we need it in deltacloud-aggregator-daemons.rpm anymore?
apache::site{"deltacloud-aggregator": source =>
'puppet:///modules/deltacloud_recipe/aggregator-httpd-ssl.conf'}
> + } else{
> + apache::site{"aggregator": source => 'puppet:///modules/deltacloud_recipe/aggregator-httpd.conf'}
> + apache::site{"deltacloud-aggregator": source =>
'puppet:///modules/deltacloud_recipe/aggregator-httpd.conf'}
> + }
Works for now. It might be worth playing around with the use of
templates instead of files to see if we can avoid the conditionals in
the .pp.
> }
>
> class deltacloud::aggregator::disabled {
> @@ -84,7 +93,7 @@ class deltacloud::aggregator::disabled {
> require => Package['deltacloud-aggregator']}
>
> ### Stop the deltacloud services
> - service { ['condor', 'httpd']:
> + service { 'condor':
> ensure => 'stopped',
> enable => false,
> require => Service['deltacloud-aggregator',
> diff --git a/recipes/deltacloud_recipe/manifests/deltacloud.pp b/recipes/deltacloud_recipe/manifests/deltacloud.pp
> index eef014f..c7693c1 100644
> --- a/recipes/deltacloud_recipe/manifests/deltacloud.pp
> +++ b/recipes/deltacloud_recipe/manifests/deltacloud.pp
> @@ -3,6 +3,7 @@
> import "firewall"
>
> import "postgres"
> +import "apache"
> import "rails"
> import "selinux"
> import "ntp"
12 years, 8 months
Re: [deltacloud-devel] [PATCH 1/3] integrate openssl security into aeolus configure/recipe
by Mike Orazi
I'm cc:ing both lists during the cut-over period.
Minor comments inline.
On 01/19/2011 04:54 PM, Mohammed Morsi wrote:
> ---
> bin/deltacloud-cleanup | 1 +
> bin/deltacloud-configure | 1 +
> contrib/deltacloud-configure.spec | 6 +++-
> recipes/deltacloud_recipe/manifests/deltacloud.pp | 8 +++++
> recipes/openssl/manifests/init.pp | 34 +++++++++++++++++++++
> 5 files changed, 49 insertions(+), 1 deletions(-)
> create mode 100644 recipes/openssl/manifests/init.pp
>
> diff --git a/bin/deltacloud-cleanup b/bin/deltacloud-cleanup
> index a359fce..a988f52 100755
> --- a/bin/deltacloud-cleanup
> +++ b/bin/deltacloud-cleanup
> @@ -1,4 +1,5 @@
> #!/bin/sh
>
> +export FACTER_DELTACLOUD_ENABLE_SECURITY=true
> puppet /usr/share/deltacloud-configure/deltacloud_uninstall.pp \
> --modulepath=/usr/share/deltacloud-configure/modules/
> diff --git a/bin/deltacloud-configure b/bin/deltacloud-configure
> index c034d4c..bfd340e 100755
> --- a/bin/deltacloud-configure
> +++ b/bin/deltacloud-configure
> @@ -1,4 +1,5 @@
> #!/bin/sh
>
> +export FACTER_DELTACLOUD_ENABLE_SECURITY=true
> puppet /usr/share/deltacloud-configure/deltacloud_recipe.pp \
> --modulepath=/usr/share/deltacloud-configure/modules/
> diff --git a/contrib/deltacloud-configure.spec b/contrib/deltacloud-configure.spec
> index 04ff82d..e49877f 100644
> --- a/contrib/deltacloud-configure.spec
> +++ b/contrib/deltacloud-configure.spec
> @@ -4,7 +4,7 @@
> Summary: DeltaCloud Configure Puppet Recipe
> Name: deltacloud-configure
> Version: 2.0.0
> -Release: 1%{?dist}
> +Release: 2%{?dist}
>
> Group: Applications/Internet
> License: GPLv2+
> @@ -36,6 +36,7 @@ rm -rf %{buildroot}
> %{__cp} -R %{pbuild}/recipes/firewall/ %{buildroot}/%{dchome}/modules/firewall
> %{__cp} -R %{pbuild}/recipes/ntp/ %{buildroot}/%{dchome}/modules/ntp
> %{__cp} -R %{pbuild}/recipes/postgres/ %{buildroot}/%{dchome}/modules/postgres
> +%{__cp} -R %{pbuild}/recipes/openssl/ %{buildroot}/%{dchome}/modules/openssl
> %{__cp} -R %{pbuild}/bin/deltacloud-configure %{buildroot}/%{_sbindir}/
> %{__cp} -R %{pbuild}/bin/deltacloud-cleanup %{buildroot}/%{_sbindir}/
>
> @@ -49,6 +50,9 @@ rm -rf %{buildroot}
> %{dchome}
>
> %changelog
> +* Thu Jan 14 2011 Mohammed Morsi<mmorsi(a)redhat.com> 2.0.0-2
> +- include openssl module
> +
> * Mon Jan 10 2011 Mike Orazi<morazi(a)redhat.com> 2.0.0-1
> - Make this a drop in replacement for the old deltacloud-configure scripts
>
> diff --git a/recipes/deltacloud_recipe/manifests/deltacloud.pp b/recipes/deltacloud_recipe/manifests/deltacloud.pp
> index 1362f62..eef014f 100644
> --- a/recipes/deltacloud_recipe/manifests/deltacloud.pp
> +++ b/recipes/deltacloud_recipe/manifests/deltacloud.pp
> @@ -12,6 +12,14 @@ import "core"
> import "iwhd"
> import "image-factory"
>
> +if $deltacloud_enable_security == "true" or $deltacloud_enable_security == "1" {
> + import "openssl"
> + $enable_security = true
> +} else {
> + $enable_security = false
> +}
> +
> +
> # Base deltacloud class
> class deltacloud {
> # Setup repos which to pull deltacloud components
> diff --git a/recipes/openssl/manifests/init.pp b/recipes/openssl/manifests/init.pp
> new file mode 100644
> index 0000000..8249feb
> --- /dev/null
> +++ b/recipes/openssl/manifests/init.pp
> @@ -0,0 +1,34 @@
> +class openssl {
> + package { "openssl":
> + ensure => installed
> + }
> +}
> +
This might warrant a comment in the .pp just to make it very clear what
you are accomplishing in this define.
> +define openssl::key($user='root', $group='root'){
> + exec{"create_${name}_key":
> + command => "/usr/bin/openssl genrsa -des3 -passout pass:foobar -out ${name}.key 1024"
> + }
> + exec{"remove_${name}_key_password":
> + command => "/usr/bin/openssl rsa -passin pass:foobar -in ${name}.key -out ${name}.key",
> + require => Exec["create_${name}_key"]
> + }
> + exec{"chmod_${name}.key":
> + command => "/bin/chmod 400 ${name}.key",
> + require => Exec["remove_${name}_key_password"]
> + }
> + exec{"chown_${name}.key":
> + command => "/bin/chown ${user}.${group} ${name}.key",
> + require => Exec["remove_${name}_key_password"]
Do you want to require chmod instead? (Should work as is,but cuts out a
potential timing hole)
> + }
> +}
> +
> +define openssl::certificate($user='root', $group='root'){
> + openssl::key{$name:
> + user => $user,
> + group => $group
> + }
> + exec{"create_${name}_certificate":
> + command => "/usr/bin/openssl req -new -key ${name}.key -days 3650 -out ${name}.crt -x509 -subj '/'",
> + require => Exec["remove_${name}_key_password"]
Should this be the last exec in the define above instead? (Should work
as is,but cuts out a potential timing hole)
> + }
> +}
12 years, 8 months
[PATCH] Change @font-face path to use relative URL
by Matt Wagner
Otherwise, if Conductor is running out of a subdirectory (e.g.,
/deltacloud), fonts will not be loaded correctly. The relative
path is consistent with other assets used in CSS.
---
src/app/stylesheets/text.scss | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/app/stylesheets/text.scss b/src/app/stylesheets/text.scss
index 10f6304..b6819c3 100644
--- a/src/app/stylesheets/text.scss
+++ b/src/app/stylesheets/text.scss
@@ -11,14 +11,14 @@
@font-face {
font-family: 'Roadgeek E';
src: local('Roadgeek E'), local('RoadgeekE'),
- url(/fonts/RoadgeekE.otf);
+ 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);
+ url(../../fonts/FreeWay-Bold.ttf);
}
body {
--
1.7.3.4
12 years, 8 months