vagrant-sshfs 1.3.1 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4d157c8505dffb3fd49fc1bf75f22f0941021e4f
4
- data.tar.gz: d3140fe56a5aaae22881f62a5a3503982979d641
2
+ SHA256:
3
+ metadata.gz: 67c5b84b4c824dd5ddedd3971d74d64cd565b0343333f3dfe3c314e2d1714c5a
4
+ data.tar.gz: f62e9fedb4e7944b87b5ce64b64df2c9b0e155dc72a8bf4d8a087da3f2319a11
5
5
  SHA512:
6
- metadata.gz: 6d2d085b190c1179951d81802a03d847cf3bddceaebbb0d7324eda7d19a0c4b66ff0c55905761590b498ca9bb5f7ad460dd5e8051f4202ae3c4008ea6b126b34
7
- data.tar.gz: 4426f39f7934c6a7b2e314be8f49924792bc418b6ba522c321f372145869bcd48c33aa3f63d46e65d1adb94a1c0e4ba49ac2e6387b104278a26d825fa8b9bc3c
6
+ metadata.gz: 789c76020230299d03c670b595b4726c2143168c8dd3da1410d64356e81db7a8bb9b85875499b5221e1ef269affba39a7dd00c231dd197fcda201ca2dffcd41c
7
+ data.tar.gz: 9437171f5eebd043e06f500d3d2007a4c61b0bcfbaee03069b15eef77f06e36d749e17954695e04af7375c1be57385fba0842bb585a5769ac32d2d774efd57a0
data/Gemfile CHANGED
@@ -6,12 +6,11 @@ group :development do
6
6
  # We depend on Vagrant for development, but we don't add it as a
7
7
  # gem dependency because we expect to be installed within the
8
8
  # Vagrant environment itself using `vagrant plugin`.
9
- gem "vagrant", :git => "https://github.com/mitchellh/vagrant.git", :ref => 'v2.0.2'
9
+ gem "vagrant", :git => "https://github.com/mitchellh/vagrant.git", :ref => 'v2.2.16'
10
10
  end
11
11
 
12
12
  group :plugins do
13
- gem "vagrant-sshfs" , path: "."
14
13
  # Add vagrant-libvirt plugin here, otherwise you won't be able to
15
14
  # use libvirt as a provider when you execute `bundle exec vagrant up`
16
- gem "vagrant-libvirt" , '0.0.43'
15
+ gem "vagrant-libvirt" , '0.4.1'
17
16
  end
data/README.adoc CHANGED
@@ -33,6 +33,9 @@ exists on Linux/Mac. On windows you only need to install
33
33
  https://cygwin.com/cgi-bin2/package-grep.cgi?grep=openssh&arch=x86_64[openssh]
34
34
  via https://cygwin.com/[cygwin] and you will get `sftp-server`.
35
35
 
36
+ Also, we recommend running vagrant from the cygwin provided terminal. There have
37
+ been issues with other shells leading to problems with mounts.
38
+
36
39
 
37
40
  [[history]]
38
41
  == History
@@ -290,12 +293,6 @@ test and install this plugin on your local machine:
290
293
  # Install development dependencies
291
294
  $ gem install bundler && bundle install
292
295
 
293
- # List available Rake tasks
294
- $ bundle exec rake -T
295
-
296
- # Run Cucumber tests
297
- $ bundle exec rake featuretests
298
-
299
296
  # Build the gem (gets generated in the 'pkg' directory
300
297
  $ bundle exec rake build
301
298
 
data/RELEASE.txt CHANGED
@@ -1,58 +1,59 @@
1
1
 
2
+ # point local system to git for vagrant-sshfs
3
+ - cd /usr/share/vagrant/gems/gems
4
+ - sudo mv vagrant-sshfs-1.3.3 vsshfs133
5
+ - sudo ln -s /var/b/shared/code/github.com/dustymabe/vagrant-sshfs ./vagrant-sshfs-1.3.3
2
6
 
3
- # Run viv tests
4
- cd /guests/sharedfolder/code/github.com/dustymabe/vagrant-sshfs/test/libvirt
5
- vagrant up
7
+ # Run misc tests
8
+ cd /var/b/shared/code/github.com/dustymabe/vagrant-sshfs/test/misc
6
9
  follow README for running tests
7
10
 
8
11
  # Make sure to bump version in lib/vagrant-sshfs/version.rb and commit
9
12
  # DO NOT TAG YET
10
13
 
14
+ # Craft a commit message for the tag.
15
+ LASTTAG='v1.3.1'
16
+ VERSION='1.3.2'
17
+ NEWTAG="v${VERSION}"
18
+ cat <<EOF > release-notes.txt
19
+ This is release ${NEWTAG} of the vagrant-sshfs plugin.
11
20
 
