From: Martyn Taylor <mtaylor(a)redhat.com>
Signed-off-by: Matt Wagner <matt.wagner(a)redhat.com>
---
src/app/models/provider_account.rb | 8 ++++++--
src/config/locales/en.yml | 2 ++
src/features/provider_account.feature | 2 +-
src/spec/models/provider_account_spec.rb | 8 ++++++++
4 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/app/models/provider_account.rb b/src/app/models/provider_account.rb
index 89009aa..6a8cb35 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,
I18N.t('provider_accounts.errors.invalid_credentials'))
+ end
+ rescue
+ errors.add(:base,
I18n.t('provider_accounts.errors.exception_while_validating'))
end
end
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
index fe65336..3a0f746 100644
--- a/src/config/locales/en.yml
+++ b/src/config/locales/en.yml
@@ -1101,6 +1101,8 @@ en:
must_select_account: "You must select some accounts first."
no_provider: "You don't have any provider yet"
errors:
+ exception_while_validating: An error occurred when checking provider credentials.
Please check your setup and try again.
+ invalid_credentials: Login credentials are invalid for this provider.
populate_hardware_profiles_failed: "Failed to populate hardware_profiles:
%{message}"
populate_realms_failed: "Failed to populate realms: %{message}"
config_servers:
diff --git a/src/features/provider_account.feature
b/src/features/provider_account.feature
index 4ac6158..44f41cb 100644
--- a/src/features/provider_account.feature
+++ b/src/features/provider_account.feature
@@ -56,7 +56,7 @@ Feature: Manage Provider Accounts
And I fill in "quota[maximum_running_instances]" with "13"
And I press "Save"
Then I should see "Cannot add the provider account."
- Then I should see "Login Credentials are Invalid for this Provider"
+ Then I should see "An error occurred when checking provider credentials."
Scenario: Delete a provider account
Given there is a provider named "testprovider"
diff --git a/src/spec/models/provider_account_spec.rb
b/src/spec/models/provider_account_spec.rb
index 04b4b1e..a8c1074 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 ==
[I18n.t('provider_accounts.errors.exception_while_validating')]
+ 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.5