Sha256: 49510390dcb504c892a45f3ee70826f9541464435a43812a198306b5e1c14680

Contents?: true

Size: 1.96 KB

Versions: 87

Compression:

Stored size: 1.96 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
    }

  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

87 entries across 85 versions & 8 rubygems

Version Path
fog-rackspace-0.1.6 tests/rackspace/requests/block_storage/snapshot_tests.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-rackspace-0.1.5/tests/rackspace/requests/block_storage/snapshot_tests.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-rackspace-0.1.5/tests/rackspace/requests/block_storage/snapshot_tests.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-rackspace-0.1.5/tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-rackspace-0.1.5 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-rackspace-0.1.4 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-rackspace-0.1.3 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-rackspace-0.1.2 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-rackspace-0.1.1 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-rackspace-0.1.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.37.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.36.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.35.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-2.0.0.pre.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.34.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.33.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.32.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
fog-1.31.0 tests/rackspace/requests/block_storage/snapshot_tests.rb
vagrant-cloudstack-1.1.0 vendor/bundle/gems/fog-1.22.1/tests/rackspace/requests/block_storage/snapshot_tests.rb