1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/rackspace.rb

62 lines
1.8 KiB
Ruby
Raw Normal View History

2009-10-10 22:05:17 -04:00
module Fog
module Rackspace
def self.dependencies
[
'fog/rackspace/files.rb',
'fog/rackspace/servers.rb'
]
end
2009-10-10 22:05:17 -04:00
def self.reload
self.dependencies.each {|dependency| load(dependency)}
2009-10-10 22:05:17 -04:00
end
2009-11-08 01:29:25 -05:00
unless Fog.mocking?
def self.authenticate(options)
unless @rackspace_api_key = options[:rackspace_api_key]
raise ArgumentError.new('rackspace_api_key is required to access rackspace')
end
unless @rackspace_username = options[:rackspace_username]
raise ArgumentError.new('rackspace_username is required to access rackspace')
end
2009-11-08 01:29:25 -05:00
connection = Fog::Connection.new("https://auth.api.rackspacecloud.com")
response = connection.request({
:expects => 204,
:headers => {
'X-Auth-Key' => @rackspace_api_key,
'X-Auth-User' => @rackspace_username
2009-11-08 01:29:25 -05:00
},
:host => 'auth.api.rackspacecloud.com',
:method => 'GET',
:path => 'v1.0'
})
response.headers.reject do |key, value|
!['X-Server-Management-Url', 'X-Storage-Url', 'X-CDN-Management-Url', 'X-Auth-Token'].include?(key)
end
end
else
def self.authenticate(options)
{
'X-Auth_Token' => '01234567-0123-0123-0123-01234',
'X-CDN-Management-Url' => 'https://cdn.cloaddrive.com/v1/CloudFS_01234-0123',
'X-Server-Management-Url' => 'https://servers.api.rackspacecloud.com/v1.0/01234',
'X-Storage-Url' => 'https://storage.clouddrive.com/v1/CloudFS_01234-0123'
}
2009-10-10 22:05:17 -04:00
end
2009-11-08 01:29:25 -05:00
srand(Time.now.to_i)
class Mock
end
2009-10-10 22:05:17 -04:00
end
end
end
Fog::Rackspace.dependencies.each {|dependency| require(dependency)}