facter 4.2.13 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
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'