From c4733a02d483818c3e9a99f1e94582d9a43593ae Mon Sep 17 00:00:00 2001 From: Josef Stribny Date: Tue, 30 Jun 2015 10:21:58 +0200 Subject: [PATCH 1/2] Rewrite Red Hat nfs caps based on systemd checks --- plugins/guests/redhat/cap/nfs_client.rb | 29 ++++++++++++++++++------- plugins/guests/redhat/plugin.rb | 5 +++++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/plugins/guests/redhat/cap/nfs_client.rb b/plugins/guests/redhat/cap/nfs_client.rb index 0e8023062..14e69d53e 100644 --- a/plugins/guests/redhat/cap/nfs_client.rb +++ b/plugins/guests/redhat/cap/nfs_client.rb @@ -3,14 +3,27 @@ module VagrantPlugins module Cap class NFSClient def self.nfs_client_install(machine) - machine.communicate.tap do |comm| - comm.sudo("yum -y install nfs-utils nfs-utils-lib") - case machine.guest.capability("flavor") - when :rhel_7 - comm.sudo("/bin/systemctl restart rpcbind nfs") - else - comm.sudo("/etc/init.d/rpcbind restart; /etc/init.d/nfs restart") - end + machine.communicate.sudo("yum -y install nfs-utils nfs-utils-lib") + restart_nfs(machine) + end + + def self.nfs_client_installed(machine) + installed = machine.communicate.test("test -x /sbin/mount.nfs") + restart_nfs(machine) if installed + installed + end + + protected + + def self.systemd? + `ps -o comm= 1`.chomp == 'systemd' + end + + def self.restart_nfs(machine) + if systemd? + machine.communicate.sudo("/bin/systemctl restart rpcbind nfs") + else + machine.communicate.sudo("/etc/init.d/rpcbind restart; /etc/init.d/nfs restart") end end end diff --git a/plugins/guests/redhat/plugin.rb b/plugins/guests/redhat/plugin.rb index f7a255599..2ea8dced7 100644 --- a/plugins/guests/redhat/plugin.rb +++ b/plugins/guests/redhat/plugin.rb @@ -36,6 +36,11 @@ module VagrantPlugins Cap::NFSClient end + guest_capability("redhat", "nfs_client_installed") do + require_relative "cap/nfs_client" + Cap::NFSClient + end + guest_capability("redhat", "rsync_install") do require_relative "cap/rsync" Cap::RSync From a151f7172a573021d09e6748f99d04919ffe1d8f Mon Sep 17 00:00:00 2001 From: Josef Stribny Date: Tue, 30 Jun 2015 10:23:15 +0200 Subject: [PATCH 2/2] Remove Fedora nfs cap --- plugins/guests/fedora/cap/nfs_client.rb | 11 ----------- plugins/guests/fedora/plugin.rb | 5 ----- 2 files changed, 16 deletions(-) delete mode 100644 plugins/guests/fedora/cap/nfs_client.rb diff --git a/plugins/guests/fedora/cap/nfs_client.rb b/plugins/guests/fedora/cap/nfs_client.rb deleted file mode 100644 index 58e084510..000000000 --- a/plugins/guests/fedora/cap/nfs_client.rb +++ /dev/null @@ -1,11 +0,0 @@ -module VagrantPlugins - module GuestFedora - module Cap - class NFSClient - def self.nfs_client_install(machine) - machine.communicate.sudo("yum -y install nfs-utils nfs-utils-lib") - end - end - end - end -end diff --git a/plugins/guests/fedora/plugin.rb b/plugins/guests/fedora/plugin.rb index 78e376f96..118a2f13c 100644 --- a/plugins/guests/fedora/plugin.rb +++ b/plugins/guests/fedora/plugin.rb @@ -30,11 +30,6 @@ module VagrantPlugins require_relative "cap/flavor" Cap::Flavor end - - guest_capability("fedora", "nfs_client_install") do - require_relative "cap/nfs_client" - Cap::NFSClient - end end end end