Sha256: 2d2d5cbc612d5cdb88af62aecdea950a320bbdd1bbf6387ce8acfeba8f13e1dc

Contents?: true

Size: 2 KB

Versions: 14

Compression:

Stored size: 2 KB

Contents

Shindo.tests('Fog::Rackspace::BlockStorage | snapshot_tests', ['rackspace']) do
  timeout = Fog.mocking? ? 1 : 10

  snapshot_format = {
    'id' => String,
    'status' => String,
    'display_name' => Fog::Nullable::String,
    'display_description' => Fog::Nullable::String,
    'volume_id' => String,
    'size' => Integer,
    'created_at' => String,
    'availability_zone' => String
  }

  get_snapshot_format = {
    'snapshot' => snapshot_format
  }

  list_snapshot_format = {
    'snapshots' => [snapshot_format]
  }

  def snapshot_deleted?(service, snapshot_id)
    begin
      service.get_snapshot(snapshot_id)
      false
    rescue
      true
    end
  end

  service = Fog::Rackspace::BlockStorage.new

  tests('success') do
    volume = service.create_volume(100).body['volume']
    volume_id = volume['id']
    snapshot_id = nil

    until service.get_volume(volume_id).body['volume']['status'] == 'available'
      sleep timeout
    end

    tests("#create_snapshot(#{volume_id})").formats(get_snapshot_format) do
      service.create_snapshot(volume_id).body.tap do |b|
        snapshot_id = b['snapshot']['id']
      end
    end

    tests("#list_snapshots").formats(list_snapshot_format) do
      service.list_snapshots.body
    end

    tests("#get_snapshot(#{snapshot_id})").formats(get_snapshot_format) do
      service.get_snapshot(snapshot_id).body
    end

    until service.get_snapshot(snapshot_id).body['snapshot']['status'] == 'available' do
      sleep timeout
    end

    tests("#delete_snapshot(#{snapshot_id})").succeeds do
      service.delete_snapshot(snapshot_id)
    end

    until snapshot_deleted?(service, snapshot_id)
      sleep timeout
    end

    service.delete_volume(volume_id)
  end

  tests('failure') do
    tests("#create_snapshot('invalid')").raises(Fog::Rackspace::BlockStorage::NotFound) do
      service.create_snapshot('invalid')
    end

    tests("#get_snapshot('invalid')").raises(Fog::Rackspace::BlockStorage::NotFound) do
      service.get_snapshot('invalid')
    end
  end
end

Version data entries

14 entries across 14 versions & 5 rubygems

Version Path
gapinc-fog-1.12.1.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
gapinc-fog-1.12.1a tests/rackspace/requests/block_storage/snapshot_tests.rb
gapinc-fog-1.12.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.12.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.12.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
hpfog-0.0.20 tests/rackspace/requests/block_storage/snapshot_tests.rb
vagrant-shell-0.2.6 vendor/bundle/gems/fog-1.10.1/tests/rackspace/requests/block_storage/snapshot_tests.rb
vagrant-shell-0.2.5 vendor/bundle/gems/fog-1.10.1/tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.11.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.11.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.10.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-test-me-1.10.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.10.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.9.0 tests/rackspace/requests/block_storage/snapshot_tests.rb