[PATCH aeolus-conductor] BZ#753880 Catch exceptions on DC valid credentials request
mtaylor at redhat.com
mtaylor at redhat.com
Mon Feb 6 17:58:44 UTC 2012
From: Martyn Taylor <mtaylor at redhat.com>
---
src/app/models/provider_account.rb | 8 ++++++--
src/spec/models/provider_account_spec.rb | 8 ++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/app/models/provider_account.rb b/src/app/models/provider_account.rb
index 89009aa..af107de 100644
--- a/src/app/models/provider_account.rb
+++ b/src/app/models/provider_account.rb
@@ -86,8 +86,12 @@ class ProviderAccount < ActiveRecord::Base
end
def validate_credentials
- unless valid_credentials?
- errors.add(:base, "Login Credentials are Invalid for this Provider")
+ begin
+ unless valid_credentials?
+ errors.add(:base, "Login Credentials are Invalid for this Provider")
+ end
+ rescue
+ errors.add(:base, "An error occured when checking provider credentials please check your setup and try again")
end
end
diff --git a/src/spec/models/provider_account_spec.rb b/src/spec/models/provider_account_spec.rb
index 04b4b1e..49039f4 100644
--- a/src/spec/models/provider_account_spec.rb
+++ b/src/spec/models/provider_account_spec.rb
@@ -64,6 +64,14 @@ describe ProviderAccount do
provider_account.save.should == false
end
+ it "should add errors when testing credentials fails" do
+ provider_account = Factory.build(:mock_provider_account)
+ provider_account.credentials_hash = {'password' => "wrong_password"}
+ provider_account.stub(:valid_credentials).and_raise("DeltacloudError")
+ provider_account.save.should == false
+ provider_account.errors[:base].should == ["An error occured when checking provider credentials please check your setup and try again"]
+ end
+
it "should fail to create a cloud account if fetching of hw profiles fails" do
provider_account = Factory.build(:mock_provider_account)
provider_account.stub(:populate_hardware_profiles).and_raise(ActiveRecord::RecordInvalid)
--
1.7.6.4
More information about the aeolus-devel
mailing list