vagrant-nfs4j 0.1.0 → 0.1.1

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: 59bfc63b02ebc35bf5f00eb59c7497dd8f1a9cf8cc4f2a7250190338ad9bfe12
4
- data.tar.gz: c1926e38a3429c48bffc5f3c3c93d1a59f61bb19f5ea9f843e2165173170f0f3
3
+ metadata.gz: f0a9b39c373275cbb8f6a5ae4a42e9af0cd2e36708a1ae950d953983bfc93cf7
4
+ data.tar.gz: e12a47e43796bb011fd393de9ff0b1d1ee818737e373ef785799f57644a840ab
5
5
  SHA512:
6
- metadata.gz: 14d2fa26cc78896e1b94911a6305841baaea143516af50e95225e30e4cc89102318b609fc4bd0ae8b9f2edd27fa8698cf8c89f0790514d2baab7f10073500c92
7
- data.tar.gz: ad6a51e7805386c649b74f69a9c871792bdf68656f8df8c05e277420e3c4c93b4019bdc93f9caf02ea252a577b6db006d78ee7d4c8c96e0b297edd85d9490c92
6
+ metadata.gz: 170fcee451dfbc574d9492ca0a57c2d30e5e66ceed094705c96ab689d22a8f3fc6d589aac3689054b1bf07e4fee634b9b02680a716b28b6f141c6f0e50ebfa1e
7
+ data.tar.gz: 67bcb391cfb2cc49f1ea97a553755aac13b5972015769ce50a5013032f3eaf5c1ff9c6b4d9b584b835d7dc4f73eec9858de227a1977c77649369adcb91c3f6f7
data/Gemfile.lock CHANGED
@@ -27,7 +27,7 @@ GIT
27
27
  PATH
28
28
  remote: .
29
29
  specs:
30
- vagrant-nfs4j (0.1.0)
30
+ vagrant-nfs4j (0.1.1)
31
31
 
32
32
  GEM
33
33
  remote: https://rubygems.org/
data/bin/nfs4j-daemon.exe CHANGED
Binary file
data/bin/nfs4j-daemon.jar CHANGED
Binary file
@@ -21,7 +21,7 @@ module VagrantNfs4j
21
21
  end
22
22
  end
23
23
 
24
- wrapper.setup_firewall(machine.ui, config.java_home)
24
+ wrapper.setup_firewall(machine.ui, config.setup_firewall, config.java_home)
25
25
 
