facter 4.2.14 → 4.3.1

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: 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'