Sha256: 8e160569fff3b9ed3c57fd6cea128b06e270c208dba2a454fb443235220759f2

Contents?: true

Size: 1.73 KB

Versions: 30

Compression:

Stored size: 1.73 KB

Contents

require 'spec_helper'

module Beaker
  describe Vcloud do

    before :each do
      MockVsphereHelper.set_config( fog_file_contents )
      MockVsphereHelper.set_vms( make_hosts() )
      stub_const( "VsphereHelper", MockVsphereHelper )
      stub_const( "Net", MockNet )
      json = mock( 'json' )
      json.stub( :parse ) do |arg| 
        arg
      end
      stub_const( "JSON", json )
      Socket.stub( :getaddrinfo ).and_return( true )
    end

    describe "#provision" do

      it 'provisions hosts and add them to the pool' do
        MockVsphereHelper.powerOff

        opts = make_opts
        opts[:pooling_api] = nil

        vcloud = Beaker::Vcloud.new( make_hosts, opts )
        vcloud.stub( :require ).and_return( true )
        vcloud.stub( :sleep ).and_return( true )
        vcloud.provision

        hosts = vcloud.instance_variable_get( :@hosts )
        hosts.each do | host |
          name = host['vmhostname']
          vm = MockVsphereHelper.find_vm( name )
          expect( vm.toolsRunningStatus ).to be === "guestToolsRunning"
        end

      end

    end

    describe "#cleanup" do

      it "cleans up hosts not in the pool" do
        MockVsphereHelper.powerOn

        opts = make_opts
        opts[:pooling_api] = nil

        vcloud = Beaker::Vcloud.new( make_hosts, opts )
        vcloud.stub( :require ).and_return( true )
        vcloud.stub( :sleep ).and_return( true )
        vcloud.provision
        vcloud.cleanup

        hosts = vcloud.instance_variable_get( :@hosts )
        vm_names = hosts.map {|h| h['vmhostname'] }.compact
        vm_names.each do | name |
          vm = MockVsphereHelper.find_vm( name )
          expect( vm.runtime.powerState ).to be === "poweredOff"
        end

      end

    end

  end

end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
beaker-1.12.2 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.12.1 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.12.0 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.11.2 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.11.1 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.11.0 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.10.0 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.9.1 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.9.0 spec/beaker/hypervisor/vcloud_spec.rb
beaker-1.8.2 spec/beaker/hypervisor/vcloud_spec.rb