Class: VagrantPlugins::ProxyConf::Action::ConfigureAptProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-proxyconf/action/configure_apt_proxy.rb

Overview

Action for configuring Apt on the guest

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ ConfigureAptProxy

Returns a new instance of ConfigureAptProxy.



11
12
13
14
# File 'lib/vagrant-proxyconf/action/configure_apt_proxy.rb', line 11

def initialize(app, env)
  @app    = app
  @logger = Log4r::Logger.new('vagrant::proxyconf::action::configure_apt_proxy')
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



9
10
11
# File 'lib/vagrant-proxyconf/action/configure_apt_proxy.rb', line 9

def logger
  @logger
end

Instance Method Details

#call(env) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/vagrant-proxyconf/action/configure_apt_proxy.rb', line 16

def call(env)
  @app.call env

  proxy_config = env[:machine].config.apt_proxy

  # Vagrant does not seem to call `finalize!` if the configuration
  # key is not used in Vagrantfiles.
  # https://github.com/tmatilai/vagrant-proxyconf/issues/2
  proxy_config.finalize!

  if !proxy_config.enabled?
    logger.debug "apt_proxy not enabled or configured"
  elsif !proxy_conf_capability?(env[:machine])
    env[:ui].info "Skipping Apt proxy config as the machine does not support it"
  else
    env[:ui].info "Configuring proxy for Apt..."
    write_apt_proxy_conf(env[:machine], proxy_config)
  end
end