vagrant-nfs4j 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a25723ce4c8ea1b7eb4dbd5ee377f9d83f91f0713e6e7f4f6946f9114afe7f3
4
- data.tar.gz: 3993f67f0a3acd7e3a35d9a9de324bcda5a4a8c7e65e1850117271aa438288c6
3
+ metadata.gz: 1b0558819c167f813246adebc01045532d038d7cbff96d9d98003628032cc10e
4
+ data.tar.gz: 8fb79f415a8af80fb941825687c649bf324ede35c56ba8faa9aa7f59d7062b69
5
5
  SHA512:
6
- metadata.gz: 24376034a609de4a87e860efa22f245603fe4d78ee6ccaf96edcda19c0a93aa5358b0e31470963e2159e72601c917c5cb2c82a09f0c27937ec37f60302485abe
7
- data.tar.gz: '089cd89ff5311d3080c2f173f7d692f66bd259bf52eaa3d8594d9fbd607908841056c45de549cfd2f97807f685638d42eaab3f63c44f68a725b469c7a80e01c7'
6
+ metadata.gz: f44e09f8fabc2630fa9c03878388bf9082671d37841d534fabec67b6eb0849fbefe8251365cf86e36b7de0b5061e573003695622c16f190d5762f5c4db051549
7
+ data.tar.gz: 9068d4a71bd8d115e21cab38872375358b7cbdbb3c9c59d4e9593a333a750a8b920f95c916190cf5cc1e993303bcea3826648e62c65565a50773a125f7a5f18b
data/Vagrantfile CHANGED
@@ -54,9 +54,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
54
54
  config.vm.synced_folder source, target,
55
55
  id: "#{id}",
56
56
  type: 'nfs',
57
- mount_options: mount_options,
58
- nfs_version: '4.1',
59
- nfs_udp: false
57
+ mount_options: mount_options
60
58
  end
61
59
  end
62
60
  end
@@ -0,0 +1,33 @@
1
+ @echo off
2
+
3
+ REM --> Place this shit on top on bat
4
+ REM --> https://stackoverflow.com/questions/1894967/how-to-request-administrator-access-inside-a-batch-file/10052222
5
+
6
+ :: BatchGotAdmin
7
+ :-------------------------------------
8
+ REM --> Check for permissions
9
+ IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
10
+ >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
11
+ ) ELSE (
12
+ >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
13
+ )
14
+
15
+ REM --> If error flag set, we do not have admin.
16
+ if '%errorlevel%' NEQ '0' (
17
+ echo Requesting administrative privileges...
18
+ goto UACPrompt
19
+ ) else ( goto gotAdmin )
20
+
21
+ :UACPrompt
22
+ echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
23
+ set params= %*
24
+ echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%temp%\getadmin.vbs"
25
+
26
+ "%temp%\getadmin.vbs"
27
+ del "%temp%\getadmin.vbs"
28
+ exit /B
29
+
30
+ :gotAdmin
31
+ pushd "%CD%"
32
+ CD /D "%~dp0"
33
+ :--------------------------------------
data/config.yaml CHANGED
@@ -2,7 +2,7 @@ ip_address: 192.168.1.100
2
2
  synced_folders:
3
3
  user:
4
4
  source: 'C:\Users\Toilal' # absolute or relative path from Vagrantfile
5
- target: '/C/Users/Toilal' # absolute or relative path from home of VM
5
+ target: '/user' # absolute or relative path from home of VM
6
6
  project:
7
7
  source: 'D:\' # absolute or relative path from Vagrantfile
8
- target: '/D' # absolute or relative path from home of VM
8
+ target: '/hdd' # absolute or relative path from home of VM
@@ -3,7 +3,6 @@ require 'vagrant'
3
3
  module VagrantNfs4j
4
4
  module Config
5
5
  class Nfs4j < Vagrant.plugin('2', :config)
6
- attr_accessor :config
7
6
  attr_accessor :shares_config
8
7
  attr_accessor :host_ip
9
8
  attr_accessor :api_port
@@ -16,7 +15,6 @@ module VagrantNfs4j
16
15
  attr_accessor :java_opts
17
16
 
18
17
  def initialize
19
- @config = UNSET_VALUE
20
18
  @shares_config = UNSET_VALUE
21
19
  @host_ip = UNSET_VALUE
22
20
  @api_port = UNSET_VALUE
@@ -31,7 +29,6 @@ module VagrantNfs4j
31
29
 
32
30
  def validate(machine)
33
31
  errors = []
