This is a client for the OpenStack Keystone API. There's a Ruby API. Porting from python-keystoneclient.
The Keystone 2.0 API is still a moving target, so this module will remain in "Beta" status until the API is finalized and fully implemented.
See the class definitions for documentation on specific methods and operations.
require 'keystone/v2_0/client'
require 'pp'
begin
client = Keystone::V2_0::Client.new(
:username => 'username',
:password => 'password',
:tenant_name => 'demo',
:auth_url => 'http://example.com:5000/v2.0/'
)
pp client.user
# =>
# {"id"=>"9",
# "roles"=>
# [{"tenantId"=>"2", "id"=>"1", "name"=>"Admin"},
# {"tenantId"=>"2", "id"=>"2", "name"=>"Member"}],
# "name"=>"forecast_user"}
pp client.service_catalog.token
# =>
# {"id"=>"2a0996fe-e070-4a73-b6b5-6e940070f207",
# "expires"=>2012-03-01 13:57:42 +0900,
# "tenant"=>"2"}
pp client.service_catalog.endpoints
# =>
# {"compute"=>
# [{"adminURL"=>"http://example.com:8774/v1.1/2",
# "region"=>"RegionOne",
# "internalURL"=>"http://example.com:8774/v1.1/2",
# "publicURL"=>"http://example.com:8774/v1.1/2"}],
# "image"=>
# [{"adminURL"=>"http://example.com:9292/v1.1/2",
# "region"=>"RegionOne",
# "internalURL"=>"http://example.com:9292/v1.1/2",
# "publicURL"=>"http://example.com:9292/v1.1/2"}],
# "identity"=>
# [{"adminURL"=>"http://example.com:35357/v2.0",
# "region"=>"RegionOne",
# "internalURL"=>"http://example.com:5000/v2.0",
# "publicURL"=>"http://example.com:5000/v2.0"}],
# "object-store"=>
# [{"adminURL"=>"http://example.com:8080/",
# "region"=>"RegionOne",
# "internalURL"=>"http://example.com:8080/v1/AUTH_2",
# "publicURL"=>"http://example.com:8080/v1/AUTH_2"}],
# "ec2"=>
# [{"adminURL"=>"http://example.com:8773/services/Admin",
# "region"=>"RegionOne",
# "internalURL"=>"http://example.com:8773/services/Cloud",
# "publicURL"=>"http://example.com:8773/services/Cloud"}]}
rescue
puts 'Authentication Failed.'
end
- Yuanying [email protected]
- atoato88 [email protected]
See LICENSE for license information.