cfacter 3.11.0.rc.20180314

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1046) hide show
  1. checksums.yaml +7 -0
  2. data/ext/facter/Makefile.erb +31 -0
  3. data/ext/facter/cpp-hocon/CMakeLists.txt +67 -0
  4. data/ext/facter/cpp-hocon/CONTRIBUTING.md +9 -0
  5. data/ext/facter/cpp-hocon/LICENSE +17 -0
  6. data/ext/facter/cpp-hocon/MAINTAINERS +33 -0
  7. data/ext/facter/cpp-hocon/README.md +74 -0
  8. data/ext/facter/cpp-hocon/acceptance/Gemfile +18 -0
  9. data/ext/facter/cpp-hocon/acceptance/Rakefile +7 -0
  10. data/ext/facter/cpp-hocon/acceptance/tests/fake.rb +0 -0
  11. data/ext/facter/cpp-hocon/appveyor.yml +41 -0
  12. data/ext/facter/cpp-hocon/lib/CMakeLists.txt +94 -0
  13. data/ext/facter/cpp-hocon/lib/Doxyfile.in +2312 -0
  14. data/ext/facter/cpp-hocon/lib/inc/hocon/config.hpp +734 -0
  15. data/ext/facter/cpp-hocon/lib/inc/hocon/config_exception.hpp +184 -0
  16. data/ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp +51 -0
  17. data/ext/facter/cpp-hocon/lib/inc/hocon/config_includer.hpp +53 -0
  18. data/ext/facter/cpp-hocon/lib/inc/hocon/config_includer_file.hpp +30 -0
  19. data/ext/facter/cpp-hocon/lib/inc/hocon/config_list.hpp +51 -0
  20. data/ext/facter/cpp-hocon/lib/inc/hocon/config_mergeable.hpp +72 -0
  21. data/ext/facter/cpp-hocon/lib/inc/hocon/config_object.hpp +81 -0
  22. data/ext/facter/cpp-hocon/lib/inc/hocon/config_origin.hpp +98 -0
  23. data/ext/facter/cpp-hocon/lib/inc/hocon/config_parse_options.hpp +139 -0
  24. data/ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp +47 -0
  25. data/ext/facter/cpp-hocon/lib/inc/hocon/config_render_options.hpp +128 -0
  26. data/ext/facter/cpp-hocon/lib/inc/hocon/config_resolve_options.hpp +83 -0
  27. data/ext/facter/cpp-hocon/lib/inc/hocon/config_syntax.hpp +24 -0
  28. data/ext/facter/cpp-hocon/lib/inc/hocon/config_value.hpp +267 -0
  29. data/ext/facter/cpp-hocon/lib/inc/hocon/config_value_factory.hpp +48 -0
  30. data/ext/facter/cpp-hocon/lib/inc/hocon/functional_list.hpp +318 -0
  31. data/ext/facter/cpp-hocon/lib/inc/hocon/parser/config_document.hpp +95 -0
  32. data/ext/facter/cpp-hocon/lib/inc/hocon/parser/config_document_factory.hpp +39 -0
  33. data/ext/facter/cpp-hocon/lib/inc/hocon/parser/config_node.hpp +32 -0
  34. data/ext/facter/cpp-hocon/lib/inc/hocon/path.hpp +60 -0
  35. data/ext/facter/cpp-hocon/lib/inc/hocon/program_options.hpp +84 -0
  36. data/ext/facter/cpp-hocon/lib/inc/hocon/types.hpp +57 -0
  37. data/ext/facter/cpp-hocon/lib/inc/internal/config_document_parser.hpp +83 -0
  38. data/ext/facter/cpp-hocon/lib/inc/internal/config_parser.hpp +55 -0
  39. data/ext/facter/cpp-hocon/lib/inc/internal/config_util.hpp +17 -0
  40. data/ext/facter/cpp-hocon/lib/inc/internal/container.hpp +28 -0
  41. data/ext/facter/cpp-hocon/lib/inc/internal/default_transformer.hpp +12 -0
  42. data/ext/facter/cpp-hocon/lib/inc/internal/full_includer.hpp +13 -0
  43. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/abstract_config_node.hpp +16 -0
  44. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/abstract_config_node_value.hpp +12 -0
  45. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_array.hpp +17 -0
  46. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_comment.hpp +14 -0
  47. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_complex_value.hpp +25 -0
  48. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_concatenation.hpp +16 -0
  49. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_field.hpp +29 -0
  50. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_include.hpp +26 -0
  51. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_object.hpp +45 -0
  52. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_path.hpp +25 -0
  53. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_root.hpp +24 -0
  54. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_simple_value.hpp +21 -0
  55. data/ext/facter/cpp-hocon/lib/inc/internal/nodes/config_node_single_token.hpp +20 -0
  56. data/ext/facter/cpp-hocon/lib/inc/internal/parseable.hpp +128 -0
  57. data/ext/facter/cpp-hocon/lib/inc/internal/path_builder.hpp +20 -0
  58. data/ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp +55 -0
  59. data/ext/facter/cpp-hocon/lib/inc/internal/replaceable_merge_stack.hpp +14 -0
  60. data/ext/facter/cpp-hocon/lib/inc/internal/resolve_context.hpp +53 -0
  61. data/ext/facter/cpp-hocon/lib/inc/internal/resolve_result.hpp +21 -0
  62. data/ext/facter/cpp-hocon/lib/inc/internal/resolve_source.hpp +55 -0
  63. data/ext/facter/cpp-hocon/lib/inc/internal/simple_config_document.hpp +28 -0
  64. data/ext/facter/cpp-hocon/lib/inc/internal/simple_config_origin.hpp +67 -0
  65. data/ext/facter/cpp-hocon/lib/inc/internal/simple_include_context.hpp +22 -0
  66. data/ext/facter/cpp-hocon/lib/inc/internal/simple_includer.hpp +79 -0
  67. data/ext/facter/cpp-hocon/lib/inc/internal/substitution_expression.hpp +28 -0
  68. data/ext/facter/cpp-hocon/lib/inc/internal/token.hpp +45 -0
  69. data/ext/facter/cpp-hocon/lib/inc/internal/tokenizer.hpp +143 -0
  70. data/ext/facter/cpp-hocon/lib/inc/internal/tokens.hpp +135 -0
  71. data/ext/facter/cpp-hocon/lib/inc/internal/unmergeable.hpp +20 -0
  72. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_boolean.hpp +26 -0
  73. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_concatenation.hpp +59 -0
  74. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_delayed_merge.hpp +53 -0
  75. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_delayed_merge_object.hpp +57 -0
  76. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_double.hpp +28 -0
  77. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_int.hpp +25 -0
  78. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_long.hpp +28 -0
  79. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_null.hpp +33 -0
  80. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_number.hpp +38 -0
  81. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_reference.hpp +38 -0
  82. data/ext/facter/cpp-hocon/lib/inc/internal/values/config_string.hpp +32 -0
  83. data/ext/facter/cpp-hocon/lib/inc/internal/values/simple_config_list.hpp +75 -0
  84. data/ext/facter/cpp-hocon/lib/inc/internal/values/simple_config_object.hpp +107 -0
  85. data/ext/facter/cpp-hocon/lib/namespaces.dox.in +6 -0
  86. data/ext/facter/cpp-hocon/lib/src/config.cc +573 -0
  87. data/ext/facter/cpp-hocon/lib/src/config_document_factory.cc +24 -0
  88. data/ext/facter/cpp-hocon/lib/src/config_document_parser.cc +620 -0
  89. data/ext/facter/cpp-hocon/lib/src/config_parse_options.cc +101 -0
  90. data/ext/facter/cpp-hocon/lib/src/config_parser.cc +399 -0
  91. data/ext/facter/cpp-hocon/lib/src/config_render_options.cc +44 -0
  92. data/ext/facter/cpp-hocon/lib/src/config_resolve_options.cc +24 -0
  93. data/ext/facter/cpp-hocon/lib/src/config_util.cc +95 -0
  94. data/ext/facter/cpp-hocon/lib/src/config_value_factory.cc +68 -0
  95. data/ext/facter/cpp-hocon/lib/src/default_transformer.cc +94 -0
  96. data/ext/facter/cpp-hocon/lib/src/nodes/abstract_config_node.cc +19 -0
  97. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_array.cc +13 -0
  98. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_comment.cc +15 -0
  99. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_complex_value.cc +50 -0
  100. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_concatenation.cc +14 -0
  101. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_field.cc +80 -0
  102. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_include.cc +38 -0
  103. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_object.cc +318 -0
  104. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_path.cc +47 -0
  105. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_root.cc +70 -0
  106. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_simple_value.cc +50 -0
  107. data/ext/facter/cpp-hocon/lib/src/nodes/config_node_single_token.cc +18 -0
  108. data/ext/facter/cpp-hocon/lib/src/parseable.cc +325 -0
  109. data/ext/facter/cpp-hocon/lib/src/path.cc +219 -0
  110. data/ext/facter/cpp-hocon/lib/src/path_builder.cc +38 -0
  111. data/ext/facter/cpp-hocon/lib/src/path_parser.cc +253 -0
  112. data/ext/facter/cpp-hocon/lib/src/resolve_context.cc +139 -0
  113. data/ext/facter/cpp-hocon/lib/src/resolve_source.cc +216 -0
  114. data/ext/facter/cpp-hocon/lib/src/simple_config_document.cc +69 -0
  115. data/ext/facter/cpp-hocon/lib/src/simple_config_origin.cc +246 -0
  116. data/ext/facter/cpp-hocon/lib/src/simple_include_context.cc +18 -0
  117. data/ext/facter/cpp-hocon/lib/src/simple_includer.cc +186 -0
  118. data/ext/facter/cpp-hocon/lib/src/substitution_expression.cc +35 -0
  119. data/ext/facter/cpp-hocon/lib/src/token.cc +52 -0
  120. data/ext/facter/cpp-hocon/lib/src/tokenizer.cc +568 -0
  121. data/ext/facter/cpp-hocon/lib/src/tokens.cc +257 -0
  122. data/ext/facter/cpp-hocon/lib/src/values/config_boolean.cc +34 -0
  123. data/ext/facter/cpp-hocon/lib/src/values/config_concatenation.cc +260 -0
  124. data/ext/facter/cpp-hocon/lib/src/values/config_delayed_merge.cc +223 -0
  125. data/ext/facter/cpp-hocon/lib/src/values/config_delayed_merge_object.cc +180 -0
  126. data/ext/facter/cpp-hocon/lib/src/values/config_double.cc +35 -0
  127. data/ext/facter/cpp-hocon/lib/src/values/config_int.cc +35 -0
  128. data/ext/facter/cpp-hocon/lib/src/values/config_long.cc +35 -0
  129. data/ext/facter/cpp-hocon/lib/src/values/config_null.cc +35 -0
  130. data/ext/facter/cpp-hocon/lib/src/values/config_number.cc +78 -0
  131. data/ext/facter/cpp-hocon/lib/src/values/config_object.cc +97 -0
  132. data/ext/facter/cpp-hocon/lib/src/values/config_reference.cc +85 -0
  133. data/ext/facter/cpp-hocon/lib/src/values/config_string.cc +47 -0
  134. data/ext/facter/cpp-hocon/lib/src/values/config_value.cc +289 -0
  135. data/ext/facter/cpp-hocon/lib/src/values/simple_config_list.cc +219 -0
  136. data/ext/facter/cpp-hocon/lib/src/values/simple_config_object.cc +515 -0
  137. data/ext/facter/cpp-hocon/lib/tests/CMakeLists.txt +42 -0
  138. data/ext/facter/cpp-hocon/lib/tests/concatenation_test.cc +401 -0
  139. data/ext/facter/cpp-hocon/lib/tests/conf_parser_test.cc +715 -0
  140. data/ext/facter/cpp-hocon/lib/tests/config_document_parser_test.cc +208 -0
  141. data/ext/facter/cpp-hocon/lib/tests/config_document_tests.cc +110 -0
  142. data/ext/facter/cpp-hocon/lib/tests/config_node_test.cc +338 -0
  143. data/ext/facter/cpp-hocon/lib/tests/config_substitution_test.cc +897 -0
  144. data/ext/facter/cpp-hocon/lib/tests/config_test.cc +151 -0
  145. data/ext/facter/cpp-hocon/lib/tests/config_value_factory_test.cc +60 -0
  146. data/ext/facter/cpp-hocon/lib/tests/config_value_test.cc +111 -0
  147. data/ext/facter/cpp-hocon/lib/tests/fixtures.hpp.in +3 -0
  148. data/ext/facter/cpp-hocon/lib/tests/fixtures/test01.conf +91 -0
  149. data/ext/facter/cpp-hocon/lib/tests/fixtures/test01.json +4 -0
  150. data/ext/facter/cpp-hocon/lib/tests/main.cc +8 -0
  151. data/ext/facter/cpp-hocon/lib/tests/path_test.cc +129 -0
  152. data/ext/facter/cpp-hocon/lib/tests/program_options.cc +63 -0
  153. data/ext/facter/cpp-hocon/lib/tests/test.conf +1 -0
  154. data/ext/facter/cpp-hocon/lib/tests/test_utils.cc +452 -0
  155. data/ext/facter/cpp-hocon/lib/tests/test_utils.hpp +139 -0
  156. data/ext/facter/cpp-hocon/lib/tests/token_test.cc +108 -0
  157. data/ext/facter/cpp-hocon/lib/tests/tokenizer_test.cc +694 -0
  158. data/ext/facter/cpp-hocon/lib/version.h.in +28 -0
  159. data/ext/facter/cpp-hocon/locales/CMakeLists.txt +4 -0
  160. data/ext/facter/cpp-hocon/locales/cpp-hocon.pot +767 -0
  161. data/ext/facter/extconf.rb +22 -0
  162. data/ext/facter/facter/CMakeLists.txt +183 -0
  163. data/ext/facter/facter/CONTRIBUTING.md +99 -0
  164. data/ext/facter/facter/Extensibility.md +133 -0
  165. data/ext/facter/facter/LICENSE +17 -0
  166. data/ext/facter/facter/MAINTAINERS +28 -0
  167. data/ext/facter/facter/README.md +295 -0
  168. data/ext/facter/facter/Rakefile +42 -0
  169. data/ext/facter/facter/acceptance/Gemfile +21 -0
  170. data/ext/facter/facter/acceptance/Rakefile +342 -0
  171. data/ext/facter/facter/acceptance/bin/ci-bootstrap-from-artifacts.sh +55 -0
  172. data/ext/facter/facter/acceptance/config/aio/options.rb +9 -0
  173. data/ext/facter/facter/acceptance/config/git/options.rb +7 -0
  174. data/ext/facter/facter/acceptance/config/nodes/aix-53-power.yaml +7 -0
  175. data/ext/facter/facter/acceptance/config/nodes/aix-61-power.yaml +7 -0
  176. data/ext/facter/facter/acceptance/config/nodes/aix-71-power.yaml +7 -0
  177. data/ext/facter/facter/acceptance/config/nodes/huaweios-6-powerpc.yaml +7 -0
  178. data/ext/facter/facter/acceptance/config/nodes/solaris-10-sparc.yaml +9 -0
  179. data/ext/facter/facter/acceptance/config/nodes/solaris-11-sparc.yaml +9 -0
  180. data/ext/facter/facter/acceptance/lib/facter/acceptance/base_fact_utils.rb +563 -0
  181. data/ext/facter/facter/acceptance/lib/facter/acceptance/user_fact_utils.rb +132 -0
  182. data/ext/facter/facter/acceptance/lib/helper.rb +1 -0
  183. data/ext/facter/facter/acceptance/lib/puppet/acceptance/common_utils.rb +10 -0
  184. data/ext/facter/facter/acceptance/lib/puppet/acceptance/git_utils.rb +19 -0
  185. data/ext/facter/facter/acceptance/lib/puppet/acceptance/install_utils.rb +58 -0
  186. data/ext/facter/facter/acceptance/setup/aio/pre-suite/010_Install.rb +22 -0
  187. data/ext/facter/facter/acceptance/setup/aio/pre-suite/021_InstallAristaModule.rb +12 -0
  188. data/ext/facter/facter/acceptance/setup/aio/pre-suite/022_Remove_LD_PRELOAD.rb +11 -0
  189. data/ext/facter/facter/acceptance/setup/common/00_EnvSetup.rb +64 -0
  190. data/ext/facter/facter/acceptance/setup/common/pre-suite/000-delete-puppet-when-none.rb +11 -0
  191. data/ext/facter/facter/acceptance/setup/git/pre-suite/01_TestSetup.rb +31 -0
  192. data/ext/facter/facter/acceptance/tests/custom_facts/custom_fact_with_10001_weight_overrides_external_fact.rb +30 -0
  193. data/ext/facter/facter/acceptance/tests/custom_facts/having_multiple_facts_in_one_file.rb +40 -0
  194. data/ext/facter/facter/acceptance/tests/custom_facts/using_win32ole_should_not_hang.rb +33 -0
  195. data/ext/facter/facter/acceptance/tests/external_facts/env_var_overrides_external_fact.rb +46 -0
  196. data/ext/facter/facter/acceptance/tests/external_facts/external_dir_overrides_default_external_fact.rb +34 -0
  197. data/ext/facter/facter/acceptance/tests/external_facts/external_fact_overrides_custom_fact.rb +29 -0
  198. data/ext/facter/facter/acceptance/tests/external_facts/external_fact_overrides_custom_fact_with_10000_weight_or_less.rb +30 -0
  199. data/ext/facter/facter/acceptance/tests/external_facts/external_fact_overrides_custom_fact_with_confine.rb +35 -0
  200. data/ext/facter/facter/acceptance/tests/external_facts/external_fact_stderr_messages_output_to_stderr.rb +49 -0
  201. data/ext/facter/facter/acceptance/tests/external_facts/external_facts_only_run_once.rb +43 -0
  202. data/ext/facter/facter/acceptance/tests/external_facts/fact_directory_precedence.rb +109 -0
  203. data/ext/facter/facter/acceptance/tests/external_facts/non_root_users_default_external_fact_directory.rb +142 -0
  204. data/ext/facter/facter/acceptance/tests/external_facts/root_uses_default_external_fact_dir.rb +34 -0
  205. data/ext/facter/facter/acceptance/tests/external_facts/structured_executable_facts.rb +139 -0
  206. data/ext/facter/facter/acceptance/tests/facter_returns_success_on_non_existent_fact.rb +9 -0
  207. data/ext/facter/facter/acceptance/tests/facts/dmi.rb +51 -0
  208. data/ext/facter/facter/acceptance/tests/facts/facterversion.rb +11 -0
  209. data/ext/facter/facter/acceptance/tests/facts/identity.rb +52 -0
  210. data/ext/facter/facter/acceptance/tests/facts/networking_facts.rb +76 -0
  211. data/ext/facter/facter/acceptance/tests/facts/non_root_users_without_errors.rb +32 -0
  212. data/ext/facter/facter/acceptance/tests/facts/operatingsystem_detection_after_clear_on_ubuntu.rb +26 -0
  213. data/ext/facter/facter/acceptance/tests/facts/os_processors_and_kernel.rb +20 -0
  214. data/ext/facter/facter/acceptance/tests/facts/partitions.rb +37 -0
  215. data/ext/facter/facter/acceptance/tests/facts/productname.rb +15 -0
  216. data/ext/facter/facter/acceptance/tests/facts/ruby.rb +59 -0
  217. data/ext/facter/facter/acceptance/tests/facts/validate_file_system_size_bytes.rb +37 -0
  218. data/ext/facter/facter/acceptance/tests/facts/verify_tmpfs_file_system.rb +54 -0
  219. data/ext/facter/facter/acceptance/tests/load_libfacter.rb +66 -0
  220. data/ext/facter/facter/acceptance/tests/no_errors_on_stderr.rb +10 -0
  221. data/ext/facter/facter/acceptance/tests/options/color.rb +16 -0
  222. data/ext/facter/facter/acceptance/tests/options/config.rb +27 -0
  223. data/ext/facter/facter/acceptance/tests/options/config_file/blocklist.rb +35 -0
  224. data/ext/facter/facter/acceptance/tests/options/config_file/blocklist_from_puppet_facts.rb +40 -0
  225. data/ext/facter/facter/acceptance/tests/options/config_file/custom_dir_overridden_by_cli_custom_dir.rb +56 -0
  226. data/ext/facter/facter/acceptance/tests/options/config_file/custom_facts.rb +42 -0
  227. data/ext/facter/facter/acceptance/tests/options/config_file/custom_facts_list.rb +56 -0
  228. data/ext/facter/facter/acceptance/tests/options/config_file/debug.rb +34 -0
  229. data/ext/facter/facter/acceptance/tests/options/config_file/debug_override_config_file.rb +34 -0
  230. data/ext/facter/facter/acceptance/tests/options/config_file/default_file_location.rb +37 -0
  231. data/ext/facter/facter/acceptance/tests/options/config_file/external_dir_conflicts_with_cli_no_external_facts.rb +37 -0
  232. data/ext/facter/facter/acceptance/tests/options/config_file/external_dir_overridden_by_cli_external_dir.rb +40 -0
  233. data/ext/facter/facter/acceptance/tests/options/config_file/external_facts.rb +37 -0
  234. data/ext/facter/facter/acceptance/tests/options/config_file/external_facts_list.rb +43 -0
  235. data/ext/facter/facter/acceptance/tests/options/config_file/load_from_ruby.rb +73 -0
  236. data/ext/facter/facter/acceptance/tests/options/config_file/log_level.rb +35 -0
  237. data/ext/facter/facter/acceptance/tests/options/config_file/no_custom_facts_and_custom_dir.rb +43 -0
  238. data/ext/facter/facter/acceptance/tests/options/config_file/no_custom_facts_and_facterlib.rb +43 -0
  239. data/ext/facter/facter/acceptance/tests/options/config_file/no_custom_facts_and_load_path.rb +49 -0
  240. data/ext/facter/facter/acceptance/tests/options/config_file/no_external_facts.rb +38 -0
  241. data/ext/facter/facter/acceptance/tests/options/config_file/no_external_facts_and_external_dir.rb +34 -0
  242. data/ext/facter/facter/acceptance/tests/options/config_file/no_ruby_disables_custom_facts.rb +52 -0
  243. data/ext/facter/facter/acceptance/tests/options/config_file/no_ruby_disables_ruby_facts.rb +34 -0
  244. data/ext/facter/facter/acceptance/tests/options/config_file/trace.rb +48 -0
  245. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_cached_facts_clear_by_empty_ttls_cache_list.rb +71 -0
  246. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_cached_facts_creates_json_cache_file.rb +48 -0
  247. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_cached_facts_expire_facts_do_not_read_the_old_cached_value.rb +58 -0
  248. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_cached_facts_expire_facts_refresh_the_cached_value.rb +61 -0
  249. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_cached_facts_read_from_the_cached_value.rb +57 -0
  250. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_cached_facts_that_are_corrupt_are_refreshed.rb +53 -0
  251. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_cached_facts_that_are_empty_return_an_empty_value.rb +53 -0
  252. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_puppet_facts_creates_json_for_cached_facts.rb +45 -0
  253. data/ext/facter/facter/acceptance/tests/options/config_file/ttls_puppet_facts_honors_cached_facts.rb +54 -0
  254. data/ext/facter/facter/acceptance/tests/options/config_file/verbose.rb +34 -0
  255. data/ext/facter/facter/acceptance/tests/options/custom_facts.rb +34 -0
  256. data/ext/facter/facter/acceptance/tests/options/custom_facts_facterlib.rb +33 -0
  257. data/ext/facter/facter/acceptance/tests/options/custom_facts_list.rb +48 -0
  258. data/ext/facter/facter/acceptance/tests/options/custom_facts_load_path.rb +42 -0
  259. data/ext/facter/facter/acceptance/tests/options/debug.rb +12 -0
  260. data/ext/facter/facter/acceptance/tests/options/external_facts.rb +28 -0
  261. data/ext/facter/facter/acceptance/tests/options/external_facts_list.rb +35 -0
  262. data/ext/facter/facter/acceptance/tests/options/help.rb +13 -0
  263. data/ext/facter/facter/acceptance/tests/options/json.rb +43 -0
  264. data/ext/facter/facter/acceptance/tests/options/list_block_groups.rb +16 -0
  265. data/ext/facter/facter/acceptance/tests/options/list_cache_groups.rb +16 -0
  266. data/ext/facter/facter/acceptance/tests/options/log_level.rb +13 -0
  267. data/ext/facter/facter/acceptance/tests/options/no_block.rb +34 -0
  268. data/ext/facter/facter/acceptance/tests/options/no_cache_should_not_cache_facts.rb +43 -0
  269. data/ext/facter/facter/acceptance/tests/options/no_cache_should_not_load_cached_facts.rb +58 -0
  270. data/ext/facter/facter/acceptance/tests/options/no_cache_should_not_refresh_cached_facts.rb +63 -0
  271. data/ext/facter/facter/acceptance/tests/options/no_color.rb +16 -0
  272. data/ext/facter/facter/acceptance/tests/options/no_custom_facts.rb +34 -0
  273. data/ext/facter/facter/acceptance/tests/options/no_custom_facts_and_custom_dir.rb +19 -0
  274. data/ext/facter/facter/acceptance/tests/options/no_custom_facts_and_facterlib.rb +34 -0
  275. data/ext/facter/facter/acceptance/tests/options/no_custom_facts_and_load_path.rb +43 -0
  276. data/ext/facter/facter/acceptance/tests/options/no_external_facts.rb +28 -0
  277. data/ext/facter/facter/acceptance/tests/options/no_external_facts_and_external_dir.rb +19 -0
  278. data/ext/facter/facter/acceptance/tests/options/no_ruby.rb +44 -0
  279. data/ext/facter/facter/acceptance/tests/options/puppet_facts.rb +35 -0
  280. data/ext/facter/facter/acceptance/tests/options/show_legacy.rb +18 -0
  281. data/ext/facter/facter/acceptance/tests/options/strict.rb +11 -0
  282. data/ext/facter/facter/acceptance/tests/options/trace.rb +36 -0
  283. data/ext/facter/facter/acceptance/tests/options/verbose.rb +12 -0
  284. data/ext/facter/facter/acceptance/tests/options/version.rb +12 -0
  285. data/ext/facter/facter/acceptance/tests/options/yaml.rb +43 -0
  286. data/ext/facter/facter/acceptance/tests/ticket_1123_facter_with_invalid_locale.rb +22 -0
  287. data/ext/facter/facter/acceptance/tests/ticket_1238_hostname_fqdn.rb +57 -0
  288. data/ext/facter/facter/appveyor.yml +43 -0
  289. data/ext/facter/facter/cmake/FindBLKID.cmake +6 -0
  290. data/ext/facter/facter/cmake/FindCPPHOCON.cmake +6 -0
  291. data/ext/facter/facter/cmake/FindDependency.cmake +54 -0
  292. data/ext/facter/facter/cmake/FindOPENSSL.cmake +10 -0
  293. data/ext/facter/facter/cmake/FindRuby.cmake +286 -0
  294. data/ext/facter/facter/cmake/FindWHEREAMI.cmake +6 -0
  295. data/ext/facter/facter/cmake/FindYAMLCPP.cmake +17 -0
  296. data/ext/facter/facter/contrib/dockerfiles/travis-cpp-builder/Dockerfile +56 -0
  297. data/ext/facter/facter/contrib/dockerfiles/travis-facter-builder/Dockerfile +23 -0
  298. data/ext/facter/facter/contrib/dockerfiles/travis-facter-coverity/Dockerfile +40 -0
  299. data/ext/facter/facter/contrib/dockerfiles/travis-facter-coverity/_coverity-submit.erb +12 -0
  300. data/ext/facter/facter/contrib/dockerfiles/travis-facter-coverity/fix_curl_command.patch +32 -0
  301. data/ext/facter/facter/exe/CMakeLists.txt +39 -0
  302. data/ext/facter/facter/exe/facter.cc +377 -0
  303. data/ext/facter/facter/ext/build_defaults.yaml +16 -0
  304. data/ext/facter/facter/ext/debian/changelog.erb +11 -0
  305. data/ext/facter/facter/ext/debian/compat +1 -0
  306. data/ext/facter/facter/ext/debian/control +14 -0
  307. data/ext/facter/facter/ext/debian/copyright +19 -0
  308. data/ext/facter/facter/ext/debian/docs +2 -0
  309. data/ext/facter/facter/ext/debian/facter.install +4 -0
  310. data/ext/facter/facter/ext/debian/lintian-overrides +0 -0
  311. data/ext/facter/facter/ext/debian/rules +39 -0
  312. data/ext/facter/facter/ext/debian/source/format +1 -0
  313. data/ext/facter/facter/ext/project_data.yaml +30 -0
  314. data/ext/facter/facter/ext/redhat/facter.spec.erb +113 -0
  315. data/ext/facter/facter/ext/windows/facter.bat +8 -0
  316. data/ext/facter/facter/ext/windows/facter_interactive.bat +6 -0
  317. data/ext/facter/facter/ext/windows/run_facter_interactive.bat +9 -0
  318. data/ext/facter/facter/factergo/example/main.go +17 -0
  319. data/ext/facter/facter/factergo/facter.go +42 -0
  320. data/ext/facter/facter/factergo/facter_test.go +25 -0
  321. data/ext/facter/facter/lib/CMakeLists.txt +409 -0
  322. data/ext/facter/facter/lib/Doxyfile +2313 -0
  323. data/ext/facter/facter/lib/Facter.java.in +110 -0
  324. data/ext/facter/facter/lib/Gemfile +11 -0
  325. data/ext/facter/facter/lib/Rakefile +8 -0
  326. data/ext/facter/facter/lib/docs/generate.rb +25 -0
  327. data/ext/facter/facter/lib/docs/namespaces.dox +129 -0
  328. data/ext/facter/facter/lib/docs/template.erb +43 -0
  329. data/ext/facter/facter/lib/facter.rb.in +45 -0
  330. data/ext/facter/facter/lib/gemspec.in +21 -0
  331. data/ext/facter/facter/lib/inc/facter/cwrapper.hpp +18 -0
  332. data/ext/facter/facter/lib/inc/facter/facts/array_value.hpp +125 -0
  333. data/ext/facter/facter/lib/inc/facter/facts/collection.hpp +339 -0
  334. data/ext/facter/facter/lib/inc/facter/facts/external/resolver.hpp +49 -0
  335. data/ext/facter/facter/lib/inc/facter/facts/fact.hpp +669 -0
  336. data/ext/facter/facter/lib/inc/facter/facts/map_value.hpp +127 -0
  337. data/ext/facter/facter/lib/inc/facter/facts/os.hpp +202 -0
  338. data/ext/facter/facter/lib/inc/facter/facts/os_family.hpp +58 -0
  339. data/ext/facter/facter/lib/inc/facter/facts/resolver.hpp +126 -0
  340. data/ext/facter/facter/lib/inc/facter/facts/scalar_value.hpp +152 -0
  341. data/ext/facter/facter/lib/inc/facter/facts/value.hpp +164 -0
  342. data/ext/facter/facter/lib/inc/facter/facts/vm.hpp +157 -0
  343. data/ext/facter/facter/lib/inc/facter/logging/logging.hpp +192 -0
  344. data/ext/facter/facter/lib/inc/facter/ruby/ruby.hpp +62 -0
  345. data/ext/facter/facter/lib/inc/facter/util/config.hpp +84 -0
  346. data/ext/facter/facter/lib/inc/facter/util/string.hpp +72 -0
  347. data/ext/facter/facter/lib/inc/internal/facts/aix/disk_resolver.hpp +25 -0
  348. data/ext/facter/facter/lib/inc/internal/facts/aix/filesystem_resolver.hpp +41 -0
  349. data/ext/facter/facter/lib/inc/internal/facts/aix/kernel_resolver.hpp +25 -0
  350. data/ext/facter/facter/lib/inc/internal/facts/aix/memory_resolver.hpp +25 -0
  351. data/ext/facter/facter/lib/inc/internal/facts/aix/networking_resolver.hpp +49 -0
  352. data/ext/facter/facter/lib/inc/internal/facts/aix/operating_system_resolver.hpp +24 -0
  353. data/ext/facter/facter/lib/inc/internal/facts/aix/processor_resolver.hpp +25 -0
  354. data/ext/facter/facter/lib/inc/internal/facts/aix/serial_number_resolver.hpp +27 -0
  355. data/ext/facter/facter/lib/inc/internal/facts/bsd/filesystem_resolver.hpp +30 -0
  356. data/ext/facter/facter/lib/inc/internal/facts/bsd/networking_resolver.hpp +59 -0
  357. data/ext/facter/facter/lib/inc/internal/facts/bsd/uptime_resolver.hpp +24 -0
  358. data/ext/facter/facter/lib/inc/internal/facts/cache.hpp +71 -0
  359. data/ext/facter/facter/lib/inc/internal/facts/external/execution_resolver.hpp +31 -0
  360. data/ext/facter/facter/lib/inc/internal/facts/external/json_resolver.hpp +31 -0
  361. data/ext/facter/facter/lib/inc/internal/facts/external/text_resolver.hpp +31 -0
  362. data/ext/facter/facter/lib/inc/internal/facts/external/windows/powershell_resolver.hpp +34 -0
  363. data/ext/facter/facter/lib/inc/internal/facts/external/yaml_resolver.hpp +31 -0
  364. data/ext/facter/facter/lib/inc/internal/facts/freebsd/dmi_resolver.hpp +28 -0
  365. data/ext/facter/facter/lib/inc/internal/facts/freebsd/memory_resolver.hpp +25 -0
  366. data/ext/facter/facter/lib/inc/internal/facts/freebsd/networking_resolver.hpp +42 -0
  367. data/ext/facter/facter/lib/inc/internal/facts/freebsd/operating_system_resolver.hpp +24 -0
  368. data/ext/facter/facter/lib/inc/internal/facts/freebsd/processor_resolver.hpp +25 -0
  369. data/ext/facter/facter/lib/inc/internal/facts/freebsd/virtualization_resolver.hpp +27 -0
  370. data/ext/facter/facter/lib/inc/internal/facts/freebsd/zfs_resolver.hpp +24 -0
  371. data/ext/facter/facter/lib/inc/internal/facts/freebsd/zpool_resolver.hpp +24 -0
  372. data/ext/facter/facter/lib/inc/internal/facts/glib/load_average_resolver.hpp +24 -0
  373. data/ext/facter/facter/lib/inc/internal/facts/linux/disk_resolver.hpp +25 -0
  374. data/ext/facter/facter/lib/inc/internal/facts/linux/dmi_resolver.hpp +37 -0
  375. data/ext/facter/facter/lib/inc/internal/facts/linux/filesystem_resolver.hpp +40 -0
  376. data/ext/facter/facter/lib/inc/internal/facts/linux/fips_resolver.hpp +31 -0
  377. data/ext/facter/facter/lib/inc/internal/facts/linux/kernel_resolver.hpp +25 -0
  378. data/ext/facter/facter/lib/inc/internal/facts/linux/memory_resolver.hpp +25 -0
  379. data/ext/facter/facter/lib/inc/internal/facts/linux/networking_resolver.hpp +78 -0
  380. data/ext/facter/facter/lib/inc/internal/facts/linux/operating_system_resolver.hpp +28 -0
  381. data/ext/facter/facter/lib/inc/internal/facts/linux/os_cisco.hpp +114 -0
  382. data/ext/facter/facter/lib/inc/internal/facts/linux/os_coreos.hpp +56 -0
  383. data/ext/facter/facter/lib/inc/internal/facts/linux/os_cumulus.hpp +56 -0
  384. data/ext/facter/facter/lib/inc/internal/facts/linux/os_linux.hpp +72 -0
  385. data/ext/facter/facter/lib/inc/internal/facts/linux/processor_resolver.hpp +60 -0
  386. data/ext/facter/facter/lib/inc/internal/facts/linux/release_file.hpp +124 -0
  387. data/ext/facter/facter/lib/inc/internal/facts/linux/uptime_resolver.hpp +24 -0
  388. data/ext/facter/facter/lib/inc/internal/facts/linux/virtualization_resolver.hpp +50 -0
  389. data/ext/facter/facter/lib/inc/internal/facts/openbsd/dmi_resolver.hpp +28 -0
  390. data/ext/facter/facter/lib/inc/internal/facts/openbsd/memory_resolver.hpp +25 -0
  391. data/ext/facter/facter/lib/inc/internal/facts/openbsd/networking_resolver.hpp +42 -0
  392. data/ext/facter/facter/lib/inc/internal/facts/openbsd/processor_resolver.hpp +25 -0
  393. data/ext/facter/facter/lib/inc/internal/facts/openbsd/virtualization_resolver.hpp +25 -0
  394. data/ext/facter/facter/lib/inc/internal/facts/osx/dmi_resolver.hpp +25 -0
  395. data/ext/facter/facter/lib/inc/internal/facts/osx/memory_resolver.hpp +25 -0
  396. data/ext/facter/facter/lib/inc/internal/facts/osx/networking_resolver.hpp +60 -0
  397. data/ext/facter/facter/lib/inc/internal/facts/osx/operating_system_resolver.hpp +25 -0
  398. data/ext/facter/facter/lib/inc/internal/facts/osx/processor_resolver.hpp +25 -0
  399. data/ext/facter/facter/lib/inc/internal/facts/osx/system_profiler_resolver.hpp +25 -0
  400. data/ext/facter/facter/lib/inc/internal/facts/osx/virtualization_resolver.hpp +25 -0
  401. data/ext/facter/facter/lib/inc/internal/facts/posix/identity_resolver.hpp +25 -0
  402. data/ext/facter/facter/lib/inc/internal/facts/posix/kernel_resolver.hpp +25 -0
  403. data/ext/facter/facter/lib/inc/internal/facts/posix/networking_resolver.hpp +48 -0
  404. data/ext/facter/facter/lib/inc/internal/facts/posix/operating_system_resolver.hpp +25 -0
  405. data/ext/facter/facter/lib/inc/internal/facts/posix/processor_resolver.hpp +25 -0
  406. data/ext/facter/facter/lib/inc/internal/facts/posix/ssh_resolver.hpp +28 -0
  407. data/ext/facter/facter/lib/inc/internal/facts/posix/timezone_resolver.hpp +24 -0
  408. data/ext/facter/facter/lib/inc/internal/facts/posix/uptime_resolver.hpp +32 -0
  409. data/ext/facter/facter/lib/inc/internal/facts/posix/xen_resolver.hpp +24 -0
  410. data/ext/facter/facter/lib/inc/internal/facts/resolvers/augeas_resolver.hpp +35 -0
  411. data/ext/facter/facter/lib/inc/internal/facts/resolvers/disk_resolver.hpp +81 -0
  412. data/ext/facter/facter/lib/inc/internal/facts/resolvers/dmi_resolver.hpp +115 -0
  413. data/ext/facter/facter/lib/inc/internal/facts/resolvers/ec2_resolver.hpp +30 -0
  414. data/ext/facter/facter/lib/inc/internal/facts/resolvers/filesystem_resolver.hpp +166 -0
  415. data/ext/facter/facter/lib/inc/internal/facts/resolvers/fips_resolver.hpp +46 -0
  416. data/ext/facter/facter/lib/inc/internal/facts/resolvers/gce_resolver.hpp +28 -0
  417. data/ext/facter/facter/lib/inc/internal/facts/resolvers/hypervisors_resolver.hpp +69 -0
  418. data/ext/facter/facter/lib/inc/internal/facts/resolvers/identity_resolver.hpp +73 -0
  419. data/ext/facter/facter/lib/inc/internal/facts/resolvers/kernel_resolver.hpp +66 -0
  420. data/ext/facter/facter/lib/inc/internal/facts/resolvers/ldom_resolver.hpp +64 -0
  421. data/ext/facter/facter/lib/inc/internal/facts/resolvers/load_average_resolver.hpp +37 -0
  422. data/ext/facter/facter/lib/inc/internal/facts/resolvers/memory_resolver.hpp +99 -0
  423. data/ext/facter/facter/lib/inc/internal/facts/resolvers/networking_resolver.hpp +155 -0
  424. data/ext/facter/facter/lib/inc/internal/facts/resolvers/operating_system_resolver.hpp +235 -0
  425. data/ext/facter/facter/lib/inc/internal/facts/resolvers/path_resolver.hpp +28 -0
  426. data/ext/facter/facter/lib/inc/internal/facts/resolvers/processor_resolver.hpp +80 -0
  427. data/ext/facter/facter/lib/inc/internal/facts/resolvers/ruby_resolver.hpp +56 -0
  428. data/ext/facter/facter/lib/inc/internal/facts/resolvers/ssh_resolver.hpp +105 -0
  429. data/ext/facter/facter/lib/inc/internal/facts/resolvers/system_profiler_resolver.hpp +127 -0
  430. data/ext/facter/facter/lib/inc/internal/facts/resolvers/timezone_resolver.hpp +36 -0
  431. data/ext/facter/facter/lib/inc/internal/facts/resolvers/uptime_resolver.hpp +36 -0
  432. data/ext/facter/facter/lib/inc/internal/facts/resolvers/virtualization_resolver.hpp +95 -0
  433. data/ext/facter/facter/lib/inc/internal/facts/resolvers/xen_resolver.hpp +55 -0
  434. data/ext/facter/facter/lib/inc/internal/facts/resolvers/zfs_resolver.hpp +59 -0
  435. data/ext/facter/facter/lib/inc/internal/facts/resolvers/zone_resolver.hpp +95 -0
  436. data/ext/facter/facter/lib/inc/internal/facts/resolvers/zpool_resolver.hpp +63 -0
  437. data/ext/facter/facter/lib/inc/internal/facts/solaris/disk_resolver.hpp +25 -0
  438. data/ext/facter/facter/lib/inc/internal/facts/solaris/dmi_resolver.hpp +25 -0
  439. data/ext/facter/facter/lib/inc/internal/facts/solaris/filesystem_resolver.hpp +29 -0
  440. data/ext/facter/facter/lib/inc/internal/facts/solaris/kernel_resolver.hpp +25 -0
  441. data/ext/facter/facter/lib/inc/internal/facts/solaris/ldom_resolver.hpp +25 -0
  442. data/ext/facter/facter/lib/inc/internal/facts/solaris/memory_resolver.hpp +25 -0
  443. data/ext/facter/facter/lib/inc/internal/facts/solaris/networking_resolver.hpp +48 -0
  444. data/ext/facter/facter/lib/inc/internal/facts/solaris/operating_system_resolver.hpp +25 -0
  445. data/ext/facter/facter/lib/inc/internal/facts/solaris/processor_resolver.hpp +25 -0
  446. data/ext/facter/facter/lib/inc/internal/facts/solaris/virtualization_resolver.hpp +25 -0
  447. data/ext/facter/facter/lib/inc/internal/facts/solaris/zfs_resolver.hpp +24 -0
  448. data/ext/facter/facter/lib/inc/internal/facts/solaris/zone_resolver.hpp +25 -0
  449. data/ext/facter/facter/lib/inc/internal/facts/solaris/zpool_resolver.hpp +24 -0
  450. data/ext/facter/facter/lib/inc/internal/facts/windows/dmi_resolver.hpp +38 -0
  451. data/ext/facter/facter/lib/inc/internal/facts/windows/identity_resolver.hpp +25 -0
  452. data/ext/facter/facter/lib/inc/internal/facts/windows/kernel_resolver.hpp +25 -0
  453. data/ext/facter/facter/lib/inc/internal/facts/windows/memory_resolver.hpp +25 -0
  454. data/ext/facter/facter/lib/inc/internal/facts/windows/networking_resolver.hpp +74 -0
  455. data/ext/facter/facter/lib/inc/internal/facts/windows/operating_system_resolver.hpp +36 -0
  456. data/ext/facter/facter/lib/inc/internal/facts/windows/processor_resolver.hpp +36 -0
  457. data/ext/facter/facter/lib/inc/internal/facts/windows/timezone_resolver.hpp +24 -0
  458. data/ext/facter/facter/lib/inc/internal/facts/windows/uptime_resolver.hpp +32 -0
  459. data/ext/facter/facter/lib/inc/internal/facts/windows/virtualization_resolver.hpp +37 -0
  460. data/ext/facter/facter/lib/inc/internal/ruby/aggregate_resolution.hpp +77 -0
  461. data/ext/facter/facter/lib/inc/internal/ruby/chunk.hpp +83 -0
  462. data/ext/facter/facter/lib/inc/internal/ruby/confine.hpp +60 -0
  463. data/ext/facter/facter/lib/inc/internal/ruby/fact.hpp +108 -0
  464. data/ext/facter/facter/lib/inc/internal/ruby/module.hpp +165 -0
  465. data/ext/facter/facter/lib/inc/internal/ruby/resolution.hpp +126 -0
  466. data/ext/facter/facter/lib/inc/internal/ruby/ruby_value.hpp +119 -0
  467. data/ext/facter/facter/lib/inc/internal/ruby/simple_resolution.hpp +56 -0
  468. data/ext/facter/facter/lib/inc/internal/util/agent.hpp +29 -0
  469. data/ext/facter/facter/lib/inc/internal/util/aix/odm.hpp +373 -0
  470. data/ext/facter/facter/lib/inc/internal/util/aix/vmount.hpp +139 -0
  471. data/ext/facter/facter/lib/inc/internal/util/bsd/scoped_ifaddrs.hpp +33 -0
  472. data/ext/facter/facter/lib/inc/internal/util/posix/scoped_addrinfo.hpp +45 -0
  473. data/ext/facter/facter/lib/inc/internal/util/posix/scoped_bio.hpp +34 -0
  474. data/ext/facter/facter/lib/inc/internal/util/posix/scoped_descriptor.hpp +27 -0
  475. data/ext/facter/facter/lib/inc/internal/util/scoped_file.hpp +36 -0
  476. data/ext/facter/facter/lib/inc/internal/util/solaris/k_stat.hpp +176 -0
  477. data/ext/facter/facter/lib/inc/internal/util/solaris/scoped_kstat.hpp +45 -0
  478. data/ext/facter/facter/lib/inc/internal/util/versions.hpp +34 -0
  479. data/ext/facter/facter/lib/inc/internal/util/windows/wsa.hpp +92 -0
  480. data/ext/facter/facter/lib/inc/internal/util/yaml.hpp +25 -0
  481. data/ext/facter/facter/lib/schema/core_facts.pot +2017 -0
  482. data/ext/facter/facter/lib/schema/facter.yaml +1947 -0
  483. data/ext/facter/facter/lib/schema/translation_tooling.rb +67 -0
  484. data/ext/facter/facter/lib/spec/unit/facter_spec.rb +136 -0
  485. data/ext/facter/facter/lib/spec_helper.rb.in +27 -0
  486. data/ext/facter/facter/lib/src/cwrapper.cc +45 -0
  487. data/ext/facter/facter/lib/src/facts/aix/collection.cc +32 -0
  488. data/ext/facter/facter/lib/src/facts/aix/disk_resolver.cc +66 -0
  489. data/ext/facter/facter/lib/src/facts/aix/filesystem_resolver.cc +132 -0
  490. data/ext/facter/facter/lib/src/facts/aix/kernel_resolver.cc +27 -0
  491. data/ext/facter/facter/lib/src/facts/aix/memory_resolver.cc +48 -0
  492. data/ext/facter/facter/lib/src/facts/aix/networking_resolver.cc +245 -0
  493. data/ext/facter/facter/lib/src/facts/aix/operating_system_resolver.cc +61 -0
  494. data/ext/facter/facter/lib/src/facts/aix/processor_resolver.cc +106 -0
  495. data/ext/facter/facter/lib/src/facts/aix/serial_number_resolver.cc +43 -0
  496. data/ext/facter/facter/lib/src/facts/array_value.cc +111 -0
  497. data/ext/facter/facter/lib/src/facts/bsd/collection.cc +27 -0
  498. data/ext/facter/facter/lib/src/facts/bsd/filesystem_resolver.cc +92 -0
  499. data/ext/facter/facter/lib/src/facts/bsd/networking_resolver.cc +175 -0
  500. data/ext/facter/facter/lib/src/facts/bsd/uptime_resolver.cc +23 -0
  501. data/ext/facter/facter/lib/src/facts/cache.cc +117 -0
  502. data/ext/facter/facter/lib/src/facts/collection.cc +661 -0
  503. data/ext/facter/facter/lib/src/facts/external/execution_resolver.cc +89 -0
  504. data/ext/facter/facter/lib/src/facts/external/json_resolver.cc +219 -0
  505. data/ext/facter/facter/lib/src/facts/external/resolver.cc +12 -0
  506. data/ext/facter/facter/lib/src/facts/external/text_resolver.cc +45 -0
  507. data/ext/facter/facter/lib/src/facts/external/windows/powershell_resolver.cc +117 -0
  508. data/ext/facter/facter/lib/src/facts/external/yaml_resolver.cc +45 -0
  509. data/ext/facter/facter/lib/src/facts/freebsd/collection.cc +41 -0
  510. data/ext/facter/facter/lib/src/facts/freebsd/dmi_resolver.cc +43 -0
  511. data/ext/facter/facter/lib/src/facts/freebsd/memory_resolver.cc +76 -0
  512. data/ext/facter/facter/lib/src/facts/freebsd/networking_resolver.cc +55 -0
  513. data/ext/facter/facter/lib/src/facts/freebsd/operating_system_resolver.cc +17 -0
  514. data/ext/facter/facter/lib/src/facts/freebsd/processor_resolver.cc +63 -0
  515. data/ext/facter/facter/lib/src/facts/freebsd/virtualization_resolver.cc +41 -0
  516. data/ext/facter/facter/lib/src/facts/freebsd/zfs_resolver.cc +12 -0
  517. data/ext/facter/facter/lib/src/facts/freebsd/zpool_resolver.cc +12 -0
  518. data/ext/facter/facter/lib/src/facts/glib/load_average_resolver.cc +22 -0
  519. data/ext/facter/facter/lib/src/facts/linux/collection.cc +44 -0
  520. data/ext/facter/facter/lib/src/facts/linux/disk_resolver.cc +80 -0
  521. data/ext/facter/facter/lib/src/facts/linux/dmi_resolver.cc +208 -0
  522. data/ext/facter/facter/lib/src/facts/linux/filesystem_resolver.cc +282 -0
  523. data/ext/facter/facter/lib/src/facts/linux/fips_resolver.cc +31 -0
  524. data/ext/facter/facter/lib/src/facts/linux/kernel_resolver.cc +20 -0
  525. data/ext/facter/facter/lib/src/facts/linux/memory_resolver.cc +50 -0
  526. data/ext/facter/facter/lib/src/facts/linux/networking_resolver.cc +275 -0
  527. data/ext/facter/facter/lib/src/facts/linux/operating_system_resolver.cc +175 -0
  528. data/ext/facter/facter/lib/src/facts/linux/os_linux.cc +393 -0
  529. data/ext/facter/facter/lib/src/facts/linux/processor_resolver.cc +200 -0
  530. data/ext/facter/facter/lib/src/facts/linux/uptime_resolver.cc +15 -0
  531. data/ext/facter/facter/lib/src/facts/linux/virtualization_resolver.cc +282 -0
  532. data/ext/facter/facter/lib/src/facts/map_value.cc +119 -0
  533. data/ext/facter/facter/lib/src/facts/openbsd/collection.cc +37 -0
  534. data/ext/facter/facter/lib/src/facts/openbsd/dmi_resolver.cc +47 -0
  535. data/ext/facter/facter/lib/src/facts/openbsd/memory_resolver.cc +76 -0
  536. data/ext/facter/facter/lib/src/facts/openbsd/networking_resolver.cc +55 -0
  537. data/ext/facter/facter/lib/src/facts/openbsd/processor_resolver.cc +59 -0
  538. data/ext/facter/facter/lib/src/facts/openbsd/virtualization_resolver.cc +20 -0
  539. data/ext/facter/facter/lib/src/facts/osx/collection.cc +39 -0
  540. data/ext/facter/facter/lib/src/facts/osx/dmi_resolver.cc +32 -0
  541. data/ext/facter/facter/lib/src/facts/osx/memory_resolver.cc +60 -0
  542. data/ext/facter/facter/lib/src/facts/osx/networking_resolver.cc +71 -0
  543. data/ext/facter/facter/lib/src/facts/osx/operating_system_resolver.cc +49 -0
  544. data/ext/facter/facter/lib/src/facts/osx/processor_resolver.cc +55 -0
  545. data/ext/facter/facter/lib/src/facts/osx/system_profiler_resolver.cc +66 -0
  546. data/ext/facter/facter/lib/src/facts/osx/virtualization_resolver.cc +46 -0
  547. data/ext/facter/facter/lib/src/facts/posix/cache.cc +9 -0
  548. data/ext/facter/facter/lib/src/facts/posix/collection.cc +48 -0
  549. data/ext/facter/facter/lib/src/facts/posix/identity_resolver.cc +79 -0
  550. data/ext/facter/facter/lib/src/facts/posix/kernel_resolver.cc +25 -0
  551. data/ext/facter/facter/lib/src/facts/posix/networking_resolver.cc +136 -0
  552. data/ext/facter/facter/lib/src/facts/posix/operatingsystem_resolver.cc +29 -0
  553. data/ext/facter/facter/lib/src/facts/posix/processor_resolver.cc +22 -0
  554. data/ext/facter/facter/lib/src/facts/posix/ssh_resolver.cc +116 -0
  555. data/ext/facter/facter/lib/src/facts/posix/timezone_resolver.cc +26 -0
  556. data/ext/facter/facter/lib/src/facts/posix/uptime_resolver.cc +53 -0
  557. data/ext/facter/facter/lib/src/facts/posix/xen_resolver.cc +43 -0
  558. data/ext/facter/facter/lib/src/facts/resolver.cc +105 -0
  559. data/ext/facter/facter/lib/src/facts/resolvers/augeas_resolver.cc +56 -0
  560. data/ext/facter/facter/lib/src/facts/resolvers/disk_resolver.cc +69 -0
  561. data/ext/facter/facter/lib/src/facts/resolvers/dmi_resolver.cc +160 -0
  562. data/ext/facter/facter/lib/src/facts/resolvers/ec2_resolver.cc +174 -0
  563. data/ext/facter/facter/lib/src/facts/resolvers/filesystem_resolver.cc +118 -0
  564. data/ext/facter/facter/lib/src/facts/resolvers/fips_resolver.cc +23 -0
  565. data/ext/facter/facter/lib/src/facts/resolvers/gce_resolver.cc +276 -0
  566. data/ext/facter/facter/lib/src/facts/resolvers/hypervisors_resolver.cc +76 -0
  567. data/ext/facter/facter/lib/src/facts/resolvers/identity_resolver.cc +50 -0
  568. data/ext/facter/facter/lib/src/facts/resolvers/kernel_resolver.cc +62 -0
  569. data/ext/facter/facter/lib/src/facts/resolvers/ldom_resolver.cc +60 -0
  570. data/ext/facter/facter/lib/src/facts/resolvers/load_average_resolver.cc +36 -0
  571. data/ext/facter/facter/lib/src/facts/resolvers/memory_resolver.cc +88 -0
  572. data/ext/facter/facter/lib/src/facts/resolvers/networking_resolver.cc +280 -0
  573. data/ext/facter/facter/lib/src/facts/resolvers/operating_system_resolver.cc +276 -0
  574. data/ext/facter/facter/lib/src/facts/resolvers/path_resolver.cc +25 -0
  575. data/ext/facter/facter/lib/src/facts/resolvers/processor_resolver.cc +70 -0
  576. data/ext/facter/facter/lib/src/facts/resolvers/ruby_resolver.cc +109 -0
  577. data/ext/facter/facter/lib/src/facts/resolvers/ssh_resolver.cc +77 -0
  578. data/ext/facter/facter/lib/src/facts/resolvers/system_profiler_resolver.cc +137 -0
  579. data/ext/facter/facter/lib/src/facts/resolvers/timezone_resolver.cc +27 -0
  580. data/ext/facter/facter/lib/src/facts/resolvers/uptime_resolver.cc +63 -0
  581. data/ext/facter/facter/lib/src/facts/resolvers/virtualization_resolver.cc +119 -0
  582. data/ext/facter/facter/lib/src/facts/resolvers/xen_resolver.cc +80 -0
  583. data/ext/facter/facter/lib/src/facts/resolvers/zfs_resolver.cc +63 -0
  584. data/ext/facter/facter/lib/src/facts/resolvers/zone_resolver.cc +91 -0
  585. data/ext/facter/facter/lib/src/facts/resolvers/zpool_resolver.cc +93 -0
  586. data/ext/facter/facter/lib/src/facts/scalar_value.cc +73 -0
  587. data/ext/facter/facter/lib/src/facts/solaris/collection.cc +51 -0
  588. data/ext/facter/facter/lib/src/facts/solaris/disk_resolver.cc +35 -0
  589. data/ext/facter/facter/lib/src/facts/solaris/dmi_resolver.cc +86 -0
  590. data/ext/facter/facter/lib/src/facts/solaris/filesystem_resolver.cc +92 -0
  591. data/ext/facter/facter/lib/src/facts/solaris/kernel_resolver.cc +24 -0
  592. data/ext/facter/facter/lib/src/facts/solaris/ldom_resolver.cc +87 -0
  593. data/ext/facter/facter/lib/src/facts/solaris/memory_resolver.cc +91 -0
  594. data/ext/facter/facter/lib/src/facts/solaris/networking_resolver.cc +183 -0
  595. data/ext/facter/facter/lib/src/facts/solaris/operating_system_resolver.cc +83 -0
  596. data/ext/facter/facter/lib/src/facts/solaris/processor_resolver.cc +105 -0
  597. data/ext/facter/facter/lib/src/facts/solaris/virtualization_resolver.cc +38 -0
  598. data/ext/facter/facter/lib/src/facts/solaris/zfs_resolver.cc +12 -0
  599. data/ext/facter/facter/lib/src/facts/solaris/zone_resolver.cc +33 -0
  600. data/ext/facter/facter/lib/src/facts/solaris/zpool_resolver.cc +12 -0
  601. data/ext/facter/facter/lib/src/facts/windows/cache.cc +11 -0
  602. data/ext/facter/facter/lib/src/facts/windows/collection.cc +91 -0
  603. data/ext/facter/facter/lib/src/facts/windows/dmi_resolver.cc +38 -0
  604. data/ext/facter/facter/lib/src/facts/windows/identity_resolver.cc +46 -0
  605. data/ext/facter/facter/lib/src/facts/windows/kernel_resolver.cc +78 -0
  606. data/ext/facter/facter/lib/src/facts/windows/memory_resolver.cc +25 -0
  607. data/ext/facter/facter/lib/src/facts/windows/networking_resolver.cc +227 -0
  608. data/ext/facter/facter/lib/src/facts/windows/operating_system_resolver.cc +125 -0
  609. data/ext/facter/facter/lib/src/facts/windows/processor_resolver.cc +99 -0
  610. data/ext/facter/facter/lib/src/facts/windows/timezone_resolver.cc +28 -0
  611. data/ext/facter/facter/lib/src/facts/windows/uptime_resolver.cc +26 -0
  612. data/ext/facter/facter/lib/src/facts/windows/virtualization_resolver.cc +63 -0
  613. data/ext/facter/facter/lib/src/java/facter.cc +185 -0
  614. data/ext/facter/facter/lib/src/logging/logging.cc +151 -0
  615. data/ext/facter/facter/lib/src/ruby/aggregate_resolution.cc +249 -0
  616. data/ext/facter/facter/lib/src/ruby/chunk.cc +136 -0
  617. data/ext/facter/facter/lib/src/ruby/confine.cc +84 -0
  618. data/ext/facter/facter/lib/src/ruby/fact.cc +382 -0
  619. data/ext/facter/facter/lib/src/ruby/module.cc +1130 -0
  620. data/ext/facter/facter/lib/src/ruby/resolution.cc +230 -0
  621. data/ext/facter/facter/lib/src/ruby/ruby.cc +150 -0
  622. data/ext/facter/facter/lib/src/ruby/ruby_value.cc +288 -0
  623. data/ext/facter/facter/lib/src/ruby/simple_resolution.cc +156 -0
  624. data/ext/facter/facter/lib/src/util/bsd/scoped_ifaddrs.cc +29 -0
  625. data/ext/facter/facter/lib/src/util/config/config.cc +83 -0
  626. data/ext/facter/facter/lib/src/util/config/posix/config.cc +12 -0
  627. data/ext/facter/facter/lib/src/util/config/windows/config.cc +14 -0
  628. data/ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc +41 -0
  629. data/ext/facter/facter/lib/src/util/posix/scoped_bio.cc +29 -0
  630. data/ext/facter/facter/lib/src/util/posix/scoped_descriptor.cc +20 -0
  631. data/ext/facter/facter/lib/src/util/scoped_file.cc +26 -0
  632. data/ext/facter/facter/lib/src/util/solaris/k_stat.cc +165 -0
  633. data/ext/facter/facter/lib/src/util/solaris/scoped_kstat.cc +31 -0
  634. data/ext/facter/facter/lib/src/util/string.cc +170 -0
  635. data/ext/facter/facter/lib/src/util/windows/wsa.cc +69 -0
  636. data/ext/facter/facter/lib/src/util/yaml.cc +72 -0
  637. data/ext/facter/facter/lib/tasks/spec.rake +26 -0
  638. data/ext/facter/facter/lib/tests/CMakeLists.txt +172 -0
  639. data/ext/facter/facter/lib/tests/collection_fixture.cc +15 -0
  640. data/ext/facter/facter/lib/tests/collection_fixture.hpp +19 -0
  641. data/ext/facter/facter/lib/tests/cwrapper.cc +22 -0
  642. data/ext/facter/facter/lib/tests/facts/array_value.cc +140 -0
  643. data/ext/facter/facter/lib/tests/facts/boolean_value.cc +67 -0
  644. data/ext/facter/facter/lib/tests/facts/cache.cc +100 -0
  645. data/ext/facter/facter/lib/tests/facts/collection.cc +576 -0
  646. data/ext/facter/facter/lib/tests/facts/double_value.cc +40 -0
  647. data/ext/facter/facter/lib/tests/facts/external/json_resolver.cc +62 -0
  648. data/ext/facter/facter/lib/tests/facts/external/posix/execution_resolver.cc +69 -0
  649. data/ext/facter/facter/lib/tests/facts/external/text_resolver.cc +46 -0
  650. data/ext/facter/facter/lib/tests/facts/external/windows/execution_resolver.cc +69 -0
  651. data/ext/facter/facter/lib/tests/facts/external/windows/powershell_resolver.cc +122 -0
  652. data/ext/facter/facter/lib/tests/facts/external/yaml_resolver.cc +70 -0
  653. data/ext/facter/facter/lib/tests/facts/integer_value.cc +69 -0
  654. data/ext/facter/facter/lib/tests/facts/linux/dmi_resolver.cc +116 -0
  655. data/ext/facter/facter/lib/tests/facts/linux/filesystem_resolver.cc +13 -0
  656. data/ext/facter/facter/lib/tests/facts/linux/processor_fixture.cc +259 -0
  657. data/ext/facter/facter/lib/tests/facts/linux/processor_fixture.hpp +77 -0
  658. data/ext/facter/facter/lib/tests/facts/linux/processor_resolver.cc +312 -0
  659. data/ext/facter/facter/lib/tests/facts/linux/virtualization_resolver.cc +48 -0
  660. data/ext/facter/facter/lib/tests/facts/map_value.cc +116 -0
  661. data/ext/facter/facter/lib/tests/facts/posix/collection.cc +39 -0
  662. data/ext/facter/facter/lib/tests/facts/posix/uptime_resolver.cc +52 -0
  663. data/ext/facter/facter/lib/tests/facts/resolvers/augeas_resolver.cc +58 -0
  664. data/ext/facter/facter/lib/tests/facts/resolvers/disk_resolver.cc +114 -0
  665. data/ext/facter/facter/lib/tests/facts/resolvers/dmi_resolver.cc +152 -0
  666. data/ext/facter/facter/lib/tests/facts/resolvers/filesystem_resolver.cc +206 -0
  667. data/ext/facter/facter/lib/tests/facts/resolvers/identity_resolver.cc +83 -0
  668. data/ext/facter/facter/lib/tests/facts/resolvers/kernel_resolver.cc +61 -0
  669. data/ext/facter/facter/lib/tests/facts/resolvers/ldom_resolver.cc +86 -0
  670. data/ext/facter/facter/lib/tests/facts/resolvers/memory_resolver.cc +135 -0
  671. data/ext/facter/facter/lib/tests/facts/resolvers/networking_resolver.cc +507 -0
  672. data/ext/facter/facter/lib/tests/facts/resolvers/operating_system_resolver.cc +247 -0
  673. data/ext/facter/facter/lib/tests/facts/resolvers/processor_resolver.cc +157 -0
  674. data/ext/facter/facter/lib/tests/facts/resolvers/ruby_resolver.cc +74 -0
  675. data/ext/facter/facter/lib/tests/facts/resolvers/ssh_resolver.cc +103 -0
  676. data/ext/facter/facter/lib/tests/facts/resolvers/system_profiler_resolver.cc +135 -0
  677. data/ext/facter/facter/lib/tests/facts/resolvers/timezone_resolver.cc +49 -0
  678. data/ext/facter/facter/lib/tests/facts/resolvers/uptime_resolver.cc +151 -0
  679. data/ext/facter/facter/lib/tests/facts/resolvers/virtualization_resolver.cc +175 -0
  680. data/ext/facter/facter/lib/tests/facts/resolvers/xen_resolver.cc +100 -0
  681. data/ext/facter/facter/lib/tests/facts/resolvers/zfs_resolver.cc +65 -0
  682. data/ext/facter/facter/lib/tests/facts/resolvers/zone_resolver.cc +122 -0
  683. data/ext/facter/facter/lib/tests/facts/resolvers/zpool_resolver.cc +69 -0
  684. data/ext/facter/facter/lib/tests/facts/schema.cc +796 -0
  685. data/ext/facter/facter/lib/tests/facts/string_value.cc +270 -0
  686. data/ext/facter/facter/lib/tests/facts/windows/collection.cc +60 -0
  687. data/ext/facter/facter/lib/tests/facts/windows/networking_resolver.cc +217 -0
  688. data/ext/facter/facter/lib/tests/fixtures.cc +62 -0
  689. data/ext/facter/facter/lib/tests/fixtures.hpp.in +27 -0
  690. data/ext/facter/facter/lib/tests/fixtures/execution/with space/command_with_space.bat +2 -0
  691. data/ext/facter/facter/lib/tests/fixtures/facts/external/json/facts.json +12 -0
  692. data/ext/facter/facter/lib/tests/fixtures/facts/external/json/invalid.json +1 -0
  693. data/ext/facter/facter/lib/tests/fixtures/facts/external/ordering/bar/foo.yaml +1 -0
  694. data/ext/facter/facter/lib/tests/fixtures/facts/external/ordering/foo/foo.yaml +1 -0
  695. data/ext/facter/facter/lib/tests/fixtures/facts/external/posix/execution/error_message +4 -0
  696. data/ext/facter/facter/lib/tests/fixtures/facts/external/posix/execution/facts +5 -0
  697. data/ext/facter/facter/lib/tests/fixtures/facts/external/posix/execution/failed +3 -0
  698. data/ext/facter/facter/lib/tests/fixtures/facts/external/posix/execution/not_executable +1 -0
  699. data/ext/facter/facter/lib/tests/fixtures/facts/external/text/facts.txt +4 -0
  700. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/execution/error_message.bat +4 -0
  701. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/execution/facts.bat +4 -0
  702. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/execution/failed.cmd +2 -0
  703. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/execution/not_executable +1 -0
  704. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/execution/ruby_script.rb +1 -0
  705. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/powershell/error_message.ps1 +3 -0
  706. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/powershell/facts.ps1 +4 -0
  707. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/powershell/failed.ps1 +2 -0
  708. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/powershell/json.ps1 +21 -0
  709. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/powershell/not_executable +1 -0
  710. data/ext/facter/facter/lib/tests/fixtures/facts/external/windows/powershell/yaml.ps1 +18 -0
  711. data/ext/facter/facter/lib/tests/fixtures/facts/external/yaml/facts.yaml +15 -0
  712. data/ext/facter/facter/lib/tests/fixtures/facts/external/yaml/invalid.yaml +1 -0
  713. data/ext/facter/facter/lib/tests/fixtures/facts/external/z/303/266/facts.rb +3 -0
  714. data/ext/facter/facter/lib/tests/fixtures/facts/external/z/303/266/facts.txt +1 -0
  715. data/ext/facter/facter/lib/tests/fixtures/facts/linux/cloud/azure +3 -0
  716. data/ext/facter/facter/lib/tests/fixtures/facts/linux/cloud/azure-unknown +3 -0
  717. data/ext/facter/facter/lib/tests/fixtures/facts/linux/cloud/not-azure +0 -0
  718. data/ext/facter/facter/lib/tests/fixtures/facts/linux/dmidecode/full.txt +83 -0
  719. data/ext/facter/facter/lib/tests/fixtures/facts/linux/dmidecode/full_alternative.txt +83 -0
  720. data/ext/facter/facter/lib/tests/fixtures/facts/linux/dmidecode/none.txt +2 -0
  721. data/ext/facter/facter/lib/tests/fixtures/ruby/100_resolutions.rb +7 -0
  722. data/ext/facter/facter/lib/tests/fixtures/ruby/101_resolutions.rb +7 -0
  723. data/ext/facter/facter/lib/tests/fixtures/ruby/aggregate.rb +9 -0
  724. data/ext/facter/facter/lib/tests/fixtures/ruby/aggregate_invalid_require.rb +9 -0
  725. data/ext/facter/facter/lib/tests/fixtures/ruby/aggregate_with_block.rb +30 -0
  726. data/ext/facter/facter/lib/tests/fixtures/ruby/aggregate_with_cycle.rb +9 -0
  727. data/ext/facter/facter/lib/tests/fixtures/ruby/aggregate_with_invalid_merge.rb +13 -0
  728. data/ext/facter/facter/lib/tests/fixtures/ruby/aggregate_with_merge.rb +23 -0
  729. data/ext/facter/facter/lib/tests/fixtures/ruby/aggregate_with_require.rb +16 -0
  730. data/ext/facter/facter/lib/tests/fixtures/ruby/array_confine.rb +6 -0
  731. data/ext/facter/facter/lib/tests/fixtures/ruby/array_fact.rb +5 -0
  732. data/ext/facter/facter/lib/tests/fixtures/ruby/bad_command.rb +19 -0
  733. data/ext/facter/facter/lib/tests/fixtures/ruby/bad_syntax.rb +2 -0
  734. data/ext/facter/facter/lib/tests/fixtures/ruby/bignum_fact_value.rb +5 -0
  735. data/ext/facter/facter/lib/tests/fixtures/ruby/block_confine.rb +9 -0
  736. data/ext/facter/facter/lib/tests/fixtures/ruby/block_false_confine.rb +9 -0
  737. data/ext/facter/facter/lib/tests/fixtures/ruby/block_nil_confine.rb +9 -0
  738. data/ext/facter/facter/lib/tests/fixtures/ruby/block_true_confine.rb +9 -0
  739. data/ext/facter/facter/lib/tests/fixtures/ruby/boolean_false_confine.rb +6 -0
  740. data/ext/facter/facter/lib/tests/fixtures/ruby/boolean_false_fact.rb +5 -0
  741. data/ext/facter/facter/lib/tests/fixtures/ruby/boolean_true_confine.rb +6 -0
  742. data/ext/facter/facter/lib/tests/fixtures/ruby/boolean_true_fact.rb +5 -0
  743. data/ext/facter/facter/lib/tests/fixtures/ruby/command_with_space.rb +5 -0
  744. data/ext/facter/facter/lib/tests/fixtures/ruby/confine_missing_fact.rb +22 -0
  745. data/ext/facter/facter/lib/tests/fixtures/ruby/confine_weight.rb +20 -0
  746. data/ext/facter/facter/lib/tests/fixtures/ruby/custom_dir/expect_network_init.rb +15 -0
  747. data/ext/facter/facter/lib/tests/fixtures/ruby/cycle.rb +7 -0
  748. data/ext/facter/facter/lib/tests/fixtures/ruby/debug.rb +7 -0
  749. data/ext/facter/facter/lib/tests/fixtures/ruby/debugging.rb +14 -0
  750. data/ext/facter/facter/lib/tests/fixtures/ruby/debugonce.rb +9 -0
  751. data/ext/facter/facter/lib/tests/fixtures/ruby/define_aggregate_fact.rb +13 -0
  752. data/ext/facter/facter/lib/tests/fixtures/ruby/define_fact.rb +9 -0
  753. data/ext/facter/facter/lib/tests/fixtures/ruby/double_fact.rb +5 -0
  754. data/ext/facter/facter/lib/tests/fixtures/ruby/empty_command.rb +3 -0
  755. data/ext/facter/facter/lib/tests/fixtures/ruby/empty_fact.rb +1 -0
  756. data/ext/facter/facter/lib/tests/fixtures/ruby/empty_fact_with_value.rb +1 -0
  757. data/ext/facter/facter/lib/tests/fixtures/ruby/empty_setcode_command.rb +3 -0
  758. data/ext/facter/facter/lib/tests/fixtures/ruby/exec.rb +7 -0
  759. data/ext/facter/facter/lib/tests/fixtures/ruby/execute_on_fail_raise.rb +17 -0
  760. data/ext/facter/facter/lib/tests/fixtures/ruby/execute_on_fail_value.rb +5 -0
  761. data/ext/facter/facter/lib/tests/fixtures/ruby/execute_timeout.rb +1 -0
  762. data/ext/facter/facter/lib/tests/fixtures/ruby/execution_failure.rb +5 -0
  763. data/ext/facter/facter/lib/tests/fixtures/ruby/existing_aggregate_resolution.rb +5 -0
  764. data/ext/facter/facter/lib/tests/fixtures/ruby/existing_simple_resolution.rb +5 -0
  765. data/ext/facter/facter/lib/tests/fixtures/ruby/fact.rb +7 -0
  766. data/ext/facter/facter/lib/tests/fixtures/ruby/facter.rb +7 -0
  767. data/ext/facter/facter/lib/tests/fixtures/ruby/facterversion.rb +17 -0
  768. data/ext/facter/facter/lib/tests/fixtures/ruby/hash_fact.rb +5 -0
  769. data/ext/facter/facter/lib/tests/fixtures/ruby/hash_with_non_string_key.rb +5 -0
  770. data/ext/facter/facter/lib/tests/fixtures/ruby/integer_fact.rb +5 -0
  771. data/ext/facter/facter/lib/tests/fixtures/ruby/log_exception.rb +21 -0
  772. data/ext/facter/facter/lib/tests/fixtures/ruby/lookup.rb +7 -0
  773. data/ext/facter/facter/lib/tests/fixtures/ruby/multi_confine.rb +6 -0
  774. data/ext/facter/facter/lib/tests/fixtures/ruby/named_resolution.rb +13 -0
  775. data/ext/facter/facter/lib/tests/fixtures/ruby/negative_number.rb +5 -0
  776. data/ext/facter/facter/lib/tests/fixtures/ruby/nil_fact.rb +5 -0
  777. data/ext/facter/facter/lib/tests/fixtures/ruby/nonexistent_command.rb +21 -0
  778. data/ext/facter/facter/lib/tests/fixtures/ruby/on_message.rb +16 -0
  779. data/ext/facter/facter/lib/tests/fixtures/ruby/range_confine.rb +6 -0
  780. data/ext/facter/facter/lib/tests/fixtures/ruby/regexp_confine.rb +6 -0
  781. data/ext/facter/facter/lib/tests/fixtures/ruby/ruby.rb +6 -0
  782. data/ext/facter/facter/lib/tests/fixtures/ruby/simple.rb +11 -0
  783. data/ext/facter/facter/lib/tests/fixtures/ruby/simple_command.rb +7 -0
  784. data/ext/facter/facter/lib/tests/fixtures/ruby/simple_confine.rb +6 -0
  785. data/ext/facter/facter/lib/tests/fixtures/ruby/simple_resolution.rb +5 -0
  786. data/ext/facter/facter/lib/tests/fixtures/ruby/single_allocation.rb +7 -0
  787. data/ext/facter/facter/lib/tests/fixtures/ruby/stderr_output.rb +9 -0
  788. data/ext/facter/facter/lib/tests/fixtures/ruby/string_fact.rb +5 -0
  789. data/ext/facter/facter/lib/tests/fixtures/ruby/timeout.rb +10 -0
  790. data/ext/facter/facter/lib/tests/fixtures/ruby/trace.rb +22 -0
  791. data/ext/facter/facter/lib/tests/fixtures/ruby/uni/341/220/201dir/customfacts/342/204/242.rb +6 -0
  792. data/ext/facter/facter/lib/tests/fixtures/ruby/uses_exit_code.rb +7 -0
  793. data/ext/facter/facter/lib/tests/fixtures/ruby/value.rb +6 -0
  794. data/ext/facter/facter/lib/tests/fixtures/ruby/version.rb +2 -0
  795. data/ext/facter/facter/lib/tests/fixtures/ruby/warn.rb +7 -0
  796. data/ext/facter/facter/lib/tests/fixtures/ruby/warnonce.rb +9 -0
  797. data/ext/facter/facter/lib/tests/fixtures/ruby/weight.rb +20 -0
  798. data/ext/facter/facter/lib/tests/fixtures/ruby/weight_option.rb +17 -0
  799. data/ext/facter/facter/lib/tests/fixtures/ruby/which.rb +9 -0
  800. data/ext/facter/facter/lib/tests/fixtures/ruby/windows/ole.rb +7 -0
  801. data/ext/facter/facter/lib/tests/java/facter.cc +69 -0
  802. data/ext/facter/facter/lib/tests/log_capture.cc +29 -0
  803. data/ext/facter/facter/lib/tests/log_capture.hpp +35 -0
  804. data/ext/facter/facter/lib/tests/logging/logging.cc +69 -0
  805. data/ext/facter/facter/lib/tests/main.cc +20 -0
  806. data/ext/facter/facter/lib/tests/mock_server.cc +44 -0
  807. data/ext/facter/facter/lib/tests/mock_server.hpp +25 -0
  808. data/ext/facter/facter/lib/tests/ruby/ruby.cc +634 -0
  809. data/ext/facter/facter/lib/tests/ruby/ruby_dirfacts.cc +35 -0
  810. data/ext/facter/facter/lib/tests/ruby/ruby_helper.cc +41 -0
  811. data/ext/facter/facter/lib/tests/ruby/ruby_helper.hpp +8 -0
  812. data/ext/facter/facter/lib/tests/ruby/windows/ruby.cc +53 -0
  813. data/ext/facter/facter/lib/tests/util/bsd/scoped_ifaddrs.cc +10 -0
  814. data/ext/facter/facter/lib/tests/util/posix/scoped_addrinfo.cc +11 -0
  815. data/ext/facter/facter/lib/tests/util/posix/scoped_bio.cc +12 -0
  816. data/ext/facter/facter/lib/tests/util/posix/scoped_descriptor.cc +22 -0
  817. data/ext/facter/facter/lib/tests/util/string.cc +291 -0
  818. data/ext/facter/facter/lib/version.h.in +28 -0
  819. data/ext/facter/facter/locales/CMakeLists.txt +7 -0
  820. data/ext/facter/facter/locales/FACTER.pot +1508 -0
  821. data/ext/facter/facter/man/man8/facter.8 +205 -0
  822. data/ext/facter/facter/scripts/cpplint.py +4754 -0
  823. data/ext/facter/facter/scripts/travis_target.sh +83 -0
  824. data/ext/facter/facter/tasks/ci.rake +22 -0
  825. data/ext/facter/leatherman/CHANGELOG.md +430 -0
  826. data/ext/facter/leatherman/CMakeLists.txt +143 -0
  827. data/ext/facter/leatherman/CONTRIBUTING.md +98 -0
  828. data/ext/facter/leatherman/LICENSE +17 -0
  829. data/ext/facter/leatherman/LeathermanConfig.cmake.in +57 -0
  830. data/ext/facter/leatherman/LeathermanConfigVersion.cmake.in +11 -0
  831. data/ext/facter/leatherman/MAINTAINERS +28 -0
  832. data/ext/facter/leatherman/README.md +416 -0
  833. data/ext/facter/leatherman/appveyor.yml +47 -0
  834. data/ext/facter/leatherman/catch/CMakeLists.txt +1 -0
  835. data/ext/facter/leatherman/cmake/FindICU.cmake +690 -0
  836. data/ext/facter/leatherman/cmake/GetGitRevisionDescription.cmake +130 -0
  837. data/ext/facter/leatherman/cmake/GetGitRevisionDescription.cmake.in +38 -0
  838. data/ext/facter/leatherman/cmake/cflags.cmake +110 -0
  839. data/ext/facter/leatherman/cmake/generate_translations.cmake +17 -0
  840. data/ext/facter/leatherman/cmake/internal.cmake +241 -0
  841. data/ext/facter/leatherman/cmake/leatherman.cmake.in +369 -0
  842. data/ext/facter/leatherman/cmake/leatherman_config.cmake +80 -0
  843. data/ext/facter/leatherman/cmake/normalize_pot.cmake +17 -0
  844. data/ext/facter/leatherman/cmake/options.cmake +21 -0
  845. data/ext/facter/leatherman/cmake/pod2man.cmake +36 -0
  846. data/ext/facter/leatherman/curl/CMakeLists.txt +42 -0
  847. data/ext/facter/leatherman/curl/inc/leatherman/curl/client.hpp +441 -0
  848. data/ext/facter/leatherman/curl/inc/leatherman/curl/request.hpp +130 -0
  849. data/ext/facter/leatherman/curl/inc/leatherman/curl/response.hpp +80 -0
  850. data/ext/facter/leatherman/curl/src/client.cc +575 -0
  851. data/ext/facter/leatherman/curl/src/request.cc +112 -0
  852. data/ext/facter/leatherman/curl/src/response.cc +62 -0
  853. data/ext/facter/leatherman/curl/tests/CMakeLists.txt +22 -0
  854. data/ext/facter/leatherman/curl/tests/client_test.cc +613 -0
  855. data/ext/facter/leatherman/curl/tests/fixtures.cc +27 -0
  856. data/ext/facter/leatherman/curl/tests/fixtures.hpp +31 -0
  857. data/ext/facter/leatherman/curl/tests/mock_curl.cc +423 -0
  858. data/ext/facter/leatherman/curl/tests/mock_curl.hpp +85 -0
  859. data/ext/facter/leatherman/curl/tests/request_test.cc +85 -0
  860. data/ext/facter/leatherman/curl/tests/response_test.cc +58 -0
  861. data/ext/facter/leatherman/dynamic_library/CMakeLists.txt +43 -0
  862. data/ext/facter/leatherman/dynamic_library/inc/leatherman/dynamic_library/dynamic_library.hpp +122 -0
  863. data/ext/facter/leatherman/dynamic_library/src/dynamic_library.cc +57 -0
  864. data/ext/facter/leatherman/dynamic_library/src/posix/dynamic_library.cc +91 -0
  865. data/ext/facter/leatherman/dynamic_library/src/windows/dynamic_library.cc +128 -0
  866. data/ext/facter/leatherman/dynamic_library/tests/dynamic_library_tests.cc +94 -0
  867. data/ext/facter/leatherman/dynamic_library/tests/fixtures.hpp.in +3 -0
  868. data/ext/facter/leatherman/dynamic_library/tests/test-lib/goodbye.cc +5 -0
  869. data/ext/facter/leatherman/dynamic_library/tests/test-lib/hello.cc +7 -0
  870. data/ext/facter/leatherman/execution/CMakeLists.txt +65 -0
  871. data/ext/facter/leatherman/execution/inc/leatherman/execution/execution.hpp +488 -0
  872. data/ext/facter/leatherman/execution/src/execution.cc +510 -0
  873. data/ext/facter/leatherman/execution/src/posix/execution.cc +574 -0
  874. data/ext/facter/leatherman/execution/src/posix/generic/platform.cc +30 -0
  875. data/ext/facter/leatherman/execution/src/posix/platform.hpp +15 -0
  876. data/ext/facter/leatherman/execution/src/posix/solaris/platform.cc +197 -0
  877. data/ext/facter/leatherman/execution/src/windows/execution.cc +698 -0
  878. data/ext/facter/leatherman/execution/tests/fixtures.hpp.in +2 -0
  879. data/ext/facter/leatherman/execution/tests/fixtures/echo_pid +2 -0
  880. data/ext/facter/leatherman/execution/tests/fixtures/error_message +5 -0
  881. data/ext/facter/leatherman/execution/tests/fixtures/execution/selfkill.sh +3 -0
  882. data/ext/facter/leatherman/execution/tests/fixtures/execution/sleep.sh +3 -0
  883. data/ext/facter/leatherman/execution/tests/fixtures/facts +5 -0
  884. data/ext/facter/leatherman/execution/tests/fixtures/failed +3 -0
  885. data/ext/facter/leatherman/execution/tests/fixtures/ls/crlf.txt +3 -0
  886. data/ext/facter/leatherman/execution/tests/fixtures/ls/file1.txt +1 -0
  887. data/ext/facter/leatherman/execution/tests/fixtures/ls/file2.txt +1 -0
  888. data/ext/facter/leatherman/execution/tests/fixtures/ls/file3.txt +1 -0
  889. data/ext/facter/leatherman/execution/tests/fixtures/ls/file4.txt +7 -0
  890. data/ext/facter/leatherman/execution/tests/fixtures/not_executable +1 -0
  891. data/ext/facter/leatherman/execution/tests/fixtures/windows/error_message.bat +6 -0
  892. data/ext/facter/leatherman/execution/tests/fixtures/windows/facts.bat +4 -0
  893. data/ext/facter/leatherman/execution/tests/fixtures/windows/failed.cmd +2 -0
  894. data/ext/facter/leatherman/execution/tests/fixtures/windows/not_executable +1 -0
  895. data/ext/facter/leatherman/execution/tests/fixtures/windows/ruby_script.rb +1 -0
  896. data/ext/facter/leatherman/execution/tests/log_capture.cc +29 -0
  897. data/ext/facter/leatherman/execution/tests/log_capture.hpp +35 -0
  898. data/ext/facter/leatherman/execution/tests/lth_cat.cc +38 -0
  899. data/ext/facter/leatherman/execution/tests/lth_cat.hpp +9 -0
  900. data/ext/facter/leatherman/execution/tests/posix/execution.cc +728 -0
  901. data/ext/facter/leatherman/execution/tests/posix/solaris/execution.cc +54 -0
  902. data/ext/facter/leatherman/execution/tests/windows/execution.cc +789 -0
  903. data/ext/facter/leatherman/file_util/CMakeLists.txt +18 -0
  904. data/ext/facter/leatherman/file_util/inc/leatherman/file_util/directory.hpp +28 -0
  905. data/ext/facter/leatherman/file_util/inc/leatherman/file_util/file.hpp +95 -0
  906. data/ext/facter/leatherman/file_util/src/directory.cc +51 -0
  907. data/ext/facter/leatherman/file_util/src/file.cc +131 -0
  908. data/ext/facter/leatherman/file_util/tests/directory_utils_test.cc +87 -0
  909. data/ext/facter/leatherman/file_util/tests/file_utils_test.cc +195 -0
  910. data/ext/facter/leatherman/file_util/tests/fixtures.cc +37 -0
  911. data/ext/facter/leatherman/file_util/tests/fixtures.hpp +39 -0
  912. data/ext/facter/leatherman/json_container/CMakeLists.txt +11 -0
  913. data/ext/facter/leatherman/json_container/README.md +108 -0
  914. data/ext/facter/leatherman/json_container/inc/leatherman/json_container/json_container.hpp +443 -0
  915. data/ext/facter/leatherman/json_container/src/json_container.cc +655 -0
  916. data/ext/facter/leatherman/json_container/tests/json_container_test.cc +1129 -0
  917. data/ext/facter/leatherman/locale/CMakeLists.txt +46 -0
  918. data/ext/facter/leatherman/locale/disabled/locale.cc +38 -0
  919. data/ext/facter/leatherman/locale/inc/leatherman/locale/locale.hpp +263 -0
  920. data/ext/facter/leatherman/locale/locales/CMakeLists.txt +6 -0
  921. data/ext/facter/leatherman/locale/locales/fr.po +40 -0
  922. data/ext/facter/leatherman/locale/locales/leatherman_locale.pot +41 -0
  923. data/ext/facter/leatherman/locale/src/locale.cc +95 -0
  924. data/ext/facter/leatherman/locale/tests/format.cc +117 -0
  925. data/ext/facter/leatherman/locale/tests/locale.cc +190 -0
  926. data/ext/facter/leatherman/locales/CMakeLists.txt +7 -0
  927. data/ext/facter/leatherman/locales/leatherman.pot +717 -0
  928. data/ext/facter/leatherman/logging/CMakeLists.txt +43 -0
  929. data/ext/facter/leatherman/logging/inc/leatherman/logging/logging.hpp +264 -0
  930. data/ext/facter/leatherman/logging/locales/CMakeLists.txt +6 -0
  931. data/ext/facter/leatherman/logging/locales/fr.po +72 -0
  932. data/ext/facter/leatherman/logging/locales/leatherman_logging.pot +72 -0
  933. data/ext/facter/leatherman/logging/src/logging.cc +229 -0
  934. data/ext/facter/leatherman/logging/src/posix/logging.cc +39 -0
  935. data/ext/facter/leatherman/logging/src/windows/logging.cc +52 -0
  936. data/ext/facter/leatherman/logging/tests/logging.cc +118 -0
  937. data/ext/facter/leatherman/logging/tests/logging.hpp +88 -0
  938. data/ext/facter/leatherman/logging/tests/logging_i18n.cc +103 -0
  939. data/ext/facter/leatherman/logging/tests/logging_on_message.cc +61 -0
  940. data/ext/facter/leatherman/logging/tests/logging_stream.cc +159 -0
  941. data/ext/facter/leatherman/logging/tests/logging_stream_lines.cc +172 -0
  942. data/ext/facter/leatherman/logging/tests/posix/logging.cc +23 -0
  943. data/ext/facter/leatherman/logging/tests/windows/logging.cc +13 -0
  944. data/ext/facter/leatherman/nowide/CMakeLists.txt +7 -0
  945. data/ext/facter/leatherman/rapidjson/CMakeLists.txt +1 -0
  946. data/ext/facter/leatherman/ruby/CMakeLists.txt +26 -0
  947. data/ext/facter/leatherman/ruby/inc/leatherman/ruby/api.hpp +744 -0
  948. data/ext/facter/leatherman/ruby/src/api.cc +527 -0
  949. data/ext/facter/leatherman/ruby/src/posix/api.cc +14 -0
  950. data/ext/facter/leatherman/ruby/src/windows/api.cc +20 -0
  951. data/ext/facter/leatherman/ruby/tests/api-test.cc +206 -0
  952. data/ext/facter/leatherman/scripts/cpplint.py +6323 -0
  953. data/ext/facter/leatherman/tests/CMakeLists.txt +22 -0
  954. data/ext/facter/leatherman/tests/main.cc +17 -0
  955. data/ext/facter/leatherman/util/CMakeLists.txt +36 -0
  956. data/ext/facter/leatherman/util/inc/leatherman/util/environment.hpp +69 -0
  957. data/ext/facter/leatherman/util/inc/leatherman/util/option_set.hpp +228 -0
  958. data/ext/facter/leatherman/util/inc/leatherman/util/posix/scoped_descriptor.hpp +32 -0
  959. data/ext/facter/leatherman/util/inc/leatherman/util/regex.hpp +80 -0
  960. data/ext/facter/leatherman/util/inc/leatherman/util/scope_exit.hpp +62 -0
  961. data/ext/facter/leatherman/util/inc/leatherman/util/scoped_env.hpp +35 -0
  962. data/ext/facter/leatherman/util/inc/leatherman/util/scoped_resource.hpp +130 -0
  963. data/ext/facter/leatherman/util/inc/leatherman/util/strings.hpp +54 -0
  964. data/ext/facter/leatherman/util/inc/leatherman/util/time.hpp +36 -0
  965. data/ext/facter/leatherman/util/inc/leatherman/util/timer.hpp +43 -0
  966. data/ext/facter/leatherman/util/inc/leatherman/util/uri.hpp +23 -0
  967. data/ext/facter/leatherman/util/inc/leatherman/util/windows/scoped_handle.hpp +32 -0
  968. data/ext/facter/leatherman/util/src/environment.cc +29 -0
  969. data/ext/facter/leatherman/util/src/posix/environment.cc +75 -0
  970. data/ext/facter/leatherman/util/src/posix/scoped_descriptor.cc +23 -0
  971. data/ext/facter/leatherman/util/src/posix/time.cc +9 -0
  972. data/ext/facter/leatherman/util/src/scope_exit.cc +43 -0
  973. data/ext/facter/leatherman/util/src/scoped_env.cc +37 -0
  974. data/ext/facter/leatherman/util/src/strings.cc +41 -0
  975. data/ext/facter/leatherman/util/src/time.cc +49 -0
  976. data/ext/facter/leatherman/util/src/uri.cc +75 -0
  977. data/ext/facter/leatherman/util/src/windows/environment.cc +75 -0
  978. data/ext/facter/leatherman/util/src/windows/scoped_handle.cc +24 -0
  979. data/ext/facter/leatherman/util/src/windows/time.cc +10 -0
  980. data/ext/facter/leatherman/util/tests/environment.cc +90 -0
  981. data/ext/facter/leatherman/util/tests/option_set.cc +234 -0
  982. data/ext/facter/leatherman/util/tests/posix/environment.cc +36 -0
  983. data/ext/facter/leatherman/util/tests/scoped_env.cc +52 -0
  984. data/ext/facter/leatherman/util/tests/strings_test.cc +71 -0
  985. data/ext/facter/leatherman/util/tests/timer.cc +39 -0
  986. data/ext/facter/leatherman/util/tests/uri.cc +104 -0
  987. data/ext/facter/leatherman/util/tests/windows/environment.cc +30 -0
  988. data/ext/facter/leatherman/vendor/Catch-1.10.0.zip +0 -0
  989. data/ext/facter/leatherman/vendor/nowide/build/Jamfile.v2 +26 -0
  990. data/ext/facter/leatherman/vendor/nowide/doc/Doxyfile +1632 -0
  991. data/ext/facter/leatherman/vendor/nowide/doc/LICENSE_1_0.txt +23 -0
  992. data/ext/facter/leatherman/vendor/nowide/doc/gendoc.sh +11 -0
  993. data/ext/facter/leatherman/vendor/nowide/doc/main.txt +354 -0
  994. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/args.hpp +167 -0
  995. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/cenv.hpp +126 -0
  996. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/config.hpp +54 -0
  997. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/convert.hpp +154 -0
  998. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/cstdio.hpp +101 -0
  999. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/cstdlib.hpp +16 -0
  1000. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/filebuf.hpp +415 -0
  1001. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/fstream.hpp +283 -0
  1002. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/integration/filesystem.hpp +28 -0
  1003. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/iostream.hpp +99 -0
  1004. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/stackstring.hpp +154 -0
  1005. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/system.hpp +46 -0
  1006. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/utf8_codecvt.hpp +499 -0
  1007. data/ext/facter/leatherman/vendor/nowide/include/boost/nowide/windows.hpp +39 -0
  1008. data/ext/facter/leatherman/vendor/nowide/index.html +16 -0
  1009. data/ext/facter/leatherman/vendor/nowide/src/iostream.cpp +263 -0
  1010. data/ext/facter/leatherman/vendor/nowide/standalone/CMakeLists.txt +104 -0
  1011. data/ext/facter/leatherman/vendor/nowide/standalone/MinGW.cmake +9 -0
  1012. data/ext/facter/leatherman/vendor/nowide/standalone/config.hpp +37 -0
  1013. data/ext/facter/leatherman/vendor/nowide/standalone/convert +34 -0
  1014. data/ext/facter/leatherman/vendor/nowide/standalone/encoding_errors.hpp +58 -0
  1015. data/ext/facter/leatherman/vendor/nowide/standalone/encoding_utf.hpp +84 -0
  1016. data/ext/facter/leatherman/vendor/nowide/standalone/run_convert_and_build.sh +17 -0
  1017. data/ext/facter/leatherman/vendor/nowide/standalone/scoped_ptr.hpp +93 -0
  1018. data/ext/facter/leatherman/vendor/nowide/standalone/utf.hpp +469 -0
  1019. data/ext/facter/leatherman/vendor/nowide/template.hpp +19 -0
  1020. data/ext/facter/leatherman/vendor/nowide/test/Jamfile.v2 +43 -0
  1021. data/ext/facter/leatherman/vendor/nowide/test/test.hpp +25 -0
  1022. data/ext/facter/leatherman/vendor/nowide/test/test_codecvt.cpp +254 -0
  1023. data/ext/facter/leatherman/vendor/nowide/test/test_convert.cpp +101 -0
  1024. data/ext/facter/leatherman/vendor/nowide/test/test_env.cpp +49 -0
  1025. data/ext/facter/leatherman/vendor/nowide/test/test_fs.cpp +48 -0
  1026. data/ext/facter/leatherman/vendor/nowide/test/test_fstream.cpp +184 -0
  1027. data/ext/facter/leatherman/vendor/nowide/test/test_iostream.cpp +52 -0
  1028. data/ext/facter/leatherman/vendor/nowide/test/test_stdio.cpp +60 -0
  1029. data/ext/facter/leatherman/vendor/nowide/test/test_system.cpp +91 -0
  1030. data/ext/facter/leatherman/vendor/rapidjson-1.0.2.zip +0 -0
  1031. data/ext/facter/leatherman/windows/CMakeLists.txt +27 -0
  1032. data/ext/facter/leatherman/windows/inc/leatherman/windows/file_util.hpp +23 -0
  1033. data/ext/facter/leatherman/windows/inc/leatherman/windows/process.hpp +22 -0
  1034. data/ext/facter/leatherman/windows/inc/leatherman/windows/registry.hpp +56 -0
  1035. data/ext/facter/leatherman/windows/inc/leatherman/windows/system_error.hpp +23 -0
  1036. data/ext/facter/leatherman/windows/inc/leatherman/windows/user.hpp +30 -0
  1037. data/ext/facter/leatherman/windows/inc/leatherman/windows/windows.hpp +10 -0
  1038. data/ext/facter/leatherman/windows/inc/leatherman/windows/wmi.hpp +188 -0
  1039. data/ext/facter/leatherman/windows/src/file_util.cc +28 -0
  1040. data/ext/facter/leatherman/windows/src/process.cc +42 -0
  1041. data/ext/facter/leatherman/windows/src/registry.cc +96 -0
  1042. data/ext/facter/leatherman/windows/src/system_error.cc +33 -0
  1043. data/ext/facter/leatherman/windows/src/user.cc +76 -0
  1044. data/ext/facter/leatherman/windows/src/wmi.cc +208 -0
  1045. data/ext/facter/leatherman/windows/tests/file_utils_test.cc +13 -0
  1046. metadata +1089 -0