12
- # Craft a commit message for the tag. View the commit message for
13
- a previous tag by running: git tag -l -n100 v1.2.1
21
+ Thanks to the following contributors for patches during this release:
14
22
 
15
- -> In vim add thanks to contributors - grab info with
16
- git log --no-merges --pretty=format:"%h - %an - %s"
17
- and
18
- git log --no-merges --pretty=format:"%h - %ae - %s"
19
-
20
-
21
- -> In vim add commit log - grab with
22
- git log --no-merges --pretty=format:"%h %s"
23
-
24
- -> In vim add release message - see previous tag for example
23
+ $(git shortlog --no-merges --pretty=format:"%h %s" -e ${LASTTAG}..HEAD)
24
+ EOF
25
25
 
26
26
  # After crafting message then install git-evtag and sign
27
27
 
28
- git-evtag sign vX.X.X
28
+ git-evtag sign ${NEWTAG}
29
29
 
30
30
 
31
31
  close and type in password for signing
32
32
 
33
- verify with git-evtag verify v1.2.0
34
- verify with git verify-tag v1.2.0
33
+ verify with git-evtag verify ${NEWTAG}
34
+ verify with git verify-tag ${NEWTAG}
35
35
 
36
36
  git push
37
37
  git push --tags
38
38
 
39
- # Build with bundle exec rake build (inside viv VM)
40
- bundle exec rake build
39
+ # Build with build.sh script (uses buildah)
40
+ # We must run it in a buildah unshare session. Otherwise we get the error:
41
+ #
42
+ # ++ buildah mount fedora-working-container
43
+ # cannot mount using driver overlay in rootless mode. You need to run it in a `buildah unshare` session
44
+ buildah unshare ./build.sh
41
45
 
42
- # Sign the output
43
- gpg --armor --detach-sign pkg/vagrant-sshfs-1.2.0.gem
44
- $ ls pkg/vagrant-sshfs-1.2.0.gem*
45
- pkg/vagrant-sshfs-1.2.0.gem pkg/vagrant-sshfs-1.2.0.gem.asc
46
+ # Sign the output (This will create a .asc file)
47
+ gpg2 --armor --detach-sign ./vagrant-sshfs-${VERSION}.gem
46
48
 
47
49
  # make tar.gz and zip files
48
- git archive --format=tar.gz v1.3.0 > vagrant-sshfs-1.3.0.tar.gz
49
- gpg --armor --detach-sign vagrant-sshfs-1.3.0.tar.gz
50
- git archive --format=zip v1.3.0 > vagrant-sshfs-1.3.0.zip
51
- gpg --armor --detach-sign vagrant-sshfs-1.3.0.zip
50
+ git archive --format=tar.gz ${NEWTAG} > vagrant-sshfs-${VERSION}.tar.gz
51
+ gpg2 --armor --detach-sign vagrant-sshfs-${VERSION}.tar.gz
52
+ git archive --format=zip ${NEWTAG} > vagrant-sshfs-${VERSION}.zip
53
+ gpg2 --armor --detach-sign vagrant-sshfs-${VERSION}.zip
52
54
 
53
55
 
54
56
  # Update release notes and upload files on github
55
57
 
56
58
  # push to rubygems with:
57
- gem push pkg/vagrant-sshfs-1.2.0.gem
58
-
59
+ gem push ./vagrant-sshfs-${VERSION}.gem
data/Rakefile CHANGED
@@ -7,9 +7,6 @@
7
7
  #
8
8
  require 'bundler/gem_tasks'
9
9
 
10
- # cucumber/rake/task provides us with an easy way to call cucumber
11
- require 'cucumber/rake/task'
12
-
13
10
  # rake/clean provides CLEAN/CLOBBER
14
11
  # http://www.virtuouscode.com/2014/04/28/rake-part-6-clean-and-clobber/
15
12
  # CLEAN - list to let rake know what files can be cleaned up after build
@@ -29,10 +26,3 @@ CLOBBER.include('pkg')
29
26
  task :init do
30
27
  FileUtils.mkdir_p 'build'
31
28
  end
