facter 4.0.15 → 4.0.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +5 -7
  4. data/CHANGELOG.md +33 -0
  5. data/VERSION +1 -1
  6. data/lib/custom_facts/util/parser.rb +1 -1
  7. data/lib/custom_facts/version.rb +1 -1
  8. data/lib/facter.rb +13 -17
  9. data/lib/facts/aix/partitions.rb +15 -0
  10. data/lib/facts/windows/ssh.rb +27 -0
  11. data/lib/facts_utils/uptime_parser.rb +3 -3
  12. data/lib/framework/cli/cli.rb +1 -1
  13. data/lib/framework/config/block_list.rb +1 -4
  14. data/lib/framework/config/config_reader.rb +29 -26
  15. data/lib/framework/core/fact_filter.rb +2 -2
  16. data/lib/framework/core/file_loader.rb +3 -3
  17. data/lib/framework/core/options.rb +57 -64
  18. data/lib/framework/core/options/config_file_options.rb +58 -48
  19. data/lib/framework/core/options/option_store.rb +156 -0
  20. data/lib/framework/core/options/options_validator.rb +42 -2
  21. data/lib/framework/logging/logger.rb +2 -0
  22. data/lib/framework/parsers/query_parser.rb +1 -1
  23. data/lib/models/fact_collection.rb +1 -1
  24. data/lib/resolvers/aix/filesystem_resolver.rb +3 -2
  25. data/lib/resolvers/aix/partitions.rb +86 -0
  26. data/lib/resolvers/aix/utils/odm_query.rb +2 -2
  27. data/lib/resolvers/debian_version.rb +2 -5
  28. data/lib/resolvers/disk_resolver.rb +2 -3
  29. data/lib/resolvers/dmi_resolver.rb +3 -3
  30. data/lib/resolvers/filesystems_resolver.rb +3 -3
  31. data/lib/resolvers/fips_enabled_resolver.rb +1 -4
  32. data/lib/resolvers/hostname_resolver.rb +4 -4
  33. data/lib/resolvers/load_averages_resolver.rb +1 -3
  34. data/lib/resolvers/memory_resolver.rb +2 -2
  35. data/lib/resolvers/mountpoints_resolver.rb +1 -3
  36. data/lib/resolvers/os_release_resolver.rb +3 -6
  37. data/lib/resolvers/partitions.rb +11 -6
  38. data/lib/resolvers/processors_resolver.rb +3 -3
  39. data/lib/resolvers/selinux_resolver.rb +9 -9
  40. data/lib/resolvers/solaris/filesystems_resolver.rb +1 -1
  41. data/lib/resolvers/ssh_resolver.rb +4 -43
  42. data/lib/resolvers/utils/ssh_helper.rb +27 -0
  43. data/lib/resolvers/windows/ssh.rb +47 -0
  44. data/lib/util/file_helper.rb +24 -0
  45. metadata +9 -6
  46. data/lib/framework/core/options/default_options.rb +0 -35
  47. data/lib/framework/core/options/helper_options.rb +0 -52
  48. data/lib/framework/core/options/priority_options.rb +0 -12
  49. data/lib/framework/core/options/validate_options.rb +0 -49
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.0.15
4
+ version: 4.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-08 00:00:00.000000000 Z
11
+ date: 2020-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -273,6 +273,7 @@ files:
273
273
  - lib/facts/aix/os/hardware.rb
274
274
  - lib/facts/aix/os/name.rb
275
275
  - lib/facts/aix/os/release.rb
276
+ - lib/facts/aix/partitions.rb
276
277
  - lib/facts/aix/path.rb
277
278
  - lib/facts/aix/puppet_version.rb
278
279
  - lib/facts/aix/ruby/platform.rb
@@ -734,6 +735,7 @@ files:
734
735
  - lib/facts/windows/ruby/sitedir.rb
735
736
  - lib/facts/windows/ruby/version.rb