@@ -0,0 +1,1947 @@
1
+ # This file is used to validate the facter output schema and also document facts.
2
+ #
3
+ # Use the following attributes for each entry:
4
+ # - pattern (optional): the pattern to match against a fact name; if not specified, an exact match is performed.
5
+ # - type (required): the type of the fact. Must be one of the following:
6
+ # * integer
7
+ # * double
8
+ # * string
9
+ # * boolean
10
+ # * array
11
+ # * map
12
+ # * ip (IPv4 address string)
13
+ # * ip6 (IPv6 address string)
14
+ # * mac (MAC address string)
15
+ # - hidden (optional; default: false): true if the value is hidden from facter output by default, false if not.
16
+ # - description (required): describes the fact's purpose.
17
+ # - resolution (optional): describes how the fact is resolved.
18
+ # - caveats (optional): describes any caveats to the fact.
19
+ # - elements (required for map types): contains the element values of a map value; each element is another entry.
20
+ # - validate (optional; default: true): true if a map value's elements should be validated or false if not.
21
+ # - blockgroup (optional): the block group of this fact; if not specified, the fact cannot be blocked
22
+ #
23
+ # Please keep the facts in alphabetical order.
24
+
25
+ aio_agent_version:
26
+ type: string
27
+ description: Return the version of the puppet-agent package that installed facter.
28
+ resolution: |
29
+ All platforms: use the compile-time enabled version definition.
30
+
31
+ architecture:
32
+ type: string
33
+ hidden: true
34
+ description: Return the operating system's hardware architecture.
35
+ resolution: |
36
+ POSIX platforms: use the `uname` function to retrieve the OS hardware architecture.
37
+ Windows: use the `GetNativeSystemInfo` function to retrieve the OS hardware architecture.
38
+ caveats: |
39
+ Linux: Debian, Gentoo, kFreeBSD, and Ubuntu use "amd64" for "x86_64" and Gentoo uses "x86" for "i386".
40
+
41
+ augeas:
42
+ type: map
43
+ description: Return information about augeas.
44
+ resolution: |
45
+ All platforms: query augparse for augeas metadata.
46
+ elements:
47
+ version:
48
+ type: string
49
+ description: The version of augparse.
50
+
51
+ augeasversion:
52
+ type: string
53
+ hidden: true
54
+ description: Return the version of augeas.
55
+ resolution: |
56
+ All platforms: query augparse for the augeas version.
57
+
58
+ blockdevices:
59
+ type: string
60
+ hidden: true
61
+ description: Return a comma-separated list of block devices.
62
+ resolution: |
63
+ Linux: parse the contents of `/sys/block/<device>/`.
64
+ Solaris: use the `kstat` function to query disk information.
65
+ caveats: |
66
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
67
+
68
+ blockdevice_<devicename>_model:
69
+ pattern: '^blockdevice_[A-Za-z0-9]+_model$'
70
+ type: string
71
+ hidden: true
72
+ description: Return the model name of block devices attached to the system.
73
+ resolution: |
74
+ Linux: parse the contents of `/sys/block/<device>/device/model` to retrieve the model name/number for a device.
75
+ Solaris: use the `kstat` function to query disk information.
76
+ caveats: |
77
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
78
+
79
+ blockdevice_<devicename>_size:
80
+ pattern: ^blockdevice_[A-Za-z0-9]+_size$
81
+ type: integer
82
+ hidden: true
83
+ description: Return the size of a block device in bytes.
84
+ resolution: |
85
+ Linux: parse the contents of `/sys/block/<device>/size` to receive the size (multiplying by 512 to correct for blocks-to-bytes).
86
+ Solaris: use the `kstat` function to query disk information.
87
+ caveats: |
88
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
89
+
90
+ blockdevice_<devicename>_vendor:
91
+ pattern: ^blockdevice_[A-Za-z0-9]+_vendor$
92
+ type: string
93
+ hidden: true
94
+ description: Return the vendor name of block devices attached to the system.
95
+ resolution: |
96
+ Linux: parse the contents of `/sys/block/<device>/device/vendor` to retrieve the vendor for a device.
97
+ Solaris: use the `kstat` function to query disk information.
98
+ caveats: |
99
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
100
+
101
+ bios_release_date:
102
+ type: string
103
+ hidden: true
104
+ description: Return the release date of the system BIOS.
105
+ resolution: |
106
+ Linux: parse the contents of `/sys/class/dmi/id/bios_date` to retrieve the system BIOS release date.
107
+ Solaris: use the `smbios` utility to retrieve the system BIOS release date.
108
+ caveats: |
109
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
110
+
111
+ bios_vendor:
112
+ type: string
113
+ hidden: true
114
+ description: Return the vendor of the system BIOS.
115
+ resolution: |
116
+ Linux: parse the contents of `/sys/class/dmi/id/bios_vendor` to retrieve the system BIOS vendor.
117
+ Solaris: use the `smbios` utility to retrieve the system BIOS vendor.
118
+ caveats: |
119
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
120
+
121
+ bios_version:
122
+ type: string
123
+ hidden: true
124
+ description: Return the version of the system BIOS.
125
+ resolution: |
126
+ Linux: parse the contents of `/sys/class/dmi/id/bios_version` to retrieve the system BIOS version.
127
+ Solaris: use the `smbios` utility to retrieve the system BIOS version.
128
+ caveats: |
129
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
130
+
131
+ boardassettag:
132
+ type: string
133
+ hidden: true
134
+ description: Return the system board asset tag.
135
+ resolution: |
136
+ Linux: parse the contents of `/sys/class/dmi/id/board_asset_tag` to retrieve the system board asset tag.
137
+ caveats: |
138
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
139
+
140
+ boardmanufacturer:
141
+ type: string
142
+ hidden: true
143
+ description: Return the system board manufacturer.
144
+ resolution: |
145
+ Linux: parse the contents of `/sys/class/dmi/id/board_vendor` to retrieve the system board manufacturer.
146
+ caveats: |
147
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
148
+
149
+ boardproductname:
150
+ type: string
151
+ hidden: true
152
+ description: Return the system board product name.
153
+ resolution: |
154
+ Linux: parse the contents of `/sys/class/dmi/id/board_name` to retrieve the system board product name.
155
+ caveats: |
156
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
157
+
158
+ boardserialnumber:
159
+ type: string
160
+ hidden: true
161
+ description: Return the system board serial number.
162
+ resolution: |
163
+ Linux: parse the contents of `/sys/class/dmi/id/board_serial` to retrieve the system board serial number.
164
+ caveats: |
165
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
166
+
167
+ chassisassettag:
168
+ type: string
169
+ hidden: true
170
+ description: Return the system chassis asset tag.
171
+ resolution: |
172
+ Linux: parse the contents of `/sys/class/dmi/id/chassis_asset_tag` to retrieve the system chassis asset tag.
173
+ Solaris: use the `smbios` utility to retrieve the system chassis asset tag.
174
+ caveats: |
175
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
176
+
177
+ chassistype:
178
+ type: string
179
+ hidden: true
180
+ description: Return the system chassis type.
181
+ resolution: |
182
+ Linux: parse the contents of `/sys/class/dmi/id/chassis_type` to retrieve the system chassis type.
183
+ Solaris: use the `smbios` utility to retrieve the system chassis type.
184
+ caveats: |
185
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
186
+
187
+ cloud:
188
+ type: map
189
+ description: Information about the cloud instance of the node. This is currently only populated on Linux nodes running in Microsoft Azure.
190
+ elements:
191
+ provider:
192
+ type: string
193
+ description: The cloud provider for the node.
194
+
195
+ dhcp_servers:
196
+ type: map
197
+ hidden: true
198
+ description: Return the DHCP servers for the system.
199
+ resolution: |
200
+ Linux: parse `dhclient` lease files or use the `dhcpcd` utility to retrieve the DHCP servers.
201
+ Mac OSX: use the `ipconfig` utility to retrieve the DHCP servers.
202
+ Solaris: use the `dhcpinfo` utility to retrieve the DHCP servers.
203
+ Windows: use the `GetAdaptersAddresses` (Windows Server 2003: `GetAdaptersInfo`) function to retrieve the DHCP servers.
204
+ elements:
205
+ <interface>:
206
+ pattern: ^((?!system).+)*$
207
+ type: ip
208
+ description: The DHCP server for the interface.
209
+ system:
210
+ type: ip
211
+ description: The DHCP server for the default interface.
212
+
213
+ disks:
214
+ type: map
215
+ description: Return the disk (block) devices attached to the system.
216
+ resolution: |
217
+ AIX: query the ODM for all disk devices
218
+ Linux: parse the contents of `/sys/block/<device>/`.
219
+ Solaris: use the `kstat` function to query disk information.
220
+ caveats: |
221
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
222
+ elements:
223
+ <devicename>:
224
+ pattern: \w+
225
+ type: map
226
+ description: Represents a disk or block device.
227
+ elements:
228
+ model:
229
+ type: string
230
+ description: The model of the disk or block device.
231
+ product:
232
+ type: string
233
+ description: The product name of the disk or block device.
234
+ caveats: Only present on Solaris.
235
+ size:
236
+ type: string
237
+ description: The display size of the disk or block device, such as "1 GiB".
238
+ size_bytes:
239
+ type: integer
240
+ description: The size of the disk or block device, in bytes.
241
+ vendor:
242
+ type: string
243
+ description: The vendor of the disk or block device.
244
+
245
+ dmi:
246
+ type: map
247
+ description: Return the system management information.
248
+ resolution: |
249
+ Linux: parse the contents of `/sys/class/dmi/id/` to retrieve system management information.
250
+ Mac OSX: use the `sysctl` function to retrieve system management information.
251
+ Solaris: use the `smbios`, `prtconf`, and `uname` utilities to retrieve system management information.
252
+ Windows: use WMI to retrieve system management information.
253
+ caveats: |
254
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
255
+ elements:
256
+ bios:
257
+ type: map
258
+ description: The system BIOS information.
259
+ elements:
260
+ release_date:
261
+ type: string
262
+ description: The release date of the system BIOS.
263
+ vendor:
264
+ type: string
265
+ description: The vendor of the system BIOS.
266
+ version:
267
+ type: string
268
+ description: The version of the system BIOS.
269
+ board:
270
+ type: map
271
+ description: The system board information.
272
+ elements:
273
+ asset_tag:
274
+ type: string
275
+ description: The asset tag of the system board.
276
+ manufacturer:
277
+ type: string
278
+ description: The manufacturer of the system board.
279
+ product:
280
+ type: string
281
+ description: The product name of the system board.
282
+ serial_number:
283
+ type: string
284
+ description: The serial number of the system board.
285
+ chassis:
286
+ type: map
287
+ description: The system chassis information.
288
+ elements:
289
+ asset_tag:
290
+ type: string
291
+ description: The asset tag of the system chassis.
292
+ type:
293
+ type: string
294
+ description: The type of the system chassis.
295
+ manufacturer:
296
+ type: string
297
+ description: The system manufacturer.
298
+ product:
299
+ type: map
300
+ description: The system product information.
301
+ elements:
302
+ name:
303
+ type: string
304
+ description: The product name of the system.
305
+ serial_number:
306
+ type: string
307
+ description: The product serial number of the system.
308
+ uuid:
309
+ type: string
310
+ description: The product unique identifier of the system.
311
+
312
+ domain:
313
+ type: string
314
+ hidden: true
315
+ description: Return the network domain of the system.
316
+ resolution: |
317
+ POSIX platforms: use the `getaddrinfo` function to retrieve the network domain.
318
+ Windows: query the registry to retrieve the network domain; falls back to the primary interface's domain if not set in the registry.
319
+
320
+ ec2_metadata:
321
+ type: map
322
+ description: |
323
+ Return the Amazon Elastic Compute Cloud (EC2) instance metadata.
324
+ Please see the [EC2 instance metadata documentation](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) for the contents of this fact.
325
+ resolution: |
326
+ EC2: query the EC2 metadata endpoint and parse the response.
327
+ caveats: |
328
+ All platforms: `libfacter` must be built with `libcurl` support.
329
+ validate: false
330
+ blockgroup: EC2
331
+
332
+ ec2_userdata:
333
+ type: string
334
+ description: |
335
+ Return the Amazon Elastic Compute Cloud (EC2) instance user data.
336
+ Please see the [EC2 instance user data documentation](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) for the contents of this fact.
337
+ resolution: |
338
+ EC2: query the EC2 user data endpoint and parse the response.
339
+ caveats: |
340
+ All platforms: `libfacter` must be built with `libcurl` support.
341
+ blockgroup: EC2
342
+
343
+ env_windows_installdir:
344
+ type: string
345
+ description: Return the path of the directory in which Puppet was installed.
346
+ resolution: |
347
+ Windows: This fact is specific to the Windows MSI generated environment, and is
348
+ set using the `environment.bat` script that configures the runtime environment
349
+ for all Puppet executables. Please see [the original commit in the puppet_for_the_win repo](https://github.com/puppetlabs/puppet_for_the_win/commit/0cc32c1a09550c13d725b200d3c0cc17d93ec262) for more information.
350
+ caveats: |
351
+ This fact is specific to Windows, and will not resolve on any other platform.
352
+
353
+ facterversion:
354
+ type: string
355
+ description: Return the version of facter.
356
+ resolution: |
357
+ All platforms: use the built-in version of libfacter.
358
+
359
+ filesystems:
360
+ type: string
361
+ description: Return the usable file systems for block or disk devices.
362
+ resolution: |
363
+ AIX: parse the contents of `/etc/vfs` to retrieve the usable file systems.
364
+ Linux: parse the contents of `/proc/filesystems` to retrieve the usable file systems.
365
+ Mac OSX: use the `getfsstat` function to retrieve the usable file systems.
366
+ Solaris: use the `sysdef` utility to retrieve the usable file systems.
367
+ caveats: |
368
+ Linux: The proc file system must be mounted.
369
+ Mac OSX: The usable file systems is limited to the file system of mounted devices.
370
+ blockgroup: file system
371
+
372
+ fips_enabled:
373
+ type: boolean
374
+ description: Return whether the platform is in FIPS mode
375
+ resolution: |
376
+ Linux: parse the contents of `/proc/sys/crypto/fips_enabled` which if non-zero indicates fips mode has been enabled.
377
+ caveats: |
378
+ Linux: Limited to linux redhat family only
379
+
380
+ fqdn:
381
+ type: string
382
+ hidden: true
383
+ description: Return the fully qualified domain name (FQDN) of the system.
384
+ resolution: |
385
+ POSIX platforms: use the `getaddrinfo` function to retrieve the FQDN or use host and domain names.
386
+ Windows: use the host and domain names to build the FQDN.
387
+
388
+ gce:
389
+ type: map
390
+ description: |
391
+ Return the Google Compute Engine (GCE) metadata.
392
+ Please see the [GCE metadata documentation](https://cloud.google.com/compute/docs/metadata) for the contents of this fact.
393
+ resolution: |
394
+ GCE: query the GCE metadata endpoint and parse the response.
395
+ caveats: |
396
+ All platforms: `libfacter` must be built with `libcurl` support.
397
+ validate: false
398
+
399
+ gid:
400
+ type: string
401
+ hidden: true
402
+ description: Return the group identifier (GID) of the user running facter.
403
+ resolution: |
404
+ POSIX platforms: use the `getegid` fuction to retrieve the group identifier.
405
+
406
+ hardwareisa:
407
+ type: string
408
+ hidden: true
409
+ description: Return the hardware instruction set architecture (ISA).
410
+ resolution: |
411
+ POSIX platforms: use `uname` to retrieve the hardware ISA.
412
+ Windows: use WMI to retrieve the hardware ISA.
413
+
414
+ hardwaremodel:
415
+ type: string
416
+ hidden: true
417
+ description: Return the operating system's hardware model.
418
+ resolution: |
419
+ POSIX platforms: use the `uname` function to retrieve the OS hardware model.
420
+ Windows: use the `GetNativeSystemInfo` function to retrieve the OS hardware model.
421
+
422
+ hostname:
423
+ type: string
424
+ hidden: true
425
+ description: Return the host name of the system.
426
+ resolution: |
427
+ POSIX platforms: use the `gethostname` function to retrieve the host name
428
+ Windows: use the `GetComputerNameExW` function to retrieve the host name.
429
+
430
+ hypervisors:
431
+ type: map
432
+ description: |
433
+ Experimental fact: Return the names of any detected hypervisors and any collected metadata about them.
434
+ resolution: |
435
+ All platforms: Use the external `whereami` library to gather hypervisor data, if available.
436
+ validate: false
437
+
438
+ id:
439
+ type: string
440
+ hidden: true
441
+ description: Return the user identifier (UID) of the user running facter.
442
+ resolution: |
443
+ POSIX platforms: use the `geteuid` fuction to retrieve the user identifier.
444
+
445
+ identity:
446
+ type: map
447
+ description: Return the identity information of the user running facter.
448
+ resolution: |
449
+ POSIX platforms: use the `getegid`, `getpwuid_r`, `geteuid`, and `getgrgid_r` functions to retrieve the identity information; use the result of the `geteuid() == 0` test as the value of the privileged element
450
+ Windows: use the `GetUserNameExW` function to retrieve the identity information; use the `GetTokenInformation` to get the current process token elevation status and use it as the value of the privileged element on versions of Windows supporting the token elevation, on older versions of Windows use the `CheckTokenMembership` to test whether the well known local Administrators group SID is enabled in the current thread impersonation token and use the test result as the value of the privileged element
451
+ elements:
452
+ gid:
453
+ type: integer
454
+ description: The group identifier of the user running facter.
455
+ group:
456
+ type: string
457
+ description: The group name of the user running facter.
458
+ uid:
459
+ type: integer
460
+ description: The user identifier of the user running facter.
461
+ user:
462
+ type: string
463
+ description: The user name of the user running facter.
464
+ privileged:
465
+ type: boolean
466
+ description: True if facter is running as a privileged process or false if not.
467
+
468
+ interfaces:
469
+ type: string
470
+ hidden: true
471
+ description: Return the comma-separated list of network interface names.
472
+ resolution: |
473
+ Linux: use the `getifaddrs` function to retrieve the network interface names.
474
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface names.
475
+ Solaris: use the `ioctl` function to retrieve the network interface names.
476
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface names.
477
+
478
+ ipaddress:
479
+ type: ip
480
+ hidden: true
481
+ description: Return the IPv4 address for the default network interface.
482
+ resolution: |
483
+ Linux: use the `getifaddrs` function to retrieve the network interface address.
484
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface address.
485
+ Solaris: use the `ioctl` function to retrieve the network interface address.
486
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface address.
487
+
488
+ ipaddress6:
489
+ type: ip6
490
+ hidden: true
491
+ description: Return the IPv6 address for the default network interface.
492
+ resolution: |
493
+ Linux: use the `getifaddrs` function to retrieve the network interface address.
494
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface address.
495
+ Solaris: use the `ioctl` function to retrieve the network interface address.
496
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface address.
497
+
498
+ ipaddress6_<interface>:
499
+ pattern: ^ipaddress6_.+$
500
+ type: ip6
501
+ hidden: true
502
+ description: Return the IPv6 address for a network interface.
503
+ resolution: |
504
+ Linux: use the `getifaddrs` function to retrieve the network interface address.
505
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface address.
506
+ Solaris: use the `ioctl` function to retrieve the network interface address.
507
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface address.
508
+
509
+ ipaddress_<interface>:
510
+ pattern: ^ipaddress_.+$
511
+ type: ip
512
+ hidden: true
513
+ description: Return the IPv4 address for a network interface.
514
+ resolution: |
515
+ Linux: use the `getifaddrs` function to retrieve the network interface address.
516
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface address.
517
+ Solaris: use the `ioctl` function to retrieve the network interface address.
518
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface address.
519
+
520
+ is_virtual:
521
+ type: boolean
522
+ description: Return whether or not the host is a virtual machine.
523
+ resolution: |
524
+ Linux: use procfs or utilities such as `vmware` and `virt-what` to retrieve virtual machine status.
525
+ Mac OSX: use the system profiler to retrieve virtual machine status.
526
+ Solaris: use the `zonename` utility to retrieve virtual machine status.
527
+ Windows: use WMI to retrieve virtual machine status.
528
+
529
+ kernel:
530
+ type: string
531
+ description: Return the kernel's name.
532
+ resolution: |
533
+ POSIX platforms: use the `uname` function to retrieve the kernel name.
534
+ Windows: use the value of `windows` for all Windows versions.
535
+
536
+ kernelmajversion:
537
+ type: string
538
+ description: Return the kernel's major version.
539
+ resolution: |
540
+ POSIX platforms: use the `uname` function to retrieve the kernel's major version.
541
+ Windows: use the file version of `kernel32.dll` to retrieve the kernel's major version.
542
+
543
+ kernelrelease:
544
+ type: string
545
+ description: Return the kernel's release.
546
+ resolution: |
547
+ POSIX platforms: use the `uname` function to retrieve the kernel's release.
548
+ Windows: use the file version of `kernel32.dll` to retrieve the kernel's release.
549
+
550
+ kernelversion:
551
+ type: string
552
+ description: Return the kernel's version.
553
+ resolution: |
554
+ POSIX platforms: use the `uname` function to retrieve the kernel's version.
555
+ Windows: use the file version of `kernel32.dll` to retrieve the kernel's version.
556
+
557
+ ldom:
558
+ type: map
559
+ description: Return Solaris LDom information from the `virtinfo` utility.
560
+ resolution: |
561
+ Solaris: use the `virtinfo` utility to retrieve LDom information.
562
+ validate: false
563
+
564
+ ldom_<name>:
565
+ pattern: ^ldom_.+$
566
+ hidden: true
567
+ type: string
568
+ description: Return Solaris LDom information.
569
+ resolution: |
570
+ Solaris: use the `virtinfo` utility to retrieve LDom information.
571
+
572
+ load_averages:
573
+ type: map
574
+ description: Return the load average over the last 1, 5 and 15 minutes.
575
+ resolution: |
576
+ POSIX platforms: use `getloadavg` function to retrieve the system load averages.
577
+ elements:
578
+ 1m:
579
+ type: double
580
+ description: The system load average over the last minute.
581
+ 5m:
582
+ type: double
583
+ description: The system load average over the last 5 minutes.
584
+ 15m:
585
+ type: double
586
+ description: The system load average over the last 15 minutes.
587
+
588
+ lsbdistcodename:
589
+ type: string
590
+ hidden: true
591
+ description: Return the Linux Standard Base (LSB) distribution code name.
592
+ resolution: |
593
+ Linux: use the `lsb_release` utility to retrieve the LSB distribution code name.
594
+ caveats: |
595
+ Linux: Requires that the `lsb_release` utility be installed.
596
+
597
+ lsbdistdescription:
598
+ type: string
599
+ hidden: true
600
+ description: Return the Linux Standard Base (LSB) distribution description.
601
+ resolution: |
602
+ Linux: use the `lsb_release` utility to retrieve the LSB distribution description.
603
+ caveats: |
604
+ Linux: Requires that the `lsb_release` utility be installed.
605
+
606
+ lsbdistid:
607
+ type: string
608
+ hidden: true
609
+ description: Return the Linux Standard Base (LSB) distribution identifier.
610
+ resolution: |
611
+ Linux: use the `lsb_release` utility to retrieve the LSB distribution identifier.
612
+ caveats: |
613
+ Linux: Requires that the `lsb_release` utility be installed.
614
+
615
+ lsbdistrelease:
616
+ type: string
617
+ hidden: true
618
+ description: Return the Linux Standard Base (LSB) distribution release.
619
+ resolution: |
620
+ Linux: use the `lsb_release` utility to retrieve the LSB distribution release.
621
+ caveats: |
622
+ Linux: Requires that the `lsb_release` utility be installed.
623
+
624
+ lsbmajdistrelease:
625
+ type: string
626
+ hidden: true
627
+ description: Return the Linux Standard Base (LSB) major distribution release.
628
+ resolution: |
629
+ Linux: use the `lsb_release` utility to retrieve the LSB major distribution release.
630
+ caveats: |
631
+ Linux: Requires that the `lsb_release` utility be installed.
632
+
633
+ lsbminordistrelease:
634
+ type: string
635
+ hidden: true
636
+ description: Return the Linux Standard Base (LSB) minor distribution release.
637
+ resolution: |
638
+ Linux: use the `lsb_release` utility to retrieve the LSB minor distribution release.
639
+ caveats: |
640
+ Linux: Requires that the `lsb_release` utility be installed.
641
+
642
+ lsbrelease:
643
+ type: string
644
+ hidden: true
645
+ description: Return the Linux Standard Base (LSB) release.
646
+ resolution: |
647
+ Linux: use the `lsb_release` utility to retrieve the LSB release.
648
+ caveats: |
649
+ Linux: Requires that the `lsb_release` utility be installed.
650
+
651
+ macaddress:
652
+ type: mac
653
+ hidden: true
654
+ description: Return the MAC address for the default network interface.
655
+ resolution: |
656
+ Linux: use the `getifaddrs` function to retrieve the network interface address.
657
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface address.
658
+ Solaris: use the `ioctl` function to retrieve the network interface address.
659
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface address.
660
+
661
+ macaddress_<interface>:
662
+ pattern: ^macaddress_.+$
663
+ type: mac
664
+ hidden: true
665
+ description: Return the MAC address for a network interface.
666
+ resolution: |
667
+ Linux: use the `getifaddrs` function to retrieve the network interface address.
668
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface address.
669
+ Solaris: use the `ioctl` function to retrieve the network interface address.
670
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface address.
671
+
672
+ macosx_buildversion:
673
+ type: string
674
+ hidden: true
675
+ description: Return the Mac OSX build version.
676
+ resolution: |
677
+ Mac OSX: use the `sw_vers` utility to retrieve the Mac OSX build version.
678
+
679
+ macosx_productname:
680
+ type: string
681
+ hidden: true
682
+ description: Return the Mac OSX product name.
683
+ resolution: |
684
+ Mac OSX: use the `sw_vers` utility to retrieve the Mac OSX product name.
685
+
686
+ macosx_productversion:
687
+ type: string
688
+ hidden: true
689
+ description: Return the Mac OSX product version.
690
+ resolution: |
691
+ Mac OSX: use the `sw_vers` utility to retrieve the Mac OSX product version.
692
+
693
+ macosx_productversion_major:
694
+ type: string
695
+ hidden: true
696
+ description: Return the Mac OSX product major version.
697
+ resolution: |
698
+ Mac OSX: use the `sw_vers` utility to retrieve the Mac OSX product major version.
699
+
700
+ macosx_productversion_minor:
701
+ type: string
702
+ hidden: true
703
+ description: Return the Mac OSX product minor version.
704
+ resolution: |
705
+ Mac OSX: use the `sw_vers` utility to retrieve the Mac OSX product minor version.
706
+
707
+ manufacturer:
708
+ type: string
709
+ hidden: true
710
+ description: Return the system manufacturer.
711
+ resolution: |
712
+ Linux: parse the contents of `/sys/class/dmi/id/sys_vendor` to retrieve the system manufacturer.
713
+ Solaris: use the `prtconf` utility to retrieve the system manufacturer.
714
+ Windows: use WMI to retrieve the system manufacturer.
715
+ caveats: |
716
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
717
+
718
+ memory:
719
+ type: map
720
+ description: Return the system memory information.
721
+ resolution: |
722
+ Linux: parse the contents of `/proc/meminfo` to retrieve the system memory information.
723
+ Mac OSX: use the `sysctl` function to retrieve the system memory information.
724
+ Solaris: use the `kstat` function to retrieve the system memory information.
725
+ Windows: use the `GetPerformanceInfo` function to retrieve the system memory information.
726
+ elements:
727
+ swap:
728
+ type: map
729
+ description: Represents information about swap memory.
730
+ elements:
731
+ available:
732
+ type: string
733
+ description: The display size of the available amount of swap memory, such as "1 GiB".
734
+ available_bytes:
735
+ type: integer
736
+ description: The size of the available amount of swap memory, in bytes.
737
+ capacity:
738
+ type: string
739
+ description: The capacity percentage (0% is empty, 100% is full).
740
+ encrypted:
741
+ type: boolean
742
+ description: True if the swap is encrypted or false if not.
743
+ total:
744
+ type: string
745
+ description: The display size of the total amount of swap memory, such as "1 GiB".
746
+ total_bytes:
747
+ type: integer
748
+ description: The size of the total amount of swap memory, in bytes.
749
+ used:
750
+ type: string
751
+ description: The display size of the used amount of swap memory, such as "1 GiB".
752
+ used_bytes:
753
+ type: integer
754
+ description: The size of the used amount of swap memory, in bytes.
755
+ system:
756
+ type: map
757
+ description: Represents information about system memory.
758
+ elements:
759
+ available:
760
+ type: string
761
+ description: The display size of the available amount of system memory, such as "1 GiB".
762
+ available_bytes:
763
+ type: integer
764
+ description: The size of the available amount of system memory, in bytes.
765
+ capacity:
766
+ type: string
767
+ description: The capacity percentage (0% is empty, 100% is full).
768
+ total:
769
+ type: string
770
+ description: The display size of the total amount of system memory, such as "1 GiB".
771
+ total_bytes:
772
+ type: integer
773
+ description: The size of the total amount of system memory, in bytes.
774
+ used:
775
+ type: string
776
+ description: The display size of the used amount of system memory, such as "1 GiB".
777
+ used_bytes:
778
+ type: integer
779
+ description: The size of the used amount of system memory, in bytes.
780
+
781
+ memoryfree:
782
+ type: string
783
+ hidden: true
784
+ description: Return the display size of the free system memory, such as "1 GiB".
785
+ resolution: |
786
+ Linux: parse the contents of `/proc/meminfo` to retrieve the free system memory.
787
+ Mac OSX: use the `sysctl` function to retrieve the free system memory.
788
+ Solaris: use the `kstat` function to retrieve the free system memory.
789
+ Windows: use the `GetPerformanceInfo` function to retrieve the free system memory.
790
+
791
+ memoryfree_mb:
792
+ type: double
793
+ hidden: true
794
+ description: Return the size of the free system memory, in mebibytes.
795
+ resolution: |
796
+ Linux: parse the contents of `/proc/meminfo` to retrieve the free system memory.
797
+ Mac OSX: use the `sysctl` function to retrieve the free system memory.
798
+ Solaris: use the `kstat` function to retrieve the free system memory.
799
+ Windows: use the `GetPerformanceInfo` function to retrieve the free system memory.
800
+
801
+ memorysize:
802
+ type: string
803
+ hidden: true
804
+ description: Return the display size of the total system memory, such as "1 GiB".
805
+ resolution: |
806
+ Linux: parse the contents of `/proc/meminfo` to retrieve the total system memory.
807
+ Mac OSX: use the `sysctl` function to retrieve the total system memory.
808
+ Solaris: use the `kstat` function to retrieve the total system memory.
809
+ Windows: use the `GetPerformanceInfo` function to retrieve the total system memory.
810
+
811
+ memorysize_mb:
812
+ type: double
813
+ hidden: true
814
+ description: Return the size of the total system memory, in mebibytes.
815
+ resolution: |
816
+ Linux: parse the contents of `/proc/meminfo` to retrieve the total system memory.
817
+ Mac OSX: use the `sysctl` function to retrieve the total system memory.
818
+ Solaris: use the `kstat` function to retrieve the total system memory.
819
+ Windows: use the `GetPerformanceInfo` function to retrieve the total system memory.
820
+
821
+ mountpoints:
822
+ type: map
823
+ description: Return the current mount points of the system.
824
+ resolution: |
825
+ AIX: use the `mntctl` function to retrieve the mount points.
826
+ Linux: use the `setmntent` function to retrieve the mount points.
827
+ Mac OSX: use the `getfsstat` function to retrieve the mount points.
828
+ Solaris: parse the contents of `/etc/mnttab` to retrieve the mount points.
829
+ blockgroup: file system
830
+ elements:
831
+ <mountpoint>:
832
+ pattern: .+
833
+ type: map
834
+ description: Represents a mount point.
835
+ elements:
836
+ available:
837
+ type: string
838
+ description: The display size of the available space, such as "1 GiB".
839
+ available_bytes:
840
+ type: integer
841
+ description: The size of the available space, in bytes.
842
+ capacity:
843
+ type: string
844
+ description: The capacity percentage (0% is empty, 100% is full).
845
+ device:
846
+ type: string
847
+ description: The name of the mounted device.
848
+ filesystem:
849
+ type: string
850
+ description: The file system of the mounted device.
851
+ options:
852
+ type: array
853
+ description: The mount options.
854
+ size:
855
+ type: string
856
+ description: The display size of the total space, such as "1 GiB".
857
+ size_bytes:
858
+ type: integer
859
+ description: The size of the total space, in bytes.
860
+ used:
861
+ type: string
862
+ description: The display size of the used space, such as "1 GiB".
863
+ used_bytes:
864
+ type: integer
865
+ description: The size of the used space, in bytes.
866
+
867
+ mtu_<interface>:
868
+ pattern: ^mtu_.+$
869
+ type: integer
870
+ hidden: true
871
+ description: Return the Maximum Transmission Unit (MTU) for a network interface.
872
+ resolution: |
873
+ Linux: use the `ioctl` function to retrieve the network interface MTU.
874
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface MTU.
875
+ Solaris: use the `ioctl` function to retrieve the network interface MTU.
876
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface MTU.
877
+
878
+ netmask:
879
+ type: ip
880
+ hidden: true
881
+ description: Return the IPv4 netmask for the default network interface.
882
+ resolution: |
883
+ Linux: use the `getifaddrs` function to retrieve the network interface netmask.
884
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface netmask.
885
+ Solaris: use the `ioctl` function to retrieve the network interface netmask.
886
+ Windows: use the `GetAdaptersAddresses` (Windows Server 2003: `GetAdaptersInfo`) function to retrieve the network interface netmask.
887
+
888
+ netmask6:
889
+ type: ip6
890
+ hidden: true
891
+ description: Return the IPv6 netmask for the default network interface.
892
+ resolution: |
893
+ Linux: use the `getifaddrs` function to retrieve the network interface netmask.
894
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface netmask.
895
+ Solaris: use the `ioctl` function to retrieve the network interface netmask.
896
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface netmask.
897
+ caveats: |
898
+ Windows Server 2003: IPv6 netmasks are not supported.
899
+
900
+ netmask6_<interface>:
901
+ pattern: ^netmask6_.+$
902
+ type: ip6
903
+ hidden: true
904
+ description: Return the IPv6 netmask for a network interface.
905
+ resolution: |
906
+ Linux: use the `getifaddrs` function to retrieve the network interface netmask.
907
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface netmask.
908
+ Solaris: use the `ioctl` function to retrieve the network interface netmask.
909
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface netmask.
910
+ caveats: |
911
+ Windows Server 2003: IPv6 netmasks are not supported.
912
+
913
+ netmask_<interface>:
914
+ pattern: ^netmask_.+$
915
+ type: ip
916
+ hidden: true
917
+ description: Return the IPv4 netmask for a network interface.
918
+ resolution: |
919
+ Linux: use the `getifaddrs` function to retrieve the network interface netmask.
920
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface netmask.
921
+ Solaris: use the `ioctl` function to retrieve the network interface netmask.
922
+ Windows: use the `GetAdaptersAddresses` (Windows Server 2003: `GetAdaptersInfo`) function to retrieve the network interface netmask.
923
+
924
+ network:
925
+ type: ip
926
+ hidden: true
927
+ description: Return the IPv4 network for the default network interface.
928
+ resolution: |
929
+ Linux: use the `getifaddrs` function to retrieve the network interface network.
930
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface network.
931
+ Solaris: use the `ioctl` function to retrieve the network interface network.
932
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface network.
933
+
934
+ network6:
935
+ type: ip6
936
+ hidden: true
937
+ description: Return the IPv6 network for the default network interface.
938
+ resolution: |
939
+ Linux: use the `getifaddrs` function to retrieve the network interface network.
940
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface network.
941
+ Solaris: use the `ioctl` function to retrieve the network interface network.
942
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface network.
943
+
944
+ network6_<interface>:
945
+ pattern: ^network6_.+$
946
+ type: ip6
947
+ hidden: true
948
+ description: Return the IPv6 network for a network interface.
949
+ resolution: |
950
+ Linux: use the `getifaddrs` function to retrieve the network interface network.
951
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface network.
952
+ Solaris: use the `ioctl` function to retrieve the network interface network.
953
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface network.
954
+
955
+ network_<interface>:
956
+ pattern: ^network_.+$
957
+ type: ip
958
+ hidden: true
959
+ description: Return the IPv4 network for a network interface.
960
+ resolution: |
961
+ Linux: use the `getifaddrs` function to retrieve the network interface network.
962
+ Mac OSX: use the `getifaddrs` function to retrieve the network interface network.
963
+ Solaris: use the `ioctl` function to retrieve the network interface network.
964
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interface network.
965
+
966
+ networking:
967
+ type: map
968
+ description: Return the networking information for the system.
969
+ resolution: |
970
+ Linux: use the `getifaddrs` function to retrieve the network interfaces.
971
+ Mac OSX: use the `getifaddrs` function to retrieve the network interfaces.
972
+ Solaris: use the `ioctl` function to retrieve the network interfaces.
973
+ Windows: use the `GetAdaptersAddresses` function to retrieve the network interfaces.
974
+ caveats: |
975
+ Windows Server 2003: the `GetAdaptersInfo` function is used for DHCP and netmask lookup. This function does not support IPv6 netmasks.
976
+ elements:
977
+ dhcp:
978
+ type: ip
979
+ description: The address of the DHCP server for the default interface.
980
+ domain:
981
+ type: string
982
+ description: The domain name of the system.
983
+ fqdn:
984
+ type: string
985
+ description: The fully-qualified domain name of the system.
986
+ hostname:
987
+ type: string
988
+ description: The host name of the system.
989
+ interfaces:
990
+ type: map
991
+ description: The network interfaces of the system.
992
+ elements:
993
+ <interface>:
994
+ pattern: .+
995
+ type: map
996
+ description: Represents a network interface.
997
+ elements:
998
+ bindings:
999
+ type: array
1000
+ description: The array of IPv4 address bindings for the interface.
1001
+ bindings6:
1002
+ type: array
1003
+ description: The array of IPv6 address bindings for the interface.
1004
+ dhcp:
1005
+ type: ip
1006
+ description: The DHCP server for the network interface.
1007
+ ip:
1008
+ type: ip
1009
+ description: The IPv4 address for the network interface.
1010
+ ip6:
1011
+ type: ip6
1012
+ description: The IPv6 address for the network interface.
1013
+ mac:
1014
+ type: mac
1015
+ description: The MAC address for the network interface.
1016
+ mtu:
1017
+ type: integer
1018
+ description: The Maximum Transmission Unit (MTU) for the network interface.
1019
+ netmask:
1020
+ type: ip
1021
+ description: The IPv4 netmask for the network interface.
1022
+ netmask6:
1023
+ type: ip6
1024
+ description: The IPv6 netmask for the network interface.
1025
+ network:
1026
+ type: ip
1027
+ description: The IPv4 network for the network interface.
1028
+ network6:
1029
+ type: ip6
1030
+ description: The IPv6 network for the network interface.
1031
+ ip:
1032
+ type: ip
1033
+ description: The IPv4 address of the default network interface.
1034
+ ip6:
1035
+ type: ip6
1036
+ description: The IPv6 address of the default network interface.
1037
+ mac:
1038
+ type: mac
1039
+ description: The MAC address of the default network interface.
1040
+ mtu:
1041
+ type: integer
1042
+ description: The Maximum Transmission Unit (MTU) of the default network interface.
1043
+ netmask:
1044
+ type: ip
1045
+ description: The IPv4 netmask of the default network interface.
1046
+ netmask6:
1047
+ type: ip6
1048
+ description: The IPv6 netmask of the default network interface.
1049
+ network:
1050
+ type: ip
1051
+ description: The IPv4 network of the default network interface.
1052
+ network6:
1053
+ type: ip6
1054
+ description: The IPv6 network of the default network interface.
1055
+ primary:
1056
+ type: string
1057
+ description: The name of the primary interface.
1058
+
1059
+ operatingsystem:
1060
+ type: string
1061
+ hidden: true
1062
+ description: Return the name of the operating system.
1063
+ resolution: |
1064
+ All platforms: default to the kernel name.
1065
+ Linux: use various release files in `/etc` to retrieve the OS name.
1066
+
1067
+ operatingsystemmajrelease:
1068
+ type: string
1069
+ hidden: true
1070
+ description: Return the major release of the operating system.
1071
+ resolution: |
1072
+ All platforms: default to the major version of the kernel release.
1073
+ Linux: parse the contents of release files in `/etc` to retrieve the OS major release.
1074
+ Solaris: parse the contents of `/etc/release` to retrieve the OS major release.
1075
+ Windows: use WMI to retrieve the OS major release.
1076
+ caveats: |
1077
+ Linux: for Ubuntu, the major release is X.Y, such as "10.4".
1078
+
1079
+ operatingsystemrelease:
1080
+ type: string
1081
+ hidden: true
1082
+ description: Return the release of the operating system.
1083
+ resolution: |
1084
+ All platforms: default to the kernel release.
1085
+ Linux: parse the contents of release files in `/etc` to retrieve the OS release.
1086
+ Solaris: parse the contents of `/etc/release` to retrieve the OS release.
1087
+ Windows: use WMI to retrieve the OS release.
1088
+
1089
+ os:
1090
+ type: map
1091
+ description: Return information about the host operating system.
1092
+ resolution: |
1093
+ Linux: use the `lsb_release` utility and parse the contents of release files in `/etc` to retrieve the OS information.
1094
+ OSX: use the `sw_vers` utility to retrieve the OS information.
1095
+ Solaris: parse the contents of `/etc/release` to retrieve the OS information.
1096
+ Windows: use WMI to retrieve the OS information.
1097
+ elements:
1098
+ architecture:
1099
+ type: string
1100
+ description: The operating system's hardware architecture.
1101
+ distro:
1102
+ type: map
1103
+ description: Represents information about a Linux distribution.
1104
+ caveats: |
1105
+ Linux: requires that the `lsb_release` is present.
1106
+ elements:
1107
+ codename:
1108
+ type: string
1109
+ description: The code name of the Linux distribution.
1110
+ description:
1111
+ type: string
1112
+ description: The description of the Linux distribution.
1113
+ id:
1114
+ type: string
1115
+ description: The identifier of the Linux distribution.
1116
+ release:
1117
+ type: map
1118
+ description: Represents information about a Linux distribution release.
1119
+ elements:
1120
+ full:
1121
+ type: string
1122
+ description: The full release of the Linux distribution.
1123
+ major:
1124
+ type: string
1125
+ description: The major release of the Linux distribution.
1126
+ minor:
1127
+ type: string
1128
+ description: The minor release of the Linux distribution.
1129
+ specification:
1130
+ type: string
1131
+ description: The Linux Standard Base (LSB) release specification.
1132
+ family:
1133
+ type: string
1134
+ description: The operating system family.
1135
+ hardware:
1136
+ type: string
1137
+ description: The operating system's hardware model.
1138
+ macosx:
1139
+ type: map
1140
+ description: Represents information about Mac OSX.
1141
+ elements:
1142
+ build:
1143
+ type: string
1144
+ description: The Mac OSX build version.
1145
+ product:
1146
+ type: string
1147
+ description: The Mac OSX product name.
1148
+ version:
1149
+ type: map
1150
+ description: Represents information about the Mac OSX version.
1151
+ elements:
1152
+ full:
1153
+ type: string
1154
+ description: The full Mac OSX version number.
1155
+ major:
1156
+ type: string
1157
+ description: The major Mac OSX version number.
1158
+ minor:
1159
+ type: string
1160
+ description: The minor Mac OSX version number.
1161
+ name:
1162
+ type: string
1163
+ description: The operating system's name.
1164
+ release:
1165
+ type: map
1166
+ description: Represents the operating system's release.
1167
+ elements:
1168
+ full:
1169
+ type: string
1170
+ description: The full operating system release.
1171
+ major:
1172
+ type: string
1173
+ description: The major release of the operating system.
1174
+ minor:
1175
+ type: string
1176
+ description: The minor release of the operating system.
1177
+ selinux:
1178
+ type: map
1179
+ description: Represents information about Security-Enhanced Linux (SELinux).
1180
+ resolution: |
1181
+ Linux: parse the contents of `/proc/self/mounts`, `/etc/selinux/config`, and `<selinux_mountpoint>/enforce` to retrieve SELinux information.
1182
+ elements:
1183
+ config_mode:
1184
+ type: string
1185
+ description: The configured SELinux mode.
1186
+ config_policy:
1187
+ type: string
1188
+ description: The configured SELinux policy.
1189
+ current_mode:
1190
+ type: string
1191
+ description: The current SELinux mode.
1192
+ enabled:
1193
+ type: boolean
1194
+ description: True if SELinux is enabled or false if not.
1195
+ enforced:
1196
+ type: boolean
1197
+ description: True if SELinux policy is enforced or false if not.
1198
+ policy_version:
1199
+ type: string
1200
+ description: The version of the SELinux policy.
1201
+ windows:
1202
+ type: map
1203
+ description: Represents information about Windows.
1204
+ elements:
1205
+ system32:
1206
+ type: string
1207
+ description: The path to the System32 directory.
1208
+
1209
+ osfamily:
1210
+ type: string
1211
+ hidden: true
1212
+ description: Return the family of the operating system.
1213
+ resolution: |
1214
+ All platforms: default to the kernel name.
1215
+ Linux: map various Linux distributions to their base distribution. For example, Ubuntu is a "Debian" distro.
1216
+ Solaris: map various Solaris-based operating systems to the "Solaris" family.
1217
+ Windows: use "windows" as the family name.
1218
+
1219
+ partitions:
1220
+ type: map
1221
+ description: Return the disk partitions of the system.
1222
+ resolution: |
1223
+ AIX: use the ODM to retrieve list of logical volumes; use `lvm_querylv` function to get details
1224
+ Linux: use `libblkid` to retrieve the disk partitions.
1225
+ caveats: |
1226
+ Linux: `libfacter` must be built with `libblkid` support.
1227
+ blockgroup: file system
1228
+ elements:
1229
+ <partition>:
1230
+ pattern: \w+
1231
+ type: map
1232
+ description: Represents a disk partition.
1233
+ elements:
1234
+ filesystem:
1235
+ type: string
1236
+ description: The file system of the partition.
1237
+ label:
1238
+ type: string
1239
+ description: The label of the partition.
1240
+ mount:
1241
+ type: string
1242
+ description: The mount point of the partition (if mounted).
1243
+ partlabel:
1244
+ type: string
1245
+ description: The label of a GPT partition.
1246
+ partuuid:
1247
+ type: string
1248
+ description: The unique identifier of a GPT partition.
1249
+ size:
1250
+ type: string
1251
+ description: The display size of the partition, such as "1 GiB".
1252
+ size_bytes:
1253
+ type: integer
1254
+ description: The size of the partition, in bytes.
1255
+ uuid:
1256
+ type: string
1257
+ description: The unique identifier of a partition.
1258
+ backing_file:
1259
+ type: string
1260
+ description: The path to the file backing the partition.
1261
+
1262
+ path:
1263
+ type: string
1264
+ description: Return the PATH environment variable.
1265
+ resolution: |
1266
+ All platforms: retrieve the value of the PATH environment variable.
1267
+
1268
+ physicalprocessorcount:
1269
+ type: integer
1270
+ hidden: true
1271
+ description: Return the count of physical processors.
1272
+ resolution: |
1273
+ Linux: parse the contents `/sys/devices/system/cpu/` and `/proc/cpuinfo` to retrieve the count of physical processors.
1274
+ Mac OSX: use the `sysctl` function to retrieve the count of physical processors.
1275
+ Solaris: use the `kstat` function to retrieve the count of physical processors.
1276
+ Windows: use WMI to retrieve the count of physical processors.
1277
+ caveats: |
1278
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
1279
+
1280
+ processor<N>:
1281
+ pattern: ^processor\d+$
1282
+ type: string
1283
+ hidden: true
1284
+ description: Return the model string of processor N.
1285
+ resolution: |
1286
+ Linux: parse the contents of `/proc/cpuinfo` to retrieve the processor model string.
1287
+ Mac OSX: use the `sysctl` function to retrieve the processor model string.
1288
+ Solaris: use the `kstat` function to retrieve the processor model string.
1289
+ Windows: use WMI to retrieve the processor model string.
1290
+
1291
+ processorcount:
1292
+ type: integer
1293
+ hidden: true
1294
+ description: Return the count of logical processors.
1295
+ resolution: |
1296
+ Linux: parse the contents `/sys/devices/system/cpu/` and `/proc/cpuinfo` to retrieve the count of logical processors.
1297
+ Mac OSX: use the `sysctl` function to retrieve the count of logical processors.
1298
+ Solaris: use the `kstat` function to retrieve the count of logical processors.
1299
+ Windows: use WMI to retrieve the count of logical processors.
1300
+ caveats: |
1301
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
1302
+
1303
+ processors:
1304
+ type: map
1305
+ description: Return information about the system's processors.
1306
+ resolution: |
1307
+ Linux: parse the contents `/sys/devices/system/cpu/` and `/proc/cpuinfo` to retrieve the processor information.
1308
+ Mac OSX: use the `sysctl` function to retrieve the processor information.
1309
+ Solaris: use the `kstat` function to retrieve the processor information.
1310
+ Windows: use WMI to retrieve the processor information.
1311
+ elements:
1312
+ count:
1313
+ type: integer
1314
+ description: The count of logical processors.
1315
+ isa:
1316
+ type: string
1317
+ description: The processor instruction set architecture.
1318
+ models:
1319
+ type: array
1320
+ description: The processor model strings (one for each logical processor).
1321
+ physicalcount:
1322
+ type: integer
1323
+ description: The count of physical processors.
1324
+ speed:
1325
+ type: string
1326
+ description: The speed of the processors, such as "2.0 GHz".
1327
+
1328
+ productname:
1329
+ type: string
1330
+ hidden: true
1331
+ description: Return the system product name.
1332
+ resolution: |
1333
+ Linux: parse the contents of `/sys/class/dmi/id/product_name` to retrieve the system product name.
1334
+ Mac OSX: use the `sysctl` function to retrieve the system product name.
1335
+ Solaris: use the `smbios` utility to retrieve the system product name.
1336
+ Windows: use WMI to retrieve the system product name.
1337
+ caveats: |
1338
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
1339
+
1340
+ ruby:
1341
+ type: map
1342
+ description: Return information about the Ruby loaded by facter.
1343
+ resolution: |
1344
+ All platforms: Use `RbConfig`, `RUBY_PLATFORM`, and `RUBY_VERSION` to retrieve information about Ruby.
1345
+ caveats: |
1346
+ All platforms: facter must be able to locate `libruby`.
1347
+ elements:
1348
+ platform:
1349
+ type: string
1350
+ description: The platform Ruby was built for.
1351
+ sitedir:
1352
+ type: string
1353
+ description: The path to Ruby's site library directory.
1354
+ version:
1355
+ type: string
1356
+ description: The version of Ruby.
1357
+
1358
+ rubyplatform:
1359
+ type: string
1360
+ hidden: true
1361
+ description: Return the platform Ruby was built for.
1362
+ resolution: |
1363
+ All platforms: use `RUBY_PLATFORM` from the Ruby loaded by facter.
1364
+ caveats: |
1365
+ All platforms: facter must be able to locate `libruby`.
1366
+
1367
+ rubysitedir:
1368
+ type: string
1369
+ hidden: true
1370
+ description: Return the path to Ruby's site library directory.
1371
+ resolution: |
1372
+ All platforms: use `RbConfig` from the Ruby loaded by facter.
1373
+ caveats: |
1374
+ All platforms: facter must be able to locate `libruby`.
1375
+
1376
+ rubyversion:
1377
+ type: string
1378
+ hidden: true
1379
+ description: Return the version of Ruby.
1380
+ resolution: |
1381
+ All platforms: use `RUBY_VERSION` from the Ruby loaded by facter.
1382
+ caveats: |
1383
+ All platforms: facter must be able to locate `libruby`.
1384
+
1385
+ selinux:
1386
+ type: boolean
1387
+ hidden: true
1388
+ description: Return whether Security-Enhanced Linux (SELinux) is enabled.
1389
+ resolution: |
1390
+ Linux: parse the contents of `/proc/self/mounts` to determine if SELinux is enabled.
1391
+
1392
+ selinux_config_mode:
1393
+ type: string
1394
+ hidden: true
1395
+ description: Return the configured Security-Enhanced Linux (SELinux) mode.
1396
+ resolution: |
1397
+ Linux: parse the contents of `/etc/selinux/config` to retrieve the configured SELinux mode.
1398
+
1399
+ selinux_config_policy:
1400
+ type: string
1401
+ hidden: true
1402
+ description: Return the configured Security-Enhanced Linux (SELinux) policy.
1403
+ resolution: |
1404
+ Linux: parse the contents of `/etc/selinux/config` to retrieve the configured SELinux policy.
1405
+
1406
+ selinux_current_mode:
1407
+ type: string
1408
+ hidden: true
1409
+ description: Return the current Security-Enhanced Linux (SELinux) mode.
1410
+ resolution: |
1411
+ Linux: parse the contents of `<mountpoint>/enforce` to retrieve the current SELinux mode.
1412
+
1413
+ selinux_enforced:
1414
+ type: boolean
1415
+ hidden: true
1416
+ description: Return whether Security-Enhanced Linux (SELinux) is enforced.
1417
+ resolution: |
1418
+ Linux: parse the contents of `<mountpoint>/enforce` to retrieve the current SELinux mode.
1419
+
1420
+ selinux_policyversion:
1421
+ type: string
1422
+ hidden: true
1423
+ description: Return the Security-Enhanced Linux (SELinux) policy version.
1424
+ resolution: |
1425
+ Linux: parse the contents of `<mountpoint>/policyvers` to retrieve the SELinux policy version.
1426
+
1427
+ serialnumber:
1428
+ type: string
1429
+ hidden: true
1430
+ description: Return the system product serial number.
1431
+ resolution: |
1432
+ Linux: parse the contents of `/sys/class/dmi/id/product_name` to retrieve the system product serial number.
1433
+ Solaris: use the `smbios` utility to retrieve the system product serial number.
1434
+ Windows: use WMI to retrieve the system product serial number.
1435
+ caveats: |
1436
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
1437
+
1438
+ solaris_zones:
1439
+ type: map
1440
+ description: Return information about Solaris zones.
1441
+ resolution: |
1442
+ Solaris: use the `zoneadm` and `zonename` utilities to retrieve information about the Solaris zones.
1443
+ elements:
1444
+ current:
1445
+ type: string
1446
+ description: The name of the current Solaris zone.
1447
+ zones:
1448
+ type: map
1449
+ description: Represents the Solaris zones.
1450
+ elements:
1451
+ <zonename>:
1452
+ pattern: .*
1453
+ type: map
1454
+ description: Represents a Solaris zone.
1455
+ elements:
1456
+ brand:
1457
+ type: string
1458
+ description: The brand of the Solaris zone.
1459
+ id:
1460
+ type: string
1461
+ description: The id of the Solaris zone.
1462
+ ip_type:
1463
+ type: string
1464
+ description: The IP type of the Solaris zone.
1465
+ path:
1466
+ type: string
1467
+ description: The path of the Solaris zone.
1468
+ status:
1469
+ type: string
1470
+ description: The status of the Solaris zone.
1471
+ uuid:
1472
+ type: string
1473
+ description: The unique identifier of the Solaris zone.
1474
+
1475
+ sp_<name>:
1476
+ pattern: ^sp_\w+$
1477
+ hidden: true
1478
+ type: string
1479
+ description: Return Mac OSX system profiler information.
1480
+ resolution: |
1481
+ Mac OSX: use the `system_profiler` utility to retrieve system profiler information.
1482
+
1483
+ ssh:
1484
+ type: map
1485
+ description: Return SSH public keys and fingerprints.
1486
+ resolution: |
1487
+ POSIX platforms: parse SSH public key files and derive fingerprints.
1488
+ caveats: |
1489
+ POSIX platforms: facter must be built with OpenSSL support.
1490
+ elements:
1491
+ dsa:
1492
+ type: map
1493
+ description: Represents the public key and fingerprints for the DSA algorithm.
1494
+ elements:
1495
+ fingerprints:
1496
+ type: map
1497
+ description: Represents fingerprint information.
1498
+ elements:
1499
+ sha1:
1500
+ type: string
1501
+ description: The SHA1 fingerprint of the public key.
1502
+ sha256:
1503
+ type: string
1504
+ description: The SHA256 fingerprint of the public key.
1505
+ key:
1506
+ type: string
1507
+ description: The DSA public key.
1508
+ type:
1509
+ type: string
1510
+ description: The exact type of the key, i.e. "ssh-dss".
1511
+ ecdsa:
1512
+ type: map
1513
+ description: Represents the public key and fingerprints for the ECDSA algorithm.
1514
+ elements:
1515
+ fingerprints:
1516
+ type: map
1517
+ description: Represents fingerprint information.
1518
+ elements:
1519
+ sha1:
1520
+ type: string
1521
+ description: The SHA1 fingerprint of the public key.
1522
+ sha256:
1523
+ type: string
1524
+ description: The SHA256 fingerprint of the public key.
1525
+ key:
1526
+ type: string
1527
+ description: The ECDSA public key.
1528
+ type:
1529
+ type: string
1530
+ description: The exact type of the key, e.g. "ecdsa-sha2-nistp256".
1531
+ ed25519:
1532
+ type: map
1533
+ description: Represents the public key and fingerprints for the Ed25519 algorithm.
1534
+ elements:
1535
+ fingerprints:
1536
+ type: map
1537
+ description: Represents fingerprint information.
1538
+ elements:
1539
+ sha1:
1540
+ type: string
1541
+ description: The SHA1 fingerprint of the public key.
1542
+ sha256:
1543
+ type: string
1544
+ description: The SHA256 fingerprint of the public key.
1545
+ key:
1546
+ type: string
1547
+ description: The Ed25519 public key.
1548
+ type:
1549
+ type: string
1550
+ description: The exact type of the key, i.e. "ssh-ed25519".
1551
+ rsa:
1552
+ type: map
1553
+ description: Represents the public key and fingerprints for the RSA algorithm.
1554
+ elements:
1555
+ fingerprints:
1556
+ type: map
1557
+ description: Represents fingerprint information.
1558
+ elements:
1559
+ sha1:
1560
+ type: string
1561
+ description: The SHA1 fingerprint of the public key.
1562
+ sha256:
1563
+ type: string
1564
+ description: The SHA256 fingerprint of the public key.
1565
+ key:
1566
+ type: string
1567
+ description: The RSA public key.
1568
+ type:
1569
+ type: string
1570
+ description: The exact type of the key, i.e. "ssh-rsa".
1571
+
1572
+ ssh<algorithm>key:
1573
+ pattern: ^ssh\w*key$
1574
+ hidden: true
1575
+ type: string
1576
+ description: Return the SSH public key for the algorithm.
1577
+ resolution: |
1578
+ POSIX platforms: parse SSH public key files.
1579
+ caveats: |
1580
+ POSIX platforms: facter must be built with OpenSSL support.
1581
+
1582
+ sshfp_<algorithm>:
1583
+ pattern: ^sshfp_\w*$
1584
+ hidden: true
1585
+ type: string
1586
+ description: Return the SSH fingerprints for the algorithm's public key.
1587
+ resolution: |
1588
+ POSIX platforms: derive the SHA1 and SHA256 fingerprints; delimit with a new line character.
1589
+ caveats: |
1590
+ POSIX platforms: facter must be built with OpenSSL support.
1591
+
1592
+ swapencrypted:
1593
+ type: boolean
1594
+ hidden: true
1595
+ description: Return whether or not the swap is encrypted.
1596
+ resolution: |
1597
+ Mac OSX: use the `sysctl` function to retrieve swap encryption status.
1598
+
1599
+ swapfree:
1600
+ type: string
1601
+ hidden: true
1602
+ description: Return the display size of the free swap memory, such as "1 GiB".
1603
+ resolution: |
1604
+ Linux: parse the contents of `/proc/meminfo` to retrieve the free swap memory.
1605
+ Mac OSX: use the `sysctl` function to retrieve the free swap memory.
1606
+ Solaris: use the `swapctl` function to retrieve the free swap memory.
1607
+
1608
+ swapfree_mb:
1609
+ type: double
1610
+ hidden: true
1611
+ description: Return the size of the free swap memory, in mebibytes.
1612
+ resolution: |
1613
+ Linux: parse the contents of `/proc/meminfo` to retrieve the free swap memory.
1614
+ Mac OSX: use the `sysctl` function to retrieve the free swap memory.
1615
+ Solaris: use the `swapctl` function to retrieve the free swap memory.
1616
+
1617
+ swapsize:
1618
+ type: string
1619
+ hidden: true
1620
+ description: Return the display size of the total swap memory, such as "1 GiB".
1621
+ resolution: |
1622
+ Linux: parse the contents of `/proc/meminfo` to retrieve the total swap memory.
1623
+ Mac OSX: use the `sysctl` function to retrieve the total swap memory.
1624
+ Solaris: use the `swapctl` function to retrieve the total swap memory.
1625
+
1626
+ swapsize_mb:
1627
+ type: double
1628
+ hidden: true
1629
+ description: Return the size of the total swap memory, in mebibytes.
1630
+ resolution: |
1631
+ Linux: parse the contents of `/proc/meminfo` to retrieve the total swap memory.
1632
+ Mac OSX: use the `sysctl` function to retrieve the total swap memory.
1633
+ Solaris: use the `swapctl` function to retrieve the total swap memory.
1634
+
1635
+ system32:
1636
+ type: string
1637
+ hidden: true
1638
+ description: Return the path to the System32 directory on Windows.
1639
+ resolution: |
1640
+ Windows: use the `SHGetFolderPath` function to retrieve the path to the System32 directory.
1641
+
1642
+ system_profiler:
1643
+ type: map
1644
+ description: Return information from the Mac OSX system profiler.
1645
+ resolution: |
1646
+ Mac OSX: use the `system_profiler` utility to retrieve system profiler information.
1647
+ elements:
1648
+ boot_mode:
1649
+ type: string
1650
+ description: The boot mode.
1651
+ boot_rom_version:
1652
+ type: string
1653
+ description: The boot ROM version.
1654
+ boot_volume:
1655
+ type: string
1656
+ description: The boot volume.
1657
+ computer_name:
1658
+ type: string
1659
+ description: The name of the computer.
1660
+ cores:
1661
+ type: string
1662
+ description: The total number of processor cores.
1663
+ hardware_uuid:
1664
+ type: string
1665
+ description: The hardware unique identifier.
1666
+ kernel_version:
1667
+ type: string
1668
+ description: The version of the kernel.
1669
+ l2_cache_per_core:
1670
+ type: string
1671
+ description: The size of the processor per-core L2 cache.
1672
+ l3_cache:
1673
+ type: string
1674
+ description: The size of the processor L3 cache.
1675
+ memory:
1676
+ type: string
1677
+ description: The size of the system memory.
1678
+ model_identifier:
1679
+ type: string
1680
+ description: The identifier of the computer model.
1681
+ model_name:
1682
+ type: string
1683
+ description: The name of the computer model.
1684
+ processor_name:
1685
+ type: string
1686
+ description: The model name of the processor.
1687
+ processor_speed:
1688
+ type: string
1689
+ description: The speed of the processor.
1690
+ processors:
1691
+ type: string
1692
+ description: The total number of processors.
1693
+ secure_virtual_memory:
1694
+ type: string
1695
+ description: Whether or not secure virtual memory is enabled.
1696
+ serial_number:
1697
+ type: string
1698
+ description: The serial number of the computer.
1699
+ smc_version:
1700
+ type: string
1701
+ description: The System Management Controller (SMC) version.
1702
+ system_version:
1703
+ type: string
1704
+ description: The operating system version.
1705
+ uptime:
1706
+ type: string
1707
+ description: The uptime of the system.
1708
+ username:
1709
+ type: string
1710
+ description: The name of the user running facter.
1711
+
1712
+ system_uptime:
1713
+ type: map
1714
+ description: Return the system uptime information.
1715
+ resolution: |
1716
+ Linux: use the `sysinfo` function to retrieve the system uptime.
1717
+ POSIX platforms: use the `uptime` utility to retrieve the system uptime.
1718
+ Solaris: use the `kstat` function to retrieve the system uptime.
1719
+ Windows: use WMI to retrieve the system uptime.
1720
+ elements:
1721
+ days:
1722
+ type: integer
1723
+ description: The number of complete days the system has been up.
1724
+ hours:
1725
+ type: integer
1726
+ description: The number of complete hours the system has been up.
1727
+ seconds:
1728
+ type: integer
1729
+ description: The number of total seconds the system has been up.
1730
+ uptime:
1731
+ type: string
1732
+ description: The full uptime string.
1733
+
1734
+ timezone:
1735
+ type: string
1736
+ description: Return the system timezone.
1737
+ resolution: |
1738
+ POSIX platforms: use the `localtime_r` function to retrieve the system timezone.
1739
+ Windows: use the `localtime_s` function to retrieve the system timezone.
1740
+
1741
+ uptime:
1742
+ type: string
1743
+ hidden: true
1744
+ description: Return the system uptime.
1745
+ resolution: |
1746
+ Linux: use the `sysinfo` function to retrieve the system uptime.
1747
+ POSIX platforms: use the `uptime` utility to retrieve the system uptime.
1748
+ Solaris: use the `kstat` function to retrieve the system uptime.
1749
+ Windows: use WMI to retrieve the system uptime.
1750
+
1751
+ uptime_days:
1752
+ type: integer
1753
+ hidden: true
1754
+ description: Return the system uptime days.
1755
+ resolution: |
1756
+ Linux: use the `sysinfo` function to retrieve the system uptime days.
1757
+ POSIX platforms: use the `uptime` utility to retrieve the system uptime days.
1758
+ Solaris: use the `kstat` function to retrieve the system uptime days.
1759
+ Windows: use WMI to retrieve the system uptime days.
1760
+
1761
+ uptime_hours:
1762
+ type: integer
1763
+ hidden: true
1764
+ description: Return the system uptime hours.
1765
+ resolution: |
1766
+ Linux: use the `sysinfo` function to retrieve the system uptime hours.
1767
+ POSIX platforms: use the `uptime` utility to retrieve the system uptime hours.
1768
+ Solaris: use the `kstat` function to retrieve the system uptime hours.
1769
+ Windows: use WMI to retrieve the system uptime hours.
1770
+
1771
+ uptime_seconds:
1772
+ type: integer
1773
+ hidden: true
1774
+ description: Return the system uptime seconds.
1775
+ resolution: |
1776
+ Linux: use the `sysinfo` function to retrieve the system uptime seconds.
1777
+ POSIX platforms: use the `uptime` utility to retrieve the system uptime seconds.
1778
+ Solaris: use the `kstat` function to retrieve the system uptime seconds.
1779
+ Windows: use WMI to retrieve the system uptime seconds.
1780
+
1781
+ uuid:
1782
+ type: string
1783
+ hidden: true
1784
+ description: Return the system product unique identifier.
1785
+ resolution: |
1786
+ Linux: parse the contents of `/sys/class/dmi/id/product_uuid` to retrieve the system product unique identifier.
1787
+ Solaris: use the `smbios` utility to retrieve the system product unique identifier.
1788
+ caveats: |
1789
+ Linux: kernel 2.6+ is required due to the reliance on sysfs.
1790
+
1791
+ virtual:
1792
+ type: string
1793
+ description: Return the hypervisor name for virtual machines or "physical" for physical machines.
1794
+ resolution: |
1795
+ Linux: use procfs or utilities such as `vmware` and `virt-what` to retrieve virtual machine name.
1796
+ Mac OSX: use the system profiler to retrieve virtual machine name.
1797
+ Solaris: use the `zonename` utility to retrieve virtual machine name.
1798
+ Windows: use WMI to retrieve virtual machine name.
1799
+
1800
+ xen:
1801
+ type: map
1802
+ description: Return metadata for the Xen hypervisor.
1803
+ resolution: |
1804
+ POSIX platforms: use `/usr/lib/xen-common/bin/xen-toolstack` to locate xen admin commands if available, otherwise fallback to `/usr/sbin/xl` or `/usr/sbin/xm`. Use the found command to execute the `list` query.
1805
+ caveats: |
1806
+ POSIX platforms: confined to Xen privileged virtual machines.
1807
+ elements:
1808
+ domains:
1809
+ type: array
1810
+ description: list of strings identifying active Xen domains.
1811
+
1812
+ xendomains:
1813
+ type: string
1814
+ hidden: true
1815
+ description: Return a list of comma-separated active Xen domain names.
1816
+ resolution: |
1817
+ POSIX platforms: see the `xen` structured fact.
1818
+ caveats: |
1819
+ POSIX platforms: confined to Xen privileged virtual machines.
1820
+
1821
+ zfs_featurenumbers:
1822
+ type: string
1823
+ description: Return the comma-delimited feature numbers for ZFS.
1824
+ resolution: |
1825
+ Solaris: use the `zfs` utility to retrieve the feature numbers for ZFS
1826
+ caveats: |
1827
+ Solaris: the `zfs` utility must be present.
1828
+
1829
+ zfs_version:
1830
+ type: string
1831
+ description: Return the version for ZFS.
1832
+ resolution: |
1833
+ Solaris: use the `zfs` utility to retrieve the version for ZFS
1834
+ caveats: |
1835
+ Solaris: the `zfs` utility must be present.
1836
+
1837
+ zone_<name>_brand:
1838
+ pattern: ^zone_[\w\-\.]+_brand$
1839
+ type: string
1840
+ hidden: true
1841
+ description: Return the brand for the Solaris zone.
1842
+ resolution: |
1843
+ Solaris: use the `zoneadm` utility to retrieve the brand for the Solaris zone.
1844
+ caveats: |
1845
+ Solaris: the `zoneadm` utility must be present.
1846
+
1847
+ zone_<name>_iptype:
1848
+ pattern: ^zone_[\w\-\.]+_iptype$
1849
+ type: string
1850
+ hidden: true
1851
+ description: Return the IP type for the Solaris zone.
1852
+ resolution: |
1853
+ Solaris: use the `zoneadm` utility to retrieve the IP type for the Solaris zone.
1854
+ caveats: |
1855
+ Solaris: the `zoneadm` utility must be present.
1856
+
1857
+ zone_<name>_name:
1858
+ pattern: ^zone_[\w\-\.]+_name$
1859
+ type: string
1860
+ hidden: true
1861
+ description: Return the name for the Solaris zone.
1862
+ resolution: |
1863
+ Solaris: use the `zoneadm` utility to retrieve the name for the Solaris zone.
1864
+ caveats: |
1865
+ Solaris: the `zoneadm` utility must be present.
1866
+
1867
+ zone_<name>_uuid:
1868
+ pattern: ^zone_[\w\-\.]+_uuid$
1869
+ type: string
1870
+ hidden: true
1871
+ description: Return the unique identifier for the Solaris zone.
1872
+ resolution: |
1873
+ Solaris: use the `zoneadm` utility to retrieve the unique identifier for the Solaris zone.
1874
+ caveats: |
1875
+ Solaris: the `zoneadm` utility must be present.
1876
+
1877
+ zone_<name>_id:
1878
+ pattern: ^zone_[\w\-\.]+_id$
1879
+ type: string
1880
+ hidden: true
1881
+ description: Return the zone identifier for the Solaris zone.
1882
+ resolution: |
1883
+ Solaris: use the `zoneadm` utility to retrieve the zone identifier for the Solaris zone.
1884
+ caveats: |
1885
+ Solaris: the `zoneadm` utility must be present.
1886
+
1887
+ zone_<name>_path:
1888
+ pattern: ^zone_[\w\-\.]+_path$
1889
+ type: string
1890
+ hidden: true
1891
+ description: Return the zone path for the Solaris zone.
1892
+ resolution: |
1893
+ Solaris: use the `zoneadm` utility to retrieve the zone path for the Solaris zone.
1894
+ caveats: |
1895
+ Solaris: the `zoneadm` utility must be present.
1896
+
1897
+ zone_<name>_status:
1898
+ pattern: ^zone_[\w\-\.]+_status$
1899
+ type: string
1900
+ hidden: true
1901
+ description: Return the zone state for the Solaris zone.
1902
+ resolution: |
1903
+ Solaris: use the `zoneadm` utility to retrieve the zone state for the Solaris zone.
1904
+ caveats: |
1905
+ Solaris: the `zoneadm` utility must be present.
1906
+
1907
+ zonename:
1908
+ type: string
1909
+ hidden: true
1910
+ description: Return the name of the current Solaris zone.
1911
+ resolution: |
1912
+ Solaris: use the `zonename` utility to retrieve the current zone name.
1913
+ caveats: |
1914
+ Solaris: the `zonename` utility must be present.
1915
+
1916
+ zones:
1917
+ type: integer
1918
+ hidden: true
1919
+ description: Return the count of Solaris zones.
1920
+ resolution: |
1921
+ Solaris: use the `zoneadm` utility to retrieve the count of Solaris zones.
1922
+ caveats: |
1923
+ Solaris: the `zoneadm` utility must be present.
1924
+
1925
+ zpool_featureflags:
1926
+ type: string
1927
+ description: Return the comma-delimited feature flags for ZFS storage pools.
1928
+ resolution: |
1929
+ Solaris: use the `zpool` utility to retrieve the feature numbers for ZFS storage pools
1930
+ caveats: |
1931
+ Solaris: the `zpool` utility must be present.
1932
+
1933
+ zpool_featurenumbers:
1934
+ type: string
1935
+ description: Return the comma-delimited feature numbers for ZFS storage pools.
1936
+ resolution: |
1937
+ Solaris: use the `zpool` utility to retrieve the feature numbers for ZFS storage pools
1938
+ caveats: |
1939
+ Solaris: the `zpool` utility must be present.
1940
+
1941
+ zpool_version:
1942
+ type: string
1943
+ description: Return the version for ZFS storage pools.
1944
+ resolution: |
1945
+ Solaris: use the `zpool` utility to retrieve the version for ZFS storage pools
1946
+ caveats: |
1947
+ Solaris: the `zpool` utility must be present.