Sha256: adb821afd7186af1666ca49c95018d35043c5527e9d5cdef66d8617ce5343525

Contents?: true

Size: 1.46 KB

Versions: 7

Compression:

Stored size: 1.46 KB

Contents

require "log4r"
require "ipaddr"

module VagrantPlugins
  module Vmpooler
    module Action
      # This action reads the SSH info for the machine and puts it into the
      # `:machine_ssh_info` key in the environment.
      class ReadSSHInfo
        def initialize(app, env)
          @app    = app
          @logger = Log4r::Logger.new("vagrant_vmpooler::action::read_ssh_info")
        end

        def call(env)
          env[:machine_ssh_info] = read_ssh_info(env[:machine])

          @app.call(env)
        end

        def read_ssh_info(machine)
          id = machine.id
          return nil if id.nil?

          provider_config = machine.provider_config
          verbose = provider_config.verbose
          url = provider_config.url
          password = provider_config.password
          os = provider_config.os

          server = Pooler.query(verbose, url, id)
          if server['ok'] == false
            # The machine can't be found
            @logger.info("Machine couldn't be found, assuming it got destroyed.")
            machine.id = nil
            return nil
          else
            if os =~ /win/i
              username = 'Administrator'
            else
              username = 'root'
            end

            ssh_info = {
              :host => id,
              :username => username,
              :password => password
            }
            ssh_info.merge! server[id]
            return ssh_info
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
vagrant-vmpooler-0.1.9 lib/vagrant-vmpooler/action/read_ssh_info.rb
vagrant-vmpooler-0.1.8 lib/vagrant-vmpooler/action/read_ssh_info.rb
vagrant-vmpooler-0.1.7 lib/vagrant-vmpooler/action/read_ssh_info.rb
vagrant-vmpooler-0.1.6 lib/vagrant-vmpooler/action/read_ssh_info.rb
vagrant-vmpooler-0.1.5 lib/vagrant-vmpooler/action/read_ssh_info.rb
vagrant-vmpooler-0.1.4 lib/vagrant-vmpooler/action/read_ssh_info.rb
vagrant-vmpooler-0.1.2 lib/vagrant-vmpooler/action/read_ssh_info.rb