class Fog::Radosgw::Provisioning::Mock

Public Class Methods

data() click to toggle source
# File lib/fog/radosgw/provisioning.rb, line 24
def self.data
  @data ||= Hash.new({})
end
new(options = {}) click to toggle source
# File lib/fog/radosgw/provisioning.rb, line 32
def initialize(options = {})
  configure_uri_options(options)
end
reset() click to toggle source
# File lib/fog/radosgw/provisioning.rb, line 28
def self.reset
  @data = nil
end

Public Instance Methods

create_user(user_id, display_name, email, options = {}) click to toggle source
# File lib/fog/radosgw/requests/provisioning/create_user.rb, line 47
def create_user(user_id, display_name, email, options = {})
  if user_exists?(user_id)
    raise Fog::Radosgw::Provisioning::UserAlreadyExists, "User with user_id #{user_id} already exists."
  end

  secret_key   = rand(1000).to_s
  data[user_id] = {
    :email        => email, 
    :user_id      => user_id, 
    :display_name => display_name,
    :suspended    => 0, 
    :secret_key   => secret_key,
  }

  Excon::Response.new.tap do |response|
    response.status = 200
    response.headers['Content-Type'] = 'application/json'
    response.body = {
      "email"        => email,
      "user_id"      => user_id,
      "display_name" => display_name,
      "suspended"    => 0,
      "keys"         =>
      [
       {
         "access_key" => "XXXXXXXXXXXXXXXXXXXX",
         "secret_key" => secret_key,
         "user"       => user_id,
       }
      ],
    }
  end
end
data() click to toggle source
# File lib/fog/radosgw/provisioning.rb, line 36
def data
  self.class.data[radosgw_uri]
end
delete_user(user_id) click to toggle source
# File lib/fog/radosgw/requests/provisioning/delete_user.rb, line 41
def delete_user(user_id)
  if !user_exists?(user_id)
    raise Fog::Radosgw::Provisioning::NoSuchUser, "No user with user_id #{user_id} exists."
  end

  data.delete(user_id)

  Excon::Response.new.tap do |response|
    response.status = 200
    response.headers['Content-Type'] = 'application/json'
    response.body = ""
  end
end
disable_user(user_id) click to toggle source
# File lib/fog/radosgw/requests/provisioning/disable_user.rb, line 17
def disable_user(user_id)
  update_mock_user(user_id, { :suspended => 1 })
end
enable_user(user_id) click to toggle source
# File lib/fog/radosgw/requests/provisioning/enable_user.rb, line 17
def enable_user(user_id)
  update_mock_user(user_id, { :suspended => 0 })
end
get_user(user_id) click to toggle source
# File lib/fog/radosgw/requests/provisioning/get_user.rb, line 36
def get_user(user_id)
  if value = data[user_id]
    Excon::Response.new.tap do |response|
      response.status = 200
      response.headers['Content-Type'] = 'application/json'
      response.body = {
        "email"        => value[:email],
        "user_id"      => value[:user_id],
        "display_name" => value[:display_name],
        "suspended"    => value[:suspended],
        "keys"         =>
        [
         {
           "access_key" => "XXXXXXXXXXXXXXXXXXXX",
           "secret_key" => value[:secret_key],
           "user"       => value[:user_id],
         }
        ],
      }
    end
  else
    Excon::Response.new.tap do |response|
      response.status = 404
      response.headers['Content-Type'] = 'application/json'
    end
  end
end
list_users(options = {}) click to toggle source
# File lib/fog/radosgw/requests/provisioning/list_users.rb, line 44
def list_users(options = {})
  filtered_data = options[:suspended] ? data.select { |key, value| value[:suspended] == options[:suspended] } : data

  Excon::Response.new.tap do |response|
    response.status = 200
    response.body   = filtered_data.map do |key, value|
      {
        "email"        => value[:email],
        "display_name" => value[:user_id],
        "user_id"      => value[:user_id],
        "suspended"    => value[:suspended],
        "keys"         =>
        [
         {
           "access_key" => "XXXXXXXXXXXXXXXXXXXX",
           "secret_key" => value[:secret_key],
           "user"       => value[:user_id],
         }
        ],
      }
    end.compact
  end
end
reset_data() click to toggle source
# File lib/fog/radosgw/provisioning.rb, line 40
def reset_data
  self.class.data.delete(radosgw_uri)
end
update_user(key_id, user) click to toggle source
# File lib/fog/radosgw/requests/provisioning/update_user.rb, line 17
def update_user(key_id, user)
  update_mock_user(key_id, user)
end
user_exists?(user_id) click to toggle source
# File lib/fog/radosgw/requests/provisioning/create_user.rb, line 41
def user_exists?(user_id)
  data.find do |key, value|
    value[:user_id] == user_id
  end
end