facter 4.3.1 → 4.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/docs/generate_cli.rb +1 -1
  3. data/lib/facter/custom_facts/core/execution/base.rb +5 -4
  4. data/lib/facter/custom_facts/core/execution/posix.rb +1 -1
  5. data/lib/facter/custom_facts/core/execution/windows.rb +2 -2
  6. data/lib/facter/custom_facts/core/execution.rb +1 -1
  7. data/lib/facter/custom_facts/core/file_loader.rb +23 -24
  8. data/lib/facter/custom_facts/core/legacy_facter.rb +1 -1
  9. data/lib/facter/custom_facts/util/normalization.rb +8 -23
  10. data/lib/facter/custom_facts/util/windows_root.rb +1 -1
  11. data/lib/facter/facts/debian/architecture.rb +1 -1
  12. data/lib/facter/facts/linux/hypervisors/kvm.rb +2 -2
  13. data/lib/facter/facts/linux/os/architecture.rb +1 -1
  14. data/lib/facter/facts/linux/partitions.rb +4 -0
  15. data/lib/facter/facts/linux/processors/isa.rb +1 -10
  16. data/lib/facter/facts/ol/lsbdistdescription.rb +16 -0
  17. data/lib/facter/facts/ol/lsbdistid.rb +16 -0
  18. data/lib/facter/facts/ol/os/distro/description.rb +19 -0
  19. data/lib/facter/facts/ol/os/distro/id.rb +19 -0
  20. data/lib/facter/facts/windows/hypervisors/kvm.rb +2 -2
  21. data/lib/facter/framework/cli/cli_launcher.rb +3 -3
  22. data/lib/facter/framework/config/config_reader.rb +4 -0
  23. data/lib/facter/framework/config/fact_groups.rb +2 -2
  24. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +14 -2
  25. data/lib/facter/framework/core/file_loader.rb +896 -38
  26. data/lib/facter/framework/core/options/config_file_options.rb +4 -0
  27. data/lib/facter/framework/core/options/options_validator.rb +9 -2
  28. data/lib/facter/framework/detector/os_hierarchy.rb +1 -1
  29. data/lib/facter/framework/formatters/legacy_fact_formatter.rb +1 -1
  30. data/lib/facter/framework/formatters/yaml_fact_formatter.rb +2 -2
  31. data/lib/facter/framework/parsers/query_parser.rb +2 -1
  32. data/lib/facter/patches/sysfilesystem/sys/statvfs.rb +4 -4
  33. data/lib/facter/resolvers/aix/architecture.rb +1 -1
  34. data/lib/facter/resolvers/aix/filesystem.rb +1 -1
  35. data/lib/facter/resolvers/aix/hardware.rb +1 -1
  36. data/lib/facter/resolvers/aix/memory.rb +1 -1
  37. data/lib/facter/resolvers/aix/mountpoints.rb +2 -2
  38. data/lib/facter/resolvers/aix/networking.rb +5 -3
  39. data/lib/facter/resolvers/aix/partitions.rb +2 -2
  40. data/lib/facter/resolvers/bsd/processors.rb +1 -1
  41. data/lib/facter/resolvers/freebsd/processors.rb +2 -2
  42. data/lib/facter/resolvers/freebsd/swap_memory.rb +1 -1
  43. data/lib/facter/resolvers/gce.rb +9 -0
  44. data/lib/facter/resolvers/linux/hostname.rb +2 -2
  45. data/lib/facter/resolvers/load_averages.rb +1 -1
  46. data/lib/facter/resolvers/lspci.rb +1 -1
  47. data/lib/facter/resolvers/macosx/swap_memory.rb +1 -1
  48. data/lib/facter/resolvers/networking.rb +1 -1
  49. data/lib/facter/resolvers/open_vz.rb +1 -1
  50. data/lib/facter/resolvers/os_release.rb +3 -3
  51. data/lib/facter/resolvers/selinux.rb +3 -3
  52. data/lib/facter/resolvers/solaris/ffi/functions.rb +5 -3
  53. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  54. data/lib/facter/resolvers/solaris/mountpoints.rb +1 -1
  55. data/lib/facter/resolvers/virt_what.rb +6 -6
  56. data/lib/facter/resolvers/windows/ffi/hardware_ffi.rb +2 -2
  57. data/lib/facter/resolvers/windows/ffi/identity_ffi.rb +1 -1
  58. data/lib/facter/resolvers/windows/ffi/kernel_ffi.rb +2 -2
  59. data/lib/facter/resolvers/windows/ffi/memory_ffi.rb +2 -2
  60. data/lib/facter/resolvers/windows/ffi/networking_ffi.rb +3 -3
  61. data/lib/facter/resolvers/windows/ffi/system32_ffi.rb +1 -1
  62. data/lib/facter/resolvers/windows/ffi/winnls_ffi.rb +1 -1
  63. data/lib/facter/resolvers/windows/hardware_architecture.rb +1 -1
  64. data/lib/facter/resolvers/windows/identity.rb +1 -1
  65. data/lib/facter/resolvers/windows/kernel.rb +1 -1
  66. data/lib/facter/resolvers/windows/memory.rb +1 -1
  67. data/lib/facter/resolvers/windows/networking.rb +1 -1
  68. data/lib/facter/resolvers/windows/system32.rb +1 -1
  69. data/lib/facter/resolvers/windows/timezone.rb +1 -1
  70. data/lib/facter/resolvers/windows/virtualization.rb +2 -2
  71. data/lib/facter/resolvers/xen.rb +1 -1
  72. data/lib/facter/util/api_debugger.rb +1 -1
  73. data/lib/facter/util/facts/windows_release_finder.rb +2 -2
  74. data/lib/facter/util/linux/dhcp.rb +1 -1
  75. data/lib/facter/util/resolvers/ffi/hostname.rb +1 -1
  76. data/lib/facter/util/utils.rb +1 -1
  77. data/lib/facter/version.rb +1 -1
  78. data/lib/facter.rb +15 -6
  79. metadata +11 -8
  80. data/lib/facter/facts/windows/augeas/version.rb +0 -19
