fog/fog — pull request #1632 by rubiojr (2013-03-05 17:49:04+00:00)
Title: [openstack|storage] Added support to impersonate other accounts

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