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
@@ -120,7 +120,11 @@ class Puppet::Pops::Loader::RubyLegacyFunctionInstantiator
120
120
  # Returns an Array; a tuple with method name and line number or "<unknown>" if either is missing, or format is not the expected
121
121
  #
122
122
  def self.extract_name_line(x)
123
- (x.is_a?(Array) ? [x[1], x[2].is_a?(Array) ? x[2][1] : nil] : [nil, nil]).map { |v| v.nil? ? UNKNOWN : v }
123
+ (if x.is_a?(Array)
124
+ [x[1], x[2].is_a?(Array) ? x[2][1] : nil]
125
+ else
126
+ [nil, nil]
127
+ end).map { |v| v.nil? ? UNKNOWN : v }
124
128
  end
125
129
  private_class_method :extract_name_line
126
130
  end
@@ -6,7 +6,7 @@
6
6
  module Puppet::Pops
7
7
  module Loader
8
8
  class StaticLoader < Loader
9
- BUILTIN_TYPE_NAMES = %w{
9
+ BUILTIN_TYPE_NAMES = %w[
10
10
  Component
11
11
  Exec
12
12
  File
@@ -22,9 +22,9 @@ class StaticLoader < Loader
22
22
  Tidy
23
23
  User
24
24
  Whit
25
- }.freeze
25
+ ].freeze
26
26
 
27
- BUILTIN_TYPE_NAMES_LC = Set.new(BUILTIN_TYPE_NAMES.map { |n| n.downcase }).freeze
27
+ BUILTIN_TYPE_NAMES_LC = Set.new(BUILTIN_TYPE_NAMES.map(&:downcase)).freeze
28
28
 
29
29
  BUILTIN_ALIASES = {
30
30
  'Data' => 'Variant[ScalarData,Undef,Hash[String,Data],Array[Data]]',
@@ -46,9 +46,9 @@ class StaticLoader < Loader
46
46
 
47
47
  def discover(type, error_collector = nil, name_authority = Pcore::RUNTIME_NAME_AUTHORITY)
48
48
  # Static loader only contains runtime types
49
- return EMPTY_ARRAY unless type == :type && name_authority == name_authority = Pcore::RUNTIME_NAME_AUTHORITY
49
+ return EMPTY_ARRAY unless type == :type && name_authority == Pcore::RUNTIME_NAME_AUTHORITY
50
50
 
51
- typed_names = type == :type && name_authority == Pcore::RUNTIME_NAME_AUTHORITY ? @loaded.keys : EMPTY_ARRAY
51
+ typed_names = @loaded.keys
52
52
  block_given? ? typed_names.select { |tn| yield(tn) } : typed_names
53
53
  end
54
54
 
@@ -28,7 +28,7 @@ class Loaders
28
28
  environment.lock.synchronize do
29
29
  obj = environment.loaders
30
30
  if obj.nil?
31
- obj = self.allocate
31
+ obj = allocate
32
32
  obj.send(:initialize, environment, for_agent, load_from_pcore)
33
33
  end
34
34
  obj
@@ -37,7 +37,7 @@ class Loaders
37
37
 
38
38
  def initialize(environment, for_agent, load_from_pcore = true)
39
39
  # Protect against environment havoc
40
- raise ArgumentError.new(_("Attempt to redefine already initialized loaders for environment")) unless environment.loaders.nil?
40
+ raise ArgumentError, _("Attempt to redefine already initialized loaders for environment") unless environment.loaders.nil?
41
41
 
42
42
  environment.loaders = self
43
43
  @environment = environment
@@ -518,7 +518,7 @@ class Loaders
518
518
  end
519
519
 
520
520
  def all_module_loaders
521
- @all_module_loaders ||= @index.values.map { |md| md.public_loader }
521
+ @all_module_loaders ||= @index.values.map(&:public_loader)
522
522
  end
523
523
 
524
524
  def resolve(module_data)
@@ -92,7 +92,7 @@ class V3BackendFunctionProvider < DataDigFunctionProvider
92
92
  require 'hiera/backend'
93
93
  require "hiera/backend/#{backend_name.downcase}_backend"
94
94
  backend = Hiera::Backend.const_get("#{backend_name.capitalize}_backend").new
95
- return backend.method(:lookup).arity == 4 ? Hiera::Backend::Backend1xWrapper.new(backend) : backend
95
+ backend.method(:lookup).arity == 4 ? Hiera::Backend::Backend1xWrapper.new(backend) : backend
96
96
  rescue LoadError => e
97
97
  lookup_invocation.report_text { "Unable to load backend '#{backend_name}': #{e.message}" }
98
98
  throw :no_such_key
@@ -15,7 +15,7 @@ module Lookup
15
15
 
16
16
  def to_hash
17
17
  hash = {}
18
- hash[:branches] = @branches.map { |b| b.to_hash } unless @branches.nil? || @branches.empty?
18
+ hash[:branches] = @branches.map(&:to_hash) unless @branches.nil? || @branches.empty?
19
19
  hash
20
20
  end
21
21
 
@@ -469,7 +469,7 @@ module Lookup
469
469
  end
470
470
 
471
471
  def push(qualifier_type, qualifier)
472
- node = case (qualifier_type)
472
+ node = case qualifier_type
473
473
  when :global
474
474
  ExplainGlobal.new(@current, qualifier)
475
475
  when :location
@@ -13,7 +13,7 @@ class GlobalDataProvider < ConfiguredDataProvider
13
13
 
14
14
  def unchecked_key_lookup(key, lookup_invocation, merge)
15
15
  config = config(lookup_invocation)
16
- if (config.version == 3)
16
+ if config.version == 3
17
17
  # Hiera version 3 needs access to special scope variables
18
18
  scope = lookup_invocation.scope
19
19
  unless scope.is_a?(Hiera::Scope)
@@ -105,7 +105,7 @@ class HieraConfig
105
105
  end
106
106
 
107
107
  def self.symkeys_to_string(struct)
108
- case (struct)
108
+ case struct
109
109
  when Hash
110
110
  map = {}
111
111
  struct.each_pair { |k, v| map[k.is_a?(Symbol) ? k.to_s : k] = symkeys_to_string(v) }
@@ -212,7 +212,7 @@ class HieraConfig
212
212
  # Raise a LookupError with a RUNTIME_ERROR issue to prevent this being translated to an evaluation error triggered in the pp file
213
213
  # where the lookup started
214
214
  if e.message =~ /^Undefined variable '([^']+)'/
