facter 4.0.33 → 4.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/facter/facts/bsd/load_averages.rb +1 -1
- data/lib/facter/facts/freebsd/dmi/bios/release_date.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/bios/vendor.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/bios/version.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/manufacturer.rb +17 -0
- data/lib/facter/facts/freebsd/dmi/product/name.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/product/serial_number.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/product/uuid.rb +19 -0
- data/lib/facter/facts/freebsd/memory/swap/available.rb +21 -0
- data/lib/facter/facts/freebsd/memory/swap/available_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/swap/capacity.rb +18 -0
- data/lib/facter/facts/freebsd/memory/swap/encrypted.rb +19 -0
- data/lib/facter/facts/freebsd/memory/swap/total.rb +21 -0
- data/lib/facter/facts/freebsd/memory/swap/total_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/swap/used.rb +20 -0
- data/lib/facter/facts/freebsd/memory/swap/used_bytes.rb +18 -0
- data/lib/facter/facts/freebsd/memory/system/available.rb +21 -0
- data/lib/facter/facts/freebsd/memory/system/available_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/system/capacity.rb +18 -0
- data/lib/facter/facts/freebsd/memory/system/total.rb +21 -0
- data/lib/facter/facts/freebsd/memory/system/total_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/system/used.rb +20 -0
- data/lib/facter/facts/freebsd/memory/system/used_bytes.rb +18 -0
- data/lib/facter/facts/solaris/load_averages.rb +14 -0
- data/lib/facter/framework/detector/os_detector.rb +5 -1
- data/lib/facter/os_hierarchy.json +3 -1
- data/lib/facter/resolvers/bsd/ffi/ffi_helper.rb +0 -10
- data/lib/facter/resolvers/freebsd/dmi_resolver.rb +38 -0
- data/lib/facter/resolvers/freebsd/ffi/ffi_helper.rb +19 -0
- data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +39 -0
- data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +41 -0
- data/lib/facter/resolvers/{load_averages_resolver.rb → linux/load_averages.rb} +0 -0
- data/lib/facter/resolvers/load_averages.rb +24 -0
- data/lib/facter/resolvers/os_release_resolver.rb +1 -1
- data/lib/facter/resolvers/solaris/ffi/ffi.rb +5 -0
- data/lib/facter/resolvers/solaris/networking_resolver.rb +2 -6
- data/lib/facter/resolvers/utils/ffi/load_averages.rb +27 -0
- data/lib/facter/resolvers/windows/ffi/ffi.rb +1 -1
- data/lib/facter/version.rb +1 -1
- metadata +31 -4
- data/lib/facter/resolvers/bsd/load_averages_resolver.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f04518bbd83ad1cf3fb6d5d026e1258cf46a374d7535f28066bcab0939e18360
|
4
|
+
data.tar.gz: c7ee4b28049507ce0035377863eca35faf2c5aed82bda495fbc8b8174aa7a3db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a369de0d02f412b1d385d5f52a7e4d458e076dc765eab53e2bb4fc0866eb56e7e8f28f0664a55eb7f3abe0e6cb23cc830df38d8b3b0862f33ac90e9648386f17
|
7
|
+
data.tar.gz: 905d45c95b4e2802e3fd4e990d75b6afb8d7ce641783283543c11d624ce3764576c5d39ac1d5550e68dd6c43385eca996f0251b2826ef3153e65b937903c9683
|
@@ -6,7 +6,7 @@ module Facts
|
|
6
6
|
FACT_NAME = 'load_averages'
|
7
7
|
|
8
8
|
def call_the_resolver
|
9
|
-
fact_value = Facter::Resolvers::
|
9
|
+
fact_value = Facter::Resolvers::LoadAverages.resolve(:load_averages)
|
10
10
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
11
11
|
end
|
12
12
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Dmi
|
6
|
+
module Bios
|
7
|
+
class ReleaseDate
|
8
|
+
FACT_NAME = 'dmi.bios.release_date'
|
9
|
+
ALIASES = 'bios_release_date'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::DmiBios.resolve(:bios_date)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Dmi
|
6
|
+
module Bios
|
7
|
+
class Vendor
|
8
|
+
FACT_NAME = 'dmi.bios.vendor'
|
9
|
+
ALIASES = 'bios_vendor'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::DmiBios.resolve(:bios_vendor)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Dmi
|
6
|
+
module Bios
|
7
|
+
class Version
|
8
|
+
FACT_NAME = 'dmi.bios.version'
|
9
|
+
ALIASES = 'bios_version'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::DmiBios.resolve(:bios_version)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Dmi
|
6
|
+
class Manufacturer
|
7
|
+
FACT_NAME = 'dmi.manufacturer'
|
8
|
+
ALIASES = 'manufacturer'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = Facter::Resolvers::Freebsd::DmiBios.resolve(:sys_vendor)
|
12
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Dmi
|
6
|
+
module Product
|
7
|
+
class Name
|
8
|
+
FACT_NAME = 'dmi.product.name'
|
9
|
+
ALIASES = 'productname'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::DmiBios.resolve(:product_name)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Dmi
|
6
|
+
module Product
|
7
|
+
class SerialNumber
|
8
|
+
FACT_NAME = 'dmi.product.serial_number'
|
9
|
+
ALIASES = 'serialnumber'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::DmiBios.resolve(:product_serial)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Dmi
|
6
|
+
module Product
|
7
|
+
class Uuid
|
8
|
+
FACT_NAME = 'dmi.product.uuid'
|
9
|
+
ALIASES = 'uuid'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::DmiBios.resolve(:product_uuid)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class Available
|
8
|
+
FACT_NAME = 'memory.swap.available'
|
9
|
+
ALIASES = 'swapfree'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:available_bytes)
|
13
|
+
fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
|
14
|
+
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class AvailableBytes
|
8
|
+
FACT_NAME = 'memory.swap.available_bytes'
|
9
|
+
ALIASES = 'swapfree_mb'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:available_bytes)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
14
|
+
Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class Capacity
|
8
|
+
FACT_NAME = 'memory.swap.capacity'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:capacity)
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class Encrypted
|
8
|
+
FACT_NAME = 'memory.swap.encrypted'
|
9
|
+
ALIASES = 'swapencrypted'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:encrypted)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class Total
|
8
|
+
FACT_NAME = 'memory.swap.total'
|
9
|
+
ALIASES = 'swapsize'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:total_bytes)
|
13
|
+
fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
|
14
|
+
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class TotalBytes
|
8
|
+
FACT_NAME = 'memory.swap.total_bytes'
|
9
|
+
ALIASES = 'swapsize_mb'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:total_bytes)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
14
|
+
Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class Used
|
8
|
+
FACT_NAME = 'memory.swap.used'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:used_bytes)
|
12
|
+
fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
|
13
|
+
|
14
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module Swap
|
7
|
+
class UsedBytes
|
8
|
+
FACT_NAME = 'memory.swap.used_bytes'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = Facter::Resolvers::Freebsd::SwapMemory.resolve(:used_bytes)
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module System
|
7
|
+
class Available
|
8
|
+
FACT_NAME = 'memory.system.available'
|
9
|
+
ALIASES = 'memoryfree'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SystemMemory.resolve(:available_bytes)
|
13
|
+
fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
|
14
|
+
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module System
|
7
|
+
class AvailableBytes
|
8
|
+
FACT_NAME = 'memory.system.available_bytes'
|
9
|
+
ALIASES = 'memoryfree_mb'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SystemMemory.resolve(:available_bytes)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
14
|
+
Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module System
|
7
|
+
class Capacity
|
8
|
+
FACT_NAME = 'memory.system.capacity'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = Facter::Resolvers::Freebsd::SystemMemory.resolve(:capacity)
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module System
|
7
|
+
class Total
|
8
|
+
FACT_NAME = 'memory.system.total'
|
9
|
+
ALIASES = 'memorysize'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SystemMemory.resolve(:total_bytes)
|
13
|
+
fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
|
14
|
+
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module System
|
7
|
+
class TotalBytes
|
8
|
+
FACT_NAME = 'memory.system.total_bytes'
|
9
|
+
ALIASES = 'memorysize_mb'
|
10
|
+
|
11
|
+
def call_the_resolver
|
12
|
+
fact_value = Facter::Resolvers::Freebsd::SystemMemory.resolve(:total_bytes)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
14
|
+
Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module System
|
7
|
+
class Used
|
8
|
+
FACT_NAME = 'memory.system.used'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = Facter::Resolvers::Freebsd::SystemMemory.resolve(:used_bytes)
|
12
|
+
fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
|
13
|
+
|
14
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Freebsd
|
5
|
+
module Memory
|
6
|
+
module System
|
7
|
+
class UsedBytes
|
8
|
+
FACT_NAME = 'memory.system.used_bytes'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = Facter::Resolvers::Freebsd::SystemMemory.resolve(:used_bytes)
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
class LoadAverages
|
6
|
+
FACT_NAME = 'load_averages'
|
7
|
+
|
8
|
+
def call_the_resolver
|
9
|
+
fact_value = Facter::Resolvers::LoadAverages.resolve(:load_averages)
|
10
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -44,7 +44,11 @@ class OsDetector
|
|
44
44
|
hierarchy = @os_hierarchy.construct_hierarchy(identifier)
|
45
45
|
if hierarchy.empty?
|
46
46
|
@log.debug("Could not detect hierarchy using os identifier: #{identifier} , trying with family")
|
47
|
-
|
47
|
+
|
48
|
+
detect_family.to_s.split.each do |family|
|
49
|
+
hierarchy = @os_hierarchy.construct_hierarchy(family)
|
50
|
+
return hierarchy unless hierarchy.empty?
|
51
|
+
end
|
48
52
|
end
|
49
53
|
|
50
54
|
if hierarchy.empty?
|
@@ -9,19 +9,9 @@ module Facter
|
|
9
9
|
extend FFI::Library
|
10
10
|
|
11
11
|
ffi_lib 'c'
|
12
|
-
attach_function :getloadavg, %i[pointer int], :int
|
13
12
|
attach_function :sysctl, %i[pointer uint pointer pointer pointer size_t], :int
|
14
13
|
end
|
15
14
|
|
16
|
-
def self.read_load_averages
|
17
|
-
raw_loadavg = FFI::MemoryPointer.new(:double, 3)
|
18
|
-
|
19
|
-
res = Libc.getloadavg(raw_loadavg, 3)
|
20
|
-
return unless res == 3
|
21
|
-
|
22
|
-
raw_loadavg.read_array_of_double(res)
|
23
|
-
end
|
24
|
-
|
25
15
|
def self.sysctl(type, oids)
|
26
16
|
name = FFI::MemoryPointer.new(:uint, oids.size)
|
27
17
|
name.write_array_of_uint(oids)
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
module Freebsd
|
6
|
+
class DmiBios < BaseResolver
|
7
|
+
@semaphore = Mutex.new
|
8
|
+
@fact_list ||= {}
|
9
|
+
|
10
|
+
class << self
|
11
|
+
#:model
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def post_resolve(fact_name)
|
16
|
+
@fact_list.fetch(fact_name) { read_facts(fact_name) }
|
17
|
+
end
|
18
|
+
|
19
|
+
def read_facts(fact_name)
|
20
|
+
require_relative 'ffi/ffi_helper'
|
21
|
+
|
22
|
+
@fact_list[:bios_date] = Facter::Freebsd::FfiHelper.kenv(:get, 'smbios.bios.reldate')
|
23
|
+
@fact_list[:bios_vendor] = Facter::Freebsd::FfiHelper.kenv(:get, 'smbios.bios.vendor')
|
24
|
+
@fact_list[:bios_version] = Facter::Freebsd::FfiHelper.kenv(:get, 'smbios.bios.version')
|
25
|
+
|
26
|
+
@fact_list[:product_name] = Facter::Freebsd::FfiHelper.kenv(:get, 'smbios.system.product')
|
27
|
+
@fact_list[:product_serial] = Facter::Freebsd::FfiHelper.kenv(:get, 'smbios.system.serial')
|
28
|
+
@fact_list[:product_uuid] = Facter::Freebsd::FfiHelper.kenv(:get, 'smbios.system.uuid')
|
29
|
+
|
30
|
+
@fact_list[:sys_vendor] = Facter::Freebsd::FfiHelper.kenv(:get, 'smbios.system.maker')
|
31
|
+
|
32
|
+
@fact_list[fact_name]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -8,10 +8,29 @@ module Facter
|
|
8
8
|
module Libc
|
9
9
|
extend FFI::Library
|
10
10
|
|
11
|
+
KENV_GET = 0
|
12
|
+
|
13
|
+
KENV_MVALLEN = 128
|
14
|
+
|
11
15
|
ffi_lib 'c'
|
16
|
+
attach_function :kenv, %i[int string pointer int], :int
|
12
17
|
attach_function :sysctlbyname, %i[string pointer pointer pointer size_t], :int
|
13
18
|
end
|
14
19
|
|
20
|
+
def self.kenv(action, name, value = nil)
|
21
|
+
case action
|
22
|
+
when :get
|
23
|
+
len = Libc::KENV_MVALLEN + 1
|
24
|
+
value = FFI::MemoryPointer.new(:char, len)
|
25
|
+
res = Libc.kenv(Libc::KENV_GET, name, value, len)
|
26
|
+
return nil if res.negative?
|
27
|
+
|
28
|
+
value.read_string(res).chomp("\0")
|
29
|
+
else
|
30
|
+
raise "Action #{action} not supported"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
15
34
|
def self.sysctl_by_name(type, name)
|
16
35
|
oldp = FFI::Pointer::NULL
|
17
36
|
oldlenp = FFI::MemoryPointer.new(:size_t)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
module Freebsd
|
6
|
+
class SwapMemory < BaseResolver
|
7
|
+
@semaphore = Mutex.new
|
8
|
+
@fact_list ||= {}
|
9
|
+
class << self
|
10
|
+
private
|
11
|
+
|
12
|
+
def post_resolve(fact_name)
|
13
|
+
@fact_list.fetch(fact_name) { read_swap_memory(fact_name) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def read_swap_memory(fact_name) # rubocop:disable Metrics/AbcSize
|
17
|
+
output = Facter::Core::Execution.execute('swapinfo -k', logger: log)
|
18
|
+
data = output.split("\n")[1..-1].map { |line| line.split(/\s+/) }
|
19
|
+
|
20
|
+
unless data.empty?
|
21
|
+
@fact_list[:total_bytes] = kilobytes_to_bytes(data.map { |line| line[1].to_i }.inject(:+))
|
22
|
+
@fact_list[:used_bytes] = kilobytes_to_bytes(data.map { |line| line[2].to_i }.inject(:+))
|
23
|
+
@fact_list[:available_bytes] = kilobytes_to_bytes(data.map { |line| line[3].to_i }.inject(:+))
|
24
|
+
@fact_list[:capacity] = FilesystemHelper.compute_capacity(@fact_list[:used_bytes],
|
25
|
+
@fact_list[:total_bytes])
|
26
|
+
@fact_list[:encrypted] = data.map { |line| line[0].end_with?('.eli') }.all?
|
27
|
+
end
|
28
|
+
|
29
|
+
@fact_list[fact_name]
|
30
|
+
end
|
31
|
+
|
32
|
+
def kilobytes_to_bytes(quantity)
|
33
|
+
(quantity.to_f * 1024).to_i
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
module Freebsd
|
6
|
+
class SystemMemory < BaseResolver
|
7
|
+
@semaphore = Mutex.new
|
8
|
+
@fact_list ||= {}
|
9
|
+
class << self
|
10
|
+
private
|
11
|
+
|
12
|
+
def post_resolve(fact_name)
|
13
|
+
@fact_list.fetch(fact_name) { calculate_system_memory(fact_name) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def calculate_system_memory(fact_name)
|
17
|
+
read_total_memory_in_bytes
|
18
|
+
read_available_memory_in_bytes
|
19
|
+
|
20
|
+
@fact_list[:used_bytes] = @fact_list[:total_bytes] - @fact_list[:available_bytes]
|
21
|
+
@fact_list[:capacity] = FilesystemHelper.compute_capacity(@fact_list[:used_bytes], @fact_list[:total_bytes])
|
22
|
+
|
23
|
+
@fact_list[fact_name]
|
24
|
+
end
|
25
|
+
|
26
|
+
def read_available_memory_in_bytes
|
27
|
+
output = Facter::Core::Execution.execute('vmstat -H --libxo json', logger: log)
|
28
|
+
data = JSON.parse(output)
|
29
|
+
@fact_list[:available_bytes] = data['memory']['free-memory'] * 1024
|
30
|
+
end
|
31
|
+
|
32
|
+
def read_total_memory_in_bytes
|
33
|
+
require_relative 'ffi/ffi_helper'
|
34
|
+
|
35
|
+
@fact_list[:total_bytes] = Facter::Freebsd::FfiHelper.sysctl_by_name(:long, 'hw.physmem')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
class LoadAverages < BaseResolver
|
6
|
+
@semaphore = Mutex.new
|
7
|
+
@fact_list ||= {}
|
8
|
+
class << self
|
9
|
+
private
|
10
|
+
|
11
|
+
def post_resolve(fact_name)
|
12
|
+
@fact_list.fetch(fact_name) { read_load_averages(fact_name) }
|
13
|
+
end
|
14
|
+
|
15
|
+
def read_load_averages(fact_name)
|
16
|
+
require_relative 'utils/ffi/load_averages'
|
17
|
+
@fact_list[:load_averages] = %w[1m 5m 15m].zip(Utils::Ffi::LoadAverages.read_load_averages).to_h
|
18
|
+
|
19
|
+
@fact_list[fact_name]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -56,7 +56,7 @@ module Facter
|
|
56
56
|
def process_name
|
57
57
|
return unless @fact_list[:name]
|
58
58
|
|
59
|
-
@fact_list[:name] = if @fact_list[:name].downcase.start_with?('red')
|
59
|
+
@fact_list[:name] = if @fact_list[:name].downcase.start_with?('red', 'oracle')
|
60
60
|
@fact_list[:name].split(' ')[0..1].join
|
61
61
|
else
|
62
62
|
@fact_list[:name].split(' ')[0].strip
|
@@ -12,11 +12,6 @@ module Facter
|
|
12
12
|
@fact_list ||= {}
|
13
13
|
@interfaces = {}
|
14
14
|
|
15
|
-
BINDINGS_KEY = {
|
16
|
-
FFI::AF_INET => :bindings,
|
17
|
-
FFI::AF_INET6 => :bindings6
|
18
|
-
}.freeze
|
19
|
-
|
20
15
|
class << self
|
21
16
|
private
|
22
17
|
|
@@ -141,7 +136,8 @@ module Facter
|
|
141
136
|
end
|
142
137
|
|
143
138
|
def add_dhcp(interface_name)
|
144
|
-
|
139
|
+
dhcpinfo_command = Facter::Core::Execution.which('dhcpinfo') || '/sbin/dhcpinfo'
|
140
|
+
result = Facter::Core::Execution.execute("#{dhcpinfo_command} -i #{interface_name} ServerID", logger: log)
|
145
141
|
|
146
142
|
@interfaces[interface_name][:dhcp] = result.chomp
|
147
143
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ffi'
|
4
|
+
|
5
|
+
module Facter
|
6
|
+
module Resolvers
|
7
|
+
module Utils
|
8
|
+
module Ffi
|
9
|
+
module LoadAverages
|
10
|
+
extend ::FFI::Library
|
11
|
+
ffi_lib ::FFI::Library::LIBC
|
12
|
+
|
13
|
+
attach_function :getloadavg, %i[pointer int], :int
|
14
|
+
|
15
|
+
def self.read_load_averages
|
16
|
+
raw_loadavg = ::FFI::MemoryPointer.new(:double, 3)
|
17
|
+
|
18
|
+
res = LoadAverages.getloadavg(raw_loadavg, 3)
|
19
|
+
return unless res == 3
|
20
|
+
|
21
|
+
raw_loadavg.read_array_of_double(res)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -30,7 +30,7 @@ module FFI
|
|
30
30
|
def read_wide_string_with_length(char_length)
|
31
31
|
# char_length is number of wide chars (typically excluding NULLs), *not* bytes
|
32
32
|
str = get_bytes(0, char_length * 2).force_encoding('UTF-16LE')
|
33
|
-
str.encode('UTF-8', str.encoding
|
33
|
+
str.encode('UTF-8', str.encoding)
|
34
34
|
end
|
35
35
|
|
36
36
|
def read_wide_string_without_length
|
data/lib/facter/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-08-
|
11
|
+
date: 2020-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -303,6 +303,28 @@ files:
|
|
303
303
|
- lib/facter/facts/debian/os/distro/release.rb
|
304
304
|
- lib/facter/facts/debian/os/release.rb
|
305
305
|
- lib/facter/facts/freebsd/disks.rb
|
306
|
+
- lib/facter/facts/freebsd/dmi/bios/release_date.rb
|
307
|
+
- lib/facter/facts/freebsd/dmi/bios/vendor.rb
|
308
|
+
- lib/facter/facts/freebsd/dmi/bios/version.rb
|
309
|
+
- lib/facter/facts/freebsd/dmi/manufacturer.rb
|
310
|
+
- lib/facter/facts/freebsd/dmi/product/name.rb
|
311
|
+
- lib/facter/facts/freebsd/dmi/product/serial_number.rb
|
312
|
+
- lib/facter/facts/freebsd/dmi/product/uuid.rb
|
313
|
+
- lib/facter/facts/freebsd/memory/swap/available.rb
|
314
|
+
- lib/facter/facts/freebsd/memory/swap/available_bytes.rb
|
315
|
+
- lib/facter/facts/freebsd/memory/swap/capacity.rb
|
316
|
+
- lib/facter/facts/freebsd/memory/swap/encrypted.rb
|
317
|
+
- lib/facter/facts/freebsd/memory/swap/total.rb
|
318
|
+
- lib/facter/facts/freebsd/memory/swap/total_bytes.rb
|
319
|
+
- lib/facter/facts/freebsd/memory/swap/used.rb
|
320
|
+
- lib/facter/facts/freebsd/memory/swap/used_bytes.rb
|
321
|
+
- lib/facter/facts/freebsd/memory/system/available.rb
|
322
|
+
- lib/facter/facts/freebsd/memory/system/available_bytes.rb
|
323
|
+
- lib/facter/facts/freebsd/memory/system/capacity.rb
|
324
|
+
- lib/facter/facts/freebsd/memory/system/total.rb
|
325
|
+
- lib/facter/facts/freebsd/memory/system/total_bytes.rb
|
326
|
+
- lib/facter/facts/freebsd/memory/system/used.rb
|
327
|
+
- lib/facter/facts/freebsd/memory/system/used_bytes.rb
|
306
328
|
- lib/facter/facts/freebsd/os/release.rb
|
307
329
|
- lib/facter/facts/freebsd/partitions.rb
|
308
330
|
- lib/facter/facts/freebsd/processors/count.rb
|
@@ -564,6 +586,7 @@ files:
|
|
564
586
|
- lib/facter/facts/solaris/kernelmajversion.rb
|
565
587
|
- lib/facter/facts/solaris/kernelrelease.rb
|
566
588
|
- lib/facter/facts/solaris/kernelversion.rb
|
589
|
+
- lib/facter/facts/solaris/load_averages.rb
|
567
590
|
- lib/facter/facts/solaris/macaddress_interfaces.rb
|
568
591
|
- lib/facter/facts/solaris/memory/swap/available.rb
|
569
592
|
- lib/facter/facts/solaris/memory/swap/available_bytes.rb
|
@@ -772,7 +795,6 @@ files:
|
|
772
795
|
- lib/facter/resolvers/augeas_resolver.rb
|
773
796
|
- lib/facter/resolvers/base_resolver.rb
|
774
797
|
- lib/facter/resolvers/bsd/ffi/ffi_helper.rb
|
775
|
-
- lib/facter/resolvers/bsd/load_averages_resolver.rb
|
776
798
|
- lib/facter/resolvers/bsd/processors.rb
|
777
799
|
- lib/facter/resolvers/containers.rb
|
778
800
|
- lib/facter/resolvers/debian_version.rb
|
@@ -784,13 +806,17 @@ files:
|
|
784
806
|
- lib/facter/resolvers/facterversion_resolver.rb
|
785
807
|
- lib/facter/resolvers/filesystems_resolver.rb
|
786
808
|
- lib/facter/resolvers/fips_enabled_resolver.rb
|
809
|
+
- lib/facter/resolvers/freebsd/dmi_resolver.rb
|
787
810
|
- lib/facter/resolvers/freebsd/ffi/ffi_helper.rb
|
788
811
|
- lib/facter/resolvers/freebsd/freebsd_version_resolver.rb
|
789
812
|
- lib/facter/resolvers/freebsd/geom_resolver.rb
|
790
813
|
- lib/facter/resolvers/freebsd/processors.rb
|
814
|
+
- lib/facter/resolvers/freebsd/swap_memory_resolver.rb
|
815
|
+
- lib/facter/resolvers/freebsd/system_memory_resolver.rb
|
791
816
|
- lib/facter/resolvers/hostname_resolver.rb
|
792
817
|
- lib/facter/resolvers/identity_resolver.rb
|
793
|
-
- lib/facter/resolvers/
|
818
|
+
- lib/facter/resolvers/linux/load_averages.rb
|
819
|
+
- lib/facter/resolvers/load_averages.rb
|
794
820
|
- lib/facter/resolvers/lpar_resolver.rb
|
795
821
|
- lib/facter/resolvers/lsb_release_resolver.rb
|
796
822
|
- lib/facter/resolvers/lspci.rb
|
@@ -836,6 +862,7 @@ files:
|
|
836
862
|
- lib/facter/resolvers/timezone_resolver.rb
|
837
863
|
- lib/facter/resolvers/uname_resolver.rb
|
838
864
|
- lib/facter/resolvers/uptime_resolver.rb
|
865
|
+
- lib/facter/resolvers/utils/ffi/load_averages.rb
|
839
866
|
- lib/facter/resolvers/utils/filesystem_helper.rb
|
840
867
|
- lib/facter/resolvers/utils/fingerprint.rb
|
841
868
|
- lib/facter/resolvers/utils/networking.rb
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Facter
|
4
|
-
module Resolvers
|
5
|
-
module Bsd
|
6
|
-
class LoadAverages < BaseResolver
|
7
|
-
@semaphore = Mutex.new
|
8
|
-
@fact_list ||= {}
|
9
|
-
class << self
|
10
|
-
private
|
11
|
-
|
12
|
-
def post_resolve(fact_name)
|
13
|
-
@fact_list.fetch(fact_name) { read_load_averages(fact_name) }
|
14
|
-
end
|
15
|
-
|
16
|
-
def read_load_averages(fact_name)
|
17
|
-
require_relative 'ffi/ffi_helper'
|
18
|
-
@fact_list[:load_averages] = %w[1m 5m 15m].zip(Facter::Bsd::FfiHelper.read_load_averages).to_h
|
19
|
-
|
20
|
-
@fact_list[fact_name]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|