Skip to content

Commit f568c02

Browse files
committed
(FACT-2805) Add Cached and Buffers to memfree
Facter 3 adds cached and buffers to memfree fact. This makes sure we are consistent with what facter 3 displays
1 parent 0a2f78f commit f568c02

2 files changed

Lines changed: 14 additions & 10 deletions

File tree

lib/facter/resolvers/memory_resolver.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,17 @@ def read_meminfo_file(fact_name)
2525

2626
def read_system(output)
2727
@fact_list[:total] = kilobytes_to_bytes(output.match(/MemTotal:\s+(\d+)\s/)[1])
28-
@fact_list[:memfree] = kilobytes_to_bytes(output.match(/MemFree:\s+(\d+)\s/)[1])
28+
@fact_list[:memfree] = memfree(output)
2929
@fact_list[:used_bytes] = compute_used(@fact_list[:total], reclaimable_memory(output))
3030
@fact_list[:capacity] = compute_capacity(@fact_list[:used_bytes], @fact_list[:total])
3131
end
3232

33+
def memfree(output)
34+
buffers = kilobytes_to_bytes(output.match(/Buffers:\s+(\d+)\s/)[1])
35+
cached = kilobytes_to_bytes(output.match(/Cached:\s+(\d+)\s/)[1])
36+
kilobytes_to_bytes(output.match(/MemFree:\s+(\d+)\s/)[1]) + buffers + cached
37+
end
38+
3339
def read_swap(output)
3440
total = output.match(/SwapTotal:\s+(\d+)\s/)[1]
3541
return if total.to_i.zero?
@@ -45,15 +51,13 @@ def kilobytes_to_bytes(quantity)
4551
end
4652

4753
def reclaimable_memory(output)
48-
buffers = kilobytes_to_bytes(output.match(/Buffers:\s+(\d+)\s/)[1])
49-
cached = kilobytes_to_bytes(output.match(/Cached:\s+(\d+)\s/)[1])
5054
s_reclaimable = output.match(/SReclaimable:\s+(\d+)\s/)
5155
s_reclaimable = if s_reclaimable
5256
kilobytes_to_bytes(s_reclaimable[1])
5357
else
5458
0
5559
end
56-
@fact_list[:memfree] + buffers + cached + s_reclaimable
60+
@fact_list[:memfree] + s_reclaimable
5761
end
5862

5963
def compute_capacity(used, total)

spec/facter/resolvers/memory_resolver_spec.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
context 'when there is swap memory' do
1818
let(:total) { 4_036_680 * 1024 }
19-
let(:free) { 3_547_792 * 1024 }
2019
let(:buffers) { 4_288 * 1024 }
2120
let(:cached) { 298_624 * 1024 }
21+
let(:free) { (3_547_792 * 1024) + buffers + cached }
2222
let(:s_reclaimable) { 29_072 * 1024 }
23-
let(:used) { total - free - buffers - cached - s_reclaimable }
23+
let(:used) { total - free - s_reclaimable }
2424
let(:swap_total) { 2_097_148 * 1024 }
2525
let(:swap_free) { 2_097_148 * 1024 }
2626
let(:swap_used) { swap_total - swap_free }
@@ -65,11 +65,11 @@
6565

6666
context 'when there is not swap memory' do
6767
let(:total) { 4_134_510_592 }
68-
let(:free) { 3_465_723_904 }
6968
let(:buffers) { 2_088 * 1024 }
7069
let(:cached) { 445_204 * 1024 }
70+
let(:free) { 3_465_723_904 + buffers + cached }
7171
let(:s_reclaimable) { 71_384 * 1024 }
72-
let(:used) { total - free - buffers - cached - s_reclaimable }
72+
let(:used) { total - free - s_reclaimable }
7373
let(:fixture_name) { 'meminfo2' }
7474

7575
it 'returns total memory' do
@@ -109,11 +109,11 @@
109109

110110
context 'when on Rhel 5' do
111111
let(:total) { 4_036_680 * 1024 }
112-
let(:free) { 3_547_792 * 1024 }
113112
let(:buffers) { 4_288 * 1024 }
114113
let(:cached) { 298_624 * 1024 }
114+
let(:free) { (3_547_792 * 1024) + buffers + cached }
115115
let(:s_reclaimable) { 0 }
116-
let(:used) { total - free - buffers - cached - s_reclaimable }
116+
let(:used) { total - free - s_reclaimable }
117117
let(:swap_total) { 2_097_148 * 1024 }
118118
let(:swap_free) { 2_097_148 * 1024 }
119119
let(:swap_used) { swap_total - swap_free }

0 commit comments

Comments
 (0)