--- src/app/controllers/cloud_accounts_controller.rb | 26 ++++++++++++--------- src/app/models/cloud_account.rb | 15 ++++-------- src/config/environment.rb | 2 +- 3 files changed, 21 insertions(+), 22 deletions(-)
diff --git a/src/app/controllers/cloud_accounts_controller.rb b/src/app/controllers/cloud_accounts_controller.rb index 9343f62..466bcfa 100644 --- a/src/app/controllers/cloud_accounts_controller.rb +++ b/src/app/controllers/cloud_accounts_controller.rb @@ -32,20 +32,24 @@ class CloudAccountsController < ApplicationController @provider = Provider.find(params[:cloud_account][:provider_id]) require_privilege(Privilege::ACCOUNT_MODIFY,@provider) @cloud_account = CloudAccount.new(params[:cloud_account]) + unless @cloud_account.valid_credentials? + flash[:notice] = "The entered credential information is incorrect" + render :action => "new" + else + quota = Quota.new + quota.save! - quota = Quota.new - quota.save! - - @cloud_account.quota_id = quota.id - @cloud_account.save! + @cloud_account.quota_id = quota.id + @cloud_account.save! - if request.post? && @cloud_account.save && @cloud_account.populate_realms_and_images - flash[:notice] = "Provider account added." - redirect_to :controller => "provider", :action => "accounts", :id => @provider - else - render :action => "new" + if request.post? && @cloud_account.save && @cloud_account.populate_realms_and_images + flash[:notice] = "Provider account added." + redirect_to :controller => "provider", :action => "accounts", :id => @provider + else + render :action => "new" + end + condormatic_classads_sync end - condormatic_classads_sync end def edit diff --git a/src/app/models/cloud_account.rb b/src/app/models/cloud_account.rb index 69c8b87..237a4c7 100644 --- a/src/app/models/cloud_account.rb +++ b/src/app/models/cloud_account.rb @@ -127,21 +127,16 @@ class CloudAccount < ActiveRecord::Base end end + def valid_credentials? + DeltaCloud::valid_credentials?(username, password, provider.url) + end + protected def validate errors.add_to_base("Login Credentials are Invalid for this Provider") unless valid_credentials? end private - def valid_credentials? - begin - deltacloud = DeltaCloud.new(username, password, provider.url) - #TODO This should be replaced by a DeltaCloud.test_credentials type method once/if it is implemented in the API - deltacloud.instances - rescue Exception => e - return false - end - return true - end + end diff --git a/src/config/environment.rb b/src/config/environment.rb index e82c578..ba14e06 100644 --- a/src/config/environment.rb +++ b/src/config/environment.rb @@ -42,7 +42,7 @@ Rails::Initializer.run do |config| # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net" # config.gem "aws-s3", :lib => "aws/s3" config.gem "authlogic" - config.gem "deltacloud-client", :lib => "deltacloud" + config.gem "deltacloud-client", :lib => "deltacloud", :version => ">= 0.0.9.6" config.gem "haml" config.gem "will_paginate" config.gem "nokogiri", :version => ">= 1.4.0" -- 1.7.2.2 _______________________________________________ deltacloud-devel mailing list deltacloud-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/deltacloud-devel