fog--fog/lib/fog/rackspace.rb

34 lines
967 B
Ruby

module Fog
module Rackspace
extend Fog::Provider
service_path 'fog/rackspace'
service 'compute'
service 'files'
service 'servers'
service 'storage'
def self.authenticate(options)
rackspace_auth_url = options[:rackspace_auth_url] || "auth.api.rackspacecloud.com"
connection = Fog::Connection.new("https://" + rackspace_auth_url)
@rackspace_api_key = options[:rackspace_api_key]
@rackspace_username = options[:rackspace_username]
response = connection.request({
:expects => 204,
:headers => {
'X-Auth-Key' => @rackspace_api_key,
'X-Auth-User' => @rackspace_username
},
:host => rackspace_auth_url,
: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
end
end