vagrant-nfs_guest 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 3c362cefceea2b475c4b63eda88bb57e7c4197e7
4
- data.tar.gz: c1cb2d3eadd42cdd4c6a1aad1a34939963e333eb
3
+ metadata.gz: 41d9296319bda57f729a890c777c5f62d8ce02d9
4
+ data.tar.gz: f0a6dde015a24f3d0b64329a3ecbfdcbd80cc6d2
5
5
  SHA512:
6
- metadata.gz: 227d93bd2efd6be64ed95ec9eac1dbbeee06a02164b08ffc846cfc25faba334f37e254b1437012cd37c9d632b22a02446da39b1e188b3d53b06fbe6c268ebd01
7
- data.tar.gz: 514f46fd8dec9dcf515d73d241d42757e7e96fb3b0cc93fa3ae23818f14305582da4ae100a4fa12e8617c504b3a6211bb0c39d8b157ac5d07d9b11a1a1c46ad5
6
+ metadata.gz: 220e555748ee2d07ce05b4c31a18c4c865ac157a848db732344e411b84fe81fc8b8d55cb78bd3a1a885c42a0d54c80065ea8d6b96de94cdbb021c35866c1311b
7
+ data.tar.gz: 95dd9fb2783f243f6f7b8c567f1b845f6d68f800584ba298fe0c2e21ac4d1549bee0d783f88395260691e601228345c2c8d712c331390f514270fa3fb94d7050
data/README.md CHANGED
@@ -2,12 +2,13 @@
2
2
 
3
3
  ## What's New?
4
4
 
5
- - Supports Vagrant 1.6!
5
+ - Supports Vagrant 1.6! (For pre-1.5 vagrant support use the v0.0.4 release as Vagrant has incompatible changes)
6
6
  - Handles actions ```up```, ```halt```, ```destroy```, ```suspend```, ```resume``` and ```package``` properly
7
7
  - Uses retryable() for host to guest communications allow more fault tolerance
8
8
  - Better error messages and handling
9
9
  - Re-organisation of modules and class to better match Vagrant proper
10
10
  - Simplified the plugin events binding
11
+ - Will install the NFS daemon on the guest if the guest capability is supported (Ubuntu only at this stage)
11
12
 
12
13
  ## Overview
13
14
 
@@ -15,6 +16,9 @@ Allows a guest VM to export synced folders via NFS and the host to mount them.
15
16
 
16
17
  Basically it's just the usual NFS synced folders in Vagrant but the roles are reversed.
17
18
 
19
+ **WARNING** this has only been tested fully using an OSX host and a Ubuntu guest.
20
+ We're happy to receive pull-request to support alternatives hosts and guests. To implement this support is relatively trivial if you look in ./lib/hosts and ./lib/guests, and then just modify the "plugin.py" to include the new capabilities.
21
+
18
22
  ## Installation
19
23
 
20
24
  vagrant plugin install vagrant-nfs_guest
@@ -0,0 +1,31 @@
1
+ module VagrantPlugins
2
+ module SyncedFolderNFSGuest
3
+ module HostLinux
4
+ module Cap
5
+ class MountNFS
6
+
7
+ def self.nfs_mount(environment, ui, id, ips, folders)
8
+ folders.each do |name, opts|
9
+ if opts[:type] != :nfs_guest
10
+ next
11
+ end
12
+
13
+ ips.each do |ip|
14
+ ui.detail(I18n.t("vagrant.actions.vm.share_folders.mounting_entry",
15
+ guestpath: opts[:guestpath],
16
+ hostpath: opts[:hostpath]))
17
+
18
+ system("mkdir -p #{opts[:hostpath]}")
19
+ mount_command = "sudo mount -t nfs -o noatime '#{ip}:#{opts[:guestpath]}' '#{opts[:hostpath]}'"
20
+ if system(mount_command)
21
+ break
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,34 @@
1
+ module VagrantPlugins
2
+ module SyncedFolderNFSGuest
3
+ module HostLinux
4
+ module Cap
5
+ class UnmountNFS
6
+
7
+ def self.nfs_unmount(environment, ui, folders)
8
+ folders.each do |name, opts|
9
+ if opts[:type] != :nfs_guest
10
+ next
11
+ end
12
+
13
+ ui.detail(I18n.t("vagrant.actions.vm.share_folders.mounting_entry",
14
+ guestpath: opts[:guestpath],
15
+ hostpath: opts[:hostpath]))
16
+
17
+ expanded_host_path = `printf #{opts[:hostpath]}`
18
+ umount_msg = `sudo umount '#{expanded_host_path}' 2>&1`
19
+
20
+ if $?.exitstatus != 0
21
+ if not umount_msg.include? 'not currently mounted'
22
+ ui.info umount_msg
23
+ ui.info "Maybe NFS mounts still in use!"
24
+ exit(1)
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,13 +1,13 @@
1
1
  begin