215
- var = $1
215
+ var = ::Regexp.last_match(1)
216
216
  fail(Issues::HIERA_UNDEFINED_VARIABLE, { :name => var }, find_line_matching(/%\{['"]?#{var}['"]?}/))
217
217
  end
218
218
  raise e
@@ -287,7 +287,7 @@ class HieraConfig
287
287
 
288
288
  def create_hiera3_backend_provider(name, backend, parent_data_provider, datadir, paths, hiera3_config)
289
289
  # Custom backend. Hiera 3 must be installed, its logger configured, and it must be made aware of the loaded config
290
- raise Puppet::DataBinding::LookupError, 'Hiera 3 is not installed' if !Puppet.features.hiera?
290
+ raise Puppet::DataBinding::LookupError, 'Hiera 3 is not installed' unless Puppet.features.hiera?
291
291
 
292
292
  if Hiera::Config.instance_variable_defined?(:@config) && (current_config = Hiera::Config.instance_variable_get(:@config)).is_a?(Hash)
293
293
  current_config.each_pair do |key, val|
@@ -308,7 +308,7 @@ class HieraConfig
308
308
  # Replace the class methods 'hiera_interpolate' and 'alias_interpolate' with a method that wires back and performs global
309
309
  # lookups using the lookup framework. This is necessary since the classic Hiera is made aware only of custom backends.
310
310
  class << Hiera::Interpolate
311
- hiera_interpolate = Proc.new do |_data, key, scope, _extra_data, context|
311
+ hiera_interpolate = proc do |_data, key, scope, _extra_data, context|
312
312
  override = context[:order_override]
313
313
  invocation = Puppet::Pops::Lookup::Invocation.current
314
314
  unless override.nil? && invocation.global_only?
@@ -431,8 +431,8 @@ class HieraConfigV3 < HieraConfig
431
431
  end
432
432
 
433
433
  DEFAULT_CONFIG_HASH = {
434
- KEY_BACKENDS => %w(yaml),
435
- KEY_HIERARCHY => %w(nodes/%{::trusted.certname} common),
434
+ KEY_BACKENDS => %w[yaml],
435
+ KEY_HIERARCHY => %w[nodes/%{::trusted.certname} common],
436
436
  KEY_MERGE_BEHAVIOR => 'native'
437
437
  }
438
438
 
@@ -689,7 +689,7 @@ class HieraConfigV5 < HieraConfig
689
689
 
690
690
  options = he[KEY_OPTIONS] || defaults[KEY_OPTIONS]
691
691
  options = options.nil? ? EMPTY_HASH : interpolate(options, lookup_invocation, false)
692
- if (function_kind == KEY_V3_BACKEND)
692
+ if function_kind == KEY_V3_BACKEND
693
693
  v3options = { :datadir => entry_datadir.to_s }
694
694
  options.each_pair { |k, v| v3options[k.to_sym] = v }
695
695
  data_providers[name] =
@@ -700,9 +700,13 @@ class HieraConfigV5 < HieraConfig
700
700
  locations,
701
701
  {
702
702
  :hierarchy =>
703
- locations.nil? ? [] : locations.map do |loc|
704
- path = loc.original_location
705
- path.end_with?(".#{function_name}") ? path[0..-(function_name.length + 2)] : path
703
+ if locations.nil?
704
+ []
705
+ else
706
+ locations.map do |loc|
707
+ path = loc.original_location
708
+ path.end_with?(".#{function_name}") ? path[0..-(function_name.length + 2)] : path
709
+ end
706
710
  end,
707
711
  function_name.to_sym => v3options,
708
712
  :backends => [function_name],
@@ -719,7 +723,7 @@ class HieraConfigV5 < HieraConfig
719
723
  @config.include?(KEY_DEFAULT_HIERARCHY)
720
724
  end
721
725
 
722
- RESERVED_OPTION_KEYS = ['path', 'uri'].freeze
726
+ RESERVED_OPTION_KEYS = %w[path uri].freeze
723
727
 
724
728
  DEFAULT_CONFIG_HASH = {
725
729
  KEY_VERSION => 5,
@@ -48,8 +48,8 @@ module Interpolation
48
48
  def interpolate_string(subject, context, allow_methods)
49
49
  lookup_invocation = context.is_a?(Invocation) ? context : context.invocation
50
50
  lookup_invocation.with(:interpolate, subject) do
51
- subject.gsub(/%\{([^\}]*)\}/) do |match|
52
- expr = $1
51
+ subject.gsub(/%\{([^}]*)\}/) do |match|
52
+ expr = ::Regexp.last_match(1)
53
53
  # Leading and trailing spaces inside an interpolation expression are insignificant
54
54
  expr.strip!
55
55
  value = nil
@@ -144,7 +144,7 @@ module Interpolation
144
144
  end
145
145
 
146
146
  def get_method_and_data(data, allow_methods)
147
- match = data.match(/^(\w+)\((?:["]([^"]+)["]|[']([^']+)['])\)$/)
147
+ match = data.match(/^(\w+)\((?:"([^"]+)"|'([^']+)')\)$/)
148
148
  if match
149
149
  fail(Issues::HIERA_INTERPOLATION_METHOD_SYNTAX_NOT_ALLOWED) unless allow_methods
150
150
 
@@ -9,7 +9,7 @@ class Puppet::Pops::Lookup::KeyRecorder
9
9
 
10
10
  # rubocop:disable Naming/MemoizedInstanceVariableName
11
11
  def self.singleton
12
- @null_recorder ||= self.new
12
+ @null_recorder ||= new
13
13
  end
14
14
  # rubocop:enable Naming/MemoizedInstanceVariableName
15
15
 
@@ -43,7 +43,7 @@ module Lookup
43
43
  def expand_globs(datadir, declared_globs, lookup_invocation)
44
44
  declared_globs.map do |declared_glob|
45
45
  glob = datadir + interpolate(declared_glob, lookup_invocation, false)
46
- Pathname.glob(glob).reject { |path| path.directory? }.map { |path| ResolvedLocation.new(glob.to_s, path, true) }
46
+ Pathname.glob(glob).reject(&:directory?).map { |path| ResolvedLocation.new(glob.to_s, path, true) }
47
47
  end.flatten
48
48
  end
49
49
 
@@ -297,18 +297,18 @@ class LookupAdapter < DataAdapter
297
297
 
298
298
  def validate_lookup_options(options, module_name)
299
299
  return nil if options.nil?
300
- raise Puppet::DataBinding::LookupError.new(_("value of %{opts} must be a hash") % { opts: LOOKUP_OPTIONS }) unless options.is_a?(Hash)
300
+ raise Puppet::DataBinding::LookupError, _("value of %{opts} must be a hash") % { opts: LOOKUP_OPTIONS } unless options.is_a?(Hash)
301
301
  return options if module_name.nil?
302
302
 
303
303
  pfx = "#{module_name}::"
304
304
  options.each_pair do |key, _value|
305
305
  if key.start_with?(LOOKUP_OPTIONS_PATTERN_START)
306
306
  unless key[1..pfx.length] == pfx
307
- raise Puppet::DataBinding::LookupError.new(_("all %{opts} patterns must match a key starting with module name '%{module_name}'") % { opts: LOOKUP_OPTIONS, module_name: module_name })
307
+ raise Puppet::DataBinding::LookupError, _("all %{opts} patterns must match a key starting with module name '%{module_name}'") % { opts: LOOKUP_OPTIONS, module_name: module_name }
308
308
  end
309
309
  else
310
310
  unless key.start_with?(pfx)
311
- raise Puppet::DataBinding::LookupError.new(_("all %{opts} keys must start with module name '%{module_name}'") % { opts: LOOKUP_OPTIONS, module_name: module_name })
311
+ raise Puppet::DataBinding::LookupError, _("all %{opts} keys must start with module name '%{module_name}'") % { opts: LOOKUP_OPTIONS, module_name: module_name }
312
312
  end
313
313
  end
314
314
  end
@@ -373,7 +373,7 @@ class LookupAdapter < DataAdapter
373
373
 
374
374
  # Retrieve and cache the global lookup options
375
375
  def global_lookup_options(lookup_invocation, merge_strategy)
376
- if !instance_variable_defined?(:@global_lookup_options)
376
+ unless instance_variable_defined?(:@global_lookup_options)
377
377
  @global_lookup_options = nil
378
378
  catch(:no_such_key) { @global_lookup_options = validate_lookup_options(lookup_global(LookupKey::LOOKUP_OPTIONS, lookup_invocation, merge_strategy), nil) }
379
379
  end
@@ -383,7 +383,7 @@ class LookupAdapter < DataAdapter
383
383
  # Retrieve and cache lookup options specific to the environment of the compiler that this adapter is attached to (i.e. a merge
384
384
  # of global and environment lookup options).
385
385
  def env_lookup_options(lookup_invocation, merge_strategy)
386
- if !instance_variable_defined?(:@env_lookup_options)
386
+ unless instance_variable_defined?(:@env_lookup_options)
387
387
  global_options = global_lookup_options(lookup_invocation, merge_strategy)
388
388
  @env_only_lookup_options = nil
389
389
  catch(:no_such_key) { @env_only_lookup_options = validate_lookup_options(lookup_in_environment(LookupKey::LOOKUP_OPTIONS, lookup_invocation, merge_strategy), nil) }
@@ -411,7 +411,7 @@ class LookupAdapter < DataAdapter
411
411
  def module_provider(lookup_invocation, module_name)
412
412
  # Test if the key is present for the given module_name. It might be there even if the
413
413
  # value is nil (which indicates that no module provider is configured for the given name)
414
- unless self.include?(module_name)
414
+ unless include?(module_name)
415
415
  self[module_name] = initialize_module_provider(lookup_invocation, module_name)
416
416
  end
417
417
  self[module_name]
@@ -514,7 +514,7 @@ class LookupAdapter < DataAdapter
514
514
  ep.config = HieraConfigV5.v4_function_config(env_path, 'environment::data', ep)
515
515
  ep
516
516
  else
517
- raise Puppet::Error.new(_("Environment '%{env}', cannot find environment_data_provider '%{provider}'") % { env: environment.name, provider: provider_name })
517
+ raise Puppet::Error, _("Environment '%{env}', cannot find environment_data_provider '%{provider}'") % { env: environment.name, provider: provider_name }
518
518
  end
519
519
  end
520
520
  end
@@ -47,16 +47,16 @@ class ModuleDataProvider < ConfiguredDataProvider
47
47
  def validate_data_hash(data_hash)
48
48
  super
49
49
  module_prefix = "#{module_name}::"
50
- data_hash.each_key.reduce(data_hash) do |memo, k|
51
- next memo if k == LOOKUP_OPTIONS || k.start_with?(module_prefix)
52
-
53
- msg = "#{yield} must use keys qualified with the name of the module"
54
- memo = memo.clone if memo.equal?(data_hash)
55
- memo.delete(k)
56
- Puppet.warning("Module '#{module_name}': #{msg}")
57
- memo
50
+ data_hash_to_return = {}
51
+ data_hash.keys.each do |k|
52
+ if k == LOOKUP_OPTIONS || k.start_with?(module_prefix)
53
+ data_hash_to_return[k] = data_hash[k]
54
+ else
55
+ msg = "#{yield} must use keys qualified with the name of the module"
56
+ Puppet.warning("Module '#{module_name}': #{msg}; got #{k}")
57
+ end
58
58
  end
59
- data_hash
59
+ data_hash_to_return
60
60
  end
61
61
 
62
62
  protected
@@ -3,7 +3,7 @@
3
3
  module Puppet::Pops
4
4
  module Lookup
5
5
  module SubLookup
6
- SPECIAL = /['"\.]/
6
+ SPECIAL = /['".]/
7
7
 
8
8
  # Split key into segments. A segment may be a quoted string (both single and double quotes can
9
9
  # be used) and the segment separator is the '.' character. Whitespace will be trimmed off on
@@ -208,7 +208,7 @@ module Puppet::Pops
208
208
  # Simple strategy that returns the first value found. It never merges any values.
209
209
  #
210
210
  class FirstFoundStrategy < MergeStrategy
211
- INSTANCE = self.new(EMPTY_HASH)
211
+ INSTANCE = new(EMPTY_HASH)
212
212
 
213
213
  def self.key
214
214
  :first
@@ -238,7 +238,7 @@ module Puppet::Pops
238
238
 
239
239
  # Same as {FirstFoundStrategy} but used when no strategy has been explicitly given
240
240
  class DefaultMergeStrategy < FirstFoundStrategy
241
- INSTANCE = self.new(EMPTY_HASH)
241
+ INSTANCE = new(EMPTY_HASH)
242
242
 
243
243
  def self.key
244
244
  :default
@@ -251,7 +251,7 @@ module Puppet::Pops
251
251
  # will be those of e1
252
252
  #
253
253
  class HashMergeStrategy < MergeStrategy
254
- INSTANCE = self.new(EMPTY_HASH)
254
+ INSTANCE = new(EMPTY_HASH)
255
255
 
256
256
  def self.key
257
257
  :hash
@@ -281,7 +281,7 @@ module Puppet::Pops
281
281
  # first contributor of elements and e2 the second.
282
282
  #
283
283
  class UniqueMergeStrategy < MergeStrategy
284
- INSTANCE = self.new(EMPTY_HASH)
284
+ INSTANCE = new(EMPTY_HASH)
285
285
 
286
286
  def self.key
287
287
  :unique
@@ -363,7 +363,7 @@ module Puppet::Pops
363
363
  # Results: {:x => [{:y => 1, :z => 2}]}
364
364
  #
365
365
  class DeepMergeStrategy < MergeStrategy
366
- INSTANCE = self.new(EMPTY_HASH)
366
+ INSTANCE = new(EMPTY_HASH)
367
367
 
368
368
  def self.key
369
369
  :deep
@@ -432,7 +432,7 @@ module Puppet::Pops
432
432
  # Same as {UnconstrainedDeepMergeStrategy} but with reverse priority of merged elements.
433
433
  # (needed for backward compatibility with Hiera v3)
434
434
  class ReverseDeepMergeStrategy < UnconstrainedDeepMergeStrategy
435
- INSTANCE = self.new(EMPTY_HASH)
435
+ INSTANCE = new(EMPTY_HASH)
436
436
 
437
437
  def self.key
438
438
  :reverse_deep
@@ -9,7 +9,7 @@ class Puppet::Pops::Migration::MigrationChecker
9
9
 
10
10
  # rubocop:disable Naming/MemoizedInstanceVariableName
11
11
  def self.singleton
12
- @null_checker ||= self.new
12
+ @null_checker ||= new
13
13
  end
14
14
  # rubocop:enable Naming/MemoizedInstanceVariableName
15
15
 
@@ -61,14 +61,12 @@ class Puppet::Pops::Model::AstTransformer
61
61
 
62
62
  # Transforms pops expressions into AST 3.1 statements/expressions
63
63
  def transform(o)
64
- begin
65
- @@transform_visitor.visit_this_0(self, o)
66
- rescue StandardError => e
67
- loc_data = {}
68
- merge_location(loc_data, o)
69
- raise Puppet::ParseError.new(_("Error while transforming to Puppet 3 AST: %{message}") % { message: e.message },
70
- loc_data[:file], loc_data[:line], loc_data[:pos], e)
71
- end
64
+ @@transform_visitor.visit_this_0(self, o)
65
+ rescue StandardError => e
66
+ loc_data = {}
67
+ merge_location(loc_data, o)
68
+ raise Puppet::ParseError.new(_("Error while transforming to Puppet 3 AST: %{message}") % { message: e.message },
69
+ loc_data[:file], loc_data[:line], loc_data[:pos], e)
72
70
  end
73
71
 
74
72
  # Transforms pops expressions into AST 3.1 query expressions
@@ -93,11 +91,11 @@ class Puppet::Pops::Model::AstTransformer
93
91
  end
94
92
 
95
93
  def hostname_LiteralValue(o)
96
- return o.value
94
+ o.value
97
95
  end
98
96
 
99
97
  def hostname_QualifiedName(o)
100
- return o.value
98
+ o.value
101
99
  end
102
100
 
103
101
  def hostname_LiteralNumber(o)
@@ -105,7 +103,7 @@ class Puppet::Pops::Model::AstTransformer
105
103
  end
106
104
 
107
105
  def hostname_LiteralDefault(o)
108
- return 'default'
106
+ 'default'
109
107
  end
110
108
 
111
109
  def hostname_LiteralRegularExpression(o)
@@ -648,7 +648,7 @@ class Factory
648
648
  return false unless expr.instance_of?(self) && expr.model_class <= AbstractResource
649
649
 
650
650
  expr['form'] = form
651
- return true
651
+ true
652
652
  end
653
653
 
654
654
  # Returns symbolic information about an expected shape of a resource expression given the LHS of a resource expr.
@@ -1052,8 +1052,7 @@ class Factory
1052
1052
  end
1053
1053
  a_hash = HASH(keyed_entries)
1054
1054
  a_hash.record_position(left[KEY_LOCATOR], lbrace_token, rbrace_token)
1055
- result = block_or_expression(transform_calls([left, a_hash]))
1056
- result
1055
+ block_or_expression(transform_calls([left, a_hash]))
1057
1056
  end
1058
1057
 
1059
1058
  def interpolate_Factory(c)
@@ -1062,7 +1061,7 @@ class Factory
1062
1061
 
1063
1062
  def interpolate_LiteralInteger(c)
1064
1063
  # convert number to a variable
1065
- self.var
1064
+ var
1066
1065
  end
1067
1066
 
1068
1067
  def interpolate_Object(c)
@@ -1070,7 +1069,7 @@ class Factory
1070
1069
  end
1071
1070
 
1072
1071
  def interpolate_QualifiedName(c)
1073
- self.var
1072
+ var
1074
1073
  end
1075
1074
 
1076
1075
  # rewrite left expression to variable if it is name, number, and recurse if it is an access expression
@@ -14,7 +14,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
14
14
  def parse_file(file)
15
15
  unless FileTest.exist?(file)
16
16
  unless file =~ /\.epp$/
17
- file = file + ".epp"
17
+ file += ".epp"
18
18
  end
19
19
  end
20
20
  @lexer.file = file
@@ -43,7 +43,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
43
43
  # rescue => except
44
44
  # raise Puppet::ParseError.new(except.message, @lexer.file, @lexer.line, @lexer.pos, except)
45
45
  end
46
- return main
46
+ main
47
47
  ensure
48
48
  @lexer.clear
49
49
  @namestack = []
@@ -44,7 +44,7 @@ module EppSupport
44
44
  interpolate_epp
45
45
 
46
46
  # This is the lexer's main loop
47
- until queue.empty? && scn.eos? do
47
+ until queue.empty? && scn.eos?
48
48
  token = queue.shift || lex_token
49
49
  if token
50
50
  yield [ctx[:after] = token[0], token[1]]
@@ -71,7 +71,7 @@ class EvaluatingParser
71
71
 
72
72
  def evaluator
73
73
  # Do not use the cached evaluator if this is a migration run
74
- if (Puppet.lookup(:migration_checker) { nil })
74
+ if Puppet.lookup(:migration_checker) { nil }
75
75
  return Evaluator::EvaluatorImpl.new()
76
76
  end
77
77
 
@@ -146,7 +146,7 @@ class EvaluatingParser
146
146
  when '"'
147
147
  escaped << '\\"'
148
148
  when '\\'
149
- escaped << if c == '$' || c == 's'; p; else '\\\\'; end # don't escape \ when followed by s or $
149
+ escaped << ((c == '$' || c == 's') ? p : '\\\\') # don't escape \ when followed by s or $
150
150
  else
151
151
  escaped << p
152
152
  end
@@ -8,7 +8,7 @@ module HeredocSupport
8
8
  # Pattern for heredoc `@(endtag[:syntax][/escapes])
9
9
  # Produces groups for endtag (group 1), syntax (group 2), and escapes (group 3)
10
10
  #
11
- PATTERN_HEREDOC = %r{@\(([^:/\r\n\)]+)(?::[[:blank:]]*([a-z][a-zA-Z0-9_+]+)[[:blank:]]*)?(?:/((?:\w|[$])*)[[:blank:]]*)?\)}
11
+ PATTERN_HEREDOC = %r{@\(([^:/\r\n)]+)(?::[[:blank:]]*([a-z][a-zA-Z0-9_+]+)[[:blank:]]*)?(?:/((?:\w|[$])*)[[:blank:]]*)?\)}
12
12
 
13
13
  def heredoc
14
14
  scn = @scanner
@@ -32,7 +32,7 @@ module HeredocSupport
32
32
  # Is this a dq string style heredoc? (endtag enclosed in "")
33
33
  if endtag =~ /^"(.*)"$/
34
34
  dqstring_style = true
35
- endtag = $1.strip
35
+ endtag = ::Regexp.last_match(1).strip
36
36
  end
37
37
 
38
38
  lex_error(Issues::HEREDOC_EMPTY_ENDTAG) unless endtag.length >= 1
@@ -81,9 +81,9 @@ module HeredocSupport
81
81
  # that terminates the heredoc is found.
82
82
 
83
83
  # (Endline in EBNF form): WS* ('|' WS*)? ('-' WS*)? endtag WS* \r? (\n|$)
84
- endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(\-)[[:blank:]]*)?#{Regexp.escape(endtag)}[[:blank:]]*\r?(?:\n|\z)/
84
+ endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(-)[[:blank:]]*)?#{Regexp.escape(endtag)}[[:blank:]]*\r?(?:\n|\z)/
85
85
  lines = []
86
- while !scn.eos? do
86
+ until scn.eos?
87
87
  one_line = scn.scan_until(/(?:\n|\z)/)
88
88
  raise eof_error unless one_line
89
89
 
@@ -7,7 +7,7 @@
7
7
  # of passing parameters and evaluating conditional logic has a negative impact on performance.
8
8
  #
9
9
  module Puppet::Pops::Parser::InterpolationSupport
10
- PATTERN_VARIABLE = %r{(::)?(\w+::)*\w+}
10
+ PATTERN_VARIABLE = /(::)?(\w+::)*\w+/
11
11
 
12
12
  # This is the starting point for a double quoted string with possible interpolation
13
13
  # The structure mimics that of the grammar.
@@ -194,7 +194,7 @@ module Puppet::Pops::Parser::InterpolationSupport
194
194
 
195
195
  scn.skip(self.class::PATTERN_WS)
196
196
  queue_size = queue.size
197
- until scn.eos? do
197
+ until scn.eos?
198
198
  token = lex_token
199
199
  if token
200
200
  if token.equal?(queue_base)
@@ -242,7 +242,7 @@ module Puppet::Pops::Parser::InterpolationSupport
242
242
  def interpolate_uq_to(lexer)
243
243
  interpolate_uq
244
244
  queue = @token_queue
245
- until queue.empty? do
245
+ until queue.empty?
246
246
  lexer.enqueue(queue.shift)
247
247
  end
248
248
  end
@@ -150,11 +150,11 @@ class Lexer2
150
150
  KEYWORDS.each { |k, v| KEYWORD_NAMES[v[0]] = k }
151
151
  KEYWORD_NAMES.freeze
152
152
 
153
- PATTERN_WS = %r{[[:blank:]\r]+}
154
- PATTERN_NON_WS = %r{\w+\b?}
153
+ PATTERN_WS = /[[:blank:]\r]+/
154
+ PATTERN_NON_WS = /\w+\b?/
155
155
 
156
156
  # The single line comment includes the line ending.
157
- PATTERN_COMMENT = %r{#.*\r?}
157
+ PATTERN_COMMENT = /#.*\r?/
158
158
  PATTERN_MLCOMMENT = %r{/\*(.*?)\*/}m
159
159
 
160
160
  PATTERN_REGEX = %r{/[^/]*/}
@@ -170,13 +170,13 @@ class Lexer2
170
170
  # The NAME and CLASSREF in 4x are strict. Each segment must start with
171
171
  # a letter a-z and may not contain dashes (\w includes letters, digits and _).
172
172
  #
173
- PATTERN_CLASSREF = %r{((::){0,1}[A-Z][\w]*)+}
174
- PATTERN_NAME = %r{^((::)?[a-z][\w]*)(::[a-z][\w]*)*$}
173
+ PATTERN_CLASSREF = /((::){0,1}[A-Z]\w*)+/
174
+ PATTERN_NAME = /^((::)?[a-z]\w*)(::[a-z]\w*)*$/
175
175
 
176
- PATTERN_BARE_WORD = %r{((?:::){0,1}(?:[a-z_](?:[\w-]*[\w])?))+}
176
+ PATTERN_BARE_WORD = /((?:::){0,1}(?:[a-z_](?:[\w-]*\w)?))+/
177
177
 
178
- PATTERN_DOLLAR_VAR = %r{\$(::)?(\w+::)*\w+}
179
- PATTERN_NUMBER = %r{\b(?:0[xX][0-9A-Fa-f]+|0?\d+(?:\.\d+)?(?:[eE]-?\d+)?)\b}
178
+ PATTERN_DOLLAR_VAR = /\$(::)?(\w+::)*\w+/
179
+ PATTERN_NUMBER = /\b(?:0[xX][0-9A-Fa-f]+|0?\d+(?:\.\d+)?(?:[eE]-?\d+)?)\b/
180
180
 
181
181
  # PERFORMANCE NOTE:
182
182
  # Comparison against a frozen string is faster (than unfrozen).
@@ -268,7 +268,11 @@ class Lexer2
268
268
  '|' => lambda do
269
269
  scn = @scanner
270
270
  la = scn.peek(3)
271
- emit(la[1] == '>' ? (la[2] == '>' ? TOKEN_RRCOLLECT : TOKEN_RCOLLECT) : TOKEN_PIPE, scn.pos)
271
+ emit(if la[1] == '>'
272
+ la[2] == '>' ? TOKEN_RRCOLLECT : TOKEN_RCOLLECT
273
+ else
274
+ TOKEN_PIPE
275
+ end, scn.pos)
272
276
  end,
273
277
 
274
278
  # TOKENS =, =>, ==, =~
@@ -522,7 +526,7 @@ class Lexer2
522
526
  end
523
527
  end
524
528
  scn.pos = before
525
- invalid_number = scn.peek(after - before) unless invalid_number
529
+ invalid_number ||= scn.peek(after - before)
526
530
  end
527
531
  assert_numeric(invalid_number, before)
528
532
  scn.pos = before + 1
@@ -635,7 +639,11 @@ class Lexer2
635
639
  @scanner = StringScanner.new(string)
636
640
  @locator = locator || Locator.locator(string, '')
637
641
  @lexing_context[:escapes] = escapes || UQ_ESCAPES
638
- @lexing_context[:uq_slurp_pattern] = interpolate ? (escapes.include?('$') ? SLURP_UQ_PATTERN : SLURP_UQNE_PATTERN) : SLURP_ALL_PATTERN
642
+ @lexing_context[:uq_slurp_pattern] = if interpolate
643
+ escapes.include?('$') ? SLURP_UQ_PATTERN : SLURP_UQNE_PATTERN
644
+ else
645
+ SLURP_ALL_PATTERN
646
+ end
639
647
  end
640
648
 
641
649
  # Convenience method, and for compatibility with older lexer. Use the lex_file instead.
@@ -706,7 +714,7 @@ class Lexer2
706
714
  scn.skip(PATTERN_WS)
707
715
 
708
716
  # This is the lexer's main loop
709
- until queue.empty? && scn.eos? do
717
+ until queue.empty? && scn.eos?
710
718
  token = queue.shift || selector[scn.peek(1)].call
711
719
  if token
712
720
  ctx[:after] = token[0]