From c4733a02d483818c3e9a99f1e94582d9a43593ae Mon Sep 17 00:00:00 2001
From: Josef Stribny <jstribny@redhat.com>
Date: Tue, 30 Jun 2015 10:21:58 +0200
Subject: [PATCH] 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 0e80230..14e69d5 100644
--- a/plugins/guests/redhat/cap/nfs_client.rb
+++ b/plugins/guests/redhat/cap/nfs_client.rb
@@ -3,14 +3,27 @@ module GuestRedHat
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 f7a2555..2ea8dce 100644
--- a/plugins/guests/redhat/plugin.rb
+++ b/plugins/guests/redhat/plugin.rb
@@ -36,6 +36,11 @@ class Plugin < Vagrant.plugin("2")
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