facter 4.0.28 → 4.0.29

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +2 -0
  3. data/CHANGELOG.md +12 -0
  4. data/README.md +5 -5
  5. data/VERSION +1 -1
  6. data/lib/facts/aix/interfaces.rb +16 -0
  7. data/lib/facts/aix/ipaddress6_interfaces.rb +20 -0
  8. data/lib/facts/aix/ipaddress_interfaces.rb +20 -0
  9. data/lib/facts/aix/macaddress_interfaces.rb +20 -0
  10. data/lib/facts/aix/mtu_interfaces.rb +20 -0
  11. data/lib/facts/aix/netmask6_interfaces.rb +20 -0
  12. data/lib/facts/aix/netmask_interfaces.rb +20 -0
  13. data/lib/facts/aix/network6_interfaces.rb +20 -0
  14. data/lib/facts/aix/network_interfaces.rb +20 -0
  15. data/lib/facts/aix/networking/interfaces.rb +18 -0
  16. data/lib/facts/aix/networking/ip6.rb +18 -0
  17. data/lib/facts/aix/networking/mac.rb +18 -0
  18. data/lib/facts/aix/networking/mtu.rb +17 -0
  19. data/lib/facts/aix/networking/netmask.rb +18 -0
  20. data/lib/facts/aix/networking/netmask6.rb +18 -0
  21. data/lib/facts/aix/networking/network.rb +18 -0
  22. data/lib/facts/aix/networking/network6.rb +18 -0
  23. data/lib/facts/aix/networking/primary.rb +1 -1
  24. data/lib/facts/aix/networking/scope6.rb +17 -0
  25. data/lib/facts/aix/processor.rb +20 -0
  26. data/lib/facts/aix/scope6_interfaces.rb +25 -0
  27. data/lib/facts/linux/dhcp_servers.rb +2 -2
  28. data/lib/facts/linux/networking/dhcp.rb +1 -4
  29. data/lib/facts/linux/networking/domain.rb +1 -0
  30. data/lib/facts/linux/networking/fqdn.rb +1 -0
  31. data/lib/facts/linux/networking/hostname.rb +1 -0
  32. data/lib/facts/linux/networking/interfaces.rb +1 -0
  33. data/lib/facts/linux/networking/ip.rb +1 -4
  34. data/lib/facts/linux/networking/ip6.rb +1 -4
  35. data/lib/facts/linux/networking/mac.rb +1 -4
  36. data/lib/facts/linux/networking/mtu.rb +1 -4
  37. data/lib/facts/linux/networking/netmask.rb +1 -4
  38. data/lib/facts/linux/networking/netmask6.rb +1 -4
  39. data/lib/facts/linux/networking/network.rb +1 -4
  40. data/lib/facts/linux/networking/network6.rb +1 -4
  41. data/lib/facts/linux/networking/scope6.rb +1 -4
  42. data/lib/facts/linux/scope6_interfaces.rb +6 -8
  43. data/lib/facts/macosx/is_virtual.rb +3 -3
  44. data/lib/facts/macosx/networking/domain.rb +1 -0
  45. data/lib/facts/macosx/networking/fqdn.rb +1 -0
  46. data/lib/facts/macosx/networking/hostname.rb +1 -0
  47. data/lib/facts/macosx/networking/interfaces.rb +0 -4
  48. data/lib/facts/macosx/networking/ip.rb +1 -4
  49. data/lib/facts/macosx/networking/ip6.rb +1 -4
  50. data/lib/facts/macosx/networking/mac.rb +1 -4
  51. data/lib/facts/macosx/networking/mtu.rb +1 -4
  52. data/lib/facts/macosx/networking/netmask.rb +1 -4
  53. data/lib/facts/macosx/networking/netmask6.rb +1 -4
  54. data/lib/facts/macosx/networking/network.rb +1 -4
  55. data/lib/facts/macosx/networking/network6.rb +1 -4
  56. data/lib/facts/macosx/networking/scope6.rb +1 -4
  57. data/lib/facts/macosx/system_profiler/boot_mode.rb +1 -1
  58. data/lib/facts/macosx/system_profiler/boot_rom_version.rb +1 -1
  59. data/lib/facts/macosx/system_profiler/boot_volume.rb +1 -1
  60. data/lib/facts/macosx/system_profiler/computer_name.rb +1 -1
  61. data/lib/facts/macosx/system_profiler/cores.rb +1 -1
  62. data/lib/facts/macosx/system_profiler/hardware_uuid.rb +1 -1
  63. data/lib/facts/macosx/system_profiler/kernel_version.rb +1 -1
  64. data/lib/facts/macosx/system_profiler/l2_cache_per_core.rb +1 -1
  65. data/lib/facts/macosx/system_profiler/l3_cache.rb +1 -1
  66. data/lib/facts/macosx/system_profiler/memory.rb +1 -1
  67. data/lib/facts/macosx/system_profiler/model_identifier.rb +1 -1
  68. data/lib/facts/macosx/system_profiler/model_name.rb +1 -1
  69. data/lib/facts/macosx/system_profiler/processor_name.rb +1 -1
  70. data/lib/facts/macosx/system_profiler/processor_speed.rb +1 -1
  71. data/lib/facts/macosx/system_profiler/processors.rb +1 -1
  72. data/lib/facts/macosx/system_profiler/secure_virtual_memory.rb +1 -1
  73. data/lib/facts/macosx/system_profiler/serial_number.rb +1 -1
  74. data/lib/facts/macosx/system_profiler/smc_version.rb +1 -1
  75. data/lib/facts/macosx/system_profiler/system_version.rb +1 -1
  76. data/lib/facts/macosx/system_profiler/uptime.rb +1 -1
  77. data/lib/facts/macosx/system_profiler/username.rb +1 -1
  78. data/lib/facts/macosx/virtual.rb +32 -0
  79. data/lib/resolvers/aix/networking_resolver.rb +47 -5
  80. data/lib/resolvers/macosx/{networking.rb → networking_resolver.rb} +30 -32
  81. data/lib/resolvers/macosx/system_profiler_resolver.rb +37 -53
  82. data/lib/resolvers/macosx/utils/system_profile_executor.rb +38 -0
  83. data/lib/resolvers/networking_linux_resolver.rb +1 -2
  84. data/lib/resolvers/os_release_resolver.rb +5 -0
  85. data/lib/resolvers/utils/networking.rb +19 -5
  86. data/lib/resolvers/windows/ffi/network_utils.rb +0 -27
  87. data/lib/resolvers/windows/networking_resolver.rb +7 -50
  88. metadata +25 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e1b413834535a34f7dac34136145899d86ad7b19365d96ffe123b2011bed6fc
