blob: 5bd778042d37188f31c4308fd5fe2fe1348347cd [file] [log] [blame]
require 'minitest/autorun'
require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
require_relative 'common.rb'
describe 'OpenStackDriver Instances' do
def credentials
{
:user => "foo@fakedomain.eu+foo@fakedomain.eu-default-tenant",
:password => "1234fake56789",
:provider => "https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/;az-1.region-a.geo-1"
}
end
before do
@driver = Deltacloud::new(:openstack, credentials)
VCR.insert_cassette __name__
end
after do
VCR.eject_cassette
end
it 'must throw error when GET instances with wrong credentials' do
Proc.new do
@driver.backend.instances(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
end.must_raise Deltacloud::Exceptions::AuthenticationFailure, 'Authentication Failure'
end
it 'must return list of instances' do
@driver.instances.wont_be_empty
@driver.instances.first.must_be_kind_of Deltacloud::Instance
end
it 'must allow to filter instances' do
instances = @driver.instances :id => '815215'
instances.wont_be_empty
instances.must_be_kind_of Array
instances.size.must_equal 1
instances.first.id.must_equal '815215'
@driver.instances(:id => 'unknown').must_be_empty
end
it 'must allow to retrieve single instance' do
instance = @driver.instance :id => '815215'
instance.wont_be_nil
instance.id.must_equal '815215'
instance.name.must_equal 'server2013-02-13 13:06:46 +0200'
instance.state.wont_be_empty
instance.owner_id.must_equal 'foo@fakedomain.eu'
instance.realm_id.wont_be_empty
instance.image_id.wont_be_empty
instance.instance_profile.wont_be_nil
@driver.instance(:id => 'unknown').must_be_nil
end
it 'must allow to create and destroy an instance' do
instance = @driver.create_instance '78265', :hwp_id => '100', :realm_id => "az-1.region-a.geo-1"
instance.wont_be_nil
instance.image_id.must_equal '78265'
instance.name.wont_be_empty
instance.wait_for!(@driver, record_retries('inst_launch')) { |i| i.is_running? }
@driver.destroy_instance(instance.id)
end
end