diff options
author | Daniel Pittman <daniel@puppetlabs.com> | 2011-01-31 13:21:22 -0800 |
---|---|---|
committer | Daniel Pittman <daniel@rimspace.net> | 2011-01-31 13:21:22 -0800 |
commit | fa06a388cd3fd91b62d4e65bbe4ff74bcfe46ad0 (patch) | |
tree | 04369523bed9f9ce292ada8503e4183f0da84d31 /lib/facter/memory.rb | |
parent | e717fed872f68c52fc0193bab2095a12f03433ac (diff) | |
parent | d9b8f2ad68626b8655d98a8d9037283f671f86bb (diff) | |
download | facter-fa06a388cd3fd91b62d4e65bbe4ff74bcfe46ad0.tar.gz facter-fa06a388cd3fd91b62d4e65bbe4ff74bcfe46ad0.tar.xz facter-fa06a388cd3fd91b62d4e65bbe4ff74bcfe46ad0.zip |
Merge commit 'd9b8f2a'
Diffstat (limited to 'lib/facter/memory.rb')
-rw-r--r-- | lib/facter/memory.rb | 51 |
1 files changed, 44 insertions, 7 deletions
diff --git a/lib/facter/memory.rb b/lib/facter/memory.rb index 06640e6..f744c3f 100644 --- a/lib/facter/memory.rb +++ b/lib/facter/memory.rb @@ -69,13 +69,7 @@ if Facter.value(:kernel) == "OpenBSD" end end - Facter.add("MemoryFree") do - confine :kernel => :openbsd - memfree = Facter::Util::Resolution.exec("vmstat | tail -n 1 | awk '{ print $5 }'") - setcode do - Facter::Memory.scale_number(memfree.to_f,"kB") - end - end + Facter::Memory.vmstat_find_free_memory() Facter.add("MemoryTotal") do confine :kernel => :openbsd @@ -85,3 +79,46 @@ if Facter.value(:kernel) == "OpenBSD" end end end + +if Facter.value(:kernel) == "SunOS" + swap = Facter::Util::Resolution.exec('/usr/sbin/swap -l') + swapfree, swaptotal = 0, 0 + swap.each do |dev| + if dev =~ /^\/\S+\s.*\s+(\d+)\s+(\d+)$/ + swaptotal += $1.to_i / 2 + swapfree += $2.to_i / 2 + end + end + + Facter.add("SwapSize") do + confine :kernel => :sunos + setcode do + Facter::Memory.scale_number(swaptotal.to_f,"kB") + end + end + + Facter.add("SwapFree") do + confine :kernel => :sunos + setcode do + Facter::Memory.scale_number(swapfree.to_f,"kB") + end + end + + # Total memory size available from prtconf + pconf = Facter::Util::Resolution.exec('/usr/sbin/prtconf') + phymem = "" + pconf.each do |line| + if line =~ /^Memory size:\s+(\d+) Megabytes/ + phymem = $1 + end + end + + Facter.add("MemorySize") do + confine :kernel => :sunos + setcode do + Facter::Memory.scale_number(phymem.to_f,"MB") + end + end + + Facter::Memory.vmstat_find_free_memory() +end |