blob: 81460f09a56d2455ffd6544987fc6784c30cd516 [file] [log] [blame]
require 'rubygems'
require 'require_relative' if RUBY_VERSION < '1.9'
require_relative 'common.rb'
describe 'Ec2Driver StorageSnapshots' do
before do
@driver = Deltacloud::new(:ec2, credentials)
VCR.insert_cassette __name__
end
after do
VCR.eject_cassette
end
it 'must throw error when wrong credentials' do
Proc.new do
@driver.backend.images(OpenStruct.new(:user => 'unknown', :password => 'wrong'))
end.must_raise Deltacloud::Exceptions::AuthenticationFailure, 'Authentication Failure'
end
it 'must return list of storage snapshots' do
@driver.storage_snapshots.wont_be_empty
@driver.storage_snapshots.first.must_be_kind_of Deltacloud::StorageSnapshot
end
it 'must allow to filter storage snapshots' do
@driver.storage_snapshots(:id => 'snap-e5bc8d95').wont_be_empty
@driver.storage_snapshots(:id => 'snap-e5bc8d95').must_be_kind_of Array
@driver.storage_snapshots(:id => 'snap-e5bc8d95').size.must_equal 1
@driver.storage_snapshots(:id => 'snap-e5bc8d95').first.id.must_equal 'snap-e5bc8d95'
@driver.storage_snapshots(:id => 'snap-00000000').must_be_empty
end
it 'must allow to create and destroy the storage snapshot' do
record_options = record_retries.merge(:method => :storage_snapshot)
# Create the new storage snapshot
snapshot = @driver.create_storage_snapshot(:volume_id => 'vol-732cf013')
snapshot.wait_for!(@driver, record_options) { |i| i.is_completed? }
# Get created snapshot and check its properties
snapshot = @driver.storage_snapshot(:id => snapshot.id)
snapshot.is_completed?.must_equal true
snapshot.storage_volume_id.must_equal 'vol-732cf013'
# Destroy the snapshot at the end
@driver.destroy_storage_snapshot(:id => snapshot.id)
snapshot.wait_for!(@driver, record_options) { |i| i.nil? }
@driver.storage_snapshot(:id => snapshot.id).must_be_nil
end
end