ref: refs/heads/master
commit abf4d3c01e0ec58de5f985c3a9c75f95bd4b354b
Author: Jiri Suchomel
Date: Fri Oct 2 11:49:03 2009 +0200
raise own AdministratorError on error
---
.../app/controllers/administrator_controller.rb | 6 +----
plugins/administrator/app/models/administrator.rb | 23 ++++++++++++++++++-
.../administrator/test/unit/administrator_test.rb | 2 +-
3 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/plugins/administrator/app/controllers/administrator_controller.rb b/plugins/administrator/app/controllers/administrator_controller.rb
index 3478c45..35df7e0 100644
--- a/plugins/administrator/app/controllers/administrator_controller.rb
+++ b/plugins/administrator/app/controllers/administrator_controller.rb
@@ -34,11 +34,7 @@ class AdministratorController < ApplicationController
end
if data.has_key?(:aliases) && !data[:aliases].nil?
- begin
- @admin.save_aliases(data[:aliases])
- rescue Exception => e
- render ErrorResult.error(404, 2, e.message) and return
- end
+ @admin.save_aliases(data[:aliases])
end
show
end
diff --git a/plugins/administrator/app/models/administrator.rb b/plugins/administrator/app/models/administrator.rb
index 7580965..619fac5 100644
--- a/plugins/administrator/app/models/administrator.rb
+++ b/plugins/administrator/app/models/administrator.rb
@@ -42,8 +42,7 @@ class Administrator
}
yapi_ret = YastService.Call("YaPI::ADMINISTRATOR::Write", parameters)
Rails.logger.debug "YaPI returns: '#{yapi_ret}'"
-
- raise Exception.new(yapi_ret) unless yapi_ret.empty?
+ raise AdministratorError.new(yapi_ret) unless yapi_ret.empty?
@aliases = new_aliases
end
@@ -63,3 +62,23 @@ class Administrator
end
end
+
+require 'exceptions'
+class AdministratorError < BackendException
+
+ def initialize(message)
+ @message = message
+ super("Administrator setup failed with this error: #{@message}.")
+ end
+
+ def to_xml
+ xml = Builder::XmlMarkup.new({})
+ xml.instruct!
+
+ xml.error do
+ xml.type "ADMINISTRATOR_ERROR"
+ xml.description message
+ xml.output @message
+ end
+ end
+end
diff --git a/plugins/administrator/test/unit/administrator_test.rb b/plugins/administrator/test/unit/administrator_test.rb
index 374b1d2..ad8fc8b 100644
--- a/plugins/administrator/test/unit/administrator_test.rb
+++ b/plugins/administrator/test/unit/administrator_test.rb
@@ -42,7 +42,7 @@ class AdministratorTest < ActiveSupport::TestCase
def test_save_failure
new_aliases = [ "test@domain.com" ];
YastService.stubs(:Call).with('YaPI::ADMINISTRATOR::Write', {"aliases" => [ "as", new_aliases ]}).returns("YaPI error")
- assert_raise Exception do
+ assert_raise AdministratorError do
ret = @model.save_aliases(new_aliases.join(","))
end
end
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org