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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/vagrant-nfs4j/cap/nfs.rb', line 11
def self.nfs_export(environment, machine, ips, folders)
config = machine.config.nfs4j
api_port = config.api_port
wrapper = VagrantNfs4j::Nfs4jDaemon::Wrapper.new(api_port)
shares = {}
status = wrapper.status()
if status and status['shares']
status['shares'].each do |share|
shares[share['alias']] = share
end
end
wrapper.setup_firewall(machine.ui, config.setup_firewall, config.java_home)
wrapper.start(machine.ui,
config.daemon_start,
config.daemon_exe,
config.daemon_jar,
config.daemon_cmd,
config.daemon_opts,
config.java_home,
config.java_opts)
folders.each do |k, opts|
share = machine.config.nfs4j.shares_config.merge({})
opts[:mount_options] = VagrantNfs4j::Utils.apply_mount_options(opts[:mount_options], share)
share[:path] = VagrantNfs4j::Utils.hostpath_to_share_path(opts[:hostpath])
share[:alias] = VagrantNfs4j::Utils.prefix_alias(machine, opts[:guestpath])
existing_share = shares[share[:alias]]
if existing_share
machine.ui.detail(I18n.t('vagrant_nfs4j.cap.nfs_export.detaching_existing_share',
path: existing_share[:path],
alias: existing_share[:alias]))
wrapper.detach(existing_share)
end
machine.ui.detail(I18n.t('vagrant_nfs4j.cap.nfs_export.attaching_share',
path: share[:path],
alias: share[:alias]))
wrapper.attach(share)
end
end
|