Sha256: 29f47a0bf7fc16f4e835a90a14e6bc79a0cfaa5cea58e72cfd2156249e5253af

Contents?: true

Size: 1.94 KB

Versions: 13

Compression:

Stored size: 1.94 KB

Contents

Shindo.tests('Fog::Rackspace::BlockStorage | snapshot_tests', ['rackspace']) do

  pending if Fog.mocking?

  SNAPSHOT_FORMAT = {
    'id' => String,
    'status' => String,
    'display_name' => Fog::Nullable::String,
    'display_description' => Fog::Nullable::String,
    'volume_id' => String,
    'size' => Integer,
    'created_at' => 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(10).body['volume']
    volume_id = volume['id']
    snapshot_id = nil

    until service.get_volume(volume_id).body['volume']['status'] == 'available'
      sleep 10
    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 10
    end

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

    until snapshot_deleted?(service, snapshot_id)
      sleep 10
    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

13 entries across 13 versions & 6 rubygems

Version Path
fog-nirvanix-1.8.2 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-nirvanix-1.8.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-parser-fix-1.6.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-test-again-1.6.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-parser-fix-1.6.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-maestrodev-1.8.0.20130114204828 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-maestrodev-1.8.0.20130111070250 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-maestrodev-1.8.0.20130109172219 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-sgonyea-1.8.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.8.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-maestrodev-1.7.0.20121114190951 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.7.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.6.0 tests/rackspace/requests/block_storage/snapshot_tests.rb