Hi, Michael DeHaan told me to post this patch to this list. It implements the current facts that exist with a "KB" suffix to report the unscaled version.
My ruby is a bit rusty, so I'm just copying working code.. On another topic: all the openbsd code works fine on freebsd and *probably* on netbsd too. Kai >From 84437f4322d98eaaa47db191e0496a5908976fd4 Mon Sep 17 00:00:00 2001 From: Kai <[email protected]> Date: Tue, 22 Jun 2010 11:57:26 +0200 Subject: patch on 1.5.7 --- lib/facter/memory.rb | 18 ++++++++++++++++++ lib/facter/util/memory.rb | 13 +++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/facter/memory.rb b/lib/facter/memory.rb index 6880731..29b2f21 100644 --- a/lib/facter/memory.rb +++ b/lib/facter/memory.rb @@ -18,6 +18,12 @@ require 'facter/util/memory' Facter::Memory.meminfo_number(name) end end + Facter.add("#{fact}kB") do + confine :kernel => :linux + setcode do + Facter::Memory.meminfo_real(name) + end + end end if Facter.value(:kernel) == "AIX" @@ -36,6 +42,12 @@ if Facter.value(:kernel) == "AIX" Facter::Memory.scale_number(swaptotal.to_f,"MB") end end + Facter.add("SwapSizekB") do + confine :kernel => :aix + setcode do + swaptotal.to_f * 1024.0 + end + end Facter.add("SwapFree") do confine :kernel => :aix @@ -43,4 +55,10 @@ if Facter.value(:kernel) == "AIX" Facter::Memory.scale_number(swapfree.to_f,"MB") end end + Facter.add("SwapFreekB") do + confine :kernel => :aix + setcode do + swapfree.to_f * 1024.0 + end + end end diff --git a/lib/facter/util/memory.rb b/lib/facter/util/memory.rb index 2004491..fbe7c45 100644 --- a/lib/facter/util/memory.rb +++ b/lib/facter/util/memory.rb @@ -17,7 +17,12 @@ module Facter::Memory require 'thread' def self.meminfo_number(tag) - memsize = "" + scale_number(meminfo_real(tag), 'kB') + end + + def self.meminfo_real(tag) + memsize = 0 + memscale = "" Thread::exclusive do size, scale = [0, ""] File.readlines("/proc/meminfo").each do |l| @@ -29,9 +34,13 @@ module Facter::Memory size += $1.to_f end end - memsize = scale_number(size, scale) + memsize = size + memscale = scale end + if memscale != 'kB' + raise "Unknown scale reported by meminfo: #{memscale}" + end memsize end -- 1.5.6.5 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