@@ -13,7 +13,7 @@ module Facter
13
13
  description = input[:description]
14
14
  kernel_version = input[:kernel_version]
15
15
 
16
- if version =~ /10.0/
16
+ if /10.0/.match?(version)
17
17
  check_version_10_11(consumerrel, kernel_version)
18
18
  else
19
19
  check_version_6(version, consumerrel) || check_version_5(version, consumerrel, description) || version
@@ -47,7 +47,7 @@ module Facter
47
47
  end
48
48
 
49
49
  def check_version_5(version, consumerrel, description)
50
- return unless version =~ /5.2/
50
+ return unless /5.2/.match?(version)
51
51
  return 'XP' if consumerrel
52
52
 
53
53
  description == 'R2' ? '2003 R2' : '2003'
@@ -45,7 +45,7 @@ module Facter
45
45
 
46
46
  lease_files.select do |file|
47
47
  content = Facter::Util::FileHelper.safe_read("#{dir}#{file}", nil)
48
- next unless content =~ /interface.*#{interface_name}/
48
+ next unless /interface.*#{interface_name}/.match?(content)
49
49
 
50
50
  dhcp = content.match(/dhcp-server-identifier ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/)
51
51
  return dhcp[1] if dhcp
@@ -36,7 +36,7 @@ module Facter
36
36
  raw_hostname.read_string
37
37
  end
38
38
 
39
- def self.getffiaddrinfo(hostname) # rubocop:disable Metrics/AbcSize
39
+ def self.getffiaddrinfo(hostname)
40
40
  ret = FFI::MemoryPointer.new(:pointer)
41
41
 
42
42
  hints = Facter::Util::Resolvers::Ffi::AddrInfo.new
@@ -14,7 +14,7 @@ module Facter
14
14
 
15
15
  def self.split_user_query(user_query)
16
16
  queries = user_query.split('.')
17
- queries.map! { |query| query =~ /^[0-9]+$/ ? query.to_i : query }
17
+ queries.map! { |query| /^[0-9]+$/.match?(query) ? query.to_i : query }
18
18
  end
19
19
 
20
20
  def self.deep_stringify_keys(object)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Facter
4
- VERSION = '4.3.1' unless defined?(VERSION)
4
+ VERSION = '4.4.1' unless defined?(VERSION)
5
5
  end
data/lib/facter.rb CHANGED
@@ -3,9 +3,9 @@
3
3
  require 'pathname'
4
4
  require_relative 'util/api_debugger' if ENV['API_DEBUG']
5
5
 
6
- require 'facter/version'
7
- require 'facter/framework/core/file_loader'
8
- require 'facter/framework/core/options/options_validator'
6
+ require_relative 'facter/version'
7
+ require_relative 'facter/framework/core/file_loader'
8
+ require_relative 'facter/framework/core/options/options_validator'
9
9
 
