---
 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

Reply via email to