736
737
  - lib/facts/windows/scope6_interfaces.rb
738
+ - lib/facts/windows/ssh.rb
737
739
  - lib/facts/windows/system_uptime/days.rb
738
740
  - lib/facts/windows/system_uptime/hours.rb
739
741
  - lib/facts/windows/system_uptime/seconds.rb
@@ -762,11 +764,8 @@ files:
762
764
  - lib/framework/core/file_loader.rb
763
765
  - lib/framework/core/options.rb
764
766
  - lib/framework/core/options/config_file_options.rb
765
- - lib/framework/core/options/default_options.rb
766
- - lib/framework/core/options/helper_options.rb
767
+ - lib/framework/core/options/option_store.rb
767
768
  - lib/framework/core/options/options_validator.rb
768
- - lib/framework/core/options/priority_options.rb
769
- - lib/framework/core/options/validate_options.rb
770
769
  - lib/framework/core/session_cache.rb
771
770
  - lib/framework/detector/os_detector.rb
772
771
  - lib/framework/formatters/formatter_factory.rb
@@ -792,6 +791,7 @@ files:
792
791
  - lib/resolvers/aix/mountpoints.rb
793
792
  - lib/resolvers/aix/networking_resolver.rb
794
793
  - lib/resolvers/aix/os_level_resolver.rb
794
+ - lib/resolvers/aix/partitions.rb
795
795
  - lib/resolvers/aix/utils/odm_query.rb
796
796
  - lib/resolvers/augeas_resolver.rb
797
797
  - lib/resolvers/base_resolver.rb
@@ -844,6 +844,7 @@ files:
844
844
  - lib/resolvers/utils/filesystem_helper.rb
845
845
  - lib/resolvers/utils/fingerprint.rb
846
846
  - lib/resolvers/utils/ssh.rb
847
+ - lib/resolvers/utils/ssh_helper.rb
847
848
  - lib/resolvers/windows/dmi_bios_resolver.rb
848
849
  - lib/resolvers/windows/dmi_computersystem_resolver.rb
849
850
  - lib/resolvers/windows/ffi/ffi.rb
@@ -867,6 +868,7 @@ files:
867
868
  - lib/resolvers/windows/networking_resolver.rb
868
869
  - lib/resolvers/windows/processors_resolver.rb
869
870
  - lib/resolvers/windows/product_release_resolver.rb
871
+ - lib/resolvers/windows/ssh.rb
870
872
  - lib/resolvers/windows/system32_resolver.rb
871
873
  - lib/resolvers/windows/uptime_resolver.rb
872
874
  - lib/resolvers/windows/utils/win32ole.rb
@@ -874,6 +876,7 @@ files:
874
876
  - lib/resolvers/windows/win_os_description_resolver.rb
875
877
  - lib/resolvers/wpar_resolver.rb
876
878
  - lib/util/api_debugger.rb
879
+ - lib/util/file_helper.rb
877
880
  - tasks/create_fact.rake
878
881
  - tasks/fact_generator/fact.erb
