[PATCH configure 1/2] Added script for restarting aeolus components
by Maros Zatko
From: Maros Zatko <mzatko(a)redhat.com>
---
bin/aeolus-restart-services | 48 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
create mode 100755 bin/aeolus-restart-services
diff --git a/bin/aeolus-restart-services b/bin/aeolus-restart-services
new file mode 100755
index 0000000..5e9eb73
--- /dev/null
+++ b/bin/aeolus-restart-services
@@ -0,0 +1,48 @@
+#!/usr/bin/ruby
+
+# ordered as in rc.d
+services = %w(mongod messagebus iwhd postgresql httpd qpidd deltacloud-ec2-us-east-1 deltacloud-ec2-us-west-1 deltacloud-mock libvirtd condor aeolus-conductor conductor-dbomatic imagefactory)
+
+def perform(action, svcs)
+ action = action.to_s
+ svcs.map do |script|
+ puts "\n#{action.capitalize}ing #{script} ..."
+ cmd = "/etc/init.d/#{script} #{action}"
+ out = `#{cmd}`
+ if $?.to_i == 0
+ puts " \e[1;32mSuccess:\e[0m #{out.strip}"
+ else
+ puts " \e[1;31mFAILURE:\e[0m #{out.strip}"
+ end
+ $?.to_i
+ end
+end
+
+perform :stop, services.reverse
+perform :start, services
+
+## Other checks
+commands = [
+ {:name => 'condor_q', :command => 'condor_q'},
+ {:name => 'condor_status', :command => 'condor_status'}
+]
+commands.each do |cmd|
+ puts "\nChecking #{cmd[:name]} ..."
+ cmd = "#{cmd[:command]}"
+ out = `#{cmd}`
+ if $?.to_i == 0
+ puts " \e[1;32mSuccess:\e[0m #{out.strip}"
+ else
+ puts " \e[1;31mFAILURE:\e[0m #{out.strip}"
+ end
+end
+
+if perform(:status, ['mongod']) == [1]
+ lockfile = '/var/lib/mongodb/mongod.lock'
+ if File.exists?(lockfile)
+ puts " \e[1;33mremoving\e[0m leftover #{lockfile}"
+ File.delete(lockfile)
+ perform :restart, %w(mongod iwhd)
+ end
+end
+
--
1.7.6
12 years, 7 months
Collecting Audrey parameters in conductor
by Greg Blomquist
I've written up a document explaining how we're planning on implementing
collecting Audrey parameters from within Conductor. Please take a look
and let me know if you have any questions.
My plan is to begin implementing this design today and course correct if
anyone brings up something earth-shattering.
A couple of notes up front:
1) This is dependent on a patch that was submitted quite some time ago,
but never acked. I'm basically pulling that patch, and will have to
rebase and resubmit later...most likely concurrently with this patch.
2) I'd appreciate suggestions on the model changes. Right now it's a
fairly rudimentary key value store for capturing the Audrey parameters
and values. It will serve our purpose for now, since we're only gonna
support scalar values for the time being. But, as this evolves, the
model design will have to change too. I'm not looking to completely
future proof this, but any suggestions on this model are very welcome.
link:
https://www.aeolusproject.org/redmine/projects/audrey/wiki/Collect_Audrey...
Thanks!
---
Greg
12 years, 7 months
[PATCH aeolus-image] Added Delete IWHD command
by Martyn Taylor
From: Martyn Taylor <mtaylor(a)redhat.com>
This command deletes all Images, provider images, target images
and builds from iwhd. So to a user of aeolus-image it appears
tobe fresh
---
lib/aeolus_image/command/delete_command.rb | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/lib/aeolus_image/command/delete_command.rb b/lib/aeolus_image/command/delete_command.rb
index d1a8670..eaadc84 100644
--- a/lib/aeolus_image/command/delete_command.rb
+++ b/lib/aeolus_image/command/delete_command.rb
@@ -56,6 +56,27 @@ module Aeolus
end
exit(1)
end
+
+ # Deletes all Images,Builds,TargetImages,ProviderImages
+ def iwhd
+ Image.all.each do |image|
+ Image.delete(image.uuid)
+ end
+
+ ImageBuild.all.each do |build|
+ ImageBuild.delete(build.uuid)
+ end
+
+ TargetImage.all.each do |target_image|
+ TargetImage.delete(target_image.uuid)
+ end
+
+ ProviderImage.all.each do |provider_image|
+ ProviderImage.delete(provider_image.uuid)
+ end
+ puts "Deleted all objects in IWHD"
+ exit(0)
+ end
end
end
end
--
1.7.6
12 years, 7 months
[PATCH aeolus-image 1/3] Updated ListCommand to use object model
by Martyn Taylor
From: Martyn Taylor <mtaylor(a)redhat.com>
---
lib/aeolus_image/command/list_command.rb | 127 +++++++-----------------------
spec/list_command_spec.rb | 13 ---
spec/spec_helper.rb | 7 ++
3 files changed, 35 insertions(+), 112 deletions(-)
diff --git a/lib/aeolus_image/command/list_command.rb b/lib/aeolus_image/command/list_command.rb
index cccd382..7ca8332 100644
--- a/lib/aeolus_image/command/list_command.rb
+++ b/lib/aeolus_image/command/list_command.rb
@@ -7,125 +7,54 @@ module Aeolus
def images
check_bucket_exists("images")
- images = [["IMAGE ID", "LASTEST PUSHED BUILD", "NAME", "TARGET", "OS", "OS VERSION", "ARCH", "DESCRIPTION"]]
- doc = Nokogiri::XML iwhd['/target_images'].get
- # Check for any invalid data in iwhd
- invalid_images = []
- doc.xpath("/objects/object/key").each do |targetimage|
- begin
- build = iwhd["/target_images/" + targetimage.text + "/build"].get
- image = iwhd["/builds/" + build + "/image"].get
-
- if template_info = get_template_info(image, targetimage.text)
- images << [image] + [lastest_pushed(image)] + template_info
- else
- images << [image] + [lastest_pushed(image)] +[get_image_name(image), iwhd["/target_images/" + targetimage + "/target"].get, "", "", "", ""]
- end
- rescue
- invalid_images << targetimage.text
- end
+ images = [["IMAGE ID", "LASTEST PUSHED BUILD", "NAME", "OS", "OS VERSION", "ARCH", "DESCRIPTION"]]
+ Image.all.each do |i|
+ images << [i.uuid, (i.latest_pushed_build.nil? ? "" : i.latest_pushed_build.uuid), i.name, i.os.name, i.os.version, i.os.arch, i.description]
end
format_print(images)
-
- unless invalid_images.empty?
- puts "\nN.B. following images were not listed, aeolus-image encountered some invalid data in iwhd:"
- puts invalid_images.join "\n"
- end
quit(0)
end
- def list_images
- images = []
- if check_bucket_exists("images").nil?
- return images
- end
-
- doc = Nokogiri::XML iwhd['/images'].get
- doc.xpath("/objects/object/key").each do |image|
- images << image.text
- end
- images
- end
-
def builds
builds = [["Build ID"]]
- list_builds(@options[:id]).each do |b|
- builds << [b]
- end
- format_print(builds)
- quit(0)
- end
-
- def list_builds(image, all=false)
- builds = []
- if check_bucket_exists("builds").nil?
- return builds
- end
-
- doc = Nokogiri::XML iwhd['/builds'].get
- doc.xpath("/objects/object/key").each do |build|
- if all || (iwhd['/builds/' + build.text + "/image"].get == image)
- builds << build.text
+ image = Image.find(@options[:id])
+ if image
+ image.image_builds.each do |b|
+ builds << [b.uuid]
end
+ format_print(builds)
+ else
+ puts "ERROR: could not find Image with ID: " + options[:id]
end
- builds
+ quit(0)
end
def targetimages
targetimages = [["Target Image Id"]]
- list_targetimages(@options[:id]).each do |ti|
- targetimages << [ti]
- end
- format_print(targetimages)
- quit(0)
- end
-
- def list_targetimages(build, all=false)
- targetimages = []
- if check_bucket_exists("target_images").nil?
- return targetimages
- end
-
- doc = Nokogiri::XML iwhd['/target_images'].get
- doc.xpath("/objects/object/key").each do |target_image|
- begin
- if all || (iwhd['/target_images/' + target_image.text + "/build"].get == build)
- targetimages << target_image.text
- end
- rescue RestClient::ResourceNotFound
+ build = ImageBuild.find(@options[:id])
+ if build
+ build.target_images.each do |ti|
+ targetimages << [ti.uuid]
end
+ format_print(targetimages)
+ else
+ puts "ERROR: could not find Build with ID: " + options[:id]
end
- targetimages
- end
-
- def providerimages
- providerimages = [["PROVIDER IMAGE", "PROVIDER", "TARGET IMAGE", "TARGET IDENTIFIER", "IMAGE"]]
- list_providerimages(@options[:id], (@options[:id] == "all")).each do |pi|
- providerimages << pi
- end
- format_print(providerimages)
quit(0)
end
- def list_providerimages(targetimage, all=false)
- providerimages = []
- if check_bucket_exists("provider_images").nil?
- return providerimages
- end
-
- doc = Nokogiri::XML iwhd['/provider_images'].get
- doc.xpath("/objects/object/key").each do |provider_image|
- begin
- thistargetimage = iwhd["/provider_images/" + provider_image.text + "/target_image"].get
- if all || (thistargetimage == targetimage)
- build = iwhd["/target_images/" + thistargetimage + "/build"].get
- image = iwhd["/builds/" + build + "/image"].get
- providerimages << [provider_image.text] + [iwhd["/provider_images/" + provider_image.text + "/provider"].get] + [thistargetimage] + [iwhd["/provider_images/" + provider_image.text + "/target_identifier"].get] + [image]
- end
- rescue RestClient::ResourceNotFound
+ def providerimages
+ providerimages = [["PROVIDER IMAGE", "PROVIDER", "TARGET IMAGE", "TARGET IDENTIFIER"]]
+ target_image = TargetImage.find(@options[:id])
+ if target_image
+ target_image.provider_images.each do |pi|
+ providerimages << [pi.uuid, pi.provider_name, target_image.uuid, target_image.target]
end
+ format_print(providerimages)
+ else
+ puts "ERROR: could not find Target Image with ID: " + options[:id]
end
- providerimages
+ quit(0)
end
def targets
diff --git a/spec/list_command_spec.rb b/spec/list_command_spec.rb
index 9807d93..51ade1f 100644
--- a/spec/list_command_spec.rb
+++ b/spec/list_command_spec.rb
@@ -3,19 +3,6 @@ require 'spec_helper'
module Aeolus
module Image
describe ListCommand do
- it "should return a list of images" do
- regexp = Regexp.new('[uuid:\s][\w]{8}[-][\w]{4}[-][\w]{4}[-][\w]{4}[-][\w]{12}')
- listc = ListCommand.new(:subcommand => 'images')
- images = listc.images
- images.each do |image|
- regexp.match(image.to_s).should_not == nil
- end
- end
- it "should return not implemented for unimplemented subcommands" do
- l = ListCommand.new()
- r = l.targets
- r.should eql("This option or combination is not yet implemented")
- end
end
end
end
\ No newline at end of file
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 5757030..eeb9632 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -2,6 +2,12 @@ $: << File.expand_path(File.join(File.dirname(__FILE__), "../lib/aeolus_image/co
$: << File.expand_path(File.join(File.dirname(__FILE__), "../lib/aeolus_image/model/"))
require 'rubygems'
+require 'warehouse_client'
+require 'warehouse_model'
+require 'image'
+require 'image_build'
+require 'target_image'
+require 'provider_image'
require 'config_parser'
require 'stringio'
require 'base_command'
@@ -12,6 +18,7 @@ require 'import_command'
require 'delete_command'
+
module Helpers
# Silences any stream for the duration of the block.
#
--
1.7.6
12 years, 7 months
[PATCH aeolus-image] Updated models to return more data
by Martyn Taylor
From: Martyn Taylor <mtaylor(a)redhat.com>
---
lib/aeolus_image/model/image.rb | 8 ++++----
lib/aeolus_image/model/provider_image.rb | 5 -----
lib/aeolus_image/model/target_image.rb | 4 ++--
3 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/lib/aeolus_image/model/image.rb b/lib/aeolus_image/model/image.rb
index ac0885e..46a3729 100644
--- a/lib/aeolus_image/model/image.rb
+++ b/lib/aeolus_image/model/image.rb
@@ -21,7 +21,7 @@ module Aeolus
def template_xml
unless @template_xml
begin
- @template_xml = Nokogiri::XML image_builds.first.target_images.first.template.body
+ @template_xml = Nokogiri::XML image_builds.first.target_images.first.target_template.body
rescue
@template_xml = Nokogiri::XML "<template></template>"
end
@@ -29,7 +29,7 @@ module Aeolus
@template_xml
end
- def latest_build
+ def latest_pushed_build
ImageBuild.find(@latest_build) if @latest_build
end
@@ -50,14 +50,14 @@ module Aeolus
def os
unless @os
- OS.new(template_xml.xpath("/template/name").text, template_xml.xpath("/template/os/version"), template_xml.xpath("/template/os/arch"))
+ @os = OS.new(template_xml.xpath("/template/os/name").text, template_xml.xpath("/template/os/version").text, template_xml.xpath("/template/os/arch").text)
end
@os
end
def description
unless @description
- template_xml.xpath("/template/description").text
+ @description = template_xml.xpath("/template/description").text
end
@description
end
diff --git a/lib/aeolus_image/model/provider_image.rb b/lib/aeolus_image/model/provider_image.rb
index 44f576d..2faade6 100644
--- a/lib/aeolus_image/model/provider_image.rb
+++ b/lib/aeolus_image/model/provider_image.rb
@@ -22,11 +22,6 @@ module Aeolus
def provider_name
@provider
end
-
- def provider
- Provider.find_by_name(@provider)
- end
-
end
end
end
diff --git a/lib/aeolus_image/model/target_image.rb b/lib/aeolus_image/model/target_image.rb
index 3705dc4..ed56e5c 100644
--- a/lib/aeolus_image/model/target_image.rb
+++ b/lib/aeolus_image/model/target_image.rb
@@ -23,8 +23,8 @@ module Aeolus
ProviderImage.all.select{|pi| pi.target_image and (pi.target_image.uuid == self.uuid)}
end
- def template
- Template.new(@template)
+ def target_template
+ Template.find(@template) if @template
end
end
end
--
1.7.6
12 years, 7 months
[PATCH conductor] Enforce permissions for Hardware Profiles
by Tomas Sedovic
From: Tomas Sedovic <tsedovic(a)redhat.com>
https://www.aeolusproject.org/redmine/issues/2205
---
.../controllers/hardware_profiles_controller.rb | 20 ++++--
src/app/models/hardware_profile.rb | 2 +
...d_view_hardware_profile_privileges_to_admins.rb | 19 +++++
src/db/seeds.rb | 4 +-
src/features/hardware_profile.feature | 2 +-
.../hardware_profiles_controller_spec.rb | 79 ++++++++++++++++++++
6 files changed, 117 insertions(+), 9 deletions(-)
create mode 100644 src/db/migrate/20110901150708_add_view_hardware_profile_privileges_to_admins.rb
diff --git a/src/app/controllers/hardware_profiles_controller.rb b/src/app/controllers/hardware_profiles_controller.rb
index 5f4f9d2..3d66fd2 100644
--- a/src/app/controllers/hardware_profiles_controller.rb
+++ b/src/app/controllers/hardware_profiles_controller.rb
@@ -26,6 +26,8 @@ class HardwareProfilesController < ApplicationController
def show
@hardware_profile = HardwareProfile.find(params[:id].to_a.first)
+ require_privilege(Privilege::VIEW, @hardware_profile)
+
@tab_captions = ['Properties', 'History', 'Matching Provider Hardware Profiles']
@details_tab = params[:details_tab].blank? ? 'properties' : params[:details_tab]
properties
@@ -44,6 +46,8 @@ class HardwareProfilesController < ApplicationController
end
def new
+ require_privilege(Privilege::CREATE, HardwareProfile)
+
respond_to do |format|
format.html { render :action => 'new'}
format.js { render :partial => 'matching_provider_hardware_profiles' }
@@ -51,7 +55,10 @@ class HardwareProfilesController < ApplicationController
end
def create
+ require_privilege(Privilege::CREATE, HardwareProfile)
+
build_hardware_profile(params[:hardware_profile])
+ require_privilege(Privilege::CREATE, HardwareProfile)
if params[:commit] == 'Save'
if @hardware_profile.save
redirect_to hardware_profiles_path
@@ -66,7 +73,9 @@ class HardwareProfilesController < ApplicationController
end
def destroy
- if HardwareProfile.destroy(params[:id])
+ hardware_profile = HardwareProfile.find(params[:id])
+ require_privilege(Privilege::MODIFY, hardware_profile)
+ if hardware_profile.destroy
flash[:notice] = "Hardware profile was deleted!"
else
flash[:error] = "Hardware profile was not deleted!"
@@ -78,20 +87,19 @@ class HardwareProfilesController < ApplicationController
unless @hardware_profile
@hardware_profile = HardwareProfile.find(params[:id])
end
+ require_privilege(Privilege::MODIFY, @hardware_profile)
matching_provider_hardware_profiles
end
def update
- if params[:commit] == "Reset"
- redirect_to edit_hardware_profile_url(@hardware_profile) and return
- end
-
if params[:id]
@hardware_profile = HardwareProfile.find(params[:id])
+ require_privilege(Privilege::MODIFY, @hardware_profile)
build_hardware_profile(params[:hardware_profile])
end
if params[:commit] == "Check Matches"
+ require_privilege(Privilege::VIEW, HardwareProfile)
matching_provider_hardware_profiles
render :edit and return
end
@@ -109,7 +117,7 @@ class HardwareProfilesController < ApplicationController
not_deleted=[]
HardwareProfile.find(params[:hardware_profile_selected]).each do |hwp|
- if hwp.destroy
+ if check_privilege(Privilege::MODIFY, hwp) && hwp.destroy
deleted << hwp.name
else
not_deleted << hwp.name
diff --git a/src/app/models/hardware_profile.rb b/src/app/models/hardware_profile.rb
index 57d5fd8..a1fda4c 100644
--- a/src/app/models/hardware_profile.rb
+++ b/src/app/models/hardware_profile.rb
@@ -38,6 +38,8 @@
# Likewise, all the methods added will be available for all controllers.
class HardwareProfile < ActiveRecord::Base
+ include PermissionedObject
+ has_many :permissions, :as => :permission_object, :dependent => :destroy
has_many :instances
scope :frontend, :conditions => { :provider_id => nil }
has_many :provider_instances, :class_name => "Instance",
diff --git a/src/db/migrate/20110901150708_add_view_hardware_profile_privileges_to_admins.rb b/src/db/migrate/20110901150708_add_view_hardware_profile_privileges_to_admins.rb
new file mode 100644
index 0000000..ab2bfcc
--- /dev/null
+++ b/src/db/migrate/20110901150708_add_view_hardware_profile_privileges_to_admins.rb
@@ -0,0 +1,19 @@
+class AddViewHardwareProfilePrivilegesToAdmins < ActiveRecord::Migration
+ def self.up
+ return if Role.all.empty?
+
+ Role.transaction do
+ ["HWP Administrator", "Administrator"].each do |role_name|
+ role = Role.find_or_initialize_by_name(role_name)
+
+ priv_type = HardwareProfile
+ priv_action = 'view'
+ Privilege.create!(:role => role, :target_type => 'HardwareProfile',
+ :action => 'view')
+ end
+ end
+ end
+
+ def self.down
+ end
+end
diff --git a/src/db/seeds.rb b/src/db/seeds.rb
index 170375c..12d185c 100644
--- a/src/db/seeds.rb
+++ b/src/db/seeds.rb
@@ -51,7 +51,7 @@ roles =
{"Provider Creator" => [false, {Provider => [ CRE]}],
"Provider Administrator" => [false, {Provider => [VIEW, MOD,CRE,VPRM,GPRM],
ProviderAccount => [VIEW,USE,MOD,CRE,VPRM,GPRM]}],
- "HWP Administrator" => [false, {HardwareProfile => [ MOD,CRE,VPRM,GPRM]}],
+ "HWP Administrator" => [false, {HardwareProfile => [VIEW, MOD,CRE,VPRM,GPRM]}],
"Realm Administrator" => [false, {Realm => [ USE,MOD,CRE,VPRM,GPRM]}],
"Pool Creator" => [false, {Pool => [ CRE]}],
"Pool Administrator" => [false, {Pool => [VIEW, MOD,CRE,VPRM,GPRM],
@@ -67,7 +67,7 @@ roles =
Quota => [VIEW]}],
"Administrator" => [false, {Provider => [VIEW, MOD,CRE,VPRM,GPRM],
ProviderAccount => [VIEW,USE,MOD,CRE,VPRM,GPRM],
- HardwareProfile => [ 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],
diff --git a/src/features/hardware_profile.feature b/src/features/hardware_profile.feature
index 7c0587e..1733716 100644
--- a/src/features/hardware_profile.feature
+++ b/src/features/hardware_profile.feature
@@ -1,4 +1,4 @@
-Feature: Manage Pools
+Feature: Manage Hardware Profiles
In order to manage my cloud infrastructure
As an admin
I want to manage Hardware Profiles
diff --git a/src/spec/controllers/hardware_profiles_controller_spec.rb b/src/spec/controllers/hardware_profiles_controller_spec.rb
index 099dac7..392e51c 100644
--- a/src/spec/controllers/hardware_profiles_controller_spec.rb
+++ b/src/spec/controllers/hardware_profiles_controller_spec.rb
@@ -6,6 +6,8 @@ describe HardwareProfilesController do
before(:each) do
@admin_permission = FactoryGirl.create :admin_permission
@admin = @admin_permission.user
+ @user_permission = FactoryGirl.create :pool_user_permission
+ @user = @user_permission.user
activate_authlogic
end
@@ -18,4 +20,81 @@ describe HardwareProfilesController do
response.should render_template("index")
end
+ it "should allow authorized users to create hardware profiles" do
+ UserSession.create(@admin)
+ lambda do
+ post :create, :commit => 'Save', :hardware_profile => {
+ :name => 'test',
+ :memory_attributes => FactoryGirl.attributes_for(:mock_hwp1_memory),
+ :cpu_attributes => FactoryGirl.attributes_for(:mock_hwp1_cpu),
+ :storage_attributes => FactoryGirl.attributes_for(:mock_hwp1_storage),
+ :architecture_attributes => FactoryGirl.attributes_for(:mock_hwp2_memory),
+ }
+ end.should change(HardwareProfile, :count).by(1)
+ HardwareProfile.find_by_name('test').should_not be_nil
+ response.should redirect_to(hardware_profiles_path)
+ end
+
+ it "should prevent unauthorized users from creating hardware profiles" do
+ UserSession.create(@user)
+ lambda do
+ post :create, :commit => 'Save', :hardware_profile => {
+ :name => 'test',
+ :memory_attributes => FactoryGirl.attributes_for(:mock_hwp1_memory),
+ :cpu_attributes => FactoryGirl.attributes_for(:mock_hwp1_cpu),
+ :storage_attributes => FactoryGirl.attributes_for(:mock_hwp1_storage),
+ :architecture_attributes => FactoryGirl.attributes_for(:mock_hwp2_memory),
+ }
+ end.should_not change(HardwareProfile, :count)
+ HardwareProfile.find_by_name('test').should be_nil
+ response.should render_template('layouts/error')
+ end
+
+ it "should allow authorized users to edit hardware profiles" do
+ hardware_profile = Factory.create :hardware_profile
+ UserSession.create(@admin)
+ put :update, :id => hardware_profile.id, :hardware_profile => {
+ :name => 'updated hwp',
+ :memory_attributes => FactoryGirl.attributes_for(:mock_hwp1_memory),
+ :cpu_attributes => FactoryGirl.attributes_for(:mock_hwp1_cpu),
+ :storage_attributes => FactoryGirl.attributes_for(:mock_hwp1_storage),
+ :architecture_attributes => FactoryGirl.attributes_for(:mock_hwp2_memory),
+ }
+ HardwareProfile.find_by_name('updated hwp').should_not be_nil
+ response.should redirect_to(hardware_profiles_path)
+ end
+
+ it "should prevent unauthorized users from editing hardware profiles" do
+ hardware_profile = Factory.create :hardware_profile
+ UserSession.create(@user)
+ put :update, :id => hardware_profile.id, :hardware_profile => {
+ :name => 'updated hwp',
+ :memory_attributes => FactoryGirl.attributes_for(:mock_hwp1_memory),
+ :cpu_attributes => FactoryGirl.attributes_for(:mock_hwp1_cpu),
+ :storage_attributes => FactoryGirl.attributes_for(:mock_hwp1_storage),
+ :architecture_attributes => FactoryGirl.attributes_for(:mock_hwp2_memory),
+ }
+ HardwareProfile.find_by_name('updated hwp').should be_nil
+ response.should render_template('layouts/error')
+ end
+
+ it "should allow authorized users to delete hardware profiles" do
+ hardware_profile = Factory.create :hardware_profile
+ UserSession.create(@admin)
+
+ HardwareProfile.exists?(hardware_profile.id).should be_true
+ delete :destroy, :id => hardware_profile.id
+ HardwareProfile.exists?(hardware_profile.id).should be_false
+ response.should redirect_to(hardware_profiles_path)
+ end
+
+ it "should prevent unauthorized users from deleting hardware profiles" do
+ hardware_profile = Factory.create :hardware_profile
+ UserSession.create(@user)
+
+ HardwareProfile.exists?(hardware_profile.id).should be_true
+ delete :destroy, :id => hardware_profile.id
+ HardwareProfile.exists?(hardware_profile.id).should be_true
+ response.should render_template('layouts/error')
+ end
end
--
1.7.6
12 years, 7 months
deployment failing
by Giulio Fidente
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hi,
we are unable to deploy successfully a vm after it's been published on
rhev 3.0 beta
this is the deployable we're using:
<deployable name="Test1">
<description>This is an example deployment</description>
<assemblies>
<assembly name="frontend" hwp="hwp1">
<image id="5c3ebca2-0850-42d3-b8e6-081c1445802f">
</image>
</assembly>
</assemblies>
</deployable>
not sure it is of any help, bue we get the following error in
/var/log/deltacloud-rhevm/rhevm.log
Deltacloud::ExceptionHandler::BackendError - undefined method
`downcase' for nil:NilClass:
././lib/deltacloud/base_driver/base_driver.rb:103:in
`instance_actions_for'
././lib/deltacloud/drivers/rhevm/rhevm_driver.rb:226:in
`convert_instance'
././lib/deltacloud/drivers/rhevm/rhevm_driver.rb:171:in `create_instance'
././lib/deltacloud/base_driver/exceptions.rb:118:in `call'
././lib/deltacloud/base_driver/exceptions.rb:118:in `safely'
././lib/deltacloud/drivers/rhevm/rhevm_driver.rb:165:in `create_instance'
././server.rb:413
././lib/sinatra/rabbit.rb:113:in `instance_eval'
././lib/sinatra/rabbit.rb:113:in `POST /api/instances'
looking at rhevm console, the vm seems to have been correctly created
from the template, but conductor reports a failure alert
any hint?
thanks
- --
Giulio Fidente, gpg key id 08D733BA
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEARECAAYFAk5uDnAACgkQUSr9JAjXM7odvACfSb15p4Ypnc2mCgXB3eReODQN
Ol8AoLmskcugBk7BTEb6QaZKzrZU/vNM
=dyNm
-----END PGP SIGNATURE-----
12 years, 7 months
[PATCH configure] Configure changes to move to single deltacloud-core instance (v4)
by Richard Su
v4 - Removed deltacloud-core template. Removed imports of rhevm and vmware classes.
v3 - Rebased on top of mmorsi's profile changes. Consolidated into a single patch to make changes easier to follow.
Changed providers to use same deltacloud-core instance at port 3002.
New deltacloud classes added to default_configure. Replaced
conductor::removed_seed_data class in default_cleanup with deltacloud::disable.
Removed unused provider-specific parameters from deltacloud-core init script.
Incorporated deltacloud_provider param when adding new providers to conductor.
Requires Scott conductor patch to expose deltacloud_provider in the add provider
form.
rhevm and vsphere configuration parameters have moved out of
default_configure and into default_rhevm and default_vsphere
in /etc/aeolus-configure/nodes. To make naming consistent,
vmware parameters have been renamed to vsphere.
---
conf/cleanup | 6 +-
conf/configure | 25 +------
conf/rhevm | 19 +++++
conf/vsphere | 18 +++++
recipes/aeolus/manifests/conductor.pp | 12 +--
recipes/aeolus/manifests/deltacloud.pp | 45 ++++--------
recipes/aeolus/manifests/init.pp | 11 ---
recipes/aeolus/manifests/profiles/default.pp | 37 +++++-----
recipes/aeolus/manifests/profiles/rhevm.pp | 73 ++++++++++++++++++
recipes/aeolus/manifests/profiles/vsphere.pp | 37 +++++++++
recipes/aeolus/manifests/rhevm.pp | 51 -------------
recipes/aeolus/manifests/vmware.pp | 22 ------
recipes/aeolus/templates/deltacloud-core | 103 --------------------------
recipes/aeolus/templates/rhevm.json | 2 +-
recipes/aeolus/templates/vmware.json | 10 +-
15 files changed, 194 insertions(+), 277 deletions(-)
create mode 100644 conf/rhevm
create mode 100644 conf/vsphere
create mode 100644 recipes/aeolus/manifests/profiles/rhevm.pp
create mode 100644 recipes/aeolus/manifests/profiles/vsphere.pp
delete mode 100644 recipes/aeolus/manifests/rhevm.pp
delete mode 100644 recipes/aeolus/manifests/vmware.pp
delete mode 100644 recipes/aeolus/templates/deltacloud-core
diff --git a/conf/cleanup b/conf/cleanup
index d43e906..5e2fcd7 100644
--- a/conf/cleanup
+++ b/conf/cleanup
@@ -17,8 +17,6 @@ classes:
- aeolus::conductor::disabled
- aeolus::iwhd::disabled
- aeolus::image-factory::disabled
-- aeolus::conductor::remove_seed_data
+- aeolus::deltacloud::disabled
# Uncomment this to clean up RHEV details
-#- aeolus::rhevm::disabled
-# Uncomment to remove vmware
-#- aeolus::vmware::disabled
+#- aeolus::profiles::rhevm::disabled
diff --git a/conf/configure b/conf/configure
index ce79878..db33897 100644
--- a/conf/configure
+++ b/conf/configure
@@ -12,35 +12,16 @@
#apart from https on the web server for conductor, you should
#consider intermachine communications insecure. Securing
#intermachine service calls is on the roadmap.
+#
---
parameters:
enable_https: true
enable_security: false
package_provider: rpm
-# Uncomment this section and provide reasonable values to
-# enable RHEV values to be populated.
-# rhevm_nfs_server: nfs.server.com
-# rhevm_nfs_export: /export/export_domain
-# rhevm_nfs_mount_point: /mnt/rhevm-nfs
-# rhevm_deltacloud_port: 3005
-# rhevm_deltacloud_username: username@fqdn
-# rhevm_deltacloud_password: password
-# rhevm_deltacloud_powershell_url: https://rhevm.server.com:8543/rhevm-api-powershell
-#
-# Uncomment this section and provide appropriate values to configure vmware
-# vmware_api_endpoint: vsphere.server.com
-# vmware_username: username
-# vmware_password: password
-# vmware_datastore: datastore
-# vmware_network_name: network_name
-# vmware_deltacloud_port: 3006
classes:
- aeolus::conductor
- aeolus::image-factory
- aeolus::iwhd
+- aeolus::deltacloud::core
+- aeolus::deltacloud::ec2
- aeolus::profiles::default
-# Uncomment this section to include rhev setup
-#- aeolus::rhevm
-#
-# Uncomment this section to include vmware setup
-#- aeolus::vmware
diff --git a/conf/rhevm b/conf/rhevm
new file mode 100644
index 0000000..14d1080
--- /dev/null
+++ b/conf/rhevm
@@ -0,0 +1,19 @@
+---
+parameters:
+ enable_https: true
+ enable_security: false
+ package_provider: rpm
+# Uncomment and provide values to match your RHEV environment.
+# Values below are examples.
+# rhevm_nfs_server: nfs.server.com
+# rhevm_nfs_export: /export/export_domain
+# rhevm_nfs_mount_point: /mnt/rhevm-nfs
+# rhevm_deltacloud_username: username@fqdn
+# rhevm_deltacloud_password: password
+# rhevm_deltacloud_provider: https://rhevm.server.com:8443/api
+classes:
+- aeolus::conductor
+- aeolus::image-factory
+- aeolus::iwhd
+- aeolus::deltacloud::core
+- aeolus::profiles::rhevm
diff --git a/conf/vsphere b/conf/vsphere
new file mode 100644
index 0000000..b000bc4
--- /dev/null
+++ b/conf/vsphere
@@ -0,0 +1,18 @@
+---
+parameters:
+ enable_https: true
+ enable_security: false
+ package_provider: rpm
+# Uncomment and provide values to match your vSphere environment.
+# Values below are examples.
+# vsphere_deltacloud_provider: vsphere.server.com
+# vsphere_username: username
+# vsphere_password: password
+# vsphere_datastore: datastore
+# vsphere_network_name: network_name
+classes:
+- aeolus::conductor
+- aeolus::image-factory
+- aeolus::iwhd
+- aeolus::deltacloud::core
+- aeolus::profiles::vsphere
diff --git a/recipes/aeolus/manifests/conductor.pp b/recipes/aeolus/manifests/conductor.pp
index aded6b3..ad7fb24 100644
--- a/recipes/aeolus/manifests/conductor.pp
+++ b/recipes/aeolus/manifests/conductor.pp
@@ -116,13 +116,6 @@ class aeolus::conductor inherits aeolus {
enable => 'true' }
}
-
-class aeolus::conductor::remove_seed_data {
- aeolus::deltacloud::disabled{"mock": }
- aeolus::deltacloud::disabled{"ec2-us-east-1": }
- aeolus::deltacloud::disabled{"ec2-us-west-1": }
-}
-
class aeolus::conductor::disabled {
file {"/var/lib/aeolus-conductor":
ensure => absent,
@@ -197,11 +190,12 @@ define aeolus::conductor::logout(){
}
# Create a new provider via the conductor
-define aeolus::conductor::provider($type="",$url=""){
+define aeolus::conductor::provider($deltacloud_driver="",$url="", $deltacloud_provider=""){
web_request{ "provider-$name":
post => "https://localhost/conductor/providers",
parameters => { 'provider[name]' => $name, 'provider[url]' => $url,
- 'provider[provider_type_codename]' => $type },
+ 'provider[provider_type_deltacloud_driver]' => $deltacloud_driver,
+ 'provider[deltacloud_provider]' => $deltacloud_provider },
returns => '200',
follow => true,
contains => "//html/body//li[text() = 'Provider added.']",
diff --git a/recipes/aeolus/manifests/deltacloud.pp b/recipes/aeolus/manifests/deltacloud.pp
index df01d5a..fe1de2b 100644
--- a/recipes/aeolus/manifests/deltacloud.pp
+++ b/recipes/aeolus/manifests/deltacloud.pp
@@ -7,6 +7,18 @@ class aeolus::deltacloud::core {
package { 'deltacloud-core':
ensure => 'installed',
provider => $package_provider }
+
+ ### we need to sync time to communicate w/ cloud providers
+ include ntp::client
+
+ ### Start the aeolus services
+ file { "/var/log/deltacloud-core": ensure => 'directory' }
+
+ service { 'deltacloud-core':
+ ensure => 'running',
+ enable => true,
+ hasstatus => true,
+ require => [Package['deltacloud-core'], File["/var/log/deltacloud-core"]]}
}
class aeolus::deltacloud::ec2 {
@@ -17,39 +29,10 @@ class aeolus::deltacloud::ec2 {
provider => $package_provider }
}
-
-# install the deltacloud component w/ the specified driver
-define aeolus::deltacloud($provider_type="", $endpoint='', $port="3002") {
- include aeolus::deltacloud::core
-
- if $provider_type == "ec2" {
- include aeolus::deltacloud::ec2
- }
-
- ### we need to sync time to communicate w/ cloud providers
- include ntp::client
-
- ### Start the aeolus services
- file { "/var/log/deltacloud-${name}": ensure => 'directory' }
- file {"/etc/init.d/deltacloud-${name}":
- content => template("aeolus/deltacloud-core"),
- mode => 755 }
- service { "deltacloud-${name}":
- ensure => 'running',
- enable => true,
- require => [Package['deltacloud-core'],
- $provider_type ? { "ec2" => Package['rubygem-aws'], default => Package['deltacloud-core'] },
- File["/etc/init.d/deltacloud-${name}", "/var/log/deltacloud-${name}"]] }
-}
-
-define aeolus::deltacloud::disabled() {
+class aeolus::deltacloud::disabled {
### Stop the aeolus services
- service { "deltacloud-${name}":
+ service { 'deltacloud-core':
ensure => 'stopped',
enable => false,
hasstatus => true}
- file {"/etc/init.d/deltacloud-${name}":
- ensure => absent,
- require => Service["deltacloud-${name}"]}
}
-
diff --git a/recipes/aeolus/manifests/init.pp b/recipes/aeolus/manifests/init.pp
index 4376838..871f86f 100644
--- a/recipes/aeolus/manifests/init.pp
+++ b/recipes/aeolus/manifests/init.pp
@@ -10,8 +10,6 @@ import "conductor"
import "deltacloud"
import "iwhd"
import "image-factory"
-import "rhevm"
-import "vmware"
import "defaults"
import "profiles/*"
@@ -38,12 +36,3 @@ class aeolus {
source => $package_provider
}
}
-
-# Create a new provider in aeolus
-define aeolus::provider($type, $port, $endpoint=""){
- aeolus::deltacloud{$name: provider_type => $type, endpoint => $endpoint, port => $port}
- aeolus::conductor::provider{$name:
- type => $type,
- url => "http://localhost:${port}/api",
- require => Aeolus::Deltacloud[$name] }
-}
diff --git a/recipes/aeolus/manifests/profiles/default.pp b/recipes/aeolus/manifests/profiles/default.pp
index b76cee5..9fa4403 100644
--- a/recipes/aeolus/manifests/profiles/default.pp
+++ b/recipes/aeolus/manifests/profiles/default.pp
@@ -1,4 +1,5 @@
class aeolus::profiles::default {
+ include aeolus::deltacloud::ec2
aeolus::create_bucket{"aeolus":}
@@ -11,33 +12,34 @@ class aeolus::profiles::default {
aeolus::conductor::login{"admin": password => "password",
require => Aeolus::Conductor::Site_admin['admin']}
- aeolus::provider{"mock":
- type => 'mock',
- port => 3002,
- require => Aeolus::Conductor::Login["admin"] }
+ aeolus::conductor::provider{"mock":
+ deltacloud_driver => 'mock',
+ url => 'http://localhost:3002/api',
+ require => Aeolus::Conductor::Login["admin"] }
+
aeolus::conductor::provider::account{"mockuser":
provider => 'mock',
type => 'mock',
username => 'mockuser',
password => 'mockpassword',
- require => Aeolus::Provider["mock"] }
+ require => Aeolus::Conductor::Provider["mock"] }
- aeolus::provider{"ec2-us-east-1":
- type => 'ec2',
- endpoint => 'us-east-1',
- port => 3003,
+ aeolus::conductor::provider{"ec2-us-east-1":
+ deltacloud_driver => 'ec2',
+ deltacloud_provider => 'us-east-1',
+ url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
- aeolus::provider{"ec2-us-west-1":
- type => 'ec2',
- endpoint => 'us-west-1',
- port => 3004,
+ aeolus::conductor::provider{"ec2-us-west-1":
+ deltacloud_driver => 'ec2',
+ deltacloud_provider => 'us-west-1',
+ url => 'http://localhost:3002/api',
require => Aeolus::Conductor::Login["admin"] }
aeolus::conductor::hwp{"hwp1":
memory => "512",
cpu => "1",
- storage => "1",
+ storage => "",
architecture => "x86_64",
require => Aeolus::Conductor::Login["admin"] }
@@ -49,10 +51,9 @@ class aeolus::profiles::default {
require => Aeolus::Conductor::Login["admin"] }
aeolus::conductor::logout{"admin":
- require => [Aeolus::Provider['mock'],
+ require => [Aeolus::Conductor::Provider['mock'],
Aeolus::Conductor::Provider::Account['mockuser'],
- Aeolus::Provider['ec2-us-east-1'],
- Aeolus::Provider['ec2-us-west-1'],
+ Aeolus::Conductor::Provider['ec2-us-east-1'],
+ Aeolus::Conductor::Provider['ec2-us-west-1'],
Aeolus::Conductor::Hwp['hwp1', 'hwp2']] }
-
}
diff --git a/recipes/aeolus/manifests/profiles/rhevm.pp b/recipes/aeolus/manifests/profiles/rhevm.pp
new file mode 100644
index 0000000..3c39301
--- /dev/null
+++ b/recipes/aeolus/manifests/profiles/rhevm.pp
@@ -0,0 +1,73 @@
+class aeolus::profiles::rhevm {
+ file {"/etc/rhevm.json":
+ content => template("aeolus/rhevm.json"),
+ mode => 755,
+ require => Package['aeolus-conductor-daemons'] }
+
+ file {"/etc/iwhd/conf.js":
+ content => template("aeolus/iwhd-conf.js"),
+ mode => 755,
+ require => Package['aeolus-conductor-daemons'] }
+
+ file {"$rhevm_nfs_mount_point":
+ ensure => 'directory'}
+
+ mount {"$rhevm_nfs_mount_point":
+ ensure => mounted,
+ device => "$rhevm_nfs_server:$rhevm_nfs_export",
+ fstype => "nfs",
+ options => "rw",
+ require => File["$rhevm_nfs_mount_point"]}
+
+ # give iwhd a restart to pick up new configuration files
+ # in the event iwhd had already initialized at /var/lib/iwhd
+ exec { "/sbin/service iwhd restart":
+ require => [Service['iwhd'],
+ Mount["$rhevm_nfs_mount_point"],
+ File["/etc/rhevm.json"],
+ File["/etc/iwhd/conf.js"]]}
+
+ aeolus::create_bucket{"aeolus":}
+
+ aeolus::conductor::site_admin{"admin":
+ email => 'dcuser(a)aeolusproject.org',
+ password => "password",
+ first_name => 'aeolus',
+ last_name => 'user'}
+
+ aeolus::conductor::login{"admin": password => "password",
+ require => Aeolus::Conductor::Site_admin['admin']}
+
+ aeolus::conductor::provider{"rhevm":
+ deltacloud_driver => "rhevm",
+ url => "http://localhost:3002/api",
+ deltacloud_provider => "$rhevm_deltacloud_provider",
+ require => Aeolus::Conductor::Login["admin"] }
+
+ aeolus::conductor::provider::account{"rhevm":
+ provider => 'rhevm',
+ type => 'rhevm',
+ username => '$rhevm_deltacloud_username',
+ password => '$rhevm_deltacloud_password',
+ require => Aeolus::Conductor::Provider["rhevm"] }
+
+ aeolus::conductor::hwp{"hwp1":
+ memory => "512",
+ cpu => "1",
+ storage => "",
+ architecture => "x86_64",
+ require => Aeolus::Conductor::Login["admin"] }
+
+ aeolus::conductor::logout{"admin":
+ require => [Aeolus::Conductor::Provider['rhevm'],
+ Aeolus::Conductor::Provider::Account['rhevm'],
+ Aeolus::Conductor::Hwp['hwp1']] }
+
+ # TODO: create a realm and mappings
+}
+
+class aeolus::profiles::rhevm::disabled {
+ mount {"$rhevm_nfs_mount_point":
+ ensure => unmounted,
+ device => "$rhevm_nfs_server:$rhevm_nfs_export"}
+}
diff --git a/recipes/aeolus/manifests/profiles/vsphere.pp b/recipes/aeolus/manifests/profiles/vsphere.pp
new file mode 100644
index 0000000..bcfe315
--- /dev/null
+++ b/recipes/aeolus/manifests/profiles/vsphere.pp
@@ -0,0 +1,37 @@
+class aeolus::profiles::vsphere {
+ aeolus::create_bucket{"aeolus":}
+
+ aeolus::conductor::site_admin{"admin":
+ email => 'dcuser(a)aeolusproject.org',
+ password => "password",
+ first_name => 'aeolus',
+ last_name => 'user'}
+
+ aeolus::conductor::login{"admin": password => "password",
+ require => Aeolus::Conductor::Site_admin['admin']}
+
+ aeolus::conductor::provider{"vsphere":
+ deltacloud_driver => "vsphere",
+ url => "http://localhost:3002/api",
+ deltacloud_provider => "$vsphere_deltacloud_provider",
+ require => [Aeolus::Conductor::Login["admin"]] }
+
+ aeolus::conductor::provider::account{"vsphere":
+ provider => 'vsphere',
+ type => 'vsphere',
+ username => '$vsphere_username',
+ password => '$vsphere_password',
+ require => Aeolus::Conductor::Provider["vsphere"] }
+
+ aeolus::conductor::hwp{"hwp1":
+ memory => "512",
+ cpu => "1",
+ storage => "",
+ architecture => "x86_64",
+ require => Aeolus::Conductor::Login["admin"] }
+
+ aeolus::conductor::logout{"admin":
+ require => [Aeolus::Conductor::Provider['vsphere'],
+ Aeolus::Conductor::Provider::Account['vsphere'],
+ Aeolus::Conductor::Hwp['hwp1']] }
+}
diff --git a/recipes/aeolus/manifests/rhevm.pp b/recipes/aeolus/manifests/rhevm.pp
deleted file mode 100644
index daa84d2..0000000
--- a/recipes/aeolus/manifests/rhevm.pp
+++ /dev/null
@@ -1,51 +0,0 @@
-class aeolus::rhevm inherits aeolus {
- file {"/etc/rhevm.json":
- content => template("aeolus/rhevm.json"),
- mode => 755,
- require => Package['aeolus-conductor-daemons'] }
-
- file {"/etc/iwhd/conf.js":
- content => template("aeolus/iwhd-conf.js"),
- mode => 755,
- require => Package['aeolus-conductor-daemons'] }
-
- file {"$rhevm_nfs_mount_point":
- ensure => 'directory'}
-
- mount {"$rhevm_nfs_mount_point":
- ensure => mounted,
- device => "$rhevm_nfs_server:$rhevm_nfs_export",
- fstype => "nfs",
- options => "rw",
- require => File["$rhevm_nfs_mount_point"]}
-
- # give iwhd a restart to pick up new configuration files
- # in the event iwhd had already initialized at /var/lib/iwhd
- exec { "/sbin/service iwhd restart":
- require => [Service['iwhd'],
- Mount["$rhevm_nfs_mount_point"],
- File["/etc/rhevm.json"],
- File["/etc/iwhd/conf.js"]]}
-
- aeolus::deltacloud{"rhevm":
- provider_type => 'rhevm',
- endpoint => "$rhevm_deltacloud_powershell_url",
- port => $rhevm_deltacloud_port}
-
- aeolus::conductor::provider{"rhevm":
- type => "rhevm",
- url => "http://localhost:${rhevm_deltacloud_port}/api",
- require => Aeolus::Deltacloud["rhevm"]}
-
- # TODO:
- # 1. since we have credentials, create provider account
- # 2. create a realm and mappings
-}
-
-class aeolus::rhevm::disabled {
- aeolus::deltacloud::disabled{"rhevm": }
-
- mount {"$rhevm_nfs_mount_point":
- ensure => unmounted,
- device => "$rhevm_nfs_server:$rhevm_nfs_export"}
-}
diff --git a/recipes/aeolus/manifests/vmware.pp b/recipes/aeolus/manifests/vmware.pp
deleted file mode 100644
index 4772b15..0000000
--- a/recipes/aeolus/manifests/vmware.pp
+++ /dev/null
@@ -1,22 +0,0 @@
-class aeolus::vmware inherits aeolus {
- file {"/etc/vmware.json":
- content => template("aeolus/vmware.json"),
- mode => 755,
- require => Package['aeolus-conductor-daemons'] }
-
- aeolus::deltacloud{"vsphere":
- provider_type => 'vsphere',
- endpoint => "$vmware_api_endpoint",
- port => $vmware_deltacloud_port}
-
- aeolus::conductor::provider{"vsphere":
- type => "vsphere",
- url => "http://localhost:${vmware_deltacloud_port}/api",
- require => [Aeolus::Deltacloud["vsphere"]]}
-
-}
-
-class aeolus::vmware::disabled {
- aeolus::deltacloud::disabled{"vsphere": }
-
-}
diff --git a/recipes/aeolus/templates/deltacloud-core b/recipes/aeolus/templates/deltacloud-core
deleted file mode 100644
index 0f52b65..0000000
--- a/recipes/aeolus/templates/deltacloud-core
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/bash
-#
-#
-# deltacloud-core startup script for deltacloud-core server
-#
-# chkconfig: - 97 03
-# description: deltacloud-core is primary server process for the \
-# Deltacloud Core component.
-#
-
-[ -r /etc/sysconfig/deltacloud-<%= name %> ] && . /etc/sysconfig/deltacloud-<%= name %>
-
-ENV="${ENV:-production}"
-DRIVER="${DRIVER:-<%= provider_type %>}"
-PORT="${PORT:-<%= port %>}"
-LOCKFILE="${LOCKFILE:-/var/lock/subsys/deltacloud-<%= name %> }"
-LOGFILE="${LOGFILE:-/var/log/deltacloud-<%= name %>/$DRIVER.log}"
-PIDFILE="${THIN_PID:-/var/run/deltacloud-<%= name %>.pid}"
-export DELTACLOUD_MOCK_STORAGE=/usr/lib/ruby/gems/1.8/gems/deltacloud-<%= name %>-0.3.0/lib/deltacloud/drivers/mock/data/
-
-PROG=/usr/bin/deltacloudd
-
-STARTTIMEOUT=20
-
-. /etc/init.d/functions
-
-start() {
- echo -n "Starting deltacloud-<%= name %>: "
-
- if [ -f $LOCKFILE ] || [ -f $PIDFILE ] && checkpid `cat $PIDFILE` ; then
- echo_success
- echo
- echo "deltacloud-$DRIVER has already been started"
- exit 0
- fi
-
- $PROG -i $DRIVER -e $ENV -p $PORT <%= "--provider #{endpoint}" unless endpoint == "" %> >> $LOGFILE 2>&1 &
- RETVAL=$?
- echo $! > $PIDFILE
- if [ $RETVAL -eq 0 ] ; then
- TIMEOUT="$STARTTIMEOUT"
- while [ $TIMEOUT -gt 0 ]; do
- /usr/bin/curl --silent http://localhost:$PORT/api >& /dev/null
- RETVAL=$?
- if [ $RETVAL -eq 0 ] ; then
- touch $LOCKFILE
- echo_success
- echo
- exit 0
- fi
- sleep 1
- let TIMEOUT=${TIMEOUT}-1
- done
- fi
-
- echo_failure
- echo
- exit 1
-}
-
-stop() {
- echo -n "Shutting down deltacloud-<%= name %>: "
-
- # FIXME! we need to do a killproc -p <pidfile> here to ensure other deltacloud
- # daemons are not killed as well
- killproc -p $PIDFILE deltacloudd
- RETVAL=$?
- if [ $RETVAL -eq 0 ] && rm -f $LOCKFILE ; then
- echo_success
- echo
- else
- echo_failure
- echo
- fi
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- start
- ;;
- reload)
- ;;
- force-reload)
- restart
- ;;
- status)
- status -p $PIDFILE $PROG
- RETVAL=$?
- ;;
- *)
- echo "Usage: deltacloud-<%= name %> {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-exit $RETVAL
diff --git a/recipes/aeolus/templates/rhevm.json b/recipes/aeolus/templates/rhevm.json
index 45e6d67..6a2bb43 100644
--- a/recipes/aeolus/templates/rhevm.json
+++ b/recipes/aeolus/templates/rhevm.json
@@ -5,7 +5,7 @@
"nfs-dir": "<%= rhevm_nfs_mount_point %>",
"nfs-path": "<%= rhevm_nfs_export %>",
"nfs-host": "<%= rhevm_nfs_server %>",
- "api-url": "<%= rhevm_deltacloud_powershell_url %>",
+ "api-url": "<%= rhevm_deltacloud_provider %>",
"password": "<%= rhevm_deltacloud_password %>",
"cluster": "_any_"
}
diff --git a/recipes/aeolus/templates/vmware.json b/recipes/aeolus/templates/vmware.json
index ec69d5e..6f70d62 100644
--- a/recipes/aeolus/templates/vmware.json
+++ b/recipes/aeolus/templates/vmware.json
@@ -1,10 +1,10 @@
{
"vsphere":
{
- "api-url": "https://<%= vmware_api_endpoint %>/sdk",
- "username": "<%= vmware_username %>",
- "password": "<%= vmware_password %>",
- "datastore": "<%= vmware_datastore %>",
- "network_name": "<%= vmware_network_name %>"
+ "api-url": "https://<%= vsphere_deltacloud_provider %>/sdk",
+ "username": "<%= vsphere_username %>",
+ "password": "<%= vsphere_password %>",
+ "datastore": "<%= vsphere_datastore %>",
+ "network_name": "<%= vsphere_network_name %>"
}
}
--
1.7.6
12 years, 7 months