Parent

Class/Module Index [+]

Quicksearch

Fog::Volume::OpenStack::Mock

Public Class Methods

data() click to toggle source
# File lib/fog/openstack/volume.rb, line 40
def self.data
  @data ||= Hash.new do |hash, key|
    hash[key] = {
      :users => {},
      :tenants => {},
      :quota => {
        'gigabytes' => 1000,
        'volumes'   => 10,
        'snapshots' => 10
      }
    }
  end
end
new(options={}) click to toggle source
# File lib/fog/openstack/volume.rb, line 58
def initialize(options={})
  @openstack_username = options[:openstack_username]
  @openstack_tenant   = options[:openstack_tenant]
  @openstack_auth_uri = URI.parse(options[:openstack_auth_url])

  @auth_token = Fog::Mock.random_base64(64)
  @auth_token_expiration = (Time.now.utc + 86400).iso8601

  management_url = URI.parse(options[:openstack_auth_url])
  management_url.port = 8776
  management_url.path = '/v1'
  @openstack_management_url = management_url.to_s

  @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 54
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),
      'display_name'        => name,
      'display_description' => description,
      'size'                => size,
      'status'              => 'creating',
      'snapshot_id'         => options["snapshot_id"] || nil,
      'volume_type'         => nil,
      'availability_zone'   => 'nova',
      'created_at'          => Time.now,
      'attachments'         => []
    }
  }
  response
end
create_volume_snapshot(volume_id, name, description, force=false) click to toggle source
# File lib/fog/openstack/requests/volume/create_volume_snapshot.rb, line 27
def create_volume_snapshot(volume_id, name, description, force=false)
  response = Excon::Response.new
  response.status = 202
  response.body = {
    "snapshot"=> {
       "status"=>"creating",
       "display_name"=>name,
       "created_at"=>Time.now,
       "display_description"=>description,
       "volume_id"=>volume_id,
       "id"=>"5",
       "size"=>1
    }
  }
  response
end
credentials() click to toggle source
# File lib/fog/openstack/volume.rb, line 92
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 84
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_quota(tenant_id) click to toggle source
# File lib/fog/openstack/requests/volume/get_quota.rb, line 18
def get_quota(tenant_id)
  response = Excon::Response.new
  response.status = 200
  response.body = {
    'quota_set' => (self.data[:quota_updated] or self.data[:quota]).merge({'id' => tenant_id})
  }
  response
end
get_quota_defaults(tenant_id) click to toggle source
# File lib/fog/openstack/requests/volume/get_quota_defaults.rb, line 18
def get_quota_defaults(tenant_id)
  response = Excon::Response.new
  response.status = 200
  response.body = {
    'quota_set' => self.data[:quota].merge({'id' => tenant_id})
  }
  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',
      'display_name'        => 'Snapshot1',
      'display_description' => 'Volume1 snapshot',
      'size'               => 1,
      'volume_id'           => '1',
      'status'             => 'available',
      'created_at'          => 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',
      'display_name'        => Fog::Mock.random_letters(rand(8) + 5),
      'display_description' => Fog::Mock.random_letters(rand(12) + 10),
      'size'                => 3,
      'volume_type'         => nil,
      'snapshot_id'         => '4',
      'status'              => 'online',
      'availability_zone'   => 'nova',
      'created_at'          => Time.now,
      'attachments'         => []
    }
  }
  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",
      "display_description" => "test 1 desc",
      "availability_zone" => "nova",
      "display_name" => "Volume1",
      "attachments" => [{}],
      "volume_type" => nil,
      "snapshot_id" => nil,
      "size" => 1,
      "id" => 1,
      "created_at" => Time.now,
      "metadata" => {} },
    { "status" => "available",
      "display_description" => "test 2 desc",
      "availability_zone" => "nova",
      "display_name" => "Volume2",
      "attachments" => [{}],
      "volume_type" => nil,
      "snapshot_id" => nil,
      "size" => 1,
      "id" => 2,
      "created_at" => Time.now,
      "metadata" => {} }
    ]
  response.body = { 'volumes' => self.data[:volumes] }
  response
end
reset_data() click to toggle source
# File lib/fog/openstack/volume.rb, line 88
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
update_quota(tenant_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/volume/update_quota.rb, line 20
def update_quota(tenant_id, options = {})
  self.data[:quota_updated] = self.data[:quota].merge options

  response = Excon::Response.new
  response.status = 200
  response.body = { 'quota_set' => self.data[:quota_updated] }
  response
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.