The patch would allow to impersonate other accounts if you have
an admin role:
require 'fog'
require 'pp'
auth_url = 'https://identity.test.lan/v2.0/tokens'
user = 'admin@test.lan'
password = 'secret'
id = Fog::Identity.new :provider => 'OpenStack',
:openstack_auth_url => auth_url,
:openstack_username => user,
:openstack_api_key => password
st = Fog::Storage.new :provider => 'OpenStack',
:openstack_auth_url => auth_url,
:openstack_username => user,
:openstack_api_key => password
id.tenants.each do |t|
puts "Changing account to #{t.name}"
st.change_account "AUTH_#{t.id}"
# list account containers
pp st.directories
# We could also head the account and get usage information
pp st.request :method => 'HEAD'
end
Porting Fog Rackspace Storage service to OpenStack.
Mostly replaced names, removed CDN stuff (perhaps Rackspace specific)
and used authenticate_v2 (keystone).