26
26
  wrapper.start(machine.ui,
27
27
  config.daemon_start,
@@ -7,6 +7,7 @@ module VagrantNfs4j
7
7
  attr_accessor :shares_config
8
8
  attr_accessor :host_ip
9
9
  attr_accessor :api_port
10
+ attr_accessor :setup_firewall
10
11
  attr_accessor :daemon_start
11
12
  attr_accessor :daemon_exe
12
13
  attr_accessor :daemon_jar
@@ -19,6 +20,7 @@ module VagrantNfs4j
19
20
  @shares_config = UNSET_VALUE
20
21
  @host_ip = UNSET_VALUE
21
22
  @api_port = UNSET_VALUE
23
+ @setup_firewall = UNSET_VALUE
22
24
  @daemon_start = UNSET_VALUE
23
25
  @daemon_exe = UNSET_VALUE
24
26
  @daemon_jar = UNSET_VALUE
@@ -33,9 +35,6 @@ module VagrantNfs4j
33
35
  errors << 'nfs4j.shares_config cannot be nil.' if machine.config.nfs4j.shares_config.nil?
34
36
  errors << 'nfs4j.host_ip cannot be nil.' if machine.config.nfs4j.host_ip.nil?
35
37
  errors << 'nfs4j.api_port cannot be nil.' if machine.config.nfs4j.api_port.nil?
36
- errors << 'nfs4j.daemon_start cannot be nil.' if machine.config.nfs4j.daemon_start.nil?
37
- errors << 'nfs4j.daemon_exe cannot be nil.' if machine.config.nfs4j.daemon_exe.nil?
38
- errors << 'nfs4j.daemon_jar cannot be nil.' if machine.config.nfs4j.daemon_jar.nil?
39
38
 
40
39
  {"nsf4j" => errors}
41
40
  end
@@ -45,6 +44,7 @@ module VagrantNfs4j
45
44
  @shares_config = {} if @shares_config == UNSET_VALUE
46
45
  @host_ip = "" if @host_ip == UNSET_VALUE
47
46
  @api_port = 9732 if @api_port == UNSET_VALUE
47
+ @setup_firewall = true if @setup_firewall == UNSET_VALUE
48
48
  @daemon_start = true if @daemon_start == UNSET_VALUE
49
49
  @daemon_exe = true if @daemon_exe == UNSET_VALUE
50
50
  @daemon_jar = true if @daemon_jar == UNSET_VALUE
@@ -57,6 +57,10 @@ module VagrantNfs4j
57
57
  error_key(:unavailable)
58
58
  end
59
59
 
60
+ class TimeoutError < Nfs4jDaemonErrors
61
+ error_key(:timeout_error)
62
+ end
63
+
60
64
  class StartFailed < Nfs4jDaemonErrors
61
65
  error_key(:start_failed)
62
66
  end
@@ -32,7 +32,7 @@ module VagrantNfs4j
32
32
  end
33
33
  end
34
34
 
35
- def setup_firewall(ui, java_home)
35
+ def setup_firewall(ui, setup_firewall, java_home)
36
36
  java_exe = if java_home
37
37
  additional_path = File.join(java_home, 'bin')
38
38
  VagrantNfs4j::Utils.which("java", additional_path)
@@ -42,13 +42,15 @@ module VagrantNfs4j
42
42
 
43
43
  java_exe = java_exe.gsub('/', '\\')
44
44
 
45
- rule_name = "vagrant-nfs4j-#{VagrantNfs4j::VERSION}-#{java_exe}-tcp-2049".gsub('\\', '-').gsub(':', '')
45
+ ports = [2049, @api_port]
46
+
47
+ rule_name = "vagrant-nfs4j-#{VagrantNfs4j::VERSION}-#{java_exe}-tcp-#{ports.join(',')}".gsub('\\', '-').gsub(':', '')
46
48
  rule_exist = "netsh advfirewall firewall show rule name=\"#{rule_name}\">nul"
47
49
 
48
50
  unless system(sprintf(rule_exist, rule_name))
49
- ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.installing_firewall_rule', rule_name: rule_name))
50
51
 
51
- rule_template = "advfirewall firewall add rule name=\"%s\" dir=\"%s\" action=allow protocol=TCP localport=2049 program=\"%s\" profile=any"
52
+
53
+ rule_template = "advfirewall firewall add rule name=\"%s\" dir=\"%s\" action=allow protocol=TCP localport=#{ports.join(',')} program=\"%s\" profile=any"
52
54
 
53
55
  all_rules = []
54
56
  all_rules.push("advfirewall firewall delete rule name=\"#{rule_name}\"")
@@ -62,29 +64,44 @@ module VagrantNfs4j
62
64
  firewall_rule += " \" #{rule}\""
63
65
  end
64
66
 
65
- if system(firewall_rule) and system(sprintf(rule_exist, rule_name))
66
- ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.firewall_rule_installed', rule_name: rule_name))
67
+ if setup_firewall
68
+ ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.installing_firewall_rule', rule_name: rule_name))
69
+
70
+ if system(firewall_rule) and system(sprintf(rule_exist, rule_name))
71
+ ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.firewall_rule_installed', rule_name: rule_name))
72
+ else
73
+ ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.firewall_error'))
74
+ all_rules.each do |rule|
75
+ puts "netsh #{rule}"
76
+ end
77
+ end
67
78
  else
68
- ui.detail(I18n.t('vagrant_nfs4j.firewall.error'))
79
+ ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.firewall_manual'))
69
80
  all_rules.each do |rule|
70
- ui.detail("netsh #{rule}")
81
+ puts "netsh #{rule}"
71
82
  end
72
83
  end
73
84
  end
74
85
  end
75
86
 
76
- def is_running(should_raise_start_failed = false)
87
+ def is_running(should_raise_start_failed = false, ui = nil)
77
88
  unless @api_port
78
89
  return false
79
90
  end
80
91
  begin
81
- r = RestClient.get "http://localhost:#{@api_port}/ping", {accept: :json}.merge(self.headers())
92
+ r = RestClient::Request.execute method: :get, url: "http://localhost:#{@api_port}/ping", headers: {accept: :json}.merge(self.headers()), timeout: 5
82
93
  data = JSON.parse(r.body)
83
94
  return data === 'pong'
84
95
  rescue
85
96
  if should_raise_start_failed
86
97
  raise StartFailed
87
98
  end
99
+ if ui
100
+ if $!.is_a?(RestClient::Exceptions::Timeout)
101
+ raise TimeoutError
102
+ end
103
+ end
104
+ ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.check_has_failed_retrying', {:cause => Nfs4jDaemonErrors.get_message($!)})) if ui
88
105
  end
89
106
  false
90
107
  end
@@ -141,11 +158,12 @@ module VagrantNfs4j
141
158
  cmd = "start \"vagrant-nfs4j-daemon\" #{bin}#{opts}"
142
159
  ui.detail(I18n.t('vagrant_nfs4j.nfs4j_daemon.is_starting', cmd: cmd))
143
160
 
144
- pid = spawn(cmd)
145
- Process.detach(pid)
161
+ #pid = spawn(cmd)
162
+ #Process.detach(pid)
146
163
 
147
164
  i = 0
148
- until self.is_running(i > 30)
165
+ check_start_time = Time.now
166
+ until self.is_running(Time.now - check_start_time > 30, ui)
149
167
  sleep 1
150
168
  i += 1
151
169
  end
@@ -1,3 +1,3 @@
1
1
  module VagrantNfs4j
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
data/locales/en.yml CHANGED
@@ -15,16 +15,28 @@ en:
15
15
  NFS share detach has failed. (%{cause})
16
16
  status_failed: |-
17
17
  NFS share status can't be retrieved. (%{cause})
18
+ timeout_error: |-
19
+ nfs4j-daemon might be started, but the vagrant process (ruby.exe) is not able to access to its HTTP Endpoint
20
+ throw the network (timeout). You should check your network and firewall configuration to allow this
21
+ connection to be done. (%{cause})
18
22
  is_already_running: |-
19
23
  nfs4j-daemon is running and ready to serve.
20
24
  is_starting: |-
21
25
  nfs4j-daemon is going to start with the following command (%{cmd})
26
+ check_has_failed_retrying: |-
27
+ Waiting for nfs4j-daemon to be started. Retrying check ... (%{cause})
22
28
  has_been_started: |-
23
29
  nfs4j-daemon has been started and is ready to serve.
24
30
  installing_firewall_rule: |-
25
- Installing windows firewall rule %{rule_name}.
31
+ Installing Windows firewall rule %{rule_name}.
26
32
  firewall_rule_installed: |-
27
33
  Windows firewall rule %{rule_name} has been installed.
34
+ firewall_error: |-
35
+ It seems that you don't have the privileges to change the Windows firewall rules. NFS may not work without
36
+ custom firewall rules. Execute the following commands as administrator:
37
+ firewall_manual: |-
38
+ Setup of the Windows firewall is dsabled. NFS may not work without custom firewall rules.
39
+ Execute the following commands as administrator:
28
40
  cap:
29
41
  nfs_export:
30
42
  attaching_share: |-
@@ -34,7 +46,3 @@ en:
34
46
  nfs_prune:
35
47
  pruning_share: |-
36
48
  Pruning orphan NFS share from nfs4j-daemon: %{path} => %{alias}
37
- firewall:
38
- error: |-
39
- It seems that you don't have the privileges to change the firewall rules. NFS will not work without that firewall
40
- changes. Execute the following commands via cmd as administrator:
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.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rémi Alvergnat