From: Tomas Sedovic <tsedovic(a)redhat.com>
The update to the build_credentials method broke a lot of tests.
---
src/app/models/provider_account.rb | 12 ++++++------
src/app/models/provider_account_observer.rb | 2 +-
src/app/models/push_job.rb | 2 +-
src/app/services/data_service_active_record.rb | 2 +-
src/app/util/condormatic.rb | 4 ++--
src/app/views/admin/provider_accounts/_list.haml | 2 +-
src/dbomatic/dbomatic | 2 +-
src/features/provider_account.feature | 8 ++++----
.../provider_accounts_controller_spec.rb | 6 +++---
src/spec/factories/credential.rb | 14 +++++++-------
src/spec/models/provider_account_spec.rb | 20 ++++++++++----------
.../services/data_service_active_record_spec.rb | 6 +++---
12 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/src/app/models/provider_account.rb b/src/app/models/provider_account.rb
index c6f0079..5477d92 100644
--- a/src/app/models/provider_account.rb
+++ b/src/app/models/provider_account.rb
@@ -41,7 +41,7 @@ class ProviderAccount < ActiveRecord::Base
searchable do
text :name, :as => :code_substring
- text(:username, :as => :code_substring) { credentials_hash['username'] }
+ text(:username, :as => :code_substring) { credentials_hash['access_key']
}
end
# Relations
@@ -83,7 +83,7 @@ class ProviderAccount < ActiveRecord::Base
def validate_unique_username
cid = CredentialDefinition.find_by_name('username', :conditions =>
{:provider_type_id => provider.provider_type.id})
- Credential.all(:conditions => {:value => credentials_hash['username'],
:credential_definition_id => cid}).each do |c|
+ Credential.all(:conditions => {:value =>
credentials_hash['access_key'], :credential_definition_id => cid}).each do |c|
if c.provider_account.provider == self.provider && c.provider_account_id !=
self.id
errors.add(:base, "Username has already been taken")
return false
@@ -122,7 +122,7 @@ class ProviderAccount < ActiveRecord::Base
def connect
begin
- return DeltaCloud.new(credentials_hash['username'],
credentials_hash['password'], provider.url)
+ return DeltaCloud.new(credentials_hash['access_key'],
credentials_hash['secret_access_key'], provider.url)
rescue Exception => e
logger.error("Error connecting to framework: #{e.message}")
logger.error("Backtrace: #{e.backtrace.join("\n")}")
@@ -138,7 +138,7 @@ class ProviderAccount < ActiveRecord::Base
end
def name
- label.blank? ? credentials_hash['username'] : label
+ label.blank? ? credentials_hash['access_key'] : label
end
# FIXME: for already-mapped accounts, update rather than add new
@@ -163,10 +163,10 @@ class ProviderAccount < ActiveRecord::Base
end
def valid_credentials?
- if credentials_hash['username'].blank? ||
credentials_hash['password'].blank?
+ if credentials_hash['access_key'].blank? ||
credentials_hash['secret_access_key'].blank?
return false
end
- DeltaCloud::valid_credentials?(credentials_hash['username'].to_s,
credentials_hash['password'].to_s, provider.url)
+ DeltaCloud::valid_credentials?(credentials_hash['access_key'].to_s,
credentials_hash['secret_access_key'].to_s, provider.url)
end
def build_credentials
diff --git a/src/app/models/provider_account_observer.rb
b/src/app/models/provider_account_observer.rb
index 0f76ee4..b57f38e 100644
--- a/src/app/models/provider_account_observer.rb
+++ b/src/app/models/provider_account_observer.rb
@@ -15,7 +15,7 @@ class ProviderAccountObserver < ActiveRecord::Observer
def create_bucket(account)
client = account.connect
- bucket_name =
"#{account.credentials_hash['account_id']}-imagefactory-amis"
+ bucket_name =
"#{account.credentials_hash['account_number']}-imagefactory-amis"
# TODO (jprovazn): getting particular bucket takes long time (core fetches all
# buckets from provider), so we call directly create_bucket, if bucket exists,
# exception should be thrown (actually existing bucket is returned - this
diff --git a/src/app/models/push_job.rb b/src/app/models/push_job.rb
index 9983953..e028b84 100644
--- a/src/app/models/push_job.rb
+++ b/src/app/models/push_job.rb
@@ -28,7 +28,7 @@ class PushJob < Struct.new(:provider_image_id, :hydra)
# TODO: what if a provider has multiple accounts
# for now pick first account
provider_account = provider_image.provider.provider_accounts.first
- cred_block = provider_account.build_credentials.to_xml.html_safe
+ cred_block = provider_account.build_credentials.html_safe
response =
RestClient.post(YAML.load_file("#{RAILS_ROOT}/config/image_factory_console.yml")['pushurl'],
:image_id => provider_image.image.uuid,
:provider => provider_image.provider.name,
:credentials => cred_block
diff --git a/src/app/services/data_service_active_record.rb
b/src/app/services/data_service_active_record.rb
index 0eb6ddd..6257977 100644
--- a/src/app/services/data_service_active_record.rb
+++ b/src/app/services/data_service_active_record.rb
@@ -69,7 +69,7 @@ class DataServiceActiveRecord
provider_accounts.each do |provider_account|
quota = provider_account.quota
if quota
- data_points <<
TotalQuotaUsagePoint.new(provider_account.credentials_hash['username'],
quota.total_instances)
+ data_points <<
TotalQuotaUsagePoint.new(provider_account.credentials_hash['access_key'],
quota.total_instances)
free_instances += (quota.maximum_total_instances - quota.total_instances)
end
end
diff --git a/src/app/util/condormatic.rb b/src/app/util/condormatic.rb
index 572f413..b601b2f 100644
--- a/src/app/util/condormatic.rb
+++ b/src/app/util/condormatic.rb
@@ -270,8 +270,8 @@ def condormatic_classads_sync
pipe.puts "hardware_profile_cpu=\"#{overrides[:cpu]}\""
pipe.puts "realm_key=\"#{realm ? realm.external_key :
''}\""
pipe.puts "provider_url=\"#{account.provider.url}\""
- pipe.puts
"username=\"#{account.credentials_hash['username']}\""
- pipe.puts
"password=\"#{account.credentials_hash['password']}\""
+ pipe.puts
"username=\"#{account.credentials_hash['access_key']}\""
+ pipe.puts
"password=\"#{account.credentials_hash['secret_access_key']}\""
pipe.puts "provider_account_id=\"#{account.id}\""
pipe.puts "keypair=\"#{account.instance_key ? account.instance_key.name
: ''}\""
rescue Exception => ex
diff --git a/src/app/views/admin/provider_accounts/_list.haml
b/src/app/views/admin/provider_accounts/_list.haml
index b431f9b..86a1561 100644
--- a/src/app/views/admin/provider_accounts/_list.haml
+++ b/src/app/views/admin/provider_accounts/_list.haml
@@ -15,6 +15,6 @@
%input{:name => 'accounts_selected[]', :type =>
'checkbox', :value => account.id, :id =>
"account_checkbox_#{account.id}", :checked => selected }
= link_to account.name, admin_provider_account_path(account)
%td
- =account.credentials_hash['username']
+ =account.credentials_hash['access_key']
%td
=account.provider.provider_type.name
diff --git a/src/dbomatic/dbomatic b/src/dbomatic/dbomatic
index 1cd1229..9350e58 100755
--- a/src/dbomatic/dbomatic
+++ b/src/dbomatic/dbomatic
@@ -206,7 +206,7 @@ class CondorEventLog < Nokogiri::XML::SAX::Document
return
end
- provider_account = provider.provider_accounts.detect {|a|
a.credentials_hash['username'] == @username}
+ provider_account = provider.provider_accounts.detect {|a|
a.credentials_hash['access_key'] == @username}
if provider_account.nil?
@logger.error "Could not find the cloud account corresponding to #{link} -
#{@username}, skipping cloud id update"
return
diff --git a/src/features/provider_account.feature
b/src/features/provider_account.feature
index 6a06d32..c15f353 100644
--- a/src/features/provider_account.feature
+++ b/src/features/provider_account.feature
@@ -24,8 +24,8 @@ Feature: Manage Provider Accounts
And I should see "New Account"
When I select "testprovider" from "provider_account_provider_id"
And I fill in "provider_account[label]" with "testaccount"
- And I fill in "provider_account[credentials_hash][username]" with
"mockuser"
- And I fill in "provider_account[credentials_hash][password]" with
"mockpassword"
+ And I fill in "provider_account[credentials_hash][access_key]" with
"mockuser"
+ And I fill in "provider_account[credentials_hash][secret_access_key]" with
"mockpassword"
And I fill in "quota[maximum_running_instances]" with "13"
And I press "Add"
Then I should be on testaccount's provider account page
@@ -43,8 +43,8 @@ Feature: Manage Provider Accounts
And I should see "New Account"
When I select "testprovider" from "provider_account_provider_id"
And I fill in "provider_account[label]" with "testaccount"
- When I fill in "provider_account[credentials_hash][username]" with
"mockuser"
- And I fill in "provider_account[credentials_hash][password]" with
"wrongpassword"
+ When I fill in "provider_account[credentials_hash][access_key]" with
"mockuser"
+ And I fill in "provider_account[credentials_hash][secret_access_key]" with
"wrongpassword"
And I fill in "quota[maximum_running_instances]" with "13"
And I press "Add"
Then I should see "Credentials are invalid!"
diff --git a/src/spec/controllers/provider_accounts_controller_spec.rb
b/src/spec/controllers/provider_accounts_controller_spec.rb
index c6887cf..9216fd9 100644
--- a/src/spec/controllers/provider_accounts_controller_spec.rb
+++ b/src/spec/controllers/provider_accounts_controller_spec.rb
@@ -38,13 +38,13 @@ describe Admin::ProviderAccountsController do
it "should allow users with account modify password to update a cloud
account" do
UserSession.create(@admin)
- @provider_account.credentials_hash = {:username => 'mockuser2', :password
=> "foobar"}
+ @provider_account.credentials_hash = {:access_key => 'mockuser2',
:secret_access_key => "foobar"}
@provider_account.stub!(:valid_credentials?).and_return(true)
@provider_account.quota = Quota.new
@provider_account.save.should be_true
- post :update, :id => @provider_account.id, :provider_account => {
:credentials_hash => {:username => 'mockuser', :password =>
'mockpassword'} }
+ post :update, :id => @provider_account.id, :provider_account => {
:credentials_hash => {:access_key => 'mockuser', :secret_access_key =>
'mockpassword'} }
response.should redirect_to admin_provider_account_path(@provider_account)
-
ProviderAccount.find((a)provider_account.id).credentials_hash['password'].should ==
"mockpassword"
+
ProviderAccount.find((a)provider_account.id).credentials_hash['secret_access_key'].should
== "mockpassword"
end
it "should allow users with account modify permission to delete a cloud
account" do
diff --git a/src/spec/factories/credential.rb b/src/spec/factories/credential.rb
index 8cde3f8..81175a8 100644
--- a/src/spec/factories/credential.rb
+++ b/src/spec/factories/credential.rb
@@ -6,36 +6,36 @@ end
# EC2 credentials
Factory.define :ec2_username_credential, :parent => :credential do |c|
c.value "mockuser"
- c.credential_definition {
CredentialDefinition.find_by_name('username',:conditions => {:provider_type_id
=> ProviderType.find_by_codename('ec2')})}
+ c.credential_definition {
CredentialDefinition.find_by_name('access_key',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('ec2')})}
end
Factory.define :ec2_password_credential, :parent => :credential do |c|
c.value "mockpassword"
- c.credential_definition {
CredentialDefinition.find_by_name('password',:conditions => {:provider_type_id
=> ProviderType.find_by_codename('ec2')})}
+ c.credential_definition {
CredentialDefinition.find_by_name('secret_access_key',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('ec2')})}
end
Factory.define :ec2_account_id_credential, :parent => :credential do |c|
c.value "3141"
- c.credential_definition {
CredentialDefinition.find_by_name('account_id',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('ec2')})}
+ c.credential_definition {
CredentialDefinition.find_by_name('account_number',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('ec2')})}
end
Factory.define :ec2_x509private_credential, :parent => :credential do |c|
c.value "x509 private key"
- c.credential_definition {
CredentialDefinition.find_by_name('x509private',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('ec2')})}
+ c.credential_definition { CredentialDefinition.find_by_name('key',:conditions
=> {:provider_type_id => ProviderType.find_by_codename('ec2')})}
end
Factory.define :ec2_x509public_credential, :parent => :credential do |c|
c.value "x509 public key"
- c.credential_definition {
CredentialDefinition.find_by_name('x509public',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('ec2')})}
+ c.credential_definition {
CredentialDefinition.find_by_name('certificate',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('ec2')})}
end
#Mock & Others credentials
Factory.define :username_credential, :parent => :credential do |c|
c.value "mockuser"
- c.credential_definition {
CredentialDefinition.find_by_name('username',:conditions => {:provider_type_id
=> ProviderType.find_by_codename('mock')})}
+ c.credential_definition {
CredentialDefinition.find_by_name('access_key',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('mock')})}
end
Factory.define :password_credential, :parent => :credential do |c|
c.value "mockpassword"
- c.credential_definition {
CredentialDefinition.find_by_name('password',:conditions => {:provider_type_id
=> ProviderType.find_by_codename('mock')})}
+ c.credential_definition {
CredentialDefinition.find_by_name('secret_access_key',:conditions =>
{:provider_type_id => ProviderType.find_by_codename('mock')})}
end
diff --git a/src/spec/models/provider_account_spec.rb
b/src/spec/models/provider_account_spec.rb
index df49708..27af5dd 100644
--- a/src/spec/models/provider_account_spec.rb
+++ b/src/spec/models/provider_account_spec.rb
@@ -20,12 +20,12 @@ describe ProviderAccount do
mock_provider = Factory :mock_provider
invalid_provider_account = Factory.build(:mock_provider_account, :provider =>
mock_provider)
- invalid_provider_account.credentials_hash = {'username' =>
"wrong_username", 'password' => "wrong_password"}
+ invalid_provider_account.credentials_hash = {'access_key' =>
"wrong_username", 'secret_access_key' => "wrong_password"}
invalid_provider_account.should_not be_valid
ec2_provider = Factory :ec2_provider
invalid_ec2_provider_account = Factory.build(:ec2_provider_account, :provider =>
ec2_provider)
- invalid_ec2_provider_account.credentials_hash = {'username' =>
"", 'password' => nil}
+ invalid_ec2_provider_account.credentials_hash = {'access_key' =>
"", 'secret_access_key' => nil}
invalid_ec2_provider_account.valid_credentials?.should == false
invalid_ec2_provider_account.should_not be_valid
@@ -35,7 +35,7 @@ describe ProviderAccount do
it "should fail to create a cloud account if the provider credentials are
invalid" do
provider_account = Factory.build(:mock_provider_account)
- provider_account.credentials_hash = {'password' =>
"wrong_password"}
+ provider_account.credentials_hash = {'secret_access_key' =>
"wrong_password"}
provider_account.save.should == false
end
@@ -68,21 +68,21 @@ describe ProviderAccount do
<?xml version="1.0"?>
<provider_credentials>
<ec2_credentials>
- <account_number>1234</account_number>
<access_key>user</access_key>
- <secret_access_key>pass</secret_access_key>
+ <account_number>1234</account_number>
<certificate>cert</certificate>
<key>priv_key</key>
+ <secret_access_key>pass</secret_access_key>
</ec2_credentials>
</provider_credentials>
EOT
provider_account = Factory.build(:ec2_provider_account)
provider_account.credentials_hash = {
- 'username' => 'user',
- 'password' => 'pass',
- 'account_id' => '1234',
- 'x509private' => 'priv_key',
- 'x509public' => 'cert'
+ 'access_key' => 'user',
+ 'secret_access_key' => 'pass',
+ 'account_number' => '1234',
+ 'key' => 'priv_key',
+ 'certificate' => 'cert'
}
provider_account.build_credentials.to_s.should eql(expected_xml)
end
diff --git a/src/spec/services/data_service_active_record_spec.rb
b/src/spec/services/data_service_active_record_spec.rb
index d108e01..b1510ed 100644
--- a/src/spec/services/data_service_active_record_spec.rb
+++ b/src/spec/services/data_service_active_record_spec.rb
@@ -13,7 +13,7 @@ describe DataServiceActiveRecord do
for i in 0..2
quota = Factory(:quota, :maximum_total_instances => data[i][0], :total_instances
=> data[i][1])
provider_account = Factory.build(:provider_account, :provider => provider,
:quota => quota)
- provider_account.credentials_hash = {:username => "username" + i.to_s,
:password => 'mockpassword'}
+ provider_account.credentials_hash = {:access_key => "username" +
i.to_s, :secret_access_key => 'mockpassword'}
provider_account.stub!(:valid_credentials?).and_return(true)
provider_account.save!
@@ -42,7 +42,7 @@ describe DataServiceActiveRecord do
:total_instances => 20)
provider_account = Factory.build(:provider_account, :provider => provider, :quota
=> quota)
- provider_account.credentials_hash = {:username => 'test', :password
=>'test'}
+ provider_account.credentials_hash = {:access_key => 'test',
:secret_access_key =>'test'}
provider_account.stub!(:valid_credentials?).and_return(true)
provider_account.save!
@@ -129,7 +129,7 @@ describe DataServiceActiveRecord do
provider_accounts = []
expected_averages.each do |expected_average|
provider_account = Factory.build(:provider_account, :provider => provider)
- provider_account.credentials_hash = { :username => "username" +
expected_average[0].to_s, :password => 'mockpassword' }
+ provider_account.credentials_hash = { :access_key => "username" +
expected_average[0].to_s, :secret_access_key => 'mockpassword' }
provider_account.stub!(:valid_credentials?).and_return(true)
provider_account.save!
--
1.7.4.2