class Fog::OpenStack::Identity::V2::Real

Public Instance Methods

add_user_to_tenant(tenant_id, user_id, role_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/add_user_to_tenant.rb, line 6
def add_user_to_tenant(tenant_id, user_id, role_id)
  request(
    :expects => 200,
    :method  => 'PUT',
    :path    => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
  )
end
api_path_prefix() click to toggle source
Calls superclass method Fog::OpenStack::Core#api_path_prefix
# File lib/fog/openstack/identity/v2.rb, line 172
def api_path_prefix
  @path_prefix = version_in_path?(@openstack_management_uri.path) ? '' : 'v2.0'
  super
end
check_token(token_id, tenant_id = nil) click to toggle source
# File lib/fog/openstack/identity/v2/requests/check_token.rb, line 6
def check_token(token_id, tenant_id = nil)
  request(
    :expects => [200, 203],
    :method  => 'HEAD',
    :path    => "tokens/#{token_id}" + (tenant_id ? "?belongsTo=#{tenant_id}" : '')
  )
end
create_ec2_credential(user_id, tenant_id) click to toggle source

Create an EC2 credential for a user in a tenant. Requires administrator credentials.

Parameters

  • user_id<~String>: The id of the user to create an EC2 credential for

  • tenant_id<~String>: The id of the tenant to create the credential in

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'credential'<~Hash>: Created EC2 credential

        • 'access'<~String>: The access key

        • 'secret'<~String>: The secret key

        • 'user_id'<~String>: The user id

        • 'tenant_id'<~String>: The tenant id

# File lib/fog/openstack/identity/v2/requests/create_ec2_credential.rb, line 25
def create_ec2_credential(user_id, tenant_id)
  data = {'tenant_id' => tenant_id}

  request(
    :body    => Fog::JSON.encode(data),
    :expects => [200, 202],
    :method  => 'POST',
    :path    => "users/#{user_id}/credentials/OS-EC2"
  )
end
create_role(name) click to toggle source
# File lib/fog/openstack/identity/v2/requests/create_role.rb, line 6
def create_role(name)
  data = {
    'role' => {
      'name' => name
    }
  }

  request(
    :body    => Fog::JSON.encode(data),
    :expects => [200, 202],
    :method  => 'POST',
    :path    => '/OS-KSADM/roles'
  )
end
create_tenant(attributes) click to toggle source
# File lib/fog/openstack/identity/v2/requests/create_tenant.rb, line 6
def create_tenant(attributes)
  request(
    :expects => [200],
    :method  => 'POST',
    :path    => "tenants",
    :body    => Fog::JSON.encode('tenant' => attributes)
  )
end
create_user(name, password, email, tenantId = nil, enabled = true) click to toggle source
# File lib/fog/openstack/identity/v2/requests/create_user.rb, line 6
def create_user(name, password, email, tenantId = nil, enabled = true)
  data = {
    'user' => {
      'name'     => name,
      'password' => password,
      'tenantId' => tenantId,
      'email'    => email,
      'enabled'  => enabled,
    }
  }

  request(
    :body    => Fog::JSON.encode(data),
    :expects => [200, 202],
    :method  => 'POST',
    :path    => '/users'
  )
end
create_user_role(tenant_id, user_id, role_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/create_user_role.rb, line 6
def create_user_role(tenant_id, user_id, role_id)
  request(
    :expects => 200,
    :method  => 'PUT',
    :path    => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
  )
end
default_path_prefix() click to toggle source
# File lib/fog/openstack/identity/v2.rb, line 177
def default_path_prefix
  @path_prefix
end
default_service_type() click to toggle source
# File lib/fog/openstack/identity/v2.rb, line 181
def default_service_type
  %w[identity_v2 identityv2 identity]
end
delete_ec2_credential(user_id, access) click to toggle source

Destroy an EC2 credential for a user. Requires administrator credentials.

Parameters

  • user_id<~String>: The id of the user to delete the credential for

  • access<~String>: The access key of the credential to destroy

Returns

  • response<~Excon::Response>:

    • body<~String>: Empty string

# File lib/fog/openstack/identity/v2/requests/delete_ec2_credential.rb, line 19
def delete_ec2_credential(user_id, access)
  request(
    :expects => [200, 204],
    :method  => 'DELETE',
    :path    => "users/#{user_id}/credentials/OS-EC2/#{access}"
  )
end
delete_role(role_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/delete_role.rb, line 6
def delete_role(role_id)
  request(
    :expects => [200, 204],
    :method  => 'DELETE',
    :path    => "/OS-KSADM/roles/#{role_id}"
  )
end
delete_tenant(id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/delete_tenant.rb, line 6
def delete_tenant(id)
  request(
    :expects => [200, 204],
    :method  => 'DELETE',
    :path    => "tenants/#{id}"
  )
end
delete_user(user_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/delete_user.rb, line 6
def delete_user(user_id)
  request(
    :expects => [200, 204],
    :method  => 'DELETE',
    :path    => "users/#{user_id}"
  )
end
delete_user_role(tenant_id, user_id, role_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/delete_user_role.rb, line 6
def delete_user_role(tenant_id, user_id, role_id)
  request(
    :expects => 204,
    :method  => 'DELETE',
    :path    => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
  )
end
get_ec2_credential(user_id, access) click to toggle source

Retrieves an EC2 credential for a user. Requires administrator credentials.

Parameters

  • user_id<~String>: The id of the user to retrieve the credential for

  • access<~String>: The access key of the credential to retrieve

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'credential'<~Hash>: The EC2 credential

        • 'access'<~String>: The access key

        • 'secret'<~String>: The secret key

        • 'user_id'<~String>: The user id

        • 'tenant_id'<~String>: The tenant id

# File lib/fog/openstack/identity/v2/requests/get_ec2_credential.rb, line 24
def get_ec2_credential(user_id, access)
  request(
    :expects => [200, 202],
    :method  => 'GET',
    :path    => "users/#{user_id}/credentials/OS-EC2/#{access}"
  )
rescue Excon::Errors::Unauthorized
  raise Fog::OpenStack::Identity::NotFound
end
get_role(id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/get_role.rb, line 6
def get_role(id)
  request(
    :expects => [200, 204],
    :method  => 'GET',
    :path    => "/OS-KSADM/roles/#{id}"
  )
end
get_tenant(id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/get_tenant.rb, line 6
def get_tenant(id)
  request(
    :expects => [200, 204],
    :method  => 'GET',
    :path    => "tenants/#{id}"
  )
end
get_tenants_by_id(tenant_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/get_tenants_by_id.rb, line 6
def get_tenants_by_id(tenant_id)
  request(
    :expects => [200],
    :method  => 'GET',
    :path    => "tenants/#{tenant_id}"
  )
end
get_tenants_by_name(name) click to toggle source
# File lib/fog/openstack/identity/v2/requests/get_tenants_by_name.rb, line 6
def get_tenants_by_name(name)
  request(
    :expects => [200],
    :method  => 'GET',
    :path    => "tenants?name=#{name}"
  )
end
get_user_by_id(user_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/get_user_by_id.rb, line 6
def get_user_by_id(user_id)
  request(
    :expects => [200, 203],
    :method  => 'GET',
    :path    => "users/#{user_id}"
  )
end
get_user_by_name(name) click to toggle source
# File lib/fog/openstack/identity/v2/requests/get_user_by_name.rb, line 6
def get_user_by_name(name)
  request(
    :expects => [200, 203],
    :method  => 'GET',
    :path    => "users?name=#{name}"
  )
end
list_ec2_credentials(options = {}) click to toggle source

List EC2 credentials for a user. Requires administrator credentials.

Parameters hash

  • :user_id<~String>: The id of the user to retrieve the credential for

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'credentials'<~Array>: The user's EC2 credentials

        • 'access'<~String>: The access key

        • 'secret'<~String>: The secret key

        • 'user_id'<~String>: The user id

        • 'tenant_id'<~String>: The tenant id

# File lib/fog/openstack/identity/v2/requests/list_ec2_credentials.rb, line 23
def list_ec2_credentials(options = {})
  if options.kind_of?(Hash)
    user_id = options.delete(:user_id)
    query = options
  else
    Fog::Logger.deprecation('Calling OpenStack[:identity].list_ec2_credentials(user_id) is deprecated, use .list_ec2_credentials(:user_id => value)')
    user_id = options
    query = {}
  end

  request(
    :expects => [200, 202],
    :method  => 'GET',
    :path    => "users/#{user_id}/credentials/OS-EC2",
    :query   => query
  )
end
list_endpoints_for_token(token_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/list_endpoints_for_token.rb, line 6
def list_endpoints_for_token(token_id)
  request(
    :expects => [200, 203],
    :method  => 'HEAD',
    :path    => "tokens/#{token_id}/endpoints"
  )
end
list_roles(options = {}) click to toggle source
# File lib/fog/openstack/identity/v2/requests/list_roles.rb, line 6
def list_roles(options = {})
  request(
    :expects => 200,
    :method  => 'GET',
    :path    => '/OS-KSADM/roles',
    :query   => options
  )
end
list_roles_for_user_on_tenant(tenant_id, user_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/list_roles_for_user_on_tenant.rb, line 6
def list_roles_for_user_on_tenant(tenant_id, user_id)
  request(
    :expects => [200],
    :method  => 'GET',
    :path    => "tenants/#{tenant_id}/users/#{user_id}/roles"
  )
end
list_tenants(options = nil, marker = nil) click to toggle source
# File lib/fog/openstack/identity/v2/requests/list_tenants.rb, line 6
def list_tenants(options = nil, marker = nil)
  if options.kind_of?(Hash)
    params = options
  else
    Fog::Logger.deprecation('Calling OpenStack[:identity].list_tenants(limit, marker) is deprecated, use'\
                            ' .list_ec2_credentials(:limit => value, :marker => value)')
    params = {}
    params['limit'] = options if options
    params['marker'] = marker if marker
  end

  request(
    :expects => [200, 204],
    :method  => 'GET',
    :path    => "tenants",
    :query   => params
  )
end
list_user_global_roles(user_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/list_user_global_roles.rb, line 6
def list_user_global_roles(user_id)
  request(
    :expects => [200],
    :method  => 'GET',
    :path    => "users/#{user_id}/roles"
  )
end
list_users(options = {}) click to toggle source
# File lib/fog/openstack/identity/v2/requests/list_users.rb, line 6
def list_users(options = {})
  if options.kind_of?(Hash)
    tenant_id = options.delete(:tenant_id)
    query = options
  else
    Fog::Logger.deprecation('Calling OpenStack[:identity].list_users(tenant_id) is deprecated, use .list_users(:tenant_id => value)')
    tenant_id = options
    query = {}
  end

  path = tenant_id ? "tenants/#{tenant_id}/users" : 'users'
  request(
    :expects => [200, 204],
    :method  => 'GET',
    :path    => path,
    :query   => query
  )
end
remove_user_from_tenant(tenant_id, user_id, role_id) click to toggle source
# File lib/fog/openstack/identity/v2/requests/remove_user_from_tenant.rb, line 6
def remove_user_from_tenant(tenant_id, user_id, role_id)
  request(
    :expects => [200, 204],
    :method  => 'DELETE',
    :path    => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
  )
end
set_tenant(tenant) click to toggle source
# File lib/fog/openstack/identity/v2/requests/set_tenant.rb, line 6
def set_tenant(tenant)
  @openstack_must_reauthenticate = true
  @openstack_tenant = tenant.to_s
  authenticate
end
update_tenant(id, attributes) click to toggle source
# File lib/fog/openstack/identity/v2/requests/update_tenant.rb, line 6
def update_tenant(id, attributes)
  request(
    :expects => [200],
    :method  => 'PUT',
    :path    => "tenants/#{id}",
    :body    => Fog::JSON.encode('tenant' => attributes)
  )
end
update_user(user_id, options = {}) click to toggle source
# File lib/fog/openstack/identity/v2/requests/update_user.rb, line 6
def update_user(user_id, options = {})
  url = options.delete('url') || "/users/#{user_id}"
  request(
    :body    => Fog::JSON.encode('user' => options),
    :expects => 200,
    :method  => 'PUT',
    :path    => url
  )
end
validate_token(token_id, tenant_id = nil) click to toggle source
# File lib/fog/openstack/identity/v2/requests/validate_token.rb, line 6
def validate_token(token_id, tenant_id = nil)
  request(
    :expects => [200, 203],
    :method  => 'GET',
    :path    => "tokens/#{token_id}" + (tenant_id ? "?belongsTo=#{tenant_id}" : '')
  )
end
version_in_path?(url) click to toggle source
# File lib/fog/openstack/identity/v2.rb, line 185
def version_in_path?(url)
  true if url =~ /\/v2(\.0)*(\/)*.*$/
end