class Fog::Volume::OpenStack::Mock

Public Class Methods

data() click to toggle source
# File lib/fog/openstack/volume.rb, line 35
def self.data
  @data ||= Hash.new do |hash, key|
    hash[key] = {
      :users => {},
      :tenants => {}
    }
  end
end
new(options={}) click to toggle source
# File lib/fog/openstack/volume.rb, line 48
def initialize(options={})
  require 'multi_json'
  @openstack_username = options[:openstack_username]

  @data ||= { :users => {} }
  unless @data[:users].find {|u| u['name'] == options[:openstack_username]}
    id = Fog::Mock.random_numbers(6).to_s
    @data[:users][id] = {
      'id'       => id,
      'name'     => options[:openstack_username],
      'email'    => "#{options[:openstack_username]}@mock.com",
      'tenantId' => Fog::Mock.random_numbers(6).to_s,
      'enabled'  => true
    }
  end
end
reset() click to toggle source
# File lib/fog/openstack/volume.rb, line 44
def self.reset
  @data = nil
end

Public Instance Methods

create_volume(name, description, size, options={}) click to toggle source
# File lib/fog/openstack/requests/volume/create_volume.rb, line 31
def create_volume(name, description, size, options={})
  response = Excon::Response.new
  response.status = 202
  response.body = {
    'volume' => {
      'id'                 => Fog::Mock.random_numbers(2),
      'displayName'        => name,
      'displayDescription' => description,
      'size'               => size,
      'status'             => 'creating',
      'snapshotId'         => '4',
      'volumeType'         => nil,
      'availabilityZone'   => 'nova',
      'createdAt'          => Time.now,
      'attchments'         => []
    }
  }
  response
end
credentials() click to toggle source
# File lib/fog/openstack/volume.rb, line 73
def credentials
  { :provider                 => 'openstack',
    :openstack_auth_url       => @openstack_auth_uri.to_s,
    :openstack_auth_token     => @auth_token,
    :openstack_management_url => @openstack_management_url }
end
data() click to toggle source
# File lib/fog/openstack/volume.rb, line 65
def data
  self.class.data[@openstack_username]
end
delete_snapshot(snapshot_id) click to toggle source
# File lib/fog/openstack/requests/volume/delete_snapshot.rb, line 17
def delete_snapshot(snapshot_id)
  response = Excon::Response.new
  response.status = 204
  response
end
delete_volume(volume_id) click to toggle source
# File lib/fog/openstack/requests/volume/delete_volume.rb, line 17
def delete_volume(volume_id)
  response = Excon::Response.new
  response.status = 204
  response
end
get_snapshot_details(detailed=true) click to toggle source
# File lib/fog/openstack/requests/volume/get_snapshot_details.rb, line 19
def get_snapshot_details(detailed=true)
  response = Excon::Response.new
  response.status = 200
  response.body = {
    'snapshot' => {
      'id'                 => '1',
      'displayName'        => Fog::Mock.random_letters(rand(8) + 5),
      'displayDescription' => Fog::Mock.random_letters(rand(12) + 10),
      'size'               => 3,
      'volumeId'           => '4',
      'status'             => 'online',
      'createdAt'          => Time.now
    }
  }
  response
end
get_volume_details(detailed=true) click to toggle source
# File lib/fog/openstack/requests/volume/get_volume_details.rb, line 19
def get_volume_details(detailed=true)
  response = Excon::Response.new
  response.status = 200
  response.body = {
    'volume' => {
      'id'                 => '1',
      'displayName'        => Fog::Mock.random_letters(rand(8) + 5),
      'displayDescription' => Fog::Mock.random_letters(rand(12) + 10),
      'size'               => 3,
      'volumeType'         => nil,
      'snapshotId'         => '4',
      'status'             => 'online',
      'availabilityZone'   => 'nova',
      'createdAt'          => Time.now,
      'attchments'         => []
    }
  }
  response
end
list_snapshots(detailed=true) click to toggle source
# File lib/fog/openstack/requests/volume/list_snapshots.rb, line 20
def list_snapshots(detailed=true)
  response = Excon::Response.new
  response.status = 200
  response.body = {
    'snapshots' => [get_snapshot_details.body["snapshot"]]
  }
  response
end
list_volumes(detailed=true) click to toggle source
# File lib/fog/openstack/requests/volume/list_volumes.rb, line 20
def list_volumes(detailed=true)
  response = Excon::Response.new
  response.status = 200
  self.data[:volumes] ||= [
    { "status" => "available",
      "displayDescription" => "",
      "availabilityZone" => "nova",
      "displayName" => "test 1",
      "attachments" => [{}],
      "volumeType" => nil,
      "snapshotId" => nil,
      "size" => 1,
      "id" => 6,
      "createdAt" => "2012-03-30 05:31:00.655058",
      "metadata" => {} },
    { "status" => "available",
      "displayDescription" => "",
      "availabilityZone" => "nova",
      "displayName" => "test 2",
      "attachments" => [{}],
      "volumeType" => nil,
      "snapshotId" => nil,
      "size" => 1,
      "id" => 8,
      "createdAt" => "2012-03-30 16:14:55.582717",
      "metadata" => {} }
    ]
  response.body = { 'volumes' => self.data[:volumes] }
  response
end
reset_data() click to toggle source
# File lib/fog/openstack/volume.rb, line 69
def reset_data
  self.class.data.delete(@openstack_username)
end
set_tenant(tenant) click to toggle source
# File lib/fog/openstack/requests/volume/set_tenant.rb, line 14
def set_tenant(tenant)
  true
end