From: Jan Provaznik jprovazn@redhat.com
--- src/app/controllers/deployments_controller.rb | 10 ++++++---- src/app/models/deployment.rb | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/app/controllers/deployments_controller.rb b/src/app/controllers/deployments_controller.rb index 8b07b1b..46465a4 100644 --- a/src/app/controllers/deployments_controller.rb +++ b/src/app/controllers/deployments_controller.rb @@ -82,12 +82,14 @@ class DeploymentsController < ApplicationController @deployment.owner = current_user respond_to do |format| if @deployment.save - flash[:notice] = "Deployment launched" - errors = @deployment.launch(params[:hw_profiles] || {}, current_user) - unless errors.empty? + status = @deployment.launch(params[:hw_profiles] || {}, current_user) + if status[:errors].empty? + flash[:notice] = "Deployment launched" + else flash[:error] = { :summary => "Failed to launch following assemblies:", - :failures => errors + :failures => status[:errors], + :successes => status[:successes] } end format.js { render :partial => 'properties' } diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb index 6bfa5fc..cd5371f 100644 --- a/src/app/models/deployment.rb +++ b/src/app/models/deployment.rb @@ -122,7 +122,7 @@ class Deployment < ActiveRecord::Base end
def launch(hw_profiles, user) - errors = [] + status = { :errors => {}, :successes => {} } deployable_xml.assemblies.each do |assembly| # TODO: for now we try to start all instances even if some of them fails begin @@ -146,13 +146,14 @@ class Deployment < ActiveRecord::Base :action => InstanceTask::ACTION_CREATE}) condormatic_instance_create(task) end + status[:successes][assembly.name] = 'launched' rescue logger.error $! logger.error $!.backtrace.join("\n ") - errors << "#{assembly.name}: #{$!}" + status[:errors][assembly.name] = $! end end - errors + status end
def self.list_or_search(query,order_field,order_dir)