4
- data.tar.gz: 1fd66831beb687d29381fc4fd49fecd414f178e5ef4e758918033034fc6faec3
3
+ metadata.gz: b74dafc5ca6ae53d18375036d71456437921a307d85b69ac5da8d74d7e181cb8
4
+ data.tar.gz: 1b1e51c2f775a2ea9045f39d55a1c5194ad7445ea14a50c65ec22c6bfe41a8cc
5
5
  SHA512:
6
- metadata.gz: 0d0607ee1bbfcbc7c3de2b30d73cfd457a553dad1dbdec7a8febd39738db9b17f7913db973fd1d23ec8a579625128bcf2e987b0fd682c6cd1a2fcd33a475b2d4
7
- data.tar.gz: c3269d4ea6b70bc43bee5551d704d13252daa535944332e1ba5d8616921f8b4290579f5a630a6945469db1fef8446e322f772f58552a36349411ba90af85d73e
6
+ metadata.gz: 524e66f0177cac92ec92e728561b525ec77bcbea3625681adfac36e13183f81eb84e19630b70109df5583824dc3247a20770f22c600dcd4b9dce7cf95dcbe976
7
+ data.tar.gz: cf57b8bdf3b4203f10607ceff79d3ca32449e5554a23f46ba0750f70ff5d4af516f9a63e1f4cea5b636460e6168f2ce912b99e085dd1d4fb3f3f168d25b5af6c
@@ -92,6 +92,8 @@ RSpec/FilePath:
92
92
  - 'spec/framework/formatters/legacy_fact_formatter_spec.rb'
