facter 4.2.13 → 4.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: deba395892bb9b2ded975e2c3a1ea31668e63a0e4229fcf77a2f711cfc1bb9ef
4
- data.tar.gz: 73d37ac458df2e0d19a48000b7340bb63eb54b184a6cb564c461257e05a3a893
3
+ metadata.gz: dfe2a8c1919132580a093c795105a288f6ffd88b926f1b11630cfce66f931174
4
+ data.tar.gz: b310aa4bad3a152a6e99d329137ffc0f1373d56906ba4e7d786fd96145d54a40
5
5
  SHA512:
6
- metadata.gz: acccf421fa6ed4b819120e8b8baf643188871216ade1c7484cf01ec4f19b93e397d55e3338f776de35d04120ed86dfcd6ca12318965819d023ff55fb7ad0e515
7
- data.tar.gz: b31c2ea4220672766d4f4a3a3c615105395b2680fec1c60449b506b398345d4f8678dd9ef88a89ab1956ceb395bd225f9a4695cb6fe4c54d943464d3b943a01f
6
+ metadata.gz: 2f83dae81deed77eb2058cb82ce4fc7a226dc2934b5708af7632cc7d9fbe8c7106826517ec4e2326a02c18b4bb6ad81733c77219eff02b2da235d03eb58295ac
7
+ data.tar.gz: 48aa7b6bb3a2fc26268458890f2147163cc6f61bec799dd0e8c3b0c78364744f849bb3125f60967cc92761edc3e8bb57e3309cc4b3f66c03608d1ab21f334404
@@ -88,6 +88,7 @@ module Facter
88
88
  end
89
89
  rescue StandardError => e
90
90
  @log.debug("Could not read mac for interface #{ifaddr.name}, got #{e}")
91
+ nil
91
92
  end
92
93
 
93
94
  def mac_from_sockaddr_of(ifaddr)
@@ -64,8 +64,25 @@ module Facter
64
64
  bindings.empty? ? nil : bindings.first
65
65
  end
66
66
 
67
+ IPV4_LINK_LOCAL_ADDR = IPAddr.new('169.254.0.0/16').freeze # RFC5735
68
+ IPV6_LINK_LOCAL_ADDR = IPAddr.new('fe80::/10').freeze # RFC4291
69
+ IPV6_UNIQUE_LOCAL_ADDR = IPAddr.new('fc00::/7').freeze # RFC4193
70
+
67
71
  def ignored_ip_address(addr)
68
- addr.empty? || addr.start_with?('127.', '169.254.') || addr.start_with?('fe80') || addr.eql?('::1')
72
+ return true if addr.empty?
73
+
74
+ ip = IPAddr.new(addr)
75
+ return true if ip.loopback?
76
+
77
+ [
78
+ IPV4_LINK_LOCAL_ADDR,
79
+ IPV6_LINK_LOCAL_ADDR,
80
+ IPV6_UNIQUE_LOCAL_ADDR
81
+ ].each do |range|
82
+ return true if range.include?(ip)
83
+ end
84
+
85
+ false
69
86
  end
70
87
 
71
88
  def calculate_mask_length(netmask)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Facter
4
- VERSION = '4.2.13' unless defined?(VERSION)
4
+ VERSION = '4.3.0' unless defined?(VERSION)
5
5
  end
data/lib/facter.rb CHANGED
@@ -18,7 +18,7 @@ module Facter
18
18
  # Method used by puppet-agent to retrieve facts
19
19
  # @param args_as_string [string] facter cli arguments
20
20
  #
21
- # @return query result
21
+ # @return [Hash<String, Object>]
22
22
  #
23
23
  # @api private
24
24
  def resolve(args_as_string)
@@ -42,7 +42,7 @@ module Facter
42
42
  cli_options[:show_legacy] ||= false
43
43
  Facter::Options.store(cli_options)
44
44
 
45
- queried_facts(cli.args)
45
+ Hash[queried_facts(cli.args)]
46
46
  end
47
47
 
48
48
  # Method used by cli to set puppet paths
@@ -370,7 +370,7 @@ module Facter
370
370
  # Retrieves a fact's value. Returns `nil` if no such fact exists.
371
371
  #
372
372
  # @param user_query [String] the fact name
373
- # @return [String] the value of the fact, or nil if no fact is found
373
+ # @return [Hash<String, Object>]
374
374
  #
375
375
  # @api public
376
376
  def to_hash
@@ -410,7 +410,7 @@ module Facter
410
410
  # @api public
411
411
  def value(user_query)
412
412
  user_query = user_query.to_s.downcase
413
- resolve_fact(user_query)
413
+ resolve_fact(user_query) unless @already_searched.include?(user_query)
414
414
 
415
415
  @already_searched[user_query]&.value
416
416
  end
@@ -427,7 +427,7 @@ module Facter
427
427
  # @api public
428
428
  def fact(user_query)
429
429
  user_query = user_query.to_s.downcase
430
- resolve_fact(user_query)
430
+ resolve_fact(user_query) unless @already_searched.include?(user_query)
431
431
 
432
432
  @already_searched[user_query]
433
433
  end
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.2.13
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-06 00:00:00.000000000 Z
11
+ date: 2023-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -1089,7 +1089,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1089
1089
  requirements:
1090
1090
  - - ">="
1091
1091
  - !ruby/object:Gem::Version
1092
- version: '2.3'
1092
+ version: '2.5'
1093
1093
  - - "<"
1094
1094
  - !ruby/object:Gem::Version
1095
1095
  version: '4.0'