mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
97d50bbeae
Altered the paths for EC2 credential requests to remove an extra / in the request URIs. Altered Fog::Open::Identity::Real#request to retry only once when given a 401 error response code. The EC2 API returns 401 when attempting to fetch nonexistent EC2 credentials instead of something sensible like 404, leading to an infinite loop. Also, the "Bad username or password" check was removed. My version of OpenStack does not return this message when a token is expired, but returns the same message as for a missing EC2 credential.
41 lines
942 B
Ruby
41 lines
942 B
Ruby
Shindo.tests("Fog::Identity[:openstack] | ec2_credential", ['openstack']) do
|
|
before do
|
|
openstack = Fog::Identity[:openstack]
|
|
tenant_id = openstack.list_tenants.body['tenants'].first['id']
|
|
|
|
@user = openstack.users.find { |user| user.name == 'foobar' }
|
|
@user ||= openstack.users.create({
|
|
:name => 'foobar',
|
|
:email => 'foo@bar.com',
|
|
:tenant_id => tenant_id,
|
|
:password => 'spoof',
|
|
:enabled => true
|
|
})
|
|
|
|
@ec2_credential = openstack.ec2_credentials.create({
|
|
:user_id => @user.id,
|
|
:tenant_id => tenant_id,
|
|
})
|
|
end
|
|
|
|
after do
|
|
@user.ec2_credentials.each do |ec2_credential|
|
|
ec2_credential.destroy
|
|
end
|
|
|
|
@user.destroy
|
|
end
|
|
|
|
tests('success') do
|
|
tests('#destroy').returns(true) do
|
|
@ec2_credential.destroy
|
|
end
|
|
end
|
|
|
|
tests('failure') do
|
|
tests('#save').raises(Fog::Errors::Error) do
|
|
@ec2_credential.save
|
|
end
|
|
end
|
|
|
|
end
|