32
-
33
- # Create new Cucumber::Rake::Task that will run Cucumber tests
34
- Cucumber::Rake::Task.new(:featuretests)
35
-
36
- # Define Rake::Task dependency - run :init before :featuretests
37
- task :featuretests => :init
38
-
data/build.sh ADDED
@@ -0,0 +1,43 @@
1
+ #!/bin/bash -x
2
+ set -ex
3
+
4
+ ctr=$(buildah from registry.fedoraproject.org/fedora:33)
5
+
6
+ rpms=(
7
+ make gcc ruby ruby-devel redhat-rpm-config # for building gems
8
+ gcc-c++ # for building unf_ext
9
+ libvirt-devel # for building ruby-libvirt gem
10
+ zlib-devel # for building nokogiri gem
11
+ git # for the git ls-files in gemspec file
12
+ bsdtar # used by vagrant to unpack box files
13
+ )
14
+
15
+ WORKINGDIR='/tmp/workingdir/'
16
+
17
+ # Set working directory
18
+ buildah config --workingdir $WORKINGDIR $ctr
19
+
20
+ # Get all updates and install needed rpms
21
+ buildah run $ctr -- dnf update -y
22
+ buildah run $ctr -- dnf install -y ${rpms[@]}
23
+
24
+ # Add source code
25
+ buildah add $ctr './' $WORKINGDIR
26
+
27
+ # Install bundler
28
+ buildah run $ctr -- gem install bundler
29
+
30
+ # Install all needed gems
31
+ buildah run $ctr -- bundle install --with plugins
32
+
33
+ # Install all needed gems
34
+ buildah run $ctr -- bundle exec rake build
35
+
36
+ # Copy built files outside of container
37
+ mount=$(buildah mount $ctr)
38
+ package=$(ls $mount/$WORKINGDIR/pkg/vagrant-sshfs-*gem)
39
+ echo "copying to ./$(basename $package)"
40
+ cp $package ./
41
+ buildah umount $ctr
42
+
43
+ echo "Built package is at ./$(basename $package)"
@@ -0,0 +1,24 @@
1
+ module VagrantPlugins
2
+ module GuestAlpine
3
+ module Cap
4
+ class SSHFSClient
5
+ def self.sshfs_install(machine)
6
+ # Install sshfs
7
+ machine.communicate.sudo("apk add sshfs")
8
+ # Load the fuse module
9
+ machine.communicate.sudo("modprobe fuse")
10
+ end
11
+
12
+ def self.sshfs_installed(machine)
13
+ installed = machine.communicate.test("apk -e info sshfs")
14
+ if installed
15
+ # fuse may not get loaded at boot, so check if it's loaded otherwise force load it
16
+ machine.communicate.sudo("lsmod | grep fuse || modprobe fuse")
17
+ end
18
+
19
+ installed
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,39 @@
1
+ module VagrantPlugins
2
+ module GuestCentOS
3
+ module Cap
4
+ class SSHFSClient
5
+ def self.sshfs_install(machine)
6
+
7
+ case machine.guest.capability("flavor")
8
+ when :centos_8
9
+ # No need to install epel. fuse-sshfs comes from the powertools repo
10
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1758884
11
+ # https://github.com/dustymabe/vagrant-sshfs/issues/123
12
+ machine.communicate.sudo("yum -y install --enablerepo=powertools fuse-sshfs")
13
+ when :centos_7, :centos # centos7 and centos6
14
+ # Install fuse-sshfs from epel
15
+ if !epel_installed(machine)
16
+ epel_install(machine)
17
+ end
18
+ machine.communicate.sudo("yum -y install fuse-sshfs")
19
+ end
20
+ end
21
+
22
+ def self.sshfs_installed(machine)
23
+ machine.communicate.test("rpm -q fuse-sshfs")
24
+ end
25
+
26
+ protected
27
+
28
+ def self.epel_installed(machine)
29
+ machine.communicate.test("rpm -q epel-release")
30
+ end
31
+
32
+ def self.epel_install(machine)
33
+ machine.communicate.sudo("yum -y install epel-release")
34
+ end
35
+
36
+ end
37
+ end
38
+ end
39
+ end
@@ -288,8 +288,8 @@ module VagrantPlugins
288
288
  :thread_inherit => true,
289
289
  :startup_info => {:stdin => w1, :stdout => r2, :stderr => f2})
290
290
  else
291
- p1 = spawn(sftp_server_cmd, :out => w2, :in => r1, :err => f1, :pgroup => true)
292
- p2 = spawn(ssh_cmd, :out => w1, :in => r2, :err => f2, :pgroup => true)
291
+ p1 = spawn(sftp_server_cmd, :out => w2, :in => r1, :err => f1, :pgroup => true, :close_others => true)
292
+ p2 = spawn(ssh_cmd, :out => w1, :in => r2, :err => f2, :pgroup => true, :close_others => true)
293
293
 
294
294
  # Detach from the processes so they will keep running
295
295
  Process.detach(p1)
