Rather than combining a slew of exceptions with .join(', '), this
adds support for showing an unsorted list of errors, and uses
this to display deployment errors.
Resolves
https://bugzilla.redhat.com/show_bug.cgi?id=770377
---
src/app/models/deployment.rb | 2 +-
src/app/views/layouts/_new_notification.html.haml | 16 ++++++++++++++--
src/lib/exceptions.rb | 4 ++++
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
index 44dc30f..caef548 100644
--- a/src/app/models/deployment.rb
+++ b/src/app/models/deployment.rb
@@ -341,7 +341,7 @@ class Deployment < ActiveRecord::Base
)
possibles, errors = instance.matches
if possibles.empty? and not errors.empty?
- raise errors.join(", ")
+ raise Aeolus::Conductor::MultiError::UnlaunchableAssembly.new(errors)
end
rescue
errs[assembly.name] = $!.message
diff --git a/src/app/views/layouts/_new_notification.html.haml
b/src/app/views/layouts/_new_notification.html.haml
index 8ae73b0..19d9ad7 100644
--- a/src/app/views/layouts/_new_notification.html.haml
+++ b/src/app/views/layouts/_new_notification.html.haml
@@ -43,7 +43,13 @@
=image_tag 'flash_notice_icon.png', :alt => 'Notices'
%ul.flashes
- flash[:error][:successes].each do |k, v|
- %li= "#{k}: #{v}"
+ -if v.kind_of?(Array)
+ %li= "#{k}: "
+ %ul
+ -v.each do |msg|
+ %li= msg
+ -else
+ %li= "#{k}: #{v}"
.error.flash-group
.flash-subset
%div.heading
@@ -56,7 +62,13 @@
%ul.flashes
-if !flash[:error][:failures].blank?
-flash[:error][:failures].each do |k, v|
- %li= [k, ': ', v]
+ -if v.kind_of?(Array)
+ %li= "#{k}: "
+ %ul
+ -v.each do |error|
+ %li= error
+ - else
+ %li= [k, ': ', v]
-else
-flash[:error].each do |e|
%li= e
diff --git a/src/lib/exceptions.rb b/src/lib/exceptions.rb
index 0a0bd3a..954d27c 100644
--- a/src/lib/exceptions.rb
+++ b/src/lib/exceptions.rb
@@ -48,5 +48,9 @@ module Aeolus
class ImageNotFound < StandardError; end
class BlankImageId < StandardError; end
end
+
+ module MultiError
+ class UnlaunchableAssembly < StandardError; end
+ end
end
end
--
1.7.6.5