diff options
| author | Adrien Thebo <adrien@puppetlabs.com> | 2011-03-08 12:59:40 -0800 |
|---|---|---|
| committer | Adrien Thebo <adrien@puppetlabs.com> | 2011-03-15 15:39:23 -0700 |
| commit | ffd80ac4e48285121e6557a06172d47d86270a76 (patch) | |
| tree | b74609907ff7da6548a19fd18c07b2624ceb2dd2 | |
| parent | 4a718a7561e6a87c00d333fedecf6097a8060696 (diff) | |
| download | facter-ffd80ac4e48285121e6557a06172d47d86270a76.tar.gz facter-ffd80ac4e48285121e6557a06172d47d86270a76.tar.xz facter-ffd80ac4e48285121e6557a06172d47d86270a76.zip | |
(#5011) Adds swap statistics for OSX
- Added swapfree and swapsize facts
- Tests will now run correctly for osx swap tests
| -rw-r--r-- | lib/facter/memory.rb | 30 | ||||
| -rw-r--r-- | spec/unit/memory_spec.rb | 45 |
2 files changed, 75 insertions, 0 deletions
diff --git a/lib/facter/memory.rb b/lib/facter/memory.rb index 86adc7f..aa67702 100644 --- a/lib/facter/memory.rb +++ b/lib/facter/memory.rb @@ -20,6 +20,36 @@ require 'facter/util/memory' end end +Facter.add("SwapSize") do + confine :kernel => :Darwin + setcode do + swap = Facter::Util::Resolution.exec('sysctl vm.swapusage') + swaptotal = 0 + if swap =~ /total = (\S+)/ then swaptotal = $1; end + swaptotal + end +end + +Facter.add("SwapFree") do + confine :kernel => :Darwin + setcode do + swap = Facter::Util::Resolution.exec('sysctl vm.swapusage') + swapfree = 0 + if swap =~ /free = (\S+)/ then swapfree = $1; end + swapfree + end +end + +Facter.add("SwapEncrypted") do + confine :kernel => :Darwin + setcode do + swap = Facter::Util::Resolution.exec('sysctl vm.swapusage') + encrypted = false + if swap =~ /\(encrypted\)/ then encrypted = true; end + encrypted + end +end + if Facter.value(:kernel) == "AIX" and Facter.value(:id) == "root" swap = Facter::Util::Resolution.exec('swap -l') swapfree, swaptotal = 0, 0 diff --git a/spec/unit/memory_spec.rb b/spec/unit/memory_spec.rb new file mode 100644 index 0000000..5cae8cb --- /dev/null +++ b/spec/unit/memory_spec.rb @@ -0,0 +1,45 @@ +#!/usr/bin/env ruby + +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +require 'facter' + +describe "Memory facts" do + before do + Facter.loadfacts + end + + after do + Facter.clear + end + + it "should return the current swap size" do + + Facter.fact(:kernel).stubs(:value).returns("Darwin") + Facter::Util::Resolution.stubs(:exec).with('sysctl vm.swapusage').returns("vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)") + swapusage = "vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)" + + if swapusage =~ /total = (\S+).*/ + Facter.fact(:swapfree).value.should == $1 + end + end + + it "should return the current swap free" do + Facter.fact(:kernel).stubs(:value).returns("Darwin") + Facter::Util::Resolution.stubs(:exec).with('sysctl vm.swapusage').returns("vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)") + swapusage = "vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)" + + if swapusage =~ /free = (\S+).*/ + Facter.fact(:swapfree).value.should == $1 + end + end + + it "should return whether swap is encrypted" do + Facter.fact(:kernel).stubs(:value).returns("Darwin") + Facter::Util::Resolution.stubs(:exec).with('sysctl vm.swapusage').returns("vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)") + swapusage = "vm.swapusage: total = 64.00M used = 0.00M free = 64.00M (encrypted)" + + swapusage =~ /\(encrypted\)/ + Facter.fact(:swapencrypted).value.should == true + end +end |
