[PATCH] RM#3877 Implement deployment destroy and multidestroy actions in background
Tomáš Hrčka
thrcka at redhat.com
Thu Sep 27 07:40:48 UTC 2012
---
src/app/controllers/deployments_controller.rb | 28 +++++++++++++++------------
src/app/models/deployment.rb | 5 -----
2 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/src/app/controllers/deployments_controller.rb b/src/app/controllers/deployments_controller.rb
index d8e24fa..0f53579 100644
--- a/src/app/controllers/deployments_controller.rb
+++ b/src/app/controllers/deployments_controller.rb
@@ -278,13 +278,16 @@ class DeploymentsController < ApplicationController
errors = []
begin
require_privilege(Privilege::MODIFY, deployment)
- deployment.stop_instances_and_destroy!
- rescue Aeolus::Conductor::Base::NotStoppableDeployment
- cant_stop = true
- errors = deployment.not_stoppable_or_destroyable_instances.map {|i|
- t('deployments.errors.instance_state',
- :name => i.name,
- :state => i.state)}
+ if deployment.not_stoppable_or_destroyable_instances.empty?
+ deployment.delay.stop_instances_and_destroy!
+ else
+ cant_stop = true
+ errors = deployment.not_stoppable_or_destroyable_instances.map {|i|
+ t('deployments.errors.instance_state',
+ :name => i.name,
+ :state => i.state)}
+
+ end
rescue
errors = t('deployments.flash.error.not_deleted',
:name => deployment.name,
@@ -322,15 +325,16 @@ class DeploymentsController < ApplicationController
ids = Array(params[:deployments_selected])
Deployment.find(ids).each do |deployment|
- begin
- require_privilege(Privilege::MODIFY, deployment)
- deployment.stop_instances_and_destroy!
+ require_privilege(Privilege::MODIFY, deployment)
+ if deployment.not_stoppable_or_destroyable_instances.empty?
+ deployment.delay.stop_instances_and_destroy!
destroyed << deployment.name
- rescue
+ else
errors << t('deployments.flash.error.not_deleted',
:name => deployment.name,
- :error => $!.message)
+ :error => t("deployments.errors.all_stopped"))
end
+
end
respond_to do |format|
format.html do
diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
index e612ab1..552bcda 100644
--- a/src/app/models/deployment.rb
+++ b/src/app/models/deployment.rb
@@ -176,11 +176,6 @@ class Deployment < ActiveRecord::Base
end
def stop_instances_and_destroy!
- unless not_stoppable_or_destroyable_instances.empty?
- raise Aeolus::Conductor::Base::NotStoppableDeployment,
- I18n.t("deployments.errors.all_stopped")
- end
-
if destroyable?
destroy
else
--
1.7.11.4
More information about the aeolus-devel
mailing list