openfact 5.7.0 → 6.1.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 +4 -4
- data/lib/docs/generate.rb +1 -5
- data/lib/docs/template.erb +1 -1
- data/lib/facter/custom_facts/core/aggregate.rb +2 -4
- data/lib/facter/custom_facts/core/execution/base.rb +10 -6
- data/lib/facter/custom_facts/core/execution/posix.rb +5 -5
- data/lib/facter/custom_facts/core/execution/windows.rb +5 -5
- data/lib/facter/custom_facts/core/execution.rb +3 -1
- data/lib/facter/custom_facts/core/resolvable.rb +4 -6
- data/lib/facter/custom_facts/util/collection.rb +0 -2
- data/lib/facter/custom_facts/util/config.rb +1 -1
- data/lib/facter/custom_facts/util/directory_loader.rb +3 -7
- data/lib/facter/custom_facts/util/fact.rb +2 -21
- data/lib/facter/custom_facts/util/parser.rb +5 -5
- data/lib/facter/custom_facts/util/resolution.rb +15 -8
- data/lib/facter/facts/aix/networking/interfaces.rb +1 -1
- data/lib/facter/facts/freebsd/ec2_metadata.rb +1 -1
- data/lib/facter/facts/freebsd/ec2_userdata.rb +1 -1
- data/lib/facter/facts/linux/az_metadata.rb +1 -1
- data/lib/facter/facts/linux/dhcp_servers.rb +1 -1
- data/lib/facter/facts/linux/ec2_metadata.rb +1 -1
- data/lib/facter/facts/linux/ec2_userdata.rb +1 -1
- data/lib/facter/facts/macosx/dhcp_servers.rb +1 -1
- data/lib/facter/facts/openbsd/ec2_metadata.rb +1 -1
- data/lib/facter/facts/openbsd/ec2_userdata.rb +1 -1
- data/lib/facter/facts/solaris/dhcp_servers.rb +1 -1
- data/lib/facter/facts/windows/az_metadata.rb +1 -1
- data/lib/facter/facts/windows/dhcp_servers.rb +1 -1
- data/lib/facter/facts/windows/ec2_metadata.rb +1 -1
- data/lib/facter/facts/windows/ec2_userdata.rb +1 -1
- data/lib/facter/framework/cli/cli.rb +7 -7
- data/lib/facter/framework/config/config_reader.rb +1 -1
- data/lib/facter/framework/core/cache_manager.rb +3 -6
- data/lib/facter/framework/core/options/option_store.rb +1 -1
- data/lib/facter/framework/core/options.rb +1 -1
- data/lib/facter/framework/formatters/legacy_fact_formatter.rb +1 -1
- data/lib/facter/framework/logging/logger.rb +1 -1
- data/lib/facter/models/fact_collection.rb +1 -3
- data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +1 -1
- data/lib/facter/resolvers/aix/mountpoints.rb +3 -3
- data/lib/facter/resolvers/aix/networking.rb +1 -1
- data/lib/facter/resolvers/az.rb +1 -1
- data/lib/facter/resolvers/ec2.rb +20 -8
- data/lib/facter/resolvers/gce.rb +1 -1
- data/lib/facter/resolvers/linux/docker_uptime.rb +1 -1
- data/lib/facter/resolvers/linux/hostname.rb +1 -1
- data/lib/facter/resolvers/linux/processors.rb +1 -1
- data/lib/facter/resolvers/macosx/mountpoints.rb +1 -0
- data/lib/facter/resolvers/mountpoints.rb +1 -1
- data/lib/facter/resolvers/networking.rb +1 -2
- data/lib/facter/resolvers/path.rb +1 -1
- data/lib/facter/resolvers/selinux.rb +1 -1
- data/lib/facter/resolvers/solaris/ffi/functions.rb +1 -0
- data/lib/facter/resolvers/solaris/ffi/structs.rb +38 -38
- data/lib/facter/resolvers/solaris/mountpoints.rb +1 -0
- data/lib/facter/resolvers/solaris/networking.rb +1 -2
- data/lib/facter/resolvers/solaris/os_release.rb +1 -1
- data/lib/facter/resolvers/solaris/processors.rb +1 -1
- data/lib/facter/resolvers/uname.rb +3 -3
- data/lib/facter/resolvers/windows/netkvm.rb +1 -2
- data/lib/facter/resolvers/windows/processors.rb +6 -6
- data/lib/facter/resolvers/windows/ssh.rb +1 -1
- data/lib/facter/resolvers/windows/system32.rb +1 -1
- data/lib/facter/resolvers/windows/timezone.rb +1 -1
- data/lib/facter/resolvers/windows/uptime.rb +1 -2
- data/lib/facter/resolvers/windows/virtualization.rb +1 -2
- data/lib/facter/resolvers/windows/win_os_description.rb +1 -2
- data/lib/facter/util/api_debugger.rb +1 -1
- data/lib/facter/util/facts/posix/virtual_detector.rb +2 -2
- data/lib/facter/util/facts/unit_converter.rb +2 -2
- data/lib/facter/util/facts/uptime_parser.rb +9 -9
- data/lib/facter/util/file_helper.rb +3 -4
- data/lib/facter/util/macosx/system_profile_executor.rb +1 -1
- data/lib/facter/util/resolvers/ffi/hostname.rb +1 -0
- data/lib/facter/util/resolvers/ffi/load_averages.rb +1 -0
- data/lib/facter/util/resolvers/http.rb +34 -5
- data/lib/facter/util/resolvers/networking/networking.rb +3 -3
- data/lib/facter/version.rb +1 -1
- data/lib/facter.rb +9 -9
- metadata +9 -21
|
@@ -15,19 +15,18 @@ module Facter
|
|
|
15
15
|
default_return
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
# rubocop:disable Style/SpecialGlobalVars
|
|
18
|
+
# rubocop:disable-next Style/SpecialGlobalVars
|
|
19
19
|
def safe_readlines(path, default_return = [], sep = $/, chomp: false)
|
|
20
20
|
return File.readlines(path, sep, chomp: chomp, encoding: Encoding::UTF_8) if File.readable?(path)
|
|
21
21
|
|
|
22
22
|
log_failed_to_read(path)
|
|
23
23
|
default_return
|
|
24
24
|
end
|
|
25
|
-
# rubocop:enable Style/SpecialGlobalVars
|
|
26
25
|
|
|
27
26
|
# This previously acted as a helper method for versions of Ruby older
|
|
28
27
|
# than 2.5, before Dir.children was added. As it isn't a private
|
|
29
|
-
# method, we can't remove it entirely until the next major
|
|
30
|
-
# release
|
|
28
|
+
# method, we can't remove it entirely until the next major OpenFact
|
|
29
|
+
# release.
|
|
31
30
|
def dir_children(path)
|
|
32
31
|
Dir.children(path)
|
|
33
32
|
end
|
|
@@ -6,6 +6,8 @@ module Facter
|
|
|
6
6
|
module Http
|
|
7
7
|
@log = Facter::Log.new(self)
|
|
8
8
|
|
|
9
|
+
class RequestError < StandardError; end
|
|
10
|
+
|
|
9
11
|
class << self
|
|
10
12
|
CONNECTION_TIMEOUT = 0.6
|
|
11
13
|
SESSION_TIMEOUT = 5
|
|
@@ -27,6 +29,15 @@ module Facter
|
|
|
27
29
|
make_request(url, headers, timeouts, 'GET', proxy)
|
|
28
30
|
end
|
|
29
31
|
|
|
32
|
+
# Makes a GET HTTP request and returns its response body.
|
|
33
|
+
#
|
|
34
|
+
# Unlike get_request, this method raises when the response code is
|
|
35
|
+
# not 200 or when the request fails. A successful empty response is
|
|
36
|
+
# still returned as an empty string.
|
|
37
|
+
def get_request!(url, headers = {}, timeouts = {}, proxy = true)
|
|
38
|
+
make_request!(url, headers, timeouts, 'GET', proxy)
|
|
39
|
+
end
|
|
40
|
+
|
|
30
41
|
# Makes a PUT HTTP request and returns its response
|
|
31
42
|
# @param (see #get_request)
|
|
32
43
|
# @return (see #get_request)
|
|
@@ -37,6 +48,28 @@ module Facter
|
|
|
37
48
|
private
|
|
38
49
|
|
|
39
50
|
def make_request(url, headers, timeouts, request_type, proxy)
|
|
51
|
+
response = perform_request(url, headers, timeouts, request_type, proxy)
|
|
52
|
+
|
|
53
|
+
successful_response?(response) ? response.body : ''
|
|
54
|
+
rescue StandardError => e
|
|
55
|
+
@log.debug("Trying to connect to #{url} but got: #{e.message}")
|
|
56
|
+
''
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def make_request!(url, headers, timeouts, request_type, proxy)
|
|
60
|
+
response = perform_request(url, headers, timeouts, request_type, proxy)
|
|
61
|
+
|
|
62
|
+
return response.body if successful_response?(response)
|
|
63
|
+
|
|
64
|
+
raise RequestError, "Request to #{url} failed with HTTP status #{response.code}"
|
|
65
|
+
rescue RequestError
|
|
66
|
+
raise
|
|
67
|
+
rescue StandardError => e
|
|
68
|
+
@log.debug("Trying to connect to #{url} but got: #{e.message}")
|
|
69
|
+
raise
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def perform_request(url, headers, timeouts, request_type, proxy)
|
|
40
73
|
require 'net/http'
|
|
41
74
|
|
|
42
75
|
uri = URI.parse(url)
|
|
@@ -52,11 +85,7 @@ module Facter
|
|
|
52
85
|
# Make the request
|
|
53
86
|
response = http.request(request)
|
|
54
87
|
response.uri = url
|
|
55
|
-
|
|
56
|
-
successful_response?(response) ? response.body : ''
|
|
57
|
-
rescue StandardError => e
|
|
58
|
-
@log.debug("Trying to connect to #{url} but got: #{e.message}")
|
|
59
|
-
''
|
|
88
|
+
response
|
|
60
89
|
end
|
|
61
90
|
|
|
62
91
|
def http_obj(parsed_url, timeouts, proxy)
|
|
@@ -117,9 +117,9 @@ module Facter
|
|
|
117
117
|
binding = find_valid_binding(bindings)
|
|
118
118
|
ip_protocol_type = ipv4_type ? '' : '6'
|
|
119
119
|
|
|
120
|
-
values["ip#{ip_protocol_type}"
|
|
121
|
-
values["netmask#{ip_protocol_type}"
|
|
122
|
-
values["network#{ip_protocol_type}"
|
|
120
|
+
values[:"ip#{ip_protocol_type}"] = binding[:address]
|
|
121
|
+
values[:"netmask#{ip_protocol_type}"] = binding[:netmask]
|
|
122
|
+
values[:"network#{ip_protocol_type}"] = binding[:network]
|
|
123
123
|
values[:scope6] = get_scope(binding[:address]) unless ipv4_type
|
|
124
124
|
end
|
|
125
125
|
end
|
data/lib/facter/version.rb
CHANGED
data/lib/facter.rb
CHANGED
|
@@ -15,7 +15,7 @@ module Facter
|
|
|
15
15
|
@already_searched = {}
|
|
16
16
|
|
|
17
17
|
class << self
|
|
18
|
-
# Method used by
|
|
18
|
+
# Method used by openvox-agent to retrieve facts
|
|
19
19
|
# @param args_as_string [string] facter cli arguments
|
|
20
20
|
#
|
|
21
21
|
# @return [Hash<String, Object>]
|
|
@@ -45,8 +45,8 @@ module Facter
|
|
|
45
45
|
Hash[queried_facts(cli.args)]
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
# Method used by cli to set
|
|
49
|
-
# in order to retrieve
|
|
48
|
+
# Method used by cli to set OpenVox paths
|
|
49
|
+
# in order to retrieve OpenVox custom and external facts
|
|
50
50
|
#
|
|
51
51
|
# @return nil
|
|
52
52
|
#
|
|
@@ -54,7 +54,7 @@ module Facter
|
|
|
54
54
|
def puppet_facts
|
|
55
55
|
require 'puppet'
|
|
56
56
|
|
|
57
|
-
# don't allow
|
|
57
|
+
# don't allow the OpenVox logger to be injected in OpenFact
|
|
58
58
|
Options[:allow_external_loggers] = false
|
|
59
59
|
|
|
60
60
|
Puppet.initialize_settings
|
|
@@ -69,7 +69,7 @@ module Facter
|
|
|
69
69
|
end
|
|
70
70
|
end
|
|
71
71
|
rescue LoadError => e
|
|
72
|
-
logger.error("Could not load
|
|
72
|
+
logger.error("Could not load the openvox gem, got #{e}")
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
# Alias method for Facter.fact()
|
|
@@ -375,7 +375,7 @@ module Facter
|
|
|
375
375
|
# @api public
|
|
376
376
|
def to_hash
|
|
377
377
|
log_blocked_facts
|
|
378
|
-
logger.debug("
|
|
378
|
+
logger.debug("OpenFact version: #{Facter::VERSION}")
|
|
379
379
|
|
|
380
380
|
resolved_facts = Facter::FactManager.instance.resolve_facts
|
|
381
381
|
resolved_facts.reject! { |fact| fact.type == :custom && fact.value.nil? }
|
|
@@ -439,7 +439,7 @@ module Facter
|
|
|
439
439
|
@already_searched[user_query]
|
|
440
440
|
end
|
|
441
441
|
|
|
442
|
-
# Returns
|
|
442
|
+
# Returns OpenFact version
|
|
443
443
|
#
|
|
444
444
|
# @return [String] Current version
|
|
445
445
|
#
|
|
@@ -456,7 +456,7 @@ module Facter
|
|
|
456
456
|
def to_user_output(cli_options, *args)
|
|
457
457
|
init_cli_options(cli_options)
|
|
458
458
|
logger.info("executed with command line: #{ARGV.drop(1).join(' ')}")
|
|
459
|
-
logger.debug("
|
|
459
|
+
logger.debug("OpenFact version: #{Facter::VERSION}")
|
|
460
460
|
log_blocked_facts
|
|
461
461
|
resolved_facts = resolve_facts_for_user_query(args)
|
|
462
462
|
fact_formatter = Facter::FormatterFactory.build(Facter::Options.get)
|
|
@@ -530,7 +530,7 @@ module Facter
|
|
|
530
530
|
resolved_facts = Facter::FactManager.instance.resolve_facts(user_query)
|
|
531
531
|
user_querie = resolved_facts.uniq(&:user_query).map(&:user_query).first
|
|
532
532
|
|
|
533
|
-
resolved_facts.reject! { |fact| fact.type == :custom && fact.value.nil? } if user_querie
|
|
533
|
+
resolved_facts.reject! { |fact| fact.type == :custom && fact.value.nil? } if user_querie && user_querie.empty?
|
|
534
534
|
|
|
535
535
|
resolved_facts
|
|
536
536
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openfact
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 6.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenVox Project
|
|
@@ -87,20 +87,14 @@ dependencies:
|
|
|
87
87
|
requirements:
|
|
88
88
|
- - "~>"
|
|
89
89
|
- !ruby/object:Gem::Version
|
|
90
|
-
version:
|
|
91
|
-
- - "<"
|
|
92
|
-
- !ruby/object:Gem::Version
|
|
93
|
-
version: '1.85'
|
|
90
|
+
version: 1.90.0
|
|
94
91
|
type: :development
|
|
95
92
|
prerelease: false
|
|
96
93
|
version_requirements: !ruby/object:Gem::Requirement
|
|
97
94
|
requirements:
|
|
98
95
|
- - "~>"
|
|
99
96
|
- !ruby/object:Gem::Version
|
|
100
|
-
version:
|
|
101
|
-
- - "<"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '1.85'
|
|
97
|
+
version: 1.90.0
|
|
104
98
|
- !ruby/object:Gem::Dependency
|
|
105
99
|
name: rubocop-performance
|
|
106
100
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -285,22 +279,16 @@ dependencies:
|
|
|
285
279
|
name: thor
|
|
286
280
|
requirement: !ruby/object:Gem::Requirement
|
|
287
281
|
requirements:
|
|
288
|
-
- - "
|
|
289
|
-
- !ruby/object:Gem::Version
|
|
290
|
-
version: 1.0.1
|
|
291
|
-
- - "<"
|
|
282
|
+
- - "~>"
|
|
292
283
|
- !ruby/object:Gem::Version
|
|
293
|
-
version: '
|
|
284
|
+
version: '1.5'
|
|
294
285
|
type: :runtime
|
|
295
286
|
prerelease: false
|
|
296
287
|
version_requirements: !ruby/object:Gem::Requirement
|
|
297
288
|
requirements:
|
|
298
|
-
- - "
|
|
299
|
-
- !ruby/object:Gem::Version
|
|
300
|
-
version: 1.0.1
|
|
301
|
-
- - "<"
|
|
289
|
+
- - "~>"
|
|
302
290
|
- !ruby/object:Gem::Version
|
|
303
|
-
version: '
|
|
291
|
+
version: '1.5'
|
|
304
292
|
- !ruby/object:Gem::Dependency
|
|
305
293
|
name: tsort
|
|
306
294
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1292,14 +1280,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1292
1280
|
requirements:
|
|
1293
1281
|
- - ">="
|
|
1294
1282
|
- !ruby/object:Gem::Version
|
|
1295
|
-
version: '
|
|
1283
|
+
version: '3.0'
|
|
1296
1284
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1297
1285
|
requirements:
|
|
1298
1286
|
- - ">="
|
|
1299
1287
|
- !ruby/object:Gem::Version
|
|
1300
1288
|
version: '0'
|
|
1301
1289
|
requirements: []
|
|
1302
|
-
rubygems_version: 4.0.
|
|
1290
|
+
rubygems_version: 4.0.16
|
|
1303
1291
|
specification_version: 4
|
|
1304
1292
|
summary: OpenFact, a system inventory tool
|
|
1305
1293
|
test_files: []
|