facter 4.2.14 → 4.3.1

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: fe38d4eae3ec0102efa7f30f927e7d70b3a0140a80931f10425b262447e3f43f
4
- data.tar.gz: ab672ee4ac865a36bb027692040d2f9b9fe6a8a07db0ecace87b155f7f231c98
3
+ metadata.gz: d3dd94ae85f9b9327eac3cbcc63794f202f4eea27d7b8c2c80b8a5b354aca94a
4
+ data.tar.gz: a179d9b63edb75738a22d5ed2061c0b2b4313da80dad43af2ad9eb4b1e3bee27
5
5
  SHA512:
6
- metadata.gz: ab358318877365772cd5cdb39ee17ab3d88363eaf27bc44719580c11927f43be5ce5d0b4201db10bd689456039dfdfb724efe102e42aa74a9f07f179765c7fd4
7
- data.tar.gz: 984bc438d40536f5aee1f54c33c21cb8cbed9d7bbc1f62fa86cd068848f6c8fc20b1271be62c5e894d97baf9e6503c4ceaf3f95d146f40c219f2f9ca4936c5f9
6
+ metadata.gz: 33fd39d071e0033316518b51310290694d869c7b8f3b7d006c66f20629999cbcc549df6ed58b28d46c092664ba3a89c7f5813117bf5bff50c555202e79c99476
7
+ data.tar.gz: c824262cd5cdcb601b203bc4675c832348dce77ca9867f008a23cb8f8677812ab858cc3f11012b80deec949515d6419876b5480d25587e2a7df52c9df1c15540
@@ -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.14' unless defined?(VERSION)
4
+ VERSION = '4.3.1' 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.14
4
+ version: 4.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-08 00:00:00.000000000 Z
11
+ date: 2023-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -114,20 +114,6 @@ dependencies:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: '1.3'
117
- - !ruby/object:Gem::Dependency
118
- name: timecop
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '0.9'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '0.9'
131
117
  - !ruby/object:Gem::Dependency
132
118
  name: webmock
133
119
  requirement: !ruby/object:Gem::Requirement
@@ -1089,7 +1075,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1089
1075
  requirements:
1090
1076
  - - ">="
1091
1077
  - !ruby/object:Gem::Version
1092
- version: '2.3'
1078
+ version: '2.5'
1093
1079
  - - "<"
1094
1080
  - !ruby/object:Gem::Version
1095
1081
  version: '4.0'