diff options
author | mh <mh@immerda.ch> | 2010-08-11 15:57:58 +0200 |
---|---|---|
committer | mh <mh@immerda.ch> | 2010-08-11 15:57:58 +0200 |
commit | 01bb8dfee9c3981994d1697fc96470798445a050 (patch) | |
tree | dcd4266d6eeb8dc48ae1b69aacea53594e6560a8 /lib/facter/mountpoints.rb | |
parent | 33b091b896fbb0b54ee9968c452ef2a8867893d8 (diff) | |
parent | a5d8b5b8b1f4d5afcb549e28bf1eef12169b81c7 (diff) |
Merge branch 'master' of git.puppet.immerda.ch:module-nagios
Diffstat (limited to 'lib/facter/mountpoints.rb')
-rw-r--r-- | lib/facter/mountpoints.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/facter/mountpoints.rb b/lib/facter/mountpoints.rb new file mode 100644 index 0000000..c51e6e6 --- /dev/null +++ b/lib/facter/mountpoints.rb @@ -0,0 +1,50 @@ +begin + + mountpoints = [] + # we show devices, but we avoid outputing duplicate devices + devices = [] + Facter.add("mountpoints") do + ignorefs = ["NFS", "nfs", "nfs4", "nfsd", "afs", "binfmt_misc", "proc", "smbfs", + "autofs", "iso9660", "ncpfs", "coda", "devpts", "ftpfs", "devfs", + "mfs", "shfs", "sysfs", "cifs", "lustre_lite", "tmpfs", "usbfs", "udf", + "fusectl", "fuse.snapshotfs", "rpc_pipefs"] + begin + require 'filesystem' + rescue Exception => e + confine :kernel => :linux + ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin" + fs_source = nil + if FileTest.exists?("/etc/mtab") + fs_source = "/etc/mtab" + elsif FileTest.exists?("/proc/mounts") + fs_source = "/proc/mounts" + end + + mounts = File.read(fs_source).split("\n") + mounts.each do |mount| + mount = mount.split(" ") + if ((not ignorefs.include?(mount[2])) && (mount[3] !~ /bind/) && (not devices.include?(mount[0])) && (not mountpoints.include?(mount[1]))) + mountpoints.push(mount[1]) + end + devices.push(mount[0]) if not devices.include?(mount[0]) + end + else + FileSystem.mounts.each do |m| + if ((not ignorefs.include?(m.fstype)) && (m.options !~ /bind/) && !devices.include?(mount[0])) + mountpoints.push(m.mount) + end + devices.push(m.mount) if not devices.include?(m.mount) + end + end + setcode do + mountpoints.join(",") + end + end + Facter.add("devices") do + setcode do + devices.join(",") + end + end + +rescue Exception => e +end |