@@ -3,13 +3,24 @@ module VagrantPlugins
3
3
  module Cap
4
4
  class SSHFSClient
5
5
  def self.sshfs_install(machine)
6
- # Install epel rpm if not installed
7
- if !epel_installed(machine)
8
- epel_install(machine)
9
- end
10
6
 
11
- # Install sshfs (comes from epel repos)
12
- machine.communicate.sudo("yum -y install fuse-sshfs")
7
+ case machine.guest.capability("flavor")
8
+ when :rhel_8
9
+ # fuse-sshfs isn't in EPEL8 and how to get it from RHEL repos
10
+ # without having to have the system subscribed is unclear:
11
+ # https://github.com/dustymabe/vagrant-sshfs/issues/108#issuecomment-601061947
12
+ # Using fuse-sshfs from EPEL7 works for now so let's just go with it.
13
+ # Do the install in such a way that the epel7 repo doesn't hang around
14
+ # on the system, which may have unintended consequences on RHEL8.
15
+ machine.communicate.sudo("rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7")
16
+ machine.communicate.sudo("yum -y install fuse-sshfs --repofrompath=epel7,'http://download.fedoraproject.org/pub/epel/7/$basearch'")
17
+ when :rhel_7, :rhel # rhel7 and rhel6
18
+ # Install fuse-sshfs from epel
19
+ if !epel_installed(machine)
20
+ epel_install(machine)
21
+ end
22
+ machine.communicate.sudo("yum -y install fuse-sshfs")
23
+ end
13
24
  end
14
25
 
15
26
  def self.sshfs_installed(machine)
@@ -120,7 +120,7 @@ module VagrantPlugins
120
120
  :thread_inherit => true,
121
121
  :startup_info => {:stdin => w2, :stdout => r1, :stderr => f1})
122
122
  else
123
- p1 = spawn(sshfs_cmd, :out => f1, :err => f1, :pgroup => true)
123
+ p1 = spawn(sshfs_cmd, :out => f1, :err => f1, :pgroup => true, :close_others => true)
124
124
  Process.detach(p1) # Detach so process will keep running
125
125
  end
126
126
 
@@ -117,7 +117,7 @@ module VagrantPlugins
117
117
  :thread_inherit => true,
118
118
  :startup_info => {:stdin => w2, :stdout => r1, :stderr => f1})
119
119
  else
120
- p1 = spawn(sshfs_cmd, :out => f1, :err => f1, :pgroup => true)
120
+ p1 = spawn(sshfs_cmd, :out => f1, :err => f1, :pgroup => true, :close_others => true)
121
121
  Process.detach(p1) # Detach so process will keep running
122
122
  end
123
123
 
@@ -97,6 +97,16 @@ module VagrantPlugins
97
97
  VagrantPlugins::GuestRedHat::Cap::SSHFSClient
98
98
  end
99
99
 
100
+ guest_capability("centos", "sshfs_installed") do
101
+ require_relative "cap/guest/centos/sshfs_client"
102
+ VagrantPlugins::GuestCentOS::Cap::SSHFSClient
103
+ end
104
+
105
+ guest_capability("centos", "sshfs_install") do
106
+ require_relative "cap/guest/centos/sshfs_client"
107
+ VagrantPlugins::GuestCentOS::Cap::SSHFSClient
108
+ end
109
+
100
110
  guest_capability("fedora", "sshfs_installed") do
101
111
  require_relative "cap/guest/fedora/sshfs_client"
102
112
  VagrantPlugins::GuestFedora::Cap::SSHFSClient
@@ -127,6 +137,16 @@ module VagrantPlugins
127
137
  VagrantPlugins::GuestArch::Cap::SSHFSClient
128
138
  end
129
139
 
140
+ guest_capability("alpine", "sshfs_installed") do
141
+ require_relative "cap/guest/alpine/sshfs_client"
142
+ VagrantPlugins::GuestAlpine::Cap::SSHFSClient
143
+ end
144
+
145
+ guest_capability("alpine", "sshfs_install") do
146
+ require_relative "cap/guest/alpine/sshfs_client"
147
+ VagrantPlugins::GuestAlpine::Cap::SSHFSClient
148
+ end
149
+
130
150
  guest_capability("suse", "sshfs_installed") do
131
151
  require_relative "cap/guest/suse/sshfs_client"
132
152
  VagrantPlugins::GuestSUSE::Cap::SSHFSClient
@@ -110,10 +110,11 @@ module VagrantPlugins
110
110
  ENV['PATH'] += ';C:\cygwin64\usr\sbin'
111
111
  end
112
112
  else
