Sha256: 8c747a78721239a2c3dae137bd12162eb6c2111a1b237308acabd4b5ab749355

Contents?: true

Size: 1.09 KB

Versions: 6

Compression:

Stored size: 1.09 KB

Contents

module Vagrant
  module Actions
    module VM
      class Boot < Base
        def execute!
          @runner.invoke_around_callback(:boot) do
            # Startup the VM
            boot

            # Wait for it to complete booting, or error if we could
            # never detect it booted up successfully
            if !wait_for_boot
              error_and_exit(:vm_failed_to_boot)
            end
          end
        end

        def boot
          logger.info "Booting VM..."
          @runner.vm.start(@runner.env.config.vm.boot_mode)
        end

        def wait_for_boot(sleeptime=5)
          logger.info "Waiting for VM to boot..."

          @runner.env.config.ssh.max_tries.to_i.times do |i|
            logger.info "Trying to connect (attempt ##{i+1} of #{@runner.env.config[:ssh][:max_tries]})..."

            if @runner.ssh.up?
              logger.info "VM booted and ready for use!"
              return true
            end

            sleep sleeptime
          end

          logger.info "Failed to connect to VM! Failed to boot?"
          false
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
vagrantup-0.4.3.dev lib/vagrant/actions/vm/boot.rb
vagrantup-0.4.1 lib/vagrant/actions/vm/boot.rb
vagrantup-0.4.0 lib/vagrant/actions/vm/boot.rb
vagrant-0.4.2 lib/vagrant/actions/vm/boot.rb
vagrant-0.4.1 lib/vagrant/actions/vm/boot.rb
vagrant-0.4.0 lib/vagrant/actions/vm/boot.rb