879
882
  - tasks/fact_generator/fact_creator.rb
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Facter
4
- module DefaultOptions
5
- def augment_with_defaults!
6
- cli_defaults
7
- global_defaults
8
- end
9
-
10
- DEFAULT_LOG_LEVEL = :warn
11
-
12
- def augment_with_to_hash_defaults!
13
- @options[:show_legacy] = true
14
- end
15
-
16
- private
17
-
18
- def cli_defaults
19
- @options[:debug] ||= false
20
- @options[:trace] ||= false
21
- @options[:verbose] ||= false
22
- @options[:log_level] ||= DEFAULT_LOG_LEVEL
23
- @options[:show_legacy] ||= false
24
- end
25
-
26
- def global_defaults
27
- @options[:block] ||= true
28
- @options[:custom_facts] ||= true
29
- @options[:custom_dir] ||= []
30
- @options[:external_facts] ||= true
31
- @options[:external_dir] ||= []
32
- @options[:ruby] ||= true
33
- end
34
- end
35
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Facter
4
- module HelperOptions
5
- def augment_with_helper_options!(user_query)
6
- @options[:user_query] = true if user_query.any?
7
-
8
- no_ruby
9
-
10
- # convert array or string to array
11
- @options[:external_dir] = [*@options[:external_dir]] unless @options[:external_dir].nil?
12
-
13
- @options[:log_level] = log_level || @options[:log_level].to_sym
14
- @options[:debug] = true if @options[:log_level] == :debug
15
-
16
- validate_log_level
17
-
18
- Log.level = @options[:log_level]
19
- Facter.trace(@options[:trace])
20
- end
21
-
22
- private
23
-
24
- def no_ruby
25
- return if @options[:ruby]
26
-
27
- @options[:custom_facts] = false
28
- @options[:blocked_facts] = ['ruby'].concat(@options[:blocked_facts] || [])
29
- end
30
-
31
- def log_level
32
- if @options[:debug] || @options[:log_level] == :trace
33
- :debug
34
- elsif @options[:verbose]
35
- :info
36
- end
37
- end
38
-
39
- def validate_log_level
40
- if @options[:log_level].empty?
41
- OptionsValidator.write_error_and_exit('the required argument for option'\
42
- " '--log-level' is missing")
43
- end
44
- unless OptionsValidator::LOG_LEVEL.include?(
45
- @options[:log_level].to_sym
46
- )
47
- OptionsValidator.write_error_and_exit("invalid log level #{@options[:log_level]} : expected none, trace,"\
48
- ' debug, info, warn, error, or fatal.')
49
- end
50
- end
51
- end
52
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Facter
4
- module PriorityOptions
5
- def augment_with_priority_options!(priority_options)
6
- priority_options.each do |key, val|
7
- @options[key.to_sym] = val
8
- @options[key.to_sym] = '' if key == 'log_level' && val == 'log_level'
9
- end
10
- end
11
- end
12
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Facter
4
- module ValidateOptions
5
- def validate_configs
6
- conflicting_configs.each do |op|
7
- next unless op.values[0] && op.values[1]
8
-
9
- message = "#{op.keys[0]} and #{op.keys[1]} options conflict: please specify only one"
10
- raise_error(message)
11
- end
12
- validate_log_options
13
- end
14
-
15
- private
16
-
17
- def conflicting_configs
18
- no_ruby = !@options[:ruby]
19
- no_custom_facts = !@options[:custom_facts]
20
- puppet = @options[:puppet]
21
- custom_dir = @options[:custom_dir].nil? ? false : @options[:custom_dir].any?
22
- external_dir = @options[:external_dir].nil? ? false : @options[:external_dir].any?
23
-
24
- [
25
- { 'no-ruby' => no_ruby, 'custom-dir' => custom_dir },
26
- { 'no-external-facts' => !@options[:external_facts], 'external-dir' => external_dir },
27
- { 'no-custom-facts' => no_custom_facts, 'custom-fir' => custom_dir },
28
- { 'no-ruby' => no_ruby, 'puppet' => puppet },
29
- { 'no-custom-facts' => no_custom_facts, 'puppet' => puppet }
30
- ]
31
- end
32
-
33
- def validate_log_options
34
- return unless [@options[:debug],
35
- @options[:verbose],
36
- @options[:log_level] != Facter::DefaultOptions::DEFAULT_LOG_LEVEL]
37
- .count(true) > 1
38
-
39
- raise_error('debug, verbose, and log-level options conflict: please specify only one.')
40
- end
41
-
42
- def raise_error(message)
43
- OptionsValidator.write_error_and_exit(message) if @options[:is_cli]
44
- log = Facter::Log.new(self)
45
- log.error(message, true)
46
- raise ArgumentError, message
47
- end
48
- end
49
- end