Moved vmstat exec to Facter::Memory::Util so it can used to retrieve free
memory in the same way on Solaris.

Signed-off-by: Dominic Cleal <dcl...@redhat.com>
---
Local-branch: tickets/master/1423
 lib/facter/memory.rb      |    8 +-------
 lib/facter/util/memory.rb |   10 ++++++++++
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/lib/facter/memory.rb b/lib/facter/memory.rb
index 06640e6..8eab377 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
diff --git a/lib/facter/util/memory.rb b/lib/facter/util/memory.rb
index 2004491..5687ff2 100644
--- a/lib/facter/util/memory.rb
+++ b/lib/facter/util/memory.rb
@@ -50,5 +50,15 @@ module Facter::Memory
 
         return "%.2f %s" % [size, s]
     end
+
+    def self.vmstat_find_free_memory()
+        row = Facter::Util::Resolution.exec("vmstat").split("\n")[-1]
+        Facter.add("MemoryFree") do
+            memfree = row.split[4]
+            setcode do
+                Facter::Memory.scale_number(memfree.to_f, "kB")
+            end
+        end
+    end
 end
 
-- 
1.7.3.2

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to puppet-...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to