add_user_to_tenant(tenant_id, user_id, role_id)
click to toggle source
def add_user_to_tenant(tenant_id, user_id, role_id)
response = Excon::Response.new
response.status = 200
response.body = {
'role' => {
'id' => '503df61a99d6461fb247cdb6a3f3a4dd',
'name' => 'admin'
}
}
response
end
create_role(name)
click to toggle source
def create_role(name)
data = {
'id' => Fog::Mock.random_numbers(6).to_s,
'name' => name
}
self.data[:roles][data['id']] = data
Excon::Response.new(
:body => { 'role' => data },
:status => 202
)
end
create_tenant(attributes)
click to toggle source
def create_tenant(attributes)
response = Excon::Response.new
response.status = [200, 204][rand(1)]
response.body = {
'tenant' => {
'id' => "df9a815161eba9b76cc748fd5c5af73e",
'description' => attributes['description'] || 'normal tenant',
'enabled' => true,
'name' => attributes['name'] || 'default'
}
}
response
end
create_user(name, password, email, tenantId=nil, enabled=true)
click to toggle source
def create_user(name, password, email, tenantId=nil, enabled=true)
response = Excon::Response.new
response.status = 200
data = {
'id' => Fog::Mock.random_hex(32),
'name' => name,
'email' => email,
'tenantId' => tenantId,
'enabled' => enabled
}
self.data[:users][data['id']] = data
response.body = { 'user' => data }
response
end
create_user_role(tenant_id, user_id, role_id)
click to toggle source
def create_user_role(tenant_id, user_id, role_id)
Excon::Response.new(
:body => { 'role' => self.data[:roles][role_id] },
:status => 200
)
end
credentials()
click to toggle source
def credentials
{ :provider => 'openstack',
:openstack_auth_url => @openstack_auth_uri.to_s,
:openstack_auth_token => @auth_token,
:openstack_management_url => @openstack_management_url,
:openstack_current_user_id => @openstack_current_user_id,
:current_user => @current_user,
:current_tenant => @current_tenant}
end
data()
click to toggle source
def data
self.class.data[@openstack_username]
end
delete_role(role_id)
click to toggle source
def delete_role(role_id)
response = Excon::Response.new
if self.data[:roles][role_id]
self.data[:roles].delete(role_id)
response.status = 204
response
else
raise Fog::Identity::OpenStack::NotFound
end
end
delete_tenant(attributes)
click to toggle source
def delete_tenant(attributes)
response = Excon::Response.new
response.status = [200, 204][rand(1)]
response.body = {
'tenant' => {
'id' => '1',
'description' => 'Has access to everything',
'enabled' => true,
'name' => 'admin'
}
}
response
end
delete_user(user_id)
click to toggle source
def delete_user(user_id)
self.data[:users].delete(
list_users.body['users'].find {|x| x['id'] == user_id }['id'])
response = Excon::Response.new
response.status = 204
response
rescue
raise Fog::Identity::OpenStack::NotFound
end
delete_user_role(tenant_id, user_id, role_id)
click to toggle source
def delete_user_role(tenant_id, user_id, role_id)
response = Excon::Response.new
response.status = 200
response
end
get_role(id)
click to toggle source
def get_role(id)
response = Excon::Response.new
if data = self.data[:roles][id]
response.status = 200
response.body = { 'role' => data }
response
else
raise Fog::Identity::OpenStack::NotFound
end
end
get_tenant(id)
click to toggle source
def get_tenant(id)
response = Excon::Response.new
response.status = [200, 204][rand(1)]
response.body = {
'tenant' => {
'id' => id,
'description' => 'Has access to everything',
'enabled' => true,
'name' => 'admin'
}
}
response
end
get_user_by_id(user_id)
click to toggle source
def get_user_by_id(user_id)
response = Excon::Response.new
response.status = 200
existing_user = self.data[:users].find do |u|
u[0] == user_id || u[1]['name'] == 'mock'
end
existing_user = existing_user[1] if existing_user
response.body = {
'user' => existing_user || create_user('mock', 'mock', 'mock@email.com').body['user']
}
response
end
list_roles()
click to toggle source
def list_roles
if self.data[:roles].empty?
['admin', 'Member'].each do |name|
id = Fog::Mock.random_hex(32)
self.data[:roles][id] = {'id' => id, 'name' => name}
end
end
Excon::Response.new(
:body => { 'roles' => self.data[:roles].values },
:status => 200
)
end
list_roles_for_user_on_tenant(tenant_id, user_id)
click to toggle source
def list_roles_for_user_on_tenant(tenant_id, user_id)
Excon::Response.new(
:body => { 'roles' => self.data[:roles].values },
:status => 200
)
end
list_tenants()
click to toggle source
def list_tenants
Excon::Response.new(
:body => {
'tenants_links' => [],
'tenants' => [
{'id' => '1',
'description' => 'Has access to everything',
'enabled' => true,
'name' => 'admin'},
{'id' => '2',
'description' => 'Normal tenant',
'enabled' => true,
'name' => 'default'},
{'id' => '3',
'description' => 'Disabled tenant',
'enabled' => false,
'name' => 'disabled'}
]
},
:status => [200, 204][rand(1)]
)
end
list_users(tenant_id = nil)
click to toggle source
def list_users(tenant_id = nil)
Excon::Response.new(
:body => { 'users' => self.data[:users].values },
:status => 200
)
end
remove_user_from_tenant(tenant_id, user_id, role_id)
click to toggle source
def remove_user_from_tenant(tenant_id, user_id, role_id)
end
reset_data()
click to toggle source
def reset_data
self.class.data.delete(@openstack_username)
end
update_tenant(id, attributes)
click to toggle source
def update_tenant(id, attributes)
response = Excon::Response.new
response.status = [200, 204][rand(1)]
attributes = {'enabled' => true, 'id' => '1'}.merge(attributes)
response.body = {
'tenant' => attributes
}
response
end
update_user(user_id, options)
click to toggle source
def update_user(user_id, options)
response = Excon::Response.new
if user = self.data[:users][user_id]
if options['name']
user['name'] = options['name']
end
response.status = 200
response
else
raise Fog::Identity::OpenStack::NotFound
end
end