34
- errors << 'nfs4j.config cannot be nil.' if machine.config.nfs4j.config.nil?
35
32
  errors << 'nfs4j.shares_config cannot be nil.' if machine.config.nfs4j.shares_config.nil?
36
33
  errors << 'nfs4j.host_ip cannot be nil.' if machine.config.nfs4j.host_ip.nil?
37
34
  errors << 'nfs4j.api_port cannot be nil.' if machine.config.nfs4j.api_port.nil?
@@ -40,17 +37,27 @@ module VagrantNfs4j
40
37
  end
41
38
 
42
39
  def finalize!
43
- @config = {} if @config == UNSET_VALUE
44
40
  @shares_config = {} if @shares_config == UNSET_VALUE
45
41
  @host_ip = "" if @host_ip == UNSET_VALUE
46
42
  @api_port = 9732 if @api_port == UNSET_VALUE
47
43
  @setup_firewall = true if @setup_firewall == UNSET_VALUE
48
44
  @daemon_start = true if @daemon_start == UNSET_VALUE
49
45
  @daemon_exe = true if @daemon_exe == UNSET_VALUE
50
- @daemon_jar = true if @daemon_jar == UNSET_VALUE
46
+ @daemon_jar = false if @daemon_jar == UNSET_VALUE
51
47
  @daemon_opts = nil if @daemon_opts == UNSET_VALUE
52
48
  @java_home = ENV['JAVA_HOME'] if @java_home == UNSET_VALUE
53
49
  @java_opts = ENV['JAVA_OPTS'] if @java_opts == UNSET_VALUE
50
+
51
+ if @daemon_jar
52
+ @daemon_exe = false
53
+ end
54
+
55
+ if @daemon_exe
56
+ @daemon_jar = false
57
+ end
58
+
59
+ ENV['JAVA_HOME'] = @java_home if @java_home
60
+ ENV['JAVA_OPTS'] = @java_opts if @java_opts
54
61
  end
55
62
  end
56
63
  end
@@ -1,5 +1,6 @@
1
1
  require 'rest-client'
2
2
  require 'json'
3
+ require 'fileutils'
3
4
 
4
5
  require_relative 'errors'
5
6
 
@@ -30,6 +31,8 @@ module VagrantNfs4j
30
31
  elsif File.exist?(@bearer_file)
31
32
  File.delete(@bearer_file)
32
33
  end
34
+
35
+ @setup_firewall_script = "#{Vagrant.user_data_path}/tmp/nfs4j.setup_firewall.bat"
33
36
  end
34
37
 
35
38
  def setup_firewall(ui, setup_firewall, java_home)
@@ -50,24 +53,29 @@ module VagrantNfs4j
50
53
  unless system(sprintf(rule_exist, rule_name))
51
54
 
52
55
 
53
- rule_template = "advfirewall firewall add rule name=\"%s\" dir=\"%s\" action=allow protocol=TCP localport=#{ports.join(',')} program=\"%s\" profile=any"
56
+ rule_template = "netsh advfirewall firewall add rule name=\"%s\" dir=\"%s\" action=allow protocol=TCP localport=#{ports.join(',')} program=\"%s\" profile=any"
54
57
 
55
58
  all_rules = []
56
- all_rules.push("advfirewall firewall delete rule name=\"#{rule_name}\"")
59
+ all_rules.push("netsh advfirewall firewall delete rule name=\"#{rule_name}\"")
57
60
  all_rules.push(sprintf(rule_template, rule_name, 'in', java_exe))
58
61
  all_rules.push(sprintf(rule_template, rule_name, 'out', java_exe))
59
62
 
60
- firewall_script = VagrantNfs4j.get_path_for_file('setupfirewall.vbs')
61
- firewall_rule = "cscript //nologo #{firewall_script}"
62
-
63
- all_rules.each do |rule|
64
- firewall_rule += " \" #{rule}\""
63
+ setup_firewall_template_script = VagrantNfs4j.get_path_for_file('request_uac_header.bat')
64
+ File.delete(@setup_firewall_script) if File.exist?(@setup_firewall_script)
65
+ FileUtils.cp(setup_firewall_template_script, @setup_firewall_script)
66
+ open(@setup_firewall_script, 'a') do |f|
67
+ all_rules.each do |rule|
68
+ f.puts rule
69
+ end
65
70
  end
66
71
 
67
72
  if setup_firewall
68
73
  ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.installing_firewall_rule', rule_name: rule_name))
69
74
 
