summaryrefslogtreecommitdiffstats
path: root/lib/facter/memory.rb
diff options
context:
space:
mode:
authorDaniel Pittman <daniel@puppetlabs.com>2011-01-31 13:21:22 -0800
committerDaniel Pittman <daniel@rimspace.net>2011-01-31 13:21:22 -0800
commitfa06a388cd3fd91b62d4e65bbe4ff74bcfe46ad0 (patch)
tree04369523bed9f9ce292ada8503e4183f0da84d31 /lib/facter/memory.rb
parente717fed872f68c52fc0193bab2095a12f03433ac (diff)
parentd9b8f2ad68626b8655d98a8d9037283f671f86bb (diff)
downloadfacter-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.rb51
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