10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/vagrant-kvm/cap/mount_p9.rb', line 10
def self.mount_p9_shared_folder(machine, folders, options)
folders.each do |name, opts|
expanded_guest_path = machine.guest.capability(
:shell_expand_guest_path, opts[:guestpath])
machine.communicate.sudo("mkdir -p #{expanded_guest_path}")
mount_tag = Digest::MD5.new.update(name).to_s[0,31]
mount_opts="-o trans=virtio"
mount_opts += ",access=#{options[:owner]}" if options[:owner]
mount_opts += ",version=#{options[:version]}" if options[:version]
mount_opts += ",#{opts[:mount_options]}" if opts[:mount_options]
mount_command = "mount -t 9p #{mount_opts} '#{mount_tag}' #{expanded_guest_path}"
retryable(:on => Vagrant::Errors::LinuxMountFailed,
:tries => 5,
:sleep => 3) do
machine.communicate.sudo(mount_command,
:error_class => Vagrant::Errors::LinuxMountFailed)
end
end
end
|