70
- if system(firewall_rule) and system(sprintf(rule_exist, rule_name))
75
+ setup_firewall_script_response = system(@setup_firewall_script)
76
+ File.delete(@setup_firewall_script) if File.exist?(@setup_firewall_script)
77
+
78
+ if setup_firewall_script_response and system(sprintf(rule_exist, rule_name))
71
79
  ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.firewall_rule_installed', rule_name: rule_name))
72
80
  else
73
81
  ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.firewall_error'))
@@ -128,7 +136,7 @@ module VagrantNfs4j
128
136
  VagrantNfs4j::Utils.which("java")
129
137
  end
130
138
 
131
- jar.is_a?(String) ? "#{java_exe} -jar #{jar}" : "java -jar #{@jar}"
139
+ jar.is_a?(String) ? "#{java_exe} -jar #{jar}" : "#{java_exe} -jar #{@jar}"
132
140
  end
133
141
 
134
142
  unless exe
@@ -138,9 +146,7 @@ module VagrantNfs4j
138
146
  java_opts = " #{java_opts}"
139
147
  end
140
148
 
141
- if java_home
142
- bin = "#{java_home}\\bin\\#{bin}#{java_opts}"
143
- end
149
+ bin = "#{bin}#{java_opts}"
144
150
  end
145
151
 
146
152
  if opts
@@ -21,10 +21,29 @@ module VagrantNfs4j
21
21
  machine_ip = nfsopts[:nfs_machine_ip]
22
22
  machine_ip = [machine_ip] unless machine_ip.is_a?(Array)
23
23
 
24
+ # Keep nfs_version and nfs_udp configured by user to remove default
25
+ # vers=3,udp options
26
+ config_nfs_versions = {}
27
+ config_nfs_udps = {}
28
+ folders.each do |id, opts|
29
+ config_nfs_versions[id] = opts[:nfs_version]
30
+ config_nfs_udps[id] = opts[:nfs_udp]
31
+ end
32
+
24
33
  # Prepare the folder, this means setting up various options
25
34
  # and such on the folder itself.
26
35
  folders.each {|id, opts| prepare_folder(machine, opts)}
27
36
 
37
+ # Restore configured nfs_version
38
+ folders.each do |id, opts|
39
+ opts[:nfs_udp] = config_nfs_udps[id]
40
+ opts[:nfs_version] = config_nfs_versions[id]
41
+ unless opts[:nfs_version]
42
+ # Use nfs v4.1 as default version
43
+ opts[:nfs_version] = '4.1'
44
+ end
45
+ end
46
+
28
47
  # Determine what folders we'll export
29
48
  export_folders = folders.dup
30
49
  export_folders.keys.each do |id|
@@ -59,16 +78,16 @@ module VagrantNfs4j
59
78
  folders.each do |id, opts|
60
79
  opts = opts.dup
61
80
 
81
+ real_hostpath = opts[:hostpath]
62
82
  if Vagrant::Util::Platform.windows?
63
- opts[:hostpath] = VagrantNfs4j::Utils.hostpath_to_share_alias(opts[:hostpath])
64
- opts[:hostpath] = VagrantNfs4j::Utils.prefix_alias(machine, opts[:hostpath])
83
+ opts[:hostpath] = VagrantNfs4j::Utils.prefix_alias(machine, opts[:guestpath])
65
84
  end
66
85
 
67
86
  opts[:mount_options] = VagrantNfs4j::Utils.apply_mount_options(opts[:mount_options])
68
87
 
69
88
  machine.ui.detail(I18n.t('vagrant.actions.vm.share_folders.mounting_entry',
70
89
  guestpath: opts[:guestpath],
71
- hostpath: opts[:hostpath]))
90
+ hostpath: real_hostpath))
72
91
 
73
92
  mount_folders[id] = opts
74
93
  end
@@ -1,3 +1,3 @@
1
1
  module VagrantNfs4j
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-nfs4j
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rémi Alvergnat
@@ -55,7 +55,7 @@ files:
55
55
  - Vagrantfile
56
56
  - bin/nfs4j-daemon.exe
57
57
  - bin/nfs4j-daemon.jar
58
- - bin/setupfirewall.vbs
58
+ - bin/request_uac_header.bat
59
59
  - config.yaml
60
60
  - lib/vagrant-nfs4j.rb
61
61
  - lib/vagrant-nfs4j/cap/nfs.rb
@@ -1,4 +0,0 @@
1
- Set UAC = CreateObject("Shell.Application")
2
- For count = 0 to (WScript.Arguments.Count - 1)
3
- UAC.ShellExecute "netsh", Replace(WScript.Arguments(count), "'", Chr(34)), "", "runas", 1
4
- Next