vagrant/plugins/provisioners/ansible/config/host.rb

65 lines
1.8 KiB
Ruby

require_relative "base"
module VagrantPlugins
module Ansible
module Config
class Host < Base
attr_accessor :ask_sudo_pass
attr_accessor :ask_vault_pass
attr_accessor :force_remote_user
attr_accessor :host_key_checking
attr_accessor :raw_ssh_args
def initialize
super
@ask_sudo_pass = false
@ask_vault_pass = false
@force_remote_user = true
@host_key_checking = false
@raw_ssh_args = UNSET_VALUE
end
def finalize!
super
@ask_sudo_pass = false if @ask_sudo_pass != true
@ask_vault_pass = false if @ask_vault_pass != true
@force_remote_user = true if @force_remote_user != false
@host_key_checking = false if @host_key_checking != true
@raw_ssh_args = nil if @raw_ssh_args == UNSET_VALUE
end
def validate(machine)
super
{ "ansible remote provisioner" => @errors }
end
protected
def check_path(machine, path, path_test_method, error_message_key = nil)
expanded_path = Pathname.new(path).expand_path(machine.env.root_path)
if !expanded_path.public_send(path_test_method)
if error_message_key
@errors << I18n.t(error_message_key, path: expanded_path, system: "host")
end
return false
end
true
end
def check_path_is_a_file(machine, path, error_message_key = nil)
check_path(machine, path, "file?", error_message_key)
end
def check_path_exists(machine, path, error_message_key = nil)
check_path(machine, path, "exist?", error_message_key)
end
end
end
end
end