2
2
  require "vagrant"
3
3
  rescue LoadError
4
- raise "The Vagrant AWS plugin must be run within Vagrant."
4
+ raise "The Vagrant NFS Guest plugin must be run within Vagrant."
5
5
  end
6
6
 
7
7
  # This is a sanity check to make sure no one is attempting to install
8
8
  # this into an early Vagrant version.
9
9
  if Vagrant::VERSION < "1.2.0"
10
- raise "The Vagrant AWS plugin is only compatible with Vagrant 1.2+"
10
+ raise "The Vagrant NFS Guest plugin is only compatible with Vagrant 1.2+"
11
11
  end
12
12
 
13
13
  module VagrantPlugins
@@ -17,8 +17,10 @@ module VagrantPlugins
17
17
  class Plugin < Vagrant.plugin("2")
18
18
  name "vagrant-nfs_guest"
19
19
  description <<-DESC
20
- The NFS Guest synced folders plugin enables you to use NFS exports from
21
- the Guest as a synced folder implementation.
20
+ The Vagrant NFS Guest synced folders plugin enables you to use NFS exports from
21
+ the Guest as a synced folder implementation. This allows the guest to utilise
22
+ inotify (eg. file watchers) and other filesystem related functions that don't
23
+ work across NFS from the host.
22
24
  DESC
23
25
 
24
26
  config(:nfs_guest) do
@@ -91,6 +93,16 @@ module VagrantPlugins
91
93
  HostBSD::Cap::UnmountNFS
92
94
  end
93
95
 
96
+ host_capability(:linux, "nfs_mount") do
97
+ require_relative "hosts/linux/cap/mount_nfs"
98
+ HostLinux::Cap::MountNFS
99
+ end
100
+
101
+ host_capability(:linux, "nfs_unmount") do
102
+ require_relative "hosts/linux/cap/unmount_nfs"
103
+ HostLinux::Cap::UnmountNFS
104
+ end
105
+
94
106
  action_hook(:nfs_guest, :machine_action_up) do |hook|
95
107
  require_relative "action/prepare_nfs_guest_settings"
96
108
  hook.after(
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module SyncedFolderNFSGuest
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-nfs_guest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan Garfield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-08 00:00:00.000000000 Z
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -63,6 +63,8 @@ files:
63
63
  - lib/vagrant-nfs_guest/guests/ubuntu/cap/nfs_server.rb
64
64
  - lib/vagrant-nfs_guest/hosts/bsd/cap/mount_nfs.rb
65
65
  - lib/vagrant-nfs_guest/hosts/bsd/cap/unmount_nfs.rb
66
+ - lib/vagrant-nfs_guest/hosts/linux/cap/mount_nfs.rb
67
+ - lib/vagrant-nfs_guest/hosts/linux/cap/unmount_nfs.rb
66
68
  - lib/vagrant-nfs_guest/plugin.rb
67
69
  - lib/vagrant-nfs_guest/synced_folder.rb
68
70
  - lib/vagrant-nfs_guest/version.rb