Sha256: 5fac9ecda35a4e03945f0ce3627797b9162d4bd9cb9bf873648ce0a45be55d66

Contents?: true

Size: 893 Bytes

Versions: 3

Compression:

Stored size: 893 Bytes

Contents

require 'auto_network/action_helpers'

class AutoNetwork::Action::Request

  include AutoNetwork::ActionHelpers

  def initialize(app, env)
    @app, @env = app, env
  end

  # Request an auto_network IP address on VM creation
  #
  # @param env [Hash]
  #
  # @option env [AutoNetwork::Pool] auto_network_pool The global auto network pool
  # @option env [Vagrant::Machine] machine The Vagrant machine being created
  #
  # @return [void]
  def call(env)
    @env = env

    @pool    = @env[:auto_network_pool]
    @machine = @env[:machine]

    request_address unless machine_has_address?(@machine)

    @app.call(@env)
  end

  private

  def request_address
    machine_auto_networks(@machine).each do |net|
      addr = @pool.request(@machine)
      @env[:ui].info "Assigning #{addr.inspect} to '#{@machine.id}'", :prefix => true
      filter_private_network(net, addr)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vagrant-auto_network-0.2.2 lib/auto_network/action/request.rb
vagrant-auto_network-0.2.1 lib/auto_network/action/request.rb
vagrant-auto_network-0.2.0 lib/auto_network/action/request.rb