Properly call winssh communicator on windows via powershell, and fix syntax for powershell via puppet.
This commit is contained in:
parent
1ee58c40e3
commit
e133547932
|
@ -105,9 +105,16 @@ module VagrantPlugins
|
||||||
end
|
end
|
||||||
|
|
||||||
# Make sure the temporary directory is properly set up
|
# Make sure the temporary directory is properly set up
|
||||||
|
if windows?
|
||||||
|
tmp_command = "mkdir -p #{config.temp_dir}"
|
||||||
|
comm_opts = { shell: :powershell}
|
||||||
|
else
|
||||||
|
tmp_command = "mkdir -p #{config.temp_dir}; chmod 0777 #{config.temp_dir}"
|
||||||
|
comm_opts = {}
|
||||||
|
end
|
||||||
|
|
||||||
@machine.communicate.tap do |comm|
|
@machine.communicate.tap do |comm|
|
||||||
comm.sudo("mkdir -p #{config.temp_dir}")
|
comm.sudo(tmp_command, comm_opts)
|
||||||
comm.sudo("chmod 0777 #{config.temp_dir}")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
verify_shared_folders(check)
|
verify_shared_folders(check)
|
||||||
|
@ -271,6 +278,10 @@ module VagrantPlugins
|
||||||
error_key: :ssh_bad_exit_status_muted,
|
error_key: :ssh_bad_exit_status_muted,
|
||||||
good_exit: [0,2],
|
good_exit: [0,2],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if windows?
|
||||||
|
opts[:shell] = :powershell
|
||||||
|
end
|
||||||
@machine.communicate.sudo(command, opts) do |type, data|
|
@machine.communicate.sudo(command, opts) do |type, data|
|
||||||
if !data.chomp.empty?
|
if !data.chomp.empty?
|
||||||
@machine.ui.info(data.chomp)
|
@machine.ui.info(data.chomp)
|
||||||
|
@ -281,14 +292,22 @@ module VagrantPlugins
|
||||||
def verify_shared_folders(folders)
|
def verify_shared_folders(folders)
|
||||||
folders.each do |folder|
|
folders.each do |folder|
|
||||||
@logger.debug("Checking for shared folder: #{folder}")
|
@logger.debug("Checking for shared folder: #{folder}")
|
||||||
if !@machine.communicate.test("test -d #{folder}", sudo: true)
|
if windows?
|
||||||
|
testcommand = "Test-Path #{folder}"
|
||||||
|
comm_opts = { shell: :powershell}
|
||||||
|
else
|
||||||
|
testcommand = "test -d #{folder}"
|
||||||
|
comm_opts = { sudo: true}
|
||||||
|
end
|
||||||
|
|
||||||
|
if !@machine.communicate.test(testcommand, comm_opts)
|
||||||
raise PuppetError, :missing_shared_folders
|
raise PuppetError, :missing_shared_folders
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def windows?
|
def windows?
|
||||||
@machine.config.vm.communicator == :winrm
|
@machine.config.vm.communicator == :winrm || @machine.config.vm.communicator == :winssh
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue