puppet 8.5.1-universal-darwin → 8.7.0-universal-darwin

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -2
  3. data/Gemfile.lock +55 -48
  4. data/Rakefile +45 -22
  5. data/examples/hiera/README.md +68 -57
  6. data/examples/hiera/data/common.yaml +12 -0
  7. data/examples/hiera/data/dc1.yaml +6 -0
  8. data/examples/hiera/hiera.yaml +15 -0
  9. data/examples/hiera/modules/ntp/data/common.yaml +4 -0
  10. data/examples/hiera/modules/ntp/hiera.yaml +9 -0
  11. data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
  12. data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
  13. data/examples/hiera/modules/users/manifests/common.pp +7 -2
  14. data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
  15. data/examples/hiera/site.pp +1 -1
  16. data/ext/project_data.yaml +0 -45
  17. data/ext/windows/service/daemon.rb +49 -55
  18. data/lib/hiera/scope.rb +3 -3
  19. data/lib/hiera_puppet.rb +1 -1
  20. data/lib/puppet/agent/disabler.rb +1 -1
  21. data/lib/puppet/application/agent.rb +2 -2
  22. data/lib/puppet/application/apply.rb +2 -2
  23. data/lib/puppet/application/describe.rb +6 -6
  24. data/lib/puppet/application/device.rb +99 -100
  25. data/lib/puppet/application/doc.rb +1 -1
  26. data/lib/puppet/application/face_base.rb +7 -7
  27. data/lib/puppet/application/filebucket.rb +1 -1
  28. data/lib/puppet/application/lookup.rb +5 -5
  29. data/lib/puppet/application/resource.rb +10 -3
  30. data/lib/puppet/application/ssl.rb +3 -3
  31. data/lib/puppet/application.rb +16 -18
  32. data/lib/puppet/coercion.rb +1 -1
  33. data/lib/puppet/configurer/downloader.rb +9 -4
  34. data/lib/puppet/configurer/fact_handler.rb +12 -13
  35. data/lib/puppet/configurer.rb +16 -18
  36. data/lib/puppet/confine/feature.rb +1 -1
  37. data/lib/puppet/confine/variable.rb +1 -1
  38. data/lib/puppet/confine.rb +2 -2
  39. data/lib/puppet/confine_collection.rb +1 -1
  40. data/lib/puppet/confiner.rb +2 -2
  41. data/lib/puppet/daemon.rb +4 -3
  42. data/lib/puppet/datatypes.rb +5 -6
  43. data/lib/puppet/defaults.rb +14 -8
  44. data/lib/puppet/environments.rb +3 -7
  45. data/lib/puppet/error.rb +3 -3
  46. data/lib/puppet/external/dot.rb +42 -34
  47. data/lib/puppet/face/catalog/select.rb +1 -1
  48. data/lib/puppet/face/epp.rb +7 -9
  49. data/lib/puppet/face/help.rb +12 -12
  50. data/lib/puppet/face/module/changes.rb +1 -3
  51. data/lib/puppet/face/module/list.rb +37 -37
  52. data/lib/puppet/face/node/clean.rb +1 -1
  53. data/lib/puppet/face/parser.rb +6 -8
  54. data/lib/puppet/face/report.rb +5 -7
  55. data/lib/puppet/facter_impl.rb +1 -1
  56. data/lib/puppet/feature/base.rb +9 -11
  57. data/lib/puppet/feature/pe_license.rb +1 -1
  58. data/lib/puppet/feature/ssh.rb +1 -1
  59. data/lib/puppet/feature/telnet.rb +3 -5
  60. data/lib/puppet/feature/zlib.rb +1 -1
  61. data/lib/puppet/ffi/windows/constants.rb +1 -1
  62. data/lib/puppet/ffi/windows/functions.rb +2 -2
  63. data/lib/puppet/ffi/windows/structs.rb +3 -3
  64. data/lib/puppet/file_bucket/dipper.rb +4 -4
  65. data/lib/puppet/file_bucket/file.rb +4 -4
  66. data/lib/puppet/file_serving/base.rb +5 -5
  67. data/lib/puppet/file_serving/configuration/parser.rb +9 -9
  68. data/lib/puppet/file_serving/configuration.rb +3 -3
  69. data/lib/puppet/file_serving/fileset.rb +13 -13
  70. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  71. data/lib/puppet/file_serving/metadata.rb +13 -9
  72. data/lib/puppet/file_serving/mount/file.rb +6 -6
  73. data/lib/puppet/file_serving/mount/locales.rb +2 -4
  74. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
  75. data/lib/puppet/file_serving/mount/plugins.rb +2 -4
  76. data/lib/puppet/file_serving/mount.rb +1 -1
  77. data/lib/puppet/file_system/file_impl.rb +3 -3
  78. data/lib/puppet/file_system/memory_impl.rb +1 -1
  79. data/lib/puppet/file_system/path_pattern.rb +1 -1
  80. data/lib/puppet/file_system/uniquefile.rb +17 -16
  81. data/lib/puppet/file_system/windows.rb +26 -18
  82. data/lib/puppet/forge/cache.rb +2 -2
  83. data/lib/puppet/forge/errors.rb +1 -1
  84. data/lib/puppet/forge/repository.rb +2 -2
  85. data/lib/puppet/forge.rb +13 -19
  86. data/lib/puppet/functions/abs.rb +2 -2
  87. data/lib/puppet/functions/camelcase.rb +1 -1
  88. data/lib/puppet/functions/compare.rb +2 -2
  89. data/lib/puppet/functions/contain.rb +1 -1
  90. data/lib/puppet/functions/defined.rb +2 -2
  91. data/lib/puppet/functions/dig.rb +1 -1
  92. data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
  93. data/lib/puppet/functions/get.rb +1 -1
  94. data/lib/puppet/functions/hocon_data.rb +3 -5
  95. data/lib/puppet/functions/import.rb +1 -1
  96. data/lib/puppet/functions/json_data.rb +4 -6
  97. data/lib/puppet/functions/max.rb +2 -2
  98. data/lib/puppet/functions/min.rb +2 -2
  99. data/lib/puppet/functions/new.rb +1 -1
  100. data/lib/puppet/functions/reduce.rb +6 -10
  101. data/lib/puppet/functions/regsubst.rb +2 -2
  102. data/lib/puppet/functions/require.rb +1 -1
  103. data/lib/puppet/functions/yaml_data.rb +11 -13
  104. data/lib/puppet/functions.rb +32 -37
  105. data/lib/puppet/generate/type.rb +2 -2
  106. data/lib/puppet/gettext/config.rb +9 -9
  107. data/lib/puppet/graph/rb_tree_map.rb +31 -23
  108. data/lib/puppet/graph/relationship_graph.rb +12 -12
  109. data/lib/puppet/graph/simple_graph.rb +8 -10
  110. data/lib/puppet/http/client.rb +1 -1
  111. data/lib/puppet/http/dns.rb +4 -4
  112. data/lib/puppet/http/external_client.rb +1 -1
  113. data/lib/puppet/http/factory.rb +1 -1
  114. data/lib/puppet/http/proxy.rb +15 -15
  115. data/lib/puppet/http/redirector.rb +6 -2
  116. data/lib/puppet/http/resolver.rb +2 -2
  117. data/lib/puppet/http/retry_after_handler.rb +2 -2
  118. data/lib/puppet/http/service/ca.rb +1 -1
  119. data/lib/puppet/http/service/compiler.rb +4 -4
  120. data/lib/puppet/http/service/file_server.rb +1 -1
  121. data/lib/puppet/http/service/report.rb +2 -2
  122. data/lib/puppet/http/service.rb +9 -13
  123. data/lib/puppet/http/session.rb +1 -1
  124. data/lib/puppet/http/site.rb +1 -1
  125. data/lib/puppet/indirector/catalog/compiler.rb +44 -45
  126. data/lib/puppet/indirector/catalog/rest.rb +7 -5
  127. data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
  128. data/lib/puppet/indirector/exec.rb +2 -2
  129. data/lib/puppet/indirector/face.rb +7 -9
  130. data/lib/puppet/indirector/fact_search.rb +1 -1
  131. data/lib/puppet/indirector/facts/facter.rb +6 -6
  132. data/lib/puppet/indirector/facts/json.rb +1 -1
  133. data/lib/puppet/indirector/facts/store_configs.rb +1 -1
  134. data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
  135. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
  136. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  137. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  138. data/lib/puppet/indirector/hiera.rb +1 -1
  139. data/lib/puppet/indirector/indirection.rb +27 -29
  140. data/lib/puppet/indirector/json.rb +4 -4
  141. data/lib/puppet/indirector/memory.rb +2 -2
  142. data/lib/puppet/indirector/msgpack.rb +5 -5
  143. data/lib/puppet/indirector/node/store_configs.rb +1 -1
  144. data/lib/puppet/indirector/none.rb +1 -1
  145. data/lib/puppet/indirector/report/json.rb +1 -1
  146. data/lib/puppet/indirector/report/yaml.rb +1 -1
  147. data/lib/puppet/indirector/request.rb +4 -4
  148. data/lib/puppet/indirector/resource/ral.rb +2 -4
  149. data/lib/puppet/indirector/resource/store_configs.rb +1 -1
  150. data/lib/puppet/indirector/terminus.rb +4 -4
  151. data/lib/puppet/indirector/yaml.rb +3 -3
  152. data/lib/puppet/info_service/class_information_service.rb +5 -8
  153. data/lib/puppet/info_service/task_information_service.rb +6 -7
  154. data/lib/puppet/interface/action.rb +5 -5
  155. data/lib/puppet/interface/action_manager.rb +5 -5
  156. data/lib/puppet/interface/documentation.rb +5 -5
  157. data/lib/puppet/interface/face_collection.rb +7 -7
  158. data/lib/puppet/interface/option.rb +2 -2
  159. data/lib/puppet/interface/option_manager.rb +6 -6
  160. data/lib/puppet/interface.rb +4 -4
  161. data/lib/puppet/metatype/manager.rb +2 -2
  162. data/lib/puppet/module/plan.rb +10 -10
  163. data/lib/puppet/module/task.rb +8 -8
  164. data/lib/puppet/module.rb +39 -41
  165. data/lib/puppet/module_tool/applications/application.rb +10 -8
  166. data/lib/puppet/module_tool/applications/installer.rb +53 -50
  167. data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
  168. data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
  169. data/lib/puppet/module_tool/checksums.rb +2 -2
  170. data/lib/puppet/module_tool/dependency.rb +1 -1
  171. data/lib/puppet/module_tool/errors/base.rb +1 -1
  172. data/lib/puppet/module_tool/install_directory.rb +1 -1
  173. data/lib/puppet/module_tool/local_tarball.rb +3 -5
  174. data/lib/puppet/module_tool/metadata.rb +12 -8
  175. data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
  176. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  177. data/lib/puppet/module_tool.rb +4 -4
  178. data/lib/puppet/network/client_request.rb +5 -3
  179. data/lib/puppet/network/format.rb +2 -2
  180. data/lib/puppet/network/format_support.rb +1 -1
  181. data/lib/puppet/network/formats.rb +1 -1
  182. data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
  183. data/lib/puppet/network/http/api/server/v3.rb +1 -1
  184. data/lib/puppet/network/http/connection.rb +1 -1
  185. data/lib/puppet/network/http/handler.rb +8 -12
  186. data/lib/puppet/network/http/request.rb +1 -1
  187. data/lib/puppet/network/http/route.rb +9 -9
  188. data/lib/puppet/node/environment.rb +21 -23
  189. data/lib/puppet/node/facts.rb +1 -1
  190. data/lib/puppet/node.rb +5 -5
  191. data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
  192. data/lib/puppet/pal/pal_impl.rb +48 -50
  193. data/lib/puppet/pal/plan_signature.rb +1 -1
  194. data/lib/puppet/pal/task_signature.rb +1 -1
  195. data/lib/puppet/parameter/package_options.rb +1 -1
  196. data/lib/puppet/parameter/value.rb +2 -2
  197. data/lib/puppet/parameter/value_collection.rb +7 -7
  198. data/lib/puppet/parameter.rb +8 -9
  199. data/lib/puppet/parser/ast/block_expression.rb +2 -2
  200. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  201. data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
  202. data/lib/puppet/parser/ast/resource.rb +4 -4
  203. data/lib/puppet/parser/ast/resourceparam.rb +4 -4
  204. data/lib/puppet/parser/ast.rb +14 -15
  205. data/lib/puppet/parser/compiler.rb +26 -28
  206. data/lib/puppet/parser/functions/create_resources.rb +3 -3
  207. data/lib/puppet/parser/functions/fail.rb +1 -1
  208. data/lib/puppet/parser/functions/generate.rb +2 -2
  209. data/lib/puppet/parser/functions/tag.rb +1 -1
  210. data/lib/puppet/parser/functions.rb +2 -2
  211. data/lib/puppet/parser/relationship.rb +3 -1
  212. data/lib/puppet/parser/resource/param.rb +2 -2
  213. data/lib/puppet/parser/resource.rb +23 -23
  214. data/lib/puppet/parser/scope.rb +10 -10
  215. data/lib/puppet/parser/script_compiler.rb +1 -1
  216. data/lib/puppet/parser/templatewrapper.rb +1 -1
  217. data/lib/puppet/parser/type_loader.rb +10 -12
  218. data/lib/puppet/parser.rb +1 -1
  219. data/lib/puppet/pops/adaptable.rb +1 -1
  220. data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
  221. data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
  222. data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
  223. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
  224. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
  225. data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
  226. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  227. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  228. data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
  229. data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
  230. data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
  231. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  232. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  233. data/lib/puppet/pops/functions/function.rb +14 -16
  234. data/lib/puppet/pops/issue_reporter.rb +2 -2
  235. data/lib/puppet/pops/label_provider.rb +2 -2
  236. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  237. data/lib/puppet/pops/loader/loader.rb +4 -4
  238. data/lib/puppet/pops/loader/loader_paths.rb +3 -3
  239. data/lib/puppet/pops/loader/module_loaders.rb +11 -11
  240. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
  241. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  242. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
  243. data/lib/puppet/pops/loader/static_loader.rb +5 -5
  244. data/lib/puppet/pops/loaders.rb +3 -3
  245. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  246. data/lib/puppet/pops/lookup/explainer.rb +2 -2
  247. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  248. data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
  249. data/lib/puppet/pops/lookup/interpolation.rb +3 -3
  250. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  251. data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
  252. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
  253. data/lib/puppet/pops/lookup/module_data_provider.rb +9 -9
  254. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  255. data/lib/puppet/pops/merge_strategy.rb +6 -6
  256. data/lib/puppet/pops/migration/migration_checker.rb +1 -1
  257. data/lib/puppet/pops/model/ast_transformer.rb +9 -11
  258. data/lib/puppet/pops/model/factory.rb +4 -5
  259. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  260. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  261. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
  262. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  263. data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
  264. data/lib/puppet/pops/parser/lexer2.rb +20 -12
  265. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  266. data/lib/puppet/pops/parser/locator.rb +4 -4
  267. data/lib/puppet/pops/parser/parser_support.rb +12 -14
  268. data/lib/puppet/pops/parser/pn_parser.rb +3 -3
  269. data/lib/puppet/pops/parser/slurp_support.rb +8 -8
  270. data/lib/puppet/pops/patterns.rb +12 -12
  271. data/lib/puppet/pops/pcore.rb +1 -1
  272. data/lib/puppet/pops/pn.rb +2 -2
  273. data/lib/puppet/pops/puppet_stack.rb +1 -1
  274. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  275. data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
  276. data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
  277. data/lib/puppet/pops/time/timestamp.rb +1 -1
  278. data/lib/puppet/pops/types/class_loader.rb +4 -6
  279. data/lib/puppet/pops/types/iterable.rb +1 -1
  280. data/lib/puppet/pops/types/p_binary_type.rb +1 -1
  281. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  282. data/lib/puppet/pops/types/p_object_type.rb +5 -5
  283. data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
  284. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  285. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  286. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  287. data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
  288. data/lib/puppet/pops/types/p_uri_type.rb +4 -4
  289. data/lib/puppet/pops/types/recursion_guard.rb +4 -4
  290. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  291. data/lib/puppet/pops/types/string_converter.rb +12 -8
  292. data/lib/puppet/pops/types/tree_iterators.rb +4 -6
  293. data/lib/puppet/pops/types/type_calculator.rb +10 -10
  294. data/lib/puppet/pops/types/type_factory.rb +7 -3
  295. data/lib/puppet/pops/types/type_formatter.rb +22 -24
  296. data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
  297. data/lib/puppet/pops/types/types.rb +28 -24
  298. data/lib/puppet/pops/utils.rb +38 -42
  299. data/lib/puppet/pops/validation/checker4_0.rb +10 -10
  300. data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
  301. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  302. data/lib/puppet/pops/validation.rb +4 -4
  303. data/lib/puppet/pops/visitor.rb +2 -2
  304. data/lib/puppet/property/ensure.rb +12 -14
  305. data/lib/puppet/property/keyvalue.rb +4 -4
  306. data/lib/puppet/property/list.rb +4 -4
  307. data/lib/puppet/property/ordered_list.rb +1 -1
  308. data/lib/puppet/property.rb +31 -33
  309. data/lib/puppet/provider/aix_object.rb +1 -1
  310. data/lib/puppet/provider/exec.rb +2 -2
  311. data/lib/puppet/provider/file/posix.rb +19 -17
  312. data/lib/puppet/provider/file/windows.rb +13 -19
  313. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  314. data/lib/puppet/provider/group/groupadd.rb +32 -11
  315. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  316. data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
  317. data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
  318. data/lib/puppet/provider/nameservice/pw.rb +1 -2
  319. data/lib/puppet/provider/nameservice.rb +8 -8
  320. data/lib/puppet/provider/package/aix.rb +19 -19
  321. data/lib/puppet/provider/package/appdmg.rb +2 -2
  322. data/lib/puppet/provider/package/apple.rb +1 -1
  323. data/lib/puppet/provider/package/apt.rb +18 -18
  324. data/lib/puppet/provider/package/aptitude.rb +1 -3
  325. data/lib/puppet/provider/package/aptrpm.rb +9 -9
  326. data/lib/puppet/provider/package/blastwave.rb +10 -14
  327. data/lib/puppet/provider/package/dnfmodule.rb +3 -3
  328. data/lib/puppet/provider/package/dpkg.rb +11 -13
  329. data/lib/puppet/provider/package/fink.rb +14 -14
  330. data/lib/puppet/provider/package/freebsd.rb +1 -1
  331. data/lib/puppet/provider/package/gem.rb +12 -14
  332. data/lib/puppet/provider/package/macports.rb +2 -2
  333. data/lib/puppet/provider/package/nim.rb +10 -10
  334. data/lib/puppet/provider/package/openbsd.rb +22 -22
  335. data/lib/puppet/provider/package/opkg.rb +6 -6
  336. data/lib/puppet/provider/package/pacman.rb +35 -29
  337. data/lib/puppet/provider/package/pip.rb +25 -24
  338. data/lib/puppet/provider/package/pkg.rb +15 -15
  339. data/lib/puppet/provider/package/pkgdmg.rb +10 -10
  340. data/lib/puppet/provider/package/pkgin.rb +2 -2
  341. data/lib/puppet/provider/package/pkgng.rb +5 -5
  342. data/lib/puppet/provider/package/pkgutil.rb +17 -21
  343. data/lib/puppet/provider/package/portage.rb +59 -61
  344. data/lib/puppet/provider/package/ports.rb +12 -11
  345. data/lib/puppet/provider/package/portupgrade.rb +35 -35
  346. data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
  347. data/lib/puppet/provider/package/rpm.rb +26 -26
  348. data/lib/puppet/provider/package/rug.rb +7 -9
  349. data/lib/puppet/provider/package/sun.rb +4 -4
  350. data/lib/puppet/provider/package/up2date.rb +5 -7
  351. data/lib/puppet/provider/package/urpmi.rb +6 -6
  352. data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
  353. data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
  354. data/lib/puppet/provider/package/windows/package.rb +2 -2
  355. data/lib/puppet/provider/package/windows.rb +3 -5
  356. data/lib/puppet/provider/package/xbps.rb +127 -0
  357. data/lib/puppet/provider/package/yum.rb +33 -37
  358. data/lib/puppet/provider/package/zypper.rb +12 -14
  359. data/lib/puppet/provider/package.rb +1 -1
  360. data/lib/puppet/provider/package_targetable.rb +1 -1
  361. data/lib/puppet/provider/parsedfile.rb +9 -9
  362. data/lib/puppet/provider/service/base.rb +16 -21
  363. data/lib/puppet/provider/service/bsd.rb +4 -4
  364. data/lib/puppet/provider/service/daemontools.rb +31 -31
  365. data/lib/puppet/provider/service/debian.rb +6 -6
  366. data/lib/puppet/provider/service/freebsd.rb +36 -36
  367. data/lib/puppet/provider/service/gentoo.rb +6 -6
  368. data/lib/puppet/provider/service/init.rb +19 -19
  369. data/lib/puppet/provider/service/launchd.rb +22 -22
  370. data/lib/puppet/provider/service/openbsd.rb +10 -10
  371. data/lib/puppet/provider/service/openrc.rb +1 -1
  372. data/lib/puppet/provider/service/openwrt.rb +3 -3
  373. data/lib/puppet/provider/service/rcng.rb +3 -3
  374. data/lib/puppet/provider/service/redhat.rb +4 -4
  375. data/lib/puppet/provider/service/runit.rb +6 -6
  376. data/lib/puppet/provider/service/service.rb +5 -7
  377. data/lib/puppet/provider/service/smf.rb +28 -27
  378. data/lib/puppet/provider/service/src.rb +7 -7
  379. data/lib/puppet/provider/service/systemd.rb +31 -37
  380. data/lib/puppet/provider/service/upstart.rb +17 -17
  381. data/lib/puppet/provider/service/windows.rb +7 -7
  382. data/lib/puppet/provider/user/aix.rb +4 -2
  383. data/lib/puppet/provider/user/directoryservice.rb +34 -36
  384. data/lib/puppet/provider/user/hpux.rb +10 -14
  385. data/lib/puppet/provider/user/pw.rb +1 -1
  386. data/lib/puppet/provider/user/user_role_add.rb +16 -18
  387. data/lib/puppet/provider/user/useradd.rb +7 -7
  388. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  389. data/lib/puppet/provider.rb +8 -8
  390. data/lib/puppet/reference/indirection.rb +3 -0
  391. data/lib/puppet/reference/metaparameter.rb +1 -1
  392. data/lib/puppet/reference/providers.rb +3 -3
  393. data/lib/puppet/reference/type.rb +1 -1
  394. data/lib/puppet/relationship.rb +4 -5
  395. data/lib/puppet/reports/http.rb +1 -1
  396. data/lib/puppet/reports/log.rb +2 -2
  397. data/lib/puppet/reports/store.rb +4 -4
  398. data/lib/puppet/reports.rb +2 -2
  399. data/lib/puppet/resource/catalog.rb +16 -16
  400. data/lib/puppet/resource/status.rb +3 -3
  401. data/lib/puppet/resource/type.rb +8 -8
  402. data/lib/puppet/resource/type_collection.rb +1 -1
  403. data/lib/puppet/resource.rb +41 -41
  404. data/lib/puppet/scheduler/scheduler.rb +1 -1
  405. data/lib/puppet/scheduler/splay_job.rb +9 -0
  406. data/lib/puppet/settings/alias_setting.rb +3 -5
  407. data/lib/puppet/settings/base_setting.rb +11 -11
  408. data/lib/puppet/settings/boolean_setting.rb +2 -2
  409. data/lib/puppet/settings/config_file.rb +5 -4
  410. data/lib/puppet/settings/duration_setting.rb +2 -2
  411. data/lib/puppet/settings/environment_conf.rb +3 -3
  412. data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
  413. data/lib/puppet/settings/file_setting.rb +11 -11
  414. data/lib/puppet/settings/ini_file.rb +3 -3
  415. data/lib/puppet/settings/port_setting.rb +1 -1
  416. data/lib/puppet/settings/priority_setting.rb +2 -2
  417. data/lib/puppet/settings/ttl_setting.rb +2 -2
  418. data/lib/puppet/settings/value_translator.rb +8 -8
  419. data/lib/puppet/settings.rb +65 -70
  420. data/lib/puppet/ssl/base.rb +2 -4
  421. data/lib/puppet/ssl/certificate_request.rb +18 -22
  422. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  423. data/lib/puppet/ssl/oids.rb +2 -2
  424. data/lib/puppet/ssl/openssl_loader.rb +4 -4
  425. data/lib/puppet/syntax_checkers/base64.rb +3 -3
  426. data/lib/puppet/syntax_checkers/epp.rb +3 -3
  427. data/lib/puppet/syntax_checkers/json.rb +3 -3
  428. data/lib/puppet/syntax_checkers/pp.rb +3 -3
  429. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  430. data/lib/puppet/transaction/event.rb +2 -2
  431. data/lib/puppet/transaction/event_manager.rb +5 -5
  432. data/lib/puppet/transaction/persistence.rb +12 -14
  433. data/lib/puppet/transaction/report.rb +4 -4
  434. data/lib/puppet/transaction/resource_harness.rb +2 -2
  435. data/lib/puppet/transaction.rb +14 -18
  436. data/lib/puppet/type/component.rb +3 -3
  437. data/lib/puppet/type/exec.rb +51 -45
  438. data/lib/puppet/type/file/checksum_value.rb +1 -1
  439. data/lib/puppet/type/file/content.rb +6 -6
  440. data/lib/puppet/type/file/ctime.rb +2 -2
  441. data/lib/puppet/type/file/data_sync.rb +3 -3
  442. data/lib/puppet/type/file/ensure.rb +16 -15
  443. data/lib/puppet/type/file/mode.rb +9 -9
  444. data/lib/puppet/type/file/mtime.rb +2 -2
  445. data/lib/puppet/type/file/selcontext.rb +14 -14
  446. data/lib/puppet/type/file/source.rb +19 -21
  447. data/lib/puppet/type/file/target.rb +11 -11
  448. data/lib/puppet/type/file.rb +21 -21
  449. data/lib/puppet/type/filebucket.rb +3 -3
  450. data/lib/puppet/type/group.rb +3 -3
  451. data/lib/puppet/type/notify.rb +2 -2
  452. data/lib/puppet/type/package.rb +4 -4
  453. data/lib/puppet/type/resources.rb +6 -6
  454. data/lib/puppet/type/schedule.rb +9 -9
  455. data/lib/puppet/type/service.rb +6 -8
  456. data/lib/puppet/type/tidy.rb +22 -24
  457. data/lib/puppet/type/user.rb +13 -13
  458. data/lib/puppet/type.rb +76 -88
  459. data/lib/puppet/util/at_fork/solaris.rb +33 -37
  460. data/lib/puppet/util/autoload.rb +2 -2
  461. data/lib/puppet/util/backups.rb +9 -9
  462. data/lib/puppet/util/character_encoding.rb +7 -6
  463. data/lib/puppet/util/checksums.rb +2 -2
  464. data/lib/puppet/util/classgen.rb +8 -8
  465. data/lib/puppet/util/colors.rb +1 -1
  466. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
  467. data/lib/puppet/util/command_line/trollop.rb +60 -46
  468. data/lib/puppet/util/command_line.rb +2 -2
  469. data/lib/puppet/util/constant_inflector.rb +2 -2
  470. data/lib/puppet/util/diff.rb +19 -21
  471. data/lib/puppet/util/docs.rb +2 -2
  472. data/lib/puppet/util/errors.rb +9 -9
  473. data/lib/puppet/util/execution.rb +32 -9
  474. data/lib/puppet/util/feature.rb +1 -1
  475. data/lib/puppet/util/fileparsing.rb +12 -16
  476. data/lib/puppet/util/filetype.rb +36 -40
  477. data/lib/puppet/util/inifile.rb +6 -12
  478. data/lib/puppet/util/ldap/connection.rb +1 -1
  479. data/lib/puppet/util/ldap/manager.rb +10 -12
  480. data/lib/puppet/util/lockfile.rb +6 -8
  481. data/lib/puppet/util/log/destination.rb +2 -2
  482. data/lib/puppet/util/log/destinations.rb +4 -4
  483. data/lib/puppet/util/log.rb +12 -9
  484. data/lib/puppet/util/logging.rb +11 -11
  485. data/lib/puppet/util/metric.rb +3 -3
  486. data/lib/puppet/util/monkey_patches.rb +5 -7
  487. data/lib/puppet/util/network_device/config.rb +3 -3
  488. data/lib/puppet/util/package/version/debian.rb +27 -28
  489. data/lib/puppet/util/package/version/pip.rb +5 -5
  490. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  491. data/lib/puppet/util/package/version/rpm.rb +1 -1
  492. data/lib/puppet/util/package.rb +2 -2
  493. data/lib/puppet/util/pidlock.rb +2 -2
  494. data/lib/puppet/util/platform.rb +1 -1
  495. data/lib/puppet/util/plist.rb +8 -10
  496. data/lib/puppet/util/posix.rb +17 -17
  497. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  498. data/lib/puppet/util/provider_features.rb +3 -3
  499. data/lib/puppet/util/rdoc/code_objects.rb +3 -3
  500. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
  501. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
  502. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
  503. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  504. data/lib/puppet/util/rdoc/parser.rb +1 -1
  505. data/lib/puppet/util/reference.rb +13 -9
  506. data/lib/puppet/util/retry_action.rb +1 -1
  507. data/lib/puppet/util/rpm_compare.rb +18 -19
  508. data/lib/puppet/util/rubygems.rb +1 -1
  509. data/lib/puppet/util/selinux.rb +7 -7
  510. data/lib/puppet/util/storage.rb +10 -12
  511. data/lib/puppet/util/suidmanager.rb +18 -19
  512. data/lib/puppet/util/symbolic_file_mode.rb +71 -75
  513. data/lib/puppet/util/tag_set.rb +2 -2
  514. data/lib/puppet/util/tagging.rb +8 -10
  515. data/lib/puppet/util/terminal.rb +4 -4
  516. data/lib/puppet/util/user_attr.rb +7 -7
  517. data/lib/puppet/util/watcher.rb +3 -5
  518. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  519. data/lib/puppet/util/windows/adsi.rb +42 -42
  520. data/lib/puppet/util/windows/com.rb +2 -2
  521. data/lib/puppet/util/windows/daemon.rb +64 -68
  522. data/lib/puppet/util/windows/error.rb +2 -2
  523. data/lib/puppet/util/windows/file.rb +18 -25
  524. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  525. data/lib/puppet/util/windows/principal.rb +8 -8
  526. data/lib/puppet/util/windows/process.rb +16 -28
  527. data/lib/puppet/util/windows/registry.rb +16 -15
  528. data/lib/puppet/util/windows/root_certs.rb +2 -2
  529. data/lib/puppet/util/windows/security.rb +31 -31
  530. data/lib/puppet/util/windows/service.rb +11 -11
  531. data/lib/puppet/util/windows/sid.rb +8 -8
  532. data/lib/puppet/util/windows/user.rb +18 -20
  533. data/lib/puppet/util/yaml.rb +1 -1
  534. data/lib/puppet/util.rb +55 -46
  535. data/lib/puppet/version.rb +2 -2
  536. data/lib/puppet/x509/pem_store.rb +1 -1
  537. data/lib/puppet.rb +3 -3
  538. data/locales/puppet.pot +604 -600
  539. data/man/man5/puppet.conf.5 +10 -2
  540. data/man/man8/puppet-agent.8 +1 -1
  541. data/man/man8/puppet-apply.8 +1 -1
  542. data/man/man8/puppet-catalog.8 +1 -1
  543. data/man/man8/puppet-config.8 +1 -1
  544. data/man/man8/puppet-describe.8 +1 -1
  545. data/man/man8/puppet-device.8 +1 -1
  546. data/man/man8/puppet-doc.8 +1 -1
  547. data/man/man8/puppet-epp.8 +1 -1
  548. data/man/man8/puppet-facts.8 +1 -1
  549. data/man/man8/puppet-filebucket.8 +1 -1
  550. data/man/man8/puppet-generate.8 +1 -1
  551. data/man/man8/puppet-help.8 +1 -1
  552. data/man/man8/puppet-lookup.8 +1 -1
  553. data/man/man8/puppet-module.8 +1 -1
  554. data/man/man8/puppet-node.8 +1 -1
  555. data/man/man8/puppet-parser.8 +1 -1
  556. data/man/man8/puppet-plugin.8 +1 -1
  557. data/man/man8/puppet-report.8 +1 -1
  558. data/man/man8/puppet-resource.8 +5 -1
  559. data/man/man8/puppet-script.8 +1 -1
  560. data/man/man8/puppet-ssl.8 +1 -1
  561. data/man/man8/puppet.8 +2 -2
  562. metadata +23 -27
  563. data/examples/hiera/etc/hiera.yaml +0 -15
  564. data/examples/hiera/etc/hieradb/common.yaml +0 -3
  565. data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
  566. data/examples/hiera/etc/hieradb/development.yaml +0 -2
  567. data/examples/hiera/etc/puppet.conf +0 -3
  568. data/examples/hiera/modules/data/manifests/common.pp +0 -4
  569. data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
  570. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
  571. data/examples/hiera/modules/users/manifests/development.pp +0 -4
  572. data/tasks/benchmark.rake +0 -180
  573. data/tasks/cfpropertylist.rake +0 -15
  574. data/tasks/ci.rake +0 -24
  575. data/tasks/generate_ast_model.rake +0 -90
  576. data/tasks/generate_cert_fixtures.rake +0 -199
  577. data/tasks/manpages.rake +0 -67
  578. data/tasks/memwalk.rake +0 -195
  579. data/tasks/parallel.rake +0 -410
  580. data/tasks/parser.rake +0 -22
  581. data/tasks/yard.rake +0 -59
@@ -51,7 +51,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
51
51
  def find(request)
52
52
  facts = extract_facts_from_request(request)
53
53
 
54
- save_facts_from_request(facts, request) if !facts.nil?
54
+ save_facts_from_request(facts, request) unless facts.nil?
55
55
 
56
56
  node = node_from_request(facts, request)
57
57
  node.trusted_data = Puppet.lookup(:trusted_information) { Puppet::Context::TrustedInformation.local(node) }.to_h
@@ -89,7 +89,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
89
89
 
90
90
  # filter-out a catalog to remove exported resources
91
91
  def filter(catalog)
92
- return catalog.filter { |r| r.virtual? } if catalog.respond_to?(:filter)
92
+ return catalog.filter(&:virtual?) if catalog.respond_to?(:filter)
93
93
 
94
94
  catalog
95
95
  end
@@ -120,9 +120,9 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
120
120
  when 'pson'
121
121
  # We unescape here because the corresponding code in Puppet::Configurer::FactHandler encodes with Puppet::Util.uri_query_encode
122
122
  # PSON is deprecated, but continue to accept from older agents
123
- return Puppet::Node::Facts.convert_from('pson', CGI.unescape(facts))
123
+ Puppet::Node::Facts.convert_from('pson', CGI.unescape(facts))
124
124
  when 'application/json'
125
- return Puppet::Node::Facts.convert_from('json', CGI.unescape(facts))
125
+ Puppet::Node::Facts.convert_from('json', CGI.unescape(facts))
126
126
  else
127
127
  raise ArgumentError, _("Unsupported facts format")
128
128
  end
@@ -139,9 +139,9 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
139
139
  # If no match is found, return nil.
140
140
  def common_checksum_type(agent_checksum_type)
141
141
  if agent_checksum_type
142
- agent_checksum_types = agent_checksum_type.split('.').map { |type| type.to_sym }
142
+ agent_checksum_types = agent_checksum_type.split('.').map(&:to_sym)
143
143
  checksum_type = agent_checksum_types.drop_while do |type|
144
- not known_checksum_types.include? type
144
+ !known_checksum_types.include? type
145
145
  end.first
146
146
  end
147
147
  checksum_type
@@ -156,24 +156,23 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
156
156
  source_as_uri = URI.parse(Puppet::Util.uri_encode(source))
157
157
  server = source_as_uri.host
158
158
  port = ":#{source_as_uri.port}" if source_as_uri.port
159
- return "puppet://#{server}#{port}/#{path}"
159
+ "puppet://#{server}#{port}/#{path}"
160
160
  end
161
161
 
162
162
  # Helper method to decide if a file resource's metadata can be inlined.
163
163
  # Also used to profile/log reasons for not inlining.
164
164
  def inlineable?(resource, sources)
165
- case
166
- when resource[:ensure] == 'absent'
165
+ if resource[:ensure] == 'absent'
167
166
  # TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
168
- return Puppet::Util::Profiler.profile(_("Not inlining absent resource"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :absent]) { false }
169
- when sources.empty?
167
+ Puppet::Util::Profiler.profile(_("Not inlining absent resource"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :absent]) { false }
168
+ elsif sources.empty?
170
169
  # TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
171
- return Puppet::Util::Profiler.profile(_("Not inlining resource without sources"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :no_sources]) { false }
172
- when (not (sources.all? { |source| source =~ /^puppet:/ }))
170
+ Puppet::Util::Profiler.profile(_("Not inlining resource without sources"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :no_sources]) { false }
171
+ elsif !(sources.all? { |source| source =~ /^puppet:/ })
173
172
  # TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
174
- return Puppet::Util::Profiler.profile(_("Not inlining unsupported source scheme"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :unsupported_scheme]) { false }
173
+ Puppet::Util::Profiler.profile(_("Not inlining unsupported source scheme"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :unsupported_scheme]) { false }
175
174
  else
176
- return true
175
+ true
177
176
  end
178
177
  end
179
178
 
@@ -185,8 +184,8 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
185
184
 
186
185
  location = Puppet::Module::FILETYPES['files']
187
186
 
188
- !!(source_as_uri.path =~ /^\/modules\// &&
189
- metadata.full_path =~ /#{environment_path}\/[^\/]+\/[^\/]+\/#{location}\/.+/)
187
+ !!(source_as_uri.path =~ %r{^/modules/} &&
188
+ metadata.full_path =~ %r{#{environment_path}/[^/]+/[^/]+/#{location}/.+})
190
189
  end
191
190
 
192
191
  # Helper method to log file resources that could not be inlined because they
@@ -237,32 +236,32 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
237
236
  source = Puppet::Type.type(:file).attrclass(:source).normalize(source)
238
237
 
239
238
  list_of_data = Puppet::FileServing::Metadata.indirection.search(source, options)
240
- if list_of_data
241
- basedir_meta = list_of_data.find { |meta| meta.relative_path == '.' }
242
- devfail "FileServing::Metadata search should always return the root search path" if basedir_meta.nil?
243
-
244
- if !inlineable_metadata?(basedir_meta, source, environment_path)
245
- # If any source is not in the environment path, skip inlining this resource.
246
- log_file_outside_environment
247
- sources_in_environment = false
248
- break
249
- end
239
+ next unless list_of_data
250
240
 
251
- base_content_uri = get_content_uri(basedir_meta, source, environment_path)
252
- list_of_data.each do |metadata|
253
- if metadata.relative_path == '.'
254
- metadata.content_uri = base_content_uri
255
- else
256
- metadata.content_uri = "#{base_content_uri}/#{metadata.relative_path}"
257
- end
258
- end
241
+ basedir_meta = list_of_data.find { |meta| meta.relative_path == '.' }
242
+ devfail "FileServing::Metadata search should always return the root search path" if basedir_meta.nil?
243
+
244
+ unless inlineable_metadata?(basedir_meta, source, environment_path)
245
+ # If any source is not in the environment path, skip inlining this resource.
246
+ log_file_outside_environment
247
+ sources_in_environment = false
248
+ break
249
+ end
259
250
 
260
- source_to_metadatas[source] = list_of_data
261
- # Optimize for returning less data if sourceselect is first
262
- if resource[:sourceselect] == 'first' || resource[:sourceselect].nil?
263
- break
251
+ base_content_uri = get_content_uri(basedir_meta, source, environment_path)
252
+ list_of_data.each do |metadata|
253
+ if metadata.relative_path == '.'
254
+ metadata.content_uri = base_content_uri
255
+ else
256
+ metadata.content_uri = "#{base_content_uri}/#{metadata.relative_path}"
264
257
  end
265
258
  end
259
+
260
+ source_to_metadatas[source] = list_of_data
261
+ # Optimize for returning less data if sourceselect is first
262
+ if resource[:sourceselect] == 'first' || resource[:sourceselect].nil?
263
+ break
264
+ end
266
265
  end
267
266
 
268
267
  if sources_in_environment && !source_to_metadatas.empty?
@@ -282,11 +281,11 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
282
281
  source = Puppet::Type.type(:file).attrclass(:source).normalize(source)
283
282
 
284
283
  data = Puppet::FileServing::Metadata.indirection.find(source, options)
285
- if data
286
- metadata = data
287
- metadata.source = source
288
- break
289
- end
284
+ next unless data
285
+
286
+ metadata = data
287
+ metadata.source = source
288
+ break
290
289
  end
291
290
 
292
291
  raise _("Could not get metadata for %{resource}") % { resource: resource[:source] } unless metadata
@@ -443,7 +442,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
443
442
  "serverip" => "networking.ip",
444
443
  "serverip6" => "networking.ip6" }.each do |var, fact|
445
444
  value = Puppet.runtime[:facter].value(fact)
446
- if !value.nil?
445
+ unless value.nil?
447
446
  @server_facts[var] = value
448
447
  end
449
448
  end
@@ -16,12 +16,14 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
16
16
  session = Puppet.lookup(:http_session)
17
17
  api = session.route_to(:puppet)
18
18
 
19
- ip_address = begin
20
- " (#{Resolv.getaddress(api.url.host)})"
21
- rescue Resolv::ResolvError
22
- nil
19
+ unless Puppet.settings[:skip_logging_catalog_request_destination]
20
+ ip_address = begin
21
+ " (#{Resolv.getaddress(api.url.host)})"
22
+ rescue Resolv::ResolvError
23
+ nil
24
+ end
25
+ Puppet.notice("Requesting catalog from #{api.url.host}:#{api.url.port}#{ip_address}")
23
26
  end
24
- Puppet.notice("Requesting catalog from #{api.url.host}:#{api.url.port}#{ip_address}")
25
27
 
26
28
  _, catalog = api.post_catalog(
27
29
  request.key,
@@ -4,5 +4,5 @@ require_relative '../../../puppet/indirector/store_configs'
4
4
  require_relative '../../../puppet/resource/catalog'
5
5
 
6
6
  class Puppet::Resource::Catalog::StoreConfigs < Puppet::Indirector::StoreConfigs
7
- desc %q{Part of the "storeconfigs" feature. Should not be directly set by end users.}
7
+ desc 'Part of the "storeconfigs" feature. Should not be directly set by end users.'
8
8
  end
@@ -25,9 +25,9 @@ class Puppet::Indirector::Exec < Puppet::Indirector::Terminus
25
25
 
26
26
  if output =~ /\A\s*\Z/ # all whitespace
27
27
  Puppet.debug { "Empty response for #{name} from #{self.name} terminus" }
28
- return nil
28
+ nil
29
29
  else
30
- return output
30
+ output
31
31
  end
32
32
  end
33
33
 
@@ -32,11 +32,11 @@ class Puppet::Indirector::Face < Puppet::Face
32
32
  end
33
33
 
34
34
  def self.indirections
35
- Puppet::Indirector::Indirection.instances.collect { |t| t.to_s }.sort
35
+ Puppet::Indirector::Indirection.instances.collect(&:to_s).sort
36
36
  end
37
37
 
38
38
  def self.terminus_classes(indirection)
39
- Puppet::Indirector::Terminus.terminus_classes(indirection.to_sym).collect { |t| t.to_s }.sort
39
+ Puppet::Indirector::Terminus.terminus_classes(indirection.to_sym).collect(&:to_s).sort
40
40
  end
41
41
 
42
42
  def call_indirection_method(method, key, options)
@@ -53,7 +53,7 @@ class Puppet::Indirector::Face < Puppet::Face
53
53
  raise RuntimeError, message, detail.backtrace
54
54
  end
55
55
 
56
- return result
56
+ result
57
57
  end
58
58
 
59
59
  action :destroy do
@@ -134,11 +134,9 @@ class Puppet::Indirector::Face < Puppet::Face
134
134
  end
135
135
 
136
136
  def set_terminus(from)
137
- begin
138
- indirection.terminus_class = from
139
- rescue => detail
140
- msg = _("Could not set '%{indirection}' terminus to '%{from}' (%{detail}); valid terminus types are %{types}") % { indirection: indirection.name, from: from, detail: detail, types: self.class.terminus_classes(indirection.name).join(", ") }
141
- raise detail, msg, detail.backtrace
142
- end
137
+ indirection.terminus_class = from
138
+ rescue => detail
139
+ msg = _("Could not set '%{indirection}' terminus to '%{from}' (%{detail}); valid terminus types are %{types}") % { indirection: indirection.name, from: from, detail: detail, types: self.class.terminus_classes(indirection.name).join(", ") }
140
+ raise detail, msg, detail.backtrace
143
141
  end
144
142
  end
@@ -9,7 +9,7 @@ module Puppet::Indirector::FactSearch
9
9
 
10
10
  return false unless node_matches_option?(type, name, operator, value, facts)
11
11
  end
12
- return true
12
+ true
13
13
  end
14
14
 
15
15
  def node_matches_option?(type, name, operator, value, facts)
@@ -57,7 +57,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
57
57
  def self.setup_search_paths(request)
58
58
  # Add any per-module fact directories to facter's search path
59
59
  dirs = request.environment.modulepath.collect do |dir|
60
- ['lib', 'plugins'].map do |subdirectory|
60
+ %w[lib plugins].map do |subdirectory|
61
61
  Dir.glob("#{dir}/*/#{subdirectory}/facter")
62
62
  end
63
63
  end.flatten + Puppet[:factpath].split(File::PATH_SEPARATOR)
@@ -85,11 +85,11 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
85
85
  # Add any per-module external fact directories to facter's external search path
86
86
  dirs = []
87
87
  request.environment.modules.each do |m|
88
- if m.has_external_facts?
89
- dir = m.plugin_fact_directory
90
- Puppet.debug { "Loading external facts from #{dir}" }
91
- dirs << dir
92
- end
88
+ next unless m.has_external_facts?
89
+
90
+ dir = m.plugin_fact_directory
91
+ Puppet.debug { "Loading external facts from #{dir}" }
92
+ dirs << dir
93
93
  end
94
94
 
95
95
  # Add system external fact directory if it exists
@@ -24,6 +24,6 @@ class Puppet::Node::Facts::Json < Puppet::Indirector::JSON
24
24
  private
25
25
 
26
26
  def json_dir_path
27
- self.path("*")
27
+ path("*")
28
28
  end
29
29
  end
@@ -4,7 +4,7 @@ require_relative '../../../puppet/node/facts'
4
4
  require_relative '../../../puppet/indirector/store_configs'
5
5
 
6
6
  class Puppet::Node::Facts::StoreConfigs < Puppet::Indirector::StoreConfigs
7
- desc %q{Part of the "storeconfigs" feature. Should not be directly set by end users.}
7
+ desc 'Part of the "storeconfigs" feature. Should not be directly set by end users.'
8
8
 
9
9
  def allow_remote_requests?
10
10
  false
@@ -31,7 +31,7 @@ module Puppet::FileBucketFile
31
31
  raise _("could not find diff_with %{diff}") % { diff: request.options[:diff_with] } unless Puppet::FileSystem.exist?(other_contents_file)
32
32
  raise _("Unable to diff on this platform") unless Puppet[:diff] != ""
33
33
 
34
- return diff(Puppet::FileSystem.path_string(contents_file), Puppet::FileSystem.path_string(other_contents_file))
34
+ diff(Puppet::FileSystem.path_string(contents_file), Puppet::FileSystem.path_string(other_contents_file))
35
35
  else
36
36
  # TRANSLATORS "FileBucket" should not be translated
37
37
  Puppet.info _("FileBucket read %{checksum}") % { checksum: checksum }
@@ -64,14 +64,14 @@ module Puppet::FileBucketFile
64
64
  msg = ''.dup
65
65
  # Get all files with mtime between 'from' and 'to'
66
66
  Pathname.new(request.options[:bucket_path]).find { |item|
67
- if item.file? and item.basename.to_s == "paths"
68
- filenames = item.read.strip.split("\n")
69
- filestat = Time.parse(item.stat.mtime.to_s)
70
- if from <= filestat and filestat <= to
71
- filenames.each do |filename|
72
- bucket[filename] += [[item.stat.mtime, item.parent.basename]]
73
- end
74
- end
67
+ next unless item.file? and item.basename.to_s == "paths"
68
+
69
+ filenames = item.read.strip.split("\n")
70
+ filestat = Time.parse(item.stat.mtime.to_s)
71
+ next unless from <= filestat and filestat <= to
72
+
73
+ filenames.each do |filename|
74
+ bucket[filename] += [[item.stat.mtime, item.parent.basename]]
75
75
  end
76
76
  }
77
77
  # Sort the results
@@ -88,7 +88,7 @@ module Puppet::FileBucketFile
88
88
  msg += "#{chksum} #{date} #{filename}\n"
89
89
  }
90
90
  }
91
- return model.new(msg)
91
+ model.new(msg)
92
92
  end
93
93
 
94
94
  def head(request)
@@ -125,7 +125,7 @@ module Puppet::FileBucketFile
125
125
  # given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
126
126
  # contained characters in an encoding that are not represented the
127
127
  # same way when the bytes are decoded as UTF-8, continue using system encoding
128
- Puppet::FileSystem.open(paths_file, 0640, 'a+:external') do |f|
128
+ Puppet::FileSystem.open(paths_file, 0o640, 'a+:external') do |f|
129
129
  path_match(f, files_original_path)
130
130
  end
131
131
  end
@@ -137,7 +137,7 @@ module Puppet::FileBucketFile
137
137
  file_handle.each_line do |line|
138
138
  return true if line.chomp == files_original_path
139
139
  end
140
- return false
140
+ false
141
141
  end
142
142
 
143
143
  # @param bucket_file [Puppet::FileBucket::File] IO object representing
@@ -152,7 +152,7 @@ module Puppet::FileBucketFile
152
152
  # existing and new backup
153
153
  # @api private
154
154
  def save_to_disk(bucket_file, files_original_path, contents_file, paths_file)
155
- Puppet::Util.withumask(0007) do
155
+ Puppet::Util.withumask(0o007) do
156
156
  unless Puppet::FileSystem.dir_exist?(paths_file)
157
157
  Puppet::FileSystem.dir_mkpath(paths_file)
158
158
  end
@@ -161,14 +161,14 @@ module Puppet::FileBucketFile
161
161
  # given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
162
162
  # contained characters in an encoding that are not represented the
163
163
  # same way when the bytes are decoded as UTF-8, continue using system encoding
164
- Puppet::FileSystem.exclusive_open(paths_file, 0640, 'a+:external') do |f|
164
+ Puppet::FileSystem.exclusive_open(paths_file, 0o640, 'a+:external') do |f|
165
165
  if Puppet::FileSystem.exist?(contents_file)
166
166
  if verify_identical_file(contents_file, bucket_file)
167
167
  # TRANSLATORS "FileBucket" should not be translated
168
168
  Puppet.info _("FileBucket got a duplicate file %{file_checksum}") % { file_checksum: bucket_file.checksum }
169
169
  # Don't touch the contents file on Windows, since we can't update the
170
170
  # mtime of read-only files there.
171
- if !Puppet::Util::Platform.windows?
171
+ unless Puppet::Util::Platform.windows?
172
172
  Puppet::FileSystem.touch(contents_file)
173
173
  end
174
174
  elsif contents_file_matches_checksum?(contents_file, bucket_file.checksum_data, bucket_file.checksum_type)
@@ -202,7 +202,7 @@ module Puppet::FileBucketFile
202
202
  end
203
203
 
204
204
  def request_to_checksum_and_path(request)
205
- checksum_type, checksum, path = request.key.split(/\//, 3)
205
+ checksum_type, checksum, path = request.key.split(%r{/}, 3)
206
206
  if path == '' # Treat "md5/<checksum>/" like "md5/<checksum>"
207
207
  path = nil
208
208
  end
@@ -257,7 +257,7 @@ module Puppet::FileBucketFile
257
257
  # @return [void]
258
258
  # @api private
259
259
  def copy_bucket_file_to_contents_file(contents_file, bucket_file)
260
- Puppet::FileSystem.replace_file(contents_file, 0440) do |of|
260
+ Puppet::FileSystem.replace_file(contents_file, 0o440) do |of|
261
261
  # PUP-1044 writes all of the contents
262
262
  bucket_file.stream() do |src|
263
263
  FileUtils.copy_stream(src, of)
@@ -13,7 +13,7 @@ module Puppet::FileBucketFile
13
13
  api.head_filebucket_file(
14
14
  request.key,
15
15
  environment: request.environment.to_s,
16
- bucket_path: request.options[:bucket_path],
16
+ bucket_path: request.options[:bucket_path]
17
17
  )
18
18
  rescue Puppet::HTTP::ResponseError => e
19
19
  return nil if e.response.code == 404
@@ -31,7 +31,7 @@ module Puppet::FileBucketFile
31
31
  diff_with: request.options[:diff_with],
32
32
  list_all: request.options[:list_all],
33
33
  fromdate: request.options[:fromdate],
34
- todate: request.options[:todate],
34
+ todate: request.options[:todate]
35
35
  )
36
36
  filebucket_file
37
37
  rescue Puppet::HTTP::ResponseError => e
@@ -44,7 +44,7 @@ module Puppet::FileBucketFile
44
44
  api.put_filebucket_file(
45
45
  request.key,
46
46
  body: request.instance.render,
47
- environment: request.environment.to_s,
47
+ environment: request.environment.to_s
48
48
  )
49
49
  rescue Puppet::HTTP::ResponseError => e
50
50
  raise convert_to_http_error(e.response)
@@ -17,7 +17,7 @@ class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
17
17
 
18
18
  api.get_file_content(
19
19
  path: Puppet::Util.uri_unescape(url.path),
20
- environment: request.environment.to_s,
20
+ environment: request.environment.to_s
21
21
  ) do |data|
22
22
  content << data
23
23
  end
@@ -46,7 +46,7 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
46
46
  ignore: request.options[:ignore],
47
47
  links: request.options[:links],
48
48
  checksum_type: request.options[:checksum_type],
49
- source_permissions: request.options[:source_permissions],
49
+ source_permissions: request.options[:source_permissions]
50
50
  )
51
51
  file_metadatas
52
52
  rescue Puppet::HTTP::ResponseError => e
@@ -9,7 +9,7 @@ require 'hiera/scope'
9
9
  # Use `Puppet::DataBinding.indirection.terminus(:hiera)` instead.
10
10
  class Puppet::Indirector::Hiera < Puppet::Indirector::Terminus
11
11
  def initialize(*args)
12
- if !Puppet.features.hiera?
12
+ unless Puppet.features.hiera?
13
13
  # TRANSLATORS "Hiera" is the name of a code library and should not be translated
14
14
  raise _("Hiera terminus not supported without hiera library")
15
15
  end
@@ -26,7 +26,7 @@ class Puppet::Indirector::Indirection
26
26
  # Return a list of all known indirections. Used to generate the
27
27
  # reference.
28
28
  def self.instances
29
- @@indirections.collect { |i| i.name }
29
+ @@indirections.collect(&:name)
30
30
  end
31
31
 
32
32
  # Find an indirected model by name. This is provided so that Terminus classes
@@ -121,10 +121,10 @@ class Puppet::Indirector::Indirection
121
121
  def set_global_setting(setting, value)
122
122
  case setting
123
123
  when :cache_class
124
- validate_terminus_class(value) if !value.nil?
124
+ validate_terminus_class(value) unless value.nil?
125
125
  @cache_class = Puppet::ThreadLocal.new(value)
126
126
  when :terminus_class
127
- validate_terminus_class(value) if !value.nil?
127
+ validate_terminus_class(value) unless value.nil?
128
128
  @terminus_class = Puppet::ThreadLocal.new(value)
129
129
  when :terminus_setting
130
130
  @terminus_setting = Puppet::ThreadLocal.new(value)
@@ -135,13 +135,13 @@ class Puppet::Indirector::Indirection
135
135
 
136
136
  # Set up our request object.
137
137
  def request(*args)
138
- Puppet::Indirector::Request.new(self.name, *args)
138
+ Puppet::Indirector::Request.new(name, *args)
139
139
  end
140
140
 
141
141
  # Return the singleton terminus for this indirection.
142
142
  def terminus(terminus_name = nil)
143
143
  # Get the name of the terminus.
144
- raise Puppet::DevError, _("No terminus specified for %{name}; cannot redirect") % { name: self.name } unless terminus_name ||= terminus_class
144
+ raise Puppet::DevError, _("No terminus specified for %{name}; cannot redirect") % { name: name } unless terminus_name ||= terminus_class
145
145
 
146
146
  termini[terminus_name] ||= make_terminus(terminus_name)
147
147
  end
@@ -158,11 +158,11 @@ class Puppet::Indirector::Indirection
158
158
  # Determine the terminus class.
159
159
  def terminus_class
160
160
  unless @terminus_class.value
161
- setting = self.terminus_setting
161
+ setting = terminus_setting
162
162
  if setting
163
163
  self.terminus_class = Puppet.settings[setting]
164
164
  else
165
- raise Puppet::DevError, _("No terminus class nor terminus setting was provided for indirection %{name}") % { name: self.name }
165
+ raise Puppet::DevError, _("No terminus class nor terminus setting was provided for indirection %{name}") % { name: name }
166
166
  end
167
167
  end
168
168
  @terminus_class.value
@@ -184,9 +184,9 @@ class Puppet::Indirector::Indirection
184
184
  raise ArgumentError, _("Invalid terminus name %{terminus_class}") % { terminus_class: terminus_class.inspect }
185
185
  end
186
186
 
187
- unless Puppet::Indirector::Terminus.terminus_class(self.name, terminus_class)
187
+ unless Puppet::Indirector::Terminus.terminus_class(name, terminus_class)
188
188
  raise ArgumentError, _("Could not find terminus %{terminus_class} for indirection %{name}") %
189
- { terminus_class: terminus_class, name: self.name }
189
+ { terminus_class: terminus_class, name: name }
190
190
  end
191
191
  end
192
192
 
@@ -201,7 +201,7 @@ class Puppet::Indirector::Indirection
201
201
  instance = cache.find(request(:find, key, nil, options))
202
202
  return nil unless instance
203
203
 
204
- Puppet.info _("Expiring the %{cache} cache of %{instance}") % { cache: self.name, instance: instance.name }
204
+ Puppet.info _("Expiring the %{cache} cache of %{instance}") % { cache: name, instance: instance.name }
205
205
 
206
206
  # Set an expiration date in the past
207
207
  instance.expiration = Time.now - 60
@@ -220,7 +220,7 @@ class Puppet::Indirector::Indirection
220
220
  terminus = prepare(request)
221
221
 
222
222
  result = find_in_cache(request)
223
- if not result.nil?
223
+ if !result.nil?
224
224
  result
225
225
  elsif request.ignore_terminus?
226
226
  nil
@@ -228,10 +228,10 @@ class Puppet::Indirector::Indirection
228
228
  # Otherwise, return the result from the terminus, caching if
229
229
  # appropriate.
230
230
  result = terminus.find(request)
231
- if not result.nil?
232
- result.expiration ||= self.expiration if result.respond_to?(:expiration)
231
+ unless result.nil?
232
+ result.expiration ||= expiration if result.respond_to?(:expiration)
233
233
  if cache? && !request.ignore_cache_save?
234
- Puppet.info _("Caching %{indirection} for %{request}") % { indirection: self.name, request: request.key }
234
+ Puppet.info _("Caching %{indirection} for %{request}") % { indirection: name, request: request.key }
235
235
  begin
236
236
  cache.save request(:save, key, result, options)
237
237
  rescue => detail
@@ -242,13 +242,11 @@ class Puppet::Indirector::Indirection
242
242
 
243
243
  filtered = result
244
244
  if terminus.respond_to?(:filter)
245
- Puppet::Util::Profiler.profile(_("Filtered result for %{indirection} %{request}") % { indirection: self.name, request: request.key }, [:indirector, :filter, self.name, request.key]) do
246
- begin
247
- filtered = terminus.filter(result)
248
- rescue Puppet::Error => detail
249
- Puppet.log_exception(detail)
250
- raise detail
251
- end
245
+ Puppet::Util::Profiler.profile(_("Filtered result for %{indirection} %{request}") % { indirection: name, request: request.key }, [:indirector, :filter, name, request.key]) do
246
+ filtered = terminus.filter(result)
247
+ rescue Puppet::Error => detail
248
+ Puppet.log_exception(detail)
249
+ raise detail
252
250
  end
253
251
  end
254
252
  filtered
@@ -273,14 +271,14 @@ class Puppet::Indirector::Indirection
273
271
  return nil unless cached
274
272
 
275
273
  if cached.expired?
276
- Puppet.info _("Not using expired %{indirection} for %{request} from cache; expired at %{expiration}") % { indirection: self.name, request: request.key, expiration: cached.expiration }
274
+ Puppet.info _("Not using expired %{indirection} for %{request} from cache; expired at %{expiration}") % { indirection: name, request: request.key, expiration: cached.expiration }
277
275
  return nil
278
276
  end
279
277
 
280
- Puppet.debug { "Using cached #{self.name} for #{request.key}" }
278
+ Puppet.debug { "Using cached #{name} for #{request.key}" }
281
279
  cached
282
280
  rescue => detail
283
- Puppet.log_exception(detail, _("Cached %{indirection} for %{request} failed: %{detail}") % { indirection: self.name, request: request.key, detail: detail })
281
+ Puppet.log_exception(detail, _("Cached %{indirection} for %{request} failed: %{detail}") % { indirection: name, request: request.key, detail: detail })
284
282
  nil
285
283
  end
286
284
 
@@ -311,9 +309,9 @@ class Puppet::Indirector::Indirection
311
309
  result.each do |instance|
312
310
  next unless instance.respond_to? :expiration
313
311
 
314
- instance.expiration ||= self.expiration
312
+ instance.expiration ||= expiration
315
313
  end
316
- return result
314
+ result
317
315
  end
318
316
  end
319
317
 
@@ -323,7 +321,7 @@ class Puppet::Indirector::Indirection
323
321
  request = request(:save, key, instance, options)
324
322
  terminus = prepare(request)
325
323
 
326
- result = terminus.save(request) if !request.ignore_terminus?
324
+ result = terminus.save(request) unless request.ignore_terminus?
327
325
 
328
326
  # If caching is enabled, save our document there
329
327
  cache.save(request) if cache? && !request.ignore_cache_save?
@@ -373,9 +371,9 @@ class Puppet::Indirector::Indirection
373
371
  # Create a new terminus instance.
374
372
  def make_terminus(terminus_class)
375
373
  # Load our terminus class.
376
- klass = Puppet::Indirector::Terminus.terminus_class(self.name, terminus_class)
374
+ klass = Puppet::Indirector::Terminus.terminus_class(name, terminus_class)
377
375
  unless klass
378
- raise ArgumentError, _("Could not find terminus %{terminus_class} for indirection %{indirection}") % { terminus_class: terminus_class, indirection: self.name }
376
+ raise ArgumentError, _("Could not find terminus %{terminus_class} for indirection %{indirection}") % { terminus_class: terminus_class, indirection: name }
379
377
  end
380
378
 
381
379
  klass.new
@@ -16,16 +16,16 @@ class Puppet::Indirector::JSON < Puppet::Indirector::Terminus
16
16
  filename = path(request.key)
17
17
  FileUtils.mkdir_p(File.dirname(filename))
18
18
 
19
- Puppet::FileSystem.replace_file(filename, 0660) { |f| f.print to_json(request.instance).force_encoding(Encoding::BINARY) }
19
+ Puppet::FileSystem.replace_file(filename, 0o660) { |f| f.print to_json(request.instance).force_encoding(Encoding::BINARY) }
20
20
  rescue TypeError => detail
21
- Puppet.log_exception(detail, _("Could not save %{json} %{request}: %{detail}") % { json: self.name, request: request.key, detail: detail })
21
+ Puppet.log_exception(detail, _("Could not save %{json} %{request}: %{detail}") % { json: name, request: request.key, detail: detail })
22
22
  end
23
23
 
24
24
  def destroy(request)
25
25
  Puppet::FileSystem.unlink(path(request.key))
26
26
  rescue => detail
27
27
  unless detail.is_a? Errno::ENOENT
28
- raise Puppet::Error, _("Could not destroy %{json} %{request}: %{detail}") % { json: self.name, request: request.key, detail: detail }, detail.backtrace
28
+ raise Puppet::Error, _("Could not destroy %{json} %{request}: %{detail}") % { json: name, request: request.key, detail: detail }, detail.backtrace
29
29
  end
30
30
 
31
31
  1 # emulate success...
@@ -66,7 +66,7 @@ class Puppet::Indirector::JSON < Puppet::Indirector::Terminus
66
66
  end
67
67
 
68
68
  begin
69
- return from_json(json)
69
+ from_json(json)
70
70
  rescue => detail
71
71
  raise Puppet::Error, _("Could not parse JSON data for %{name} %{key}: %{detail}") % { name: indirection.name, key: key, detail: detail }, detail.backtrace
72
72
  end