10
10
  module Facter
11
11
  class ResolveCustomFactError < StandardError; end
@@ -22,7 +22,7 @@ module Facter
22
22
  #
23
23
  # @api private
24
24
  def resolve(args_as_string)
25
- require 'facter/framework/cli/cli_launcher'
25
+ require_relative 'facter/framework/cli/cli_launcher'
26
26
 
27
27
  args = args_as_string.split(' ')
28
28
  Facter::OptionsValidator.validate(args)
@@ -380,7 +380,14 @@ module Facter
380
380
  resolved_facts = Facter::FactManager.instance.resolve_facts
381
381
  resolved_facts.reject! { |fact| fact.type == :custom && fact.value.nil? }
382
382
  collection = Facter::FactCollection.new.build_fact_collection!(resolved_facts)
383
- Hash[collection]
383
+
384
+ # Ensures order of keys in hash returned from Facter.to_hash() and
385
+ # Facter.resolve() is always stable
386
+ if collection.empty?
387
+ Hash[collection]
388
+ else
389
+ Hash[Facter::Utils.sort_hash_by_key(collection)]
390
+ end
384
391
  end
385
392
 
386
393
  # Check whether printing stack trace is enabled
@@ -510,8 +517,10 @@ module Facter
510
517
  resolved_facts = Facter::FactManager.instance.resolve_facts(user_query)
511
518
  resolved_facts.reject! { |fact| fact.type == :custom && fact.value.nil? }
512
519
 
520
+ # Ensures order of keys in hash returned from Facter.to_hash() and
521
+ # Facter.resolve() is always stable
513
522
  if user_query.count.zero?
514
- Facter::FactCollection.new.build_fact_collection!(resolved_facts)
523
+ Facter::Utils.sort_hash_by_key(Facter::FactCollection.new.build_fact_collection!(resolved_facts))
515
524
  else
516
525
  FormatterHelper.retrieve_facts_to_display_for_user_query(user_query, resolved_facts)
517
526
  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.3.1
4
+ version: 4.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-04 00:00:00.000000000 Z
11
+ date: 2023-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '12.3'
19
+ version: '13.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 12.3.3
22
+ version: 13.0.6
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '12.3'
29
+ version: '13.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 12.3.3
32
+ version: 13.0.6
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rspec
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -649,6 +649,10 @@ files:
649
649
  - lib/facter/facts/mariner/os/release.rb
650
650
  - lib/facter/facts/meego/os/release.rb
651
651
  - lib/facter/facts/oel/os/release.rb
652
+ - lib/facter/facts/ol/lsbdistdescription.rb
653
+ - lib/facter/facts/ol/lsbdistid.rb
654
+ - lib/facter/facts/ol/os/distro/description.rb
655
+ - lib/facter/facts/ol/os/distro/id.rb
652
656
  - lib/facter/facts/ol/os/release.rb
653
657
  - lib/facter/facts/openwrt/os/release.rb
654
658
  - lib/facter/facts/ovs/os/release.rb
@@ -776,7 +780,6 @@ files:
776
780
  - lib/facter/facts/ubuntu/os/distro/release.rb
777
781
  - lib/facter/facts/ubuntu/os/release.rb
778
782
  - lib/facter/facts/windows/aio_agent_version.rb
779
- - lib/facter/facts/windows/augeas/version.rb
780
783
  - lib/facter/facts/windows/az_metadata.rb
781
784
  - lib/facter/facts/windows/cloud/provider.rb
782
785
  - lib/facter/facts/windows/dhcp_servers.rb
@@ -1085,7 +1088,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1085
1088
  - !ruby/object:Gem::Version
1086
1089
  version: '0'
1087
1090
  requirements: []
1088
- rubygems_version: 3.1.6
1091
+ rubygems_version: 3.4.12
1089
1092
  signing_key:
1090
1093
  specification_version: 4
1091
1094
  summary: Facter, a system inventory tool
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Facts
4
- module Windows
5
- module Augeas
6
- class Version
7
- FACT_NAME = 'augeas.version'
8
- ALIASES = 'augeasversion'
9
-
10
- def call_the_resolver
11
- fact_value = Facter::Resolvers::Augeas.resolve(:augeas_version)
12
-
13
- [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
15
- end
16
- end
17
- end
18
- end
19
- end