93
93
  - 'spec/framework/formatters/yaml_fact_formatter_spec.rb'
94
94
  - 'spec/framework/utils/utils_spec.rb'
95
+ - 'spec/facter/resolvers/macosx/utils/system_profile_executor_spec.rb'
96
+
95
97
 
96
98
  # Offense count: 15
97
99
  # Configuration parameters: AssignmentOnly.
@@ -1,3 +1,15 @@
1
+ ## [4.0.29](https://github.com/puppetlabs/facter/tree/4.0.29) (2020-07-01)
2
+
3
+ [Full Changelog](https://github.com/puppetlabs/facter/compare/4.0.28...4.0.29)
4
+
5
+ ### Added
6
+ - \(FACT-2218\) virtual fact for OSX [\#1945](https://github.com/puppetlabs/facter/pull/1945) ([IrimieBogdan](https://github.com/IrimieBogdan))
7
+ - \(FACT-2232\) Add Aix networking facts [\#1937](https://github.com/puppetlabs/facter-ng/pull/1937) ([oanatmaria](https://github.com/oanatmaria))
8
+
9
+ ### Fixed
10
+ - \(FACT-2676\) fix os identifier for opensuse-leap [\#1944](https://github.com/puppetlabs/facter-ng/pull/1944) ([Filipovici-Andrei](https://github.com/Filipovici-Andrei))
11
+ - FACT-2679 Get DHCP for all interfaces on OSX [\#1940](https://github.com/puppetlabs/facter-ng/pull/1940) ([Filipovici-Andrei](https://github.com/Filipovici-Andrei))
12
+
1
13
  ## [4.0.28](https://github.com/puppetlabs/facter/tree/4.0.28) (2020-06-25)
2
14
 
3
15
  [Full Changelog](https://github.com/puppetlabs/facter/compare/4.0.27...4.0.28)
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # facter-ng
2
2
 
3
- [![Modules Status](https://github.com/puppetlabs/facter-ng/workflows/Acceptance%20tests/badge.svg?branch=master)](https://github.com/puppetlabs/facter-ng/actions)
4
- [![Modules Status](https://github.com/puppetlabs/facter-ng/workflows/Unit%20tests/badge.svg?branch=master)](https://github.com/puppetlabs/facter-ng/actions)
5
- [![Modules Status](https://github.com/puppetlabs/facter-ng/workflows/Checks/badge.svg?branch=master)](https://github.com/puppetlabs/facter-ng/actions)
6
- [![Test Coverage](https://api.codeclimate.com/v1/badges/bf43445f767f2d64170a/test_coverage)](https://codeclimate.com/github/puppetlabs/facter-ng/test_coverage)
7
- [![Maintainability](https://api.codeclimate.com/v1/badges/bf43445f767f2d64170a/maintainability)](https://codeclimate.com/github/puppetlabs/facter-ng/maintainability)
3
+ [![Modules Status](https://github.com/puppetlabs/facter/workflows/Acceptance%20tests/badge.svg?branch=master)](https://github.com/puppetlabs/facter/actions)
4
+ [![Modules Status](https://github.com/puppetlabs/facter/workflows/Unit%20tests/badge.svg?branch=master)](https://github.com/puppetlabs/facter/actions)
5
+ [![Modules Status](https://github.com/puppetlabs/facter/workflows/Checks/badge.svg?branch=master)](https://github.com/puppetlabs/facter/actions)
6
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/bf43445f767f2d64170a/test_coverage)](https://codeclimate.com/github/puppetlabs/facter/test_coverage)
7
+ [![Maintainability](https://api.codeclimate.com/v1/badges/bf43445f767f2d64170a/maintainability)](https://codeclimate.com/github/puppetlabs/facter/maintainability)
8
8
  [<img src="https://img.shields.io/badge/slack-puppet--dev-brightgreen?logo=slack">](https://puppetcommunity.slack.com/messages/C0W1X7ZAL)
9
9
 
10
10
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.0.28
1
+ 4.0.29
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class Interfaces
6
+ FACT_NAME = 'interfaces'
7
+
8
+ def call_the_resolver
9
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
10
+ fact_value = fact_value&.any? ? fact_value.keys.sort.join(',') : nil
11
+
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class Ipaddress6Interfaces
6
+ FACT_NAME = 'ipaddress6_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("ipaddress6_#{interface_name}", info[:ip6], :legacy) if info[:ip6]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class IpaddressInterfaces
6
+ FACT_NAME = 'ipaddress_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("ipaddress_#{interface_name}", info[:ip], :legacy) if info[:ip]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class MacaddressInterfaces
6
+ FACT_NAME = 'macaddress_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("macaddress_#{interface_name}", info[:mac], :legacy) if info[:mac]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class MtuInterfaces
6
+ FACT_NAME = 'mtu_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("mtu_#{interface_name}", info[:mtu], :legacy) if info[:mtu]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class Netmask6Interfaces
6
+ FACT_NAME = 'netmask6_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("netmask6_#{interface_name}", info[:netmask6], :legacy) if info[:netmask6]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class NetmaskInterfaces
6
+ FACT_NAME = 'netmask_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("netmask_#{interface_name}", info[:netmask], :legacy) if info[:netmask]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class Network6Interfaces
6
+ FACT_NAME = 'network6_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("network6_#{interface_name}", info[:network6], :legacy) if info[:network6]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class NetworkInterfaces
6
+ FACT_NAME = 'network_.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
+ interfaces&.each do |interface_name, info|
13
+ arr << Facter::ResolvedFact.new("network_#{interface_name}", info[:network], :legacy) if info[:network]
14
+ end
15
+
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Interfaces
7
+ FACT_NAME = 'networking.interfaces'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
11
+ fact_value = fact_value&.any? ? fact_value : nil
12
+
13
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Ip6
7
+ FACT_NAME = 'networking.ip6'
8
+ ALIASES = 'ipaddress6'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:ip6)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Mac
7
+ FACT_NAME = 'networking.mac'
8
+ ALIASES = 'macaddress'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:mac)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Mtu
7
+ FACT_NAME = 'networking.mtu'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:mtu)
11
+
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Netmask
7
+ FACT_NAME = 'networking.netmask'
8
+ ALIASES = 'netmask'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:netmask)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Netmask6
7
+ FACT_NAME = 'networking.netmask6'
8
+ ALIASES = 'netmask6'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:netmask6)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Network
7
+ FACT_NAME = 'networking.network'
8
+ ALIASES = 'network'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:network)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Network6
7
+ FACT_NAME = 'networking.network6'
8
+ ALIASES = 'network6'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:network6)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -7,7 +7,7 @@ module Facts
7
7
  FACT_NAME = 'networking.primary'
8
8
 
9
9
  def call_the_resolver
10
- fact_value = Facter::Resolvers::Aix::Networking.resolve(:primary)
10
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:primary_interface)
11
11
 
12
12
  Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
13
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Networking
6
+ class Scope6
7
+ FACT_NAME = 'networking.scope6'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Aix::Networking.resolve(:scope6)
11
+
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class Processor
6
+ FACT_NAME = 'processor.*'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ arr = []
11
+ processors = Facter::Resolvers::Aix::Processors.resolve(:models)
12
+
13
+ processors.count.times do |iterator|
14
+ arr << Facter::ResolvedFact.new("processor#{iterator}", processors[iterator], :legacy)
15
+ end
16
+ arr
17
+ end
18
+ end
19
+ end
20
+ end