113
+ ENV['PATH'] += ':/usr/libexec/ssh' # Linux (openSUSE/SUSE Family)
113
114
  ENV['PATH'] += ':/usr/libexec/openssh' # Linux (Red Hat Family)
114
115
  ENV['PATH'] += ':/usr/lib/openssh' # Linux (Debian Family)
115
116
  ENV['PATH'] += ':/usr/lib/ssh' # Linux (Arch Linux Family)
116
- ENV['PATH'] += ':/usr/lib/misc' # Linux (Gentoo Family)
117
+ ENV['PATH'] += ':/usr/lib64/misc' # Linux (Gentoo Family)
117
118
  ENV['PATH'] += ':/usr/libexec/' # Mac OS X
118
119
  end
119
120
 
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module SyncedFolderSSHFS
3
- VERSION = "1.3.1"
3
+ VERSION = "1.3.6"
4
4
  end
5
5
  end
data/test/misc/README.txt CHANGED
@@ -2,7 +2,7 @@
2
2
  # This directory is for testing the three different mount modes
3
3
  # that are supported by vagrant-sshfs
4
4
 
5
- # To test we will first create the directory on the machien where
5
+ # To test we will first create the directory on the machine where
6
6
  # we will mount the guest /etc/ into the host (the reverse mount).
7
7
 
8
8
  mkdir /tmp/reverse_mount_etc
@@ -13,6 +13,11 @@ export THIRD_PARTY_HOST='192.168.121.73'
13
13
  export THIRD_PARTY_HOST_USER='vagrant'
14
14
  export THIRD_PARTY_HOST_PASS='vagrant'
15
15
 
16
+ # Open an extra file descriptor to test it is not passed onto child processes
17
+ # https://github.com/dustymabe/vagrant-sshfs/issues/120
18
+ tmpfile=$(mktemp)
19
+ exec {extra_fd}<> "$tmpfile"
20
+
16
21
  # Next vagrant up - will do 4 mounts
17
22
  # - slave
18
23
  # - slave with sym link
@@ -34,3 +39,9 @@ Testing reverse mount!
34
39
  # We are printing out the machine-id under each mount. The first two
35
40
  should be the same, because they are from the same machine. The last
36
41
  two should be different.
42
+
43
+ # Close our file descriptor. No other process should be using it
44
+ exec {extra_fd}>&-
45
+ if lsof -wn -d $extra_fd | grep "$tmpfile"; then
46
+ echo "Failure: there are processes running that hold an inherited file descriptor"
47
+ fi
@@ -8,7 +8,7 @@ Vagrant.configure(2) do |config|
8
8
 
9
9
  # Test a forward mount to a location that is a symbolic link
10
10
  # https://github.com/dustymabe/vagrant-sshfs/issues/44
11
- config.vm.synced_folder "/etc/", "/sbin/forward_slave_mount_sym_link_test/", type: "sshfs"
11
+ config.vm.synced_folder "/etc/", "/var/run/forward_slave_mount_sym_link_test/", type: "sshfs"
12
12
 
13
13
  # Test a forward normal mount:
14
14
  # mounting a folder from a 3rd party host into guest
@@ -21,8 +21,8 @@ Vagrant.configure(2) do |config|
21
21
  # mounting /etc/ from vagrant guest into vagrant host
22
22
  config.vm.synced_folder "/tmp/reverse_mount_etc/", "/etc", type: "sshfs", reverse: true
23
23
 
24
- host = 'vagrant-sshfs-tests'
25
- box = 'fedora/25-cloud-base'
24
+ host = 'sshfs-tests'
25
+ box = 'fedora/34-cloud-base'
26
26
 
27
27
  config.vm.define host do | tmp |
28
28
  tmp.vm.hostname = host
data/test/misc/dotests.sh CHANGED
@@ -8,7 +8,7 @@ vagrant ssh -- cat /tmp/forward_slave_mount_etc/machine-id
8
8
 
9
9
  # https://github.com/dustymabe/vagrant-sshfs/issues/44
10
10
  echo -en "Testing slave forward mount with a symlink!\n\t"
11
- vagrant ssh -- cat /usr/sbin/forward_slave_mount_sym_link_test/machine-id
11
+ vagrant ssh -- cat /run/forward_slave_mount_sym_link_test/machine-id
12
12
 
13
13
  echo -en "Testing normal forward mount!\n\t"
14
14
  vagrant ssh -- cat /tmp/forward_normal_mount_etc/machine-id
@@ -25,7 +25,4 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_development_dependency 'bundler'
27
27
  spec.add_development_dependency 'rake'
28
- spec.add_development_dependency 'cucumber'
29
- spec.add_development_dependency 'aruba'
30
- spec.add_development_dependency 'komenda'
31
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-sshfs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dusty Mabe
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-12 00:00:00.000000000 Z
11
+ date: 2021-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: win32-process
@@ -52,48 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: cucumber
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: aruba
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: komenda
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
55
  description: "\n A Vagrant synced folder plugin that mounts folders via SSHFS.
98
56
  \n This is the successor to Fabio Kreusch's implementation:\n https://github.com/fabiokr/vagrant-sshfs"
99
57
  email:
@@ -108,13 +66,12 @@ files:
108
66
  - README.adoc
109
67
  - RELEASE.txt
110
68
  - Rakefile
111
- - features/README.md
112
- - features/sshfs_cwd_mount.feature
113
- - features/step_definitions/sshfs_cwd_mount_steps.rb
114
- - features/support/env.rb
69
+ - build.sh
115
70
  - lib/vagrant-sshfs.rb
116
71
  - lib/vagrant-sshfs/action_hostpath_fixup.rb
72
+ - lib/vagrant-sshfs/cap/guest/alpine/sshfs_client.rb
117
73
  - lib/vagrant-sshfs/cap/guest/arch/sshfs_client.rb
74
+ - lib/vagrant-sshfs/cap/guest/centos/sshfs_client.rb
118
75
  - lib/vagrant-sshfs/cap/guest/debian/sshfs_client.rb
119
76
  - lib/vagrant-sshfs/cap/guest/fedora/sshfs_client.rb
120
77
  - lib/vagrant-sshfs/cap/guest/freebsd/sshfs_client.rb
@@ -134,19 +91,15 @@ files:
134
91
  - lib/vagrant-sshfs/synced_folder/sshfs_reverse_mount.rb
135
92
  - lib/vagrant-sshfs/version.rb
136
93
  - locales/synced_folder_sshfs.yml
137
- - test/libvirt/README.txt
138
- - test/libvirt/Vagrantfile
139
94
  - test/misc/README.txt
140
95
  - test/misc/Vagrantfile
141
96
  - test/misc/dotests.sh
142
- - test/virtualbox/README.txt
143
- - test/virtualbox/Vagrantfile
144
97
  - vagrant-sshfs.gemspec
145
98
  homepage: https://github.com/dustymabe/vagrant-sshfs
146
99
  licenses:
147
100
  - GPL-2.0
148
101
  metadata: {}
149
- post_install_message:
102
+ post_install_message:
150
103
  rdoc_options: []
151
104
  require_paths:
152
105
  - lib
@@ -161,21 +114,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
114
  - !ruby/object:Gem::Version
162
115
  version: '0'
163
116
  requirements: []
164
- rubyforge_project:
165
- rubygems_version: 2.6.14.1
166
- signing_key:
117
+ rubygems_version: 3.1.6
118
+ signing_key:
167
119
  specification_version: 4
168
120
  summary: 'A Vagrant synced folder plugin that mounts folders via SSHFS. This is the
169
121
  successor to Fabio Kreusch''s implementation: https://github.com/fabiokr/vagrant-sshfs'
170
122
  test_files:
171
- - features/README.md
172
- - features/sshfs_cwd_mount.feature
173
- - features/step_definitions/sshfs_cwd_mount_steps.rb
174
- - features/support/env.rb
175
- - test/libvirt/README.txt
176
- - test/libvirt/Vagrantfile
177
123
  - test/misc/README.txt
178
124
  - test/misc/Vagrantfile
179
125
  - test/misc/dotests.sh
180
- - test/virtualbox/README.txt
181
- - test/virtualbox/Vagrantfile
data/features/README.md DELETED
@@ -1,21 +0,0 @@
1
-
2
- We are using Cucumber for automated testing. Read more at the
3
- following two links:
4
-
5
- - [link1](https://en.wikipedia.org/wiki/Cucumber_(software))
6
- - [link2](http://www.methodsandtools.com/tools/cucumber.php)
7
-
8
- features/
9
- This is the features directory. The features directory Contains
10
- feature files, which all have a .feature extension. May contain
11
- subdirectories to organize feature files.
12
-
13
- features/step_definitions
14
- This directory contains step definition files, which are Ruby code
15
- and have a .rb extension.
16
-
17
- features/support
18
- This directory contains supporting Ruby code. Files in support
19
- load before those in step_definitions, which makes it useful for
20
- such things as environment configuration (commonly done in a file
21
- called env.rb).
@@ -1,46 +0,0 @@
1
- # The language in this file is Gherkin. It is the language Cucumber
2
- # uses to define test cases and is designed to be non-technical and
3
- # human readable. All Gherkin files have a .feature extension
4
- #
5
- # See more here: https://en.wikipedia.org/wiki/Cucumber_(software)
6
- #
7
- # Additionally in the setup/env.rb file we set up Aruba. Aruba is used
8
- # to define most of the basic step definitions that we use as part of
9
- # the Gherkin syntax in this file.
10
- #
11
- # For more information on the step definitions provided see:
12
- # https://github.com/cucumber/aruba/tree/bb5d7ff71809b5461e29153ded793d2b9a3a0624/features/testing_frameworks/cucumber/steps
13
- #
14
- Feature: SSHFS mount of vagrant current working directory
15
-
16
- Scenario Outline: SSHFS mounting of vagrant cwd
17
- Given a file named "Vagrantfile" with:
18
- """
19
- Vagrant.configure('2') do |config|
20
- config.vm.box = '<box>'
21
- # Disable the default rsync
22
- config.vm.synced_folder '.', '/vagrant', disabled: true
23
-
24
- # If using libvirt and nested virt (vagrant in vagrant) then
25
- # we need to use a different network than 192.168.121.0
26
- config.vm.provider :libvirt do |libvirt|
27
- libvirt.management_network_name = 'vagrant-libvirt-test'
28
- libvirt.management_network_address = '192.168.129.0/24'
29
- end
30
-
31
- # Mount up the current dir. It will have the Vagrantfile in there.
32
- config.vm.synced_folder './', '/testdir', type: 'sshfs'
33
- end
34
- """
35
- When I successfully run `bundle exec vagrant up`
36
- Then stdout from "bundle exec vagrant up" should contain "Installing SSHFS client..."
37
- And stdout from "bundle exec vagrant up" should contain "Mounting SSHFS shared folder..."
38
- And stdout from "bundle exec vagrant up" should contain "Folder Successfully Mounted!"
39
- # The code for the following test is in ./step_definitions/sshfs_cwd_mount_steps.rb
40
- And vagrant current working directory should be mounted
41
-
42
- Examples:
43
- | box |
44
- | centos/7 |
45
-
46
-
@@ -1,12 +0,0 @@
1
- # This is a cucumber step definition. Cucumber scenarios become automated
2
- # tests with the addition of what are called step definitions. A step
3
- # definition is a block of code associated with one or more steps by a
4
- # regular expression (or, in simple cases, a string).
5
- #
6
- # This is the step definition for the `And vagrant current working
7
- # directory should be mounted` step from sshfs_cwd_mount.feature
8
- #
9
- And(/^vagrant current working directory should be mounted$/) do
10
- run("vagrant ssh -c 'ls /testdir/Vagrantfile'")
11
- expect(last_command_started).to have_exit_status(0)
12
- end
@@ -1,27 +0,0 @@
1
- # This is a support file for the cucumber tests. This file sets up the
2
- # environment for the tests to run. At this point mainly that means
3
- # configuring Aruba. Aruba is used to define most of the basic step
4
- # definitions that we use as part of the Gherkin syntax in our .feature files.
5
- #
6
- # For more information on the step definitions provided see:
7
- # https://github.com/cucumber/aruba/tree/bb5d7ff71809b5461e29153ded793d2b9a3a0624/features/testing_frameworks/cucumber/steps
8
- require 'aruba/cucumber'
9
- require 'komenda' # use komenda for easily executing a command
10
-
11
- # Configure aruba. The options can be inferred from here:
12
- # https://github.com/cucumber/aruba/tree/bb5d7ff71809b5461e29153ded793d2b9a3a0624/features/configuration
13
- Aruba.configure do |config|
14
- # Wait up to 300 seconds for the test to run
15
- config.exit_timeout = 300
16
- # Output stdout and stderr on test failure
17
- config.activate_announcer_on_command_failure = [:stdout, :stderr]
18
- # The directory where the tests are to be run
19
- config.working_directory = 'build/aruba'
20
- end
21
-
22
- # After running tests, clean up
23
- After do |_scenario|
24
- if File.exist?(File.join(aruba.config.working_directory, 'Vagrantfile'))
25
- Komenda.run('bundle exec vagrant destroy -f', cwd: aruba.config.working_directory, fail_on_fail: true)
26
- end
27
- end
@@ -1,23 +0,0 @@
1
-
2
- To bring up vagrant host:
3
-
4
- vagrant up
5
-
6
- To run tests:
7
-
8
- vagrant ssh
9
-
10
- and then:
11
-
12
- cd /sharedfolder/code/github.com/dustymabe/vagrant-sshfs/
13
- gem install bundler # see [2]
14
- bundle install --with plugins # see [1]
15
- bundle exec rake featuretests
16
-
17
- [1] when running with bundler 1.13.2 I had to comment out
18
- the vagrant-sshfs line in Gemfile because it errored out
19
- complaining about it being defined twice. Running with
20
- 1.12.5 works fine.
21
- [2] because of [1] need to use this instead:
22
- gem install bundler --version 1.12.5
23
-
@@ -1,35 +0,0 @@
1
- # -*- mode: ruby -*-
2
- # vi: set ft=ruby :
3
- Vagrant.configure(2) do |config|
4
-
5
- config.ssh.insert_key = 'true'
6
- config.vm.synced_folder "/guests/sharedfolder", "/sharedfolder", type: "sshfs"
7
-
8
- config.vm.provider :libvirt do |domain|
9
- domain.memory = 4096
10
- domain.cpus = 4
11
- domain.nested = true
12
- end
13
-
14
- host = 'viv-libvirt' # vagrant in vagrant - to test libvirt
15
- box = 'fedora/25-cloud-base'
16
-
17
- config.vm.define host do | tmp |
18
- tmp.vm.hostname = host
19
- tmp.vm.box = box
20
- end
21
- config.vm.provision "shell", inline: <<-SHELL
22
- rpms=(
23
- libvirt-daemon-kvm # for vagrant libvirt support
24
- make gcc ruby ruby-devel redhat-rpm-config # for building gems
25
- gcc-c++ # for building unf_ext
26
- libvirt-devel # for building ruby-libvirt gem
27
- zlib-devel # for building nokogiri gem
28
- git # for the git ls-files in gemspec file
29
- bsdtar # used by vagrant to unpack box files
30
- )
31
- dnf install -y ${rpms[@]}
32
- usermod -a -G libvirt vagrant
33
- systemctl start libvirtd virtlogd
34
- SHELL
35
- end
@@ -1,25 +0,0 @@
1
- # XXX Note this is not working right now as nested virt. I keep
2
- # getting kernel tracebacks on Fedora 24.
3
-
4
- To bring up vagrant host:
5
-
6
- vagrant up
7
-
8
- To run tests:
9
-
10
- vagrant ssh
11
-
12
- and then:
13
-
14
- cd /sharedfolder/code/github.com/dustymabe/vagrant-sshfs/
15
- gem install bundler # see [2]
16
- bundle install --with plugins # see [1]
17
- bundle exec rake featuretests
18
-
19
- [1] when running with bundler 1.13.2 I had to comment out
20
- the vagrant-sshfs line in Gemfile because it errored out
21
- complaining about it being defined twice. Running with
22
- 1.12.5 works fine.
23
- [2] because of [1] need to use this instead:
24
- gem install bundler --version 1.12.5
25
-
@@ -1,42 +0,0 @@
1
- # -*- mode: ruby -*-
2
- # vi: set ft=ruby :
3
- #
4
- # XXX Note this is not working right now as nested virt. I keep
5
- # getting kernel tracebacks on Fedora 24.
6
- #
7
- Vagrant.configure(2) do |config|
8
-
9
- config.ssh.insert_key = 'true'
10
- config.vm.synced_folder "/guests/sharedfolder", "/sharedfolder", type: "sshfs"
11
-
12
- config.vm.provider :libvirt do |domain|
13
- domain.memory = 4096
14
- domain.cpus = 4
15
- domain.nested = true
16
- end
17
-
18
- host = 'viv-virtbox' # vagrant in vagrant - to test virtbox
19
- box = 'fedora/25-cloud-base'
20
-
21
- config.vm.define host do | tmp |
22
- tmp.vm.hostname = host
23
- tmp.vm.box = box
24
- end
25
- # Must use VirtualBox-5.0 - 5.1 not supported by Vagrant yet
26
- config.vm.provision "shell", inline: <<-SHELL
27
- dnf config-manager --add-repo http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
28
- rpms=(
29
- kernel-devel-$(uname -r) kernel-headers-$(uname -r)
30
- gcc make VirtualBox-5.0 # all for virtualbox support
31
- make gcc ruby ruby-devel redhat-rpm-config # for building gems
32
- gcc-c++ # for building unf_ext
33
- libvirt-devel # for building ruby-libvirt gem
34
- zlib-devel # for building nokogiri gem
35
- git # for the git ls-files in gemspec file
36
- bsdtar # used by vagrant to unpack box files
37
- )
38
- dnf install -y ${rpms[@]}
39
- /usr/lib/virtualbox/vboxdrv.sh setup
40
- usermod -a -G vboxusers vagrant
41
- SHELL
42
- end