class VagrantPlugins::Openstack::Action::InternalProvisionWrapper

Public Class Methods

new(app, env) click to toggle source
Calls superclass method
# File lib/vagrant-openstack-provider/action/provision.rb, line 28
def initialize(app, env)
  @logger = Log4r::Logger.new('vagrant_openstack::action::internal_provision_wrapper')
  super app, env
end

Public Instance Methods

run_provisioner(env) click to toggle source
# File lib/vagrant-openstack-provider/action/provision.rb, line 33
def run_provisioner(env)
  if env[:provisioner].is_a?(Vagrant.plugin('2').manager.provisioners[:shell])
    handle_shell_meta_args(env)
  end
  env[:provisioner].provision
end

Private Instance Methods

handle_shell_meta_args(env) click to toggle source
# File lib/vagrant-openstack-provider/action/provision.rb, line 42
def handle_shell_meta_args(env)
  config = env[:provisioner].config
  args = config.args.nil? ? [] : [config.args].flatten
  config.args = []
  @logger.info "Shell provisioner args: #{args}"
  args.each do |arg|
    if '@@ssh_ip@@'.eql? arg
      ssh_info = VagrantPlugins::Openstack::Action.get_ssh_info(env)
      @logger.info "Replace meta-arg #{arg} by value #{ssh_info[:host]}"
      config.args << ssh_info[:host]
    else
      config.args << arg
    end
  end
end