puppet 8.5.1 → 8.7.0

Sign up to get free protection for your applications and to get access to all the features.
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 +13 -23
  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
@@ -93,7 +93,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
93
93
  else
94
94
  a = [nil, nil]
95
95
  end
96
- return a
96
+ a
97
97
  end
98
98
 
99
99
  def add_resource_before(other, *resources)
@@ -184,7 +184,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
184
184
  def alias(resource, key)
185
185
  ref = resource.ref
186
186
  ref =~ /^(.+)\[/
187
- class_name = $1 || resource.class.name
187
+ class_name = ::Regexp.last_match(1) || resource.class.name
188
188
 
189
189
  newref = [class_name, key].flatten
190
190
 
@@ -272,7 +272,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
272
272
  def clear(remove_resources = true)
273
273
  super()
274
274
  # We have to do this so that the resources clean themselves up.
275
- @resource_table.values.each { |resource| resource.remove } if remove_resources
275
+ @resource_table.values.each(&:remove) if remove_resources
276
276
  @resource_table.clear
277
277
  @resources = []
278
278
 
@@ -304,7 +304,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
304
304
  def finalize
305
305
  make_default_resources
306
306
 
307
- @resource_table.values.each { |resource| resource.finish }
307
+ @resource_table.values.each(&:finish)
308
308
 
309
309
  write_graph(:resources)
310
310
  end
@@ -467,10 +467,10 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
467
467
  end
468
468
 
469
469
  def to_data_hash
470
- metadata_hash = metadata.transform_values { |v| v.to_data_hash; }
470
+ metadata_hash = metadata.transform_values(&:to_data_hash)
471
471
  recursive_metadata_hash = recursive_metadata.transform_values do |source_to_meta_hash|
472
472
  source_to_meta_hash.transform_values do |metas|
473
- metas.map { |meta| meta.to_data_hash }
473
+ metas.map(&:to_data_hash)
474
474
  end
475
475
  end
476
476
 
@@ -483,7 +483,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
483
483
  'catalog_format' => catalog_format,
484
484
  'environment' => environment.to_s,
485
485
  'resources' => @resources.map { |v| @resource_table[v].to_data_hash },
486
- 'edges' => edges.map { |e| e.to_data_hash },
486
+ 'edges' => edges.map(&:to_data_hash),
487
487
  'classes' => classes,
488
488
  }.merge(metadata_hash.empty? ?
489
489
  {} : { 'metadata' => metadata_hash }).merge(recursive_metadata_hash.empty? ?
@@ -539,7 +539,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
539
539
  to_print = resources.filter_map do |resource|
540
540
  next unless resource.managed?
541
541
 
542
- "#{resource.ref.downcase}"
542
+ resource.ref.downcase.to_s
543
543
  end
544
544
  f.puts to_print.join("\n")
545
545
  end
@@ -590,14 +590,14 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
590
590
  # This pretty much just converts all of the resources from one class to another, using
591
591
  # a conversion method.
592
592
  def to_catalog(convert)
593
- result = self.class.new(self.name, self.environment_instance)
593
+ result = self.class.new(name, environment_instance)
594
594
 
595
- result.version = self.version
596
- result.code_id = self.code_id
597
- result.catalog_uuid = self.catalog_uuid
598
- result.catalog_format = self.catalog_format
599
- result.metadata = self.metadata
600
- result.recursive_metadata = self.recursive_metadata
595
+ result.version = version
596
+ result.code_id = code_id
597
+ result.catalog_uuid = catalog_uuid
598
+ result.catalog_format = catalog_format
599
+ result.metadata = metadata
600
+ result.recursive_metadata = recursive_metadata
601
601
 
602
602
  map = {}
603
603
  resources.each do |resource|
@@ -643,7 +643,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
643
643
 
644
644
  map.clear
645
645
 
646
- result.add_class(*self.classes)
646
+ result.add_class(*classes)
647
647
  result.merge_tags_from(self)
648
648
 
649
649
  result
@@ -102,7 +102,7 @@ module Puppet
102
102
  end
103
103
 
104
104
  def self.from_data_hash(data)
105
- obj = self.allocate
105
+ obj = allocate
106
106
  obj.initialize_from_hash(data)
107
107
  obj
108
108
  end
@@ -216,13 +216,13 @@ module Puppet
216
216
  'tags' => @tags.to_a,
217
217
  'time' => @time.iso8601(9),
218
218
  'failed' => @failed,
219
- 'failed_to_restart' => self.failed_to_restart?,
219
+ 'failed_to_restart' => failed_to_restart?,
220
220
  'changed' => @changed,
221
221
  'out_of_sync' => @out_of_sync,
222
222
  'skipped' => @skipped,
223
223
  'change_count' => @change_count,
224
224
  'out_of_sync_count' => @out_of_sync_count,
225
- 'events' => @events.map { |event| event.to_data_hash },
225
+ 'events' => @events.map(&:to_data_hash),
226
226
  'corrective_change' => @corrective_change,
227
227
  }
228
228
  end
@@ -47,7 +47,7 @@ class Puppet::Resource::Type
47
47
  attr_reader :type
48
48
 
49
49
  RESOURCE_KINDS.each do |t|
50
- define_method("#{t}?") { self.type == t }
50
+ define_method("#{t}?") { type == t }
51
51
  end
52
52
 
53
53
  # Are we a child of the passed class? Do a recursive search up our
@@ -56,7 +56,7 @@ class Puppet::Resource::Type
56
56
  return true if override
57
57
  return false unless parent
58
58
 
59
- return(klass == parent_type ? true : parent_type.child_of?(klass))
59
+ (klass == parent_type ? true : parent_type.child_of?(klass))
60
60
  end
61
61
 
62
62
  # Now evaluate the code associated with this class or definition.
@@ -140,7 +140,7 @@ class Puppet::Resource::Type
140
140
  # This might just be an empty, stub class.
141
141
  return unless other.code
142
142
 
143
- unless self.code
143
+ unless code
144
144
  self.code = other.code
145
145
  return
146
146
  end
@@ -189,7 +189,7 @@ class Puppet::Resource::Type
189
189
  parent_type(scope).ensure_in_catalog(scope)
190
190
  end
191
191
 
192
- if ['Class', 'Node'].include? resource.type
192
+ if %w[Class Node].include? resource.type
193
193
  scope.catalog.merge_tags_from(resource)
194
194
  end
195
195
  end
@@ -237,7 +237,7 @@ class Puppet::Resource::Type
237
237
  scope[TITLE] = resource.title
238
238
  scope[NAME] = resource.name
239
239
  end
240
- scope.class_set(self.name, scope) if hostclass? || node?
240
+ scope.class_set(name, scope) if hostclass? || node?
241
241
 
242
242
  param_hash = scope.with_parameter_scope(resource.to_s, arguments.keys) do |param_scope|
243
243
  # Assign directly to the parameter scope to avoid scope parameter validation at this point. It
@@ -376,7 +376,7 @@ class Puppet::Resource::Type
376
376
  ary = fullname.split(DOUBLE_COLON)
377
377
  n = ary.pop || ""
378
378
  ns = ary.join(DOUBLE_COLON)
379
- return ns, n
379
+ [ns, n]
380
380
  end
381
381
 
382
382
  def parent_scope(scope, klass)
@@ -401,9 +401,9 @@ class Puppet::Resource::Type
401
401
  return unless Puppet::Type.metaparamclass(param)
402
402
 
403
403
  if default
404
- warnonce _("%{param} is a metaparam; this value will inherit to all contained resources in the %{name} definition") % { param: param, name: self.name }
404
+ warnonce _("%{param} is a metaparam; this value will inherit to all contained resources in the %{name} definition") % { param: param, name: name }
405
405
  else
406
- raise Puppet::ParseError, _("%{param} is a metaparameter; please choose another parameter name in the %{name} definition") % { param: param, name: self.name }
406
+ raise Puppet::ParseError, _("%{param} is a metaparameter; please choose another parameter name in the %{name} definition") % { param: param, name: name }
407
407
  end
408
408
  end
409
409
 
@@ -168,7 +168,7 @@ class Puppet::Resource::TypeCollection
168
168
  end
169
169
 
170
170
  def version
171
- if !defined?(@version)
171
+ unless defined?(@version)
172
172
  if environment.config_version.nil? || environment.config_version == ""
173
173
  @version = Time.now.to_i
174
174
  else
@@ -44,7 +44,7 @@ class Puppet::Resource
44
44
  VALUE_KEY = 'value'
45
45
 
46
46
  def self.from_data_hash(data)
47
- resource = self.allocate
47
+ resource = allocate
48
48
  resource.initialize_from_hash(data)
49
49
  resource
50
50
  end
@@ -116,7 +116,7 @@ class Puppet::Resource
116
116
  converter = stringify ? Puppet::Pops::Serialization::ToStringifiedConverter.new : nil
117
117
 
118
118
  params = {}
119
- self.to_hash.each_pair do |param, value|
119
+ to_hash.each_pair do |param, value|
120
120
  # Don't duplicate the title as the namevar
121
121
  unless param == namevar && value == title
122
122
  if stringify
@@ -162,12 +162,12 @@ class Puppet::Resource
162
162
  end
163
163
 
164
164
  def yaml_property_munge(x)
165
- self.value.to_json_data(x)
165
+ value.to_json_data(x)
166
166
  end
167
167
 
168
168
  # Proxy these methods to the parameters hash. It's likely they'll
169
169
  # be overridden at some point, but this works for now.
170
- %w{has_key? keys length delete empty? <<}.each do |method|
170
+ %w[has_key? keys length delete empty? <<].each do |method|
171
171
  define_method(method) do |*args|
172
172
  parameters.send(method, *args)
173
173
  end
@@ -187,7 +187,7 @@ class Puppet::Resource
187
187
  end
188
188
 
189
189
  def ==(other)
190
- return false unless other.respond_to?(:title) and self.type == other.type and self.title == other.title
190
+ return false unless other.respond_to?(:title) and type == other.type and title == other.title
191
191
 
192
192
  return false unless to_hash == other.to_hash
193
193
 
@@ -227,9 +227,9 @@ class Puppet::Resource
227
227
  super || parameters.keys.include?(parameter_name(parameter))
228
228
  end
229
229
 
230
- %w{exported virtual strict}.each do |m|
230
+ %w[exported virtual strict].each do |m|
231
231
  define_method(m + "?") do
232
- self.send(m)
232
+ send(m)
233
233
  end
234
234
  end
235
235
 
@@ -275,7 +275,7 @@ class Puppet::Resource
275
275
  self.kind = src.kind
276
276
  self.exported = src.exported
277
277
  self.virtual = src.virtual
278
- self.set_tags(src)
278
+ set_tags(src)
279
279
  self.environment = src.environment
280
280
  @rstype = src.resource_type
281
281
  @type = src.type
@@ -343,7 +343,7 @@ class Puppet::Resource
343
343
 
344
344
  self.kind = self.class.to_kind(rt) unless kind
345
345
  if strict? && rt.nil?
346
- if self.class?
346
+ if class?
347
347
  raise ArgumentError, _("Could not find declared class %{title}") % { title: title }
348
348
  else
349
349
  raise ArgumentError, _("Invalid resource type %{type}") % { type: type }
@@ -388,7 +388,7 @@ class Puppet::Resource
388
388
  when TYPE_NODE; environment.known_resource_types.node(title)
389
389
  else
390
390
  result = Puppet::Type.type(type)
391
- if !result
391
+ unless result
392
392
  krt = environment.known_resource_types
393
393
  result = krt.definition(type)
394
394
  end
@@ -428,11 +428,11 @@ class Puppet::Resource
428
428
 
429
429
  def uniqueness_key
430
430
  # Temporary kludge to deal with inconsistent use patterns; ensure we don't return nil for namevar/:name
431
- h = self.to_hash
431
+ h = to_hash
432
432
  name = h[namevar] || h[:name] || self.name
433
433
  h[namevar] ||= name
434
434
  h[:name] ||= name
435
- h.values_at(*key_attributes.sort_by { |k| k.to_s })
435
+ h.values_at(*key_attributes.sort_by(&:to_s))
436
436
  end
437
437
 
438
438
  def key_attributes
@@ -460,7 +460,7 @@ class Puppet::Resource
460
460
  }.join
461
461
  # rubocop:enable Lint/FormatParameterMismatch
462
462
 
463
- " %s:\n%s" % [self.title, attributes]
463
+ " %s:\n%s" % [title, attributes]
464
464
  end
465
465
 
466
466
  # Convert our resource to a hiera hash suitable for serialization.
@@ -475,7 +475,7 @@ class Puppet::Resource
475
475
  res['ensure'] = value if value
476
476
  res.merge!(params.sort.to_h)
477
477
 
478
- return { h['title'] => res }
478
+ { h['title'] => res }
479
479
  end
480
480
 
481
481
  # Convert our resource to Puppet code.
@@ -497,8 +497,8 @@ class Puppet::Resource
497
497
  }.join
498
498
  # rubocop:enable Lint/FormatParameterMismatch
499
499
 
500
- escaped = self.title.gsub(/'/, "\\\\'")
501
- "%s { '%s':\n%s}" % [self.type.to_s.downcase, escaped, attributes]
500
+ escaped = title.gsub(/'/, "\\\\'")
501
+ "%s { '%s':\n%s}" % [type.to_s.downcase, escaped, attributes]
502
502
  end
503
503
 
504
504
  def to_ref
@@ -513,15 +513,15 @@ class Puppet::Resource
513
513
  # must check its kind before deciding whether the catalog format is of an older
514
514
  # version or not.
515
515
  def to_ral
516
- if self.kind == COMPILABLE_TYPE_STRING
517
- typeklass = Puppet::Type.type(self.type)
518
- elsif self.catalog && self.catalog.catalog_format >= 2
516
+ if kind == COMPILABLE_TYPE_STRING
517
+ typeklass = Puppet::Type.type(type)
518
+ elsif catalog && catalog.catalog_format >= 2
519
519
  typeklass = Puppet::Type.type(:component)
520
520
  else
521
- typeklass = Puppet::Type.type(self.type) || Puppet::Type.type(:component)
521
+ typeklass = Puppet::Type.type(type) || Puppet::Type.type(:component)
522
522
  end
523
523
 
524
- raise(Puppet::Error, "Resource type '#{self.type}' was not found") unless typeklass
524
+ raise(Puppet::Error, "Resource type '#{type}' was not found") unless typeklass
525
525
 
526
526
  typeklass.new(self)
527
527
  end
@@ -589,9 +589,9 @@ class Puppet::Resource
589
589
 
590
590
  def self.extract_type_and_title(argtype, argtitle)
591
591
  if (argtype.nil? || argtype == :component || argtype == :whit) &&
592
- argtitle =~ /^([^\[\]]+)\[(.+)\]$/m then [$1, $2]
592
+ argtitle =~ /^([^\[\]]+)\[(.+)\]$/m then [::Regexp.last_match(1), ::Regexp.last_match(2)]
593
593
  elsif argtitle.nil? && argtype.is_a?(String) &&
594
- argtype =~ /^([^\[\]]+)\[(.+)\]$/m then [$1, $2]
594
+ argtype =~ /^([^\[\]]+)\[(.+)\]$/m then [::Regexp.last_match(1), ::Regexp.last_match(2)]
595
595
  elsif argtitle then [argtype, argtitle]
596
596
  elsif argtype.is_a?(Puppet::Type) then [argtype.class.name, argtype.title]
597
597
  else raise ArgumentError, _("No title provided and %{type} is not a valid resource reference") % { type: argtype.inspect } # rubocop:disable Lint/ElseLayout
@@ -646,32 +646,32 @@ class Puppet::Resource
646
646
  if type.respond_to?(:title_patterns) && !type.title_patterns.nil?
647
647
  type.title_patterns.each do |regexp, symbols_and_lambdas|
648
648
  captures = regexp.match(title.to_s)
649
- if captures
650
- symbols_and_lambdas.zip(captures[1..]).each do |symbol_and_lambda, capture|
651
- symbol, proc = symbol_and_lambda
652
- # Many types pass "identity" as the proc; we might as well give
653
- # them a shortcut to delivering that without the extra cost.
654
- #
655
- # Especially because the global type defines title_patterns and
656
- # uses the identity patterns.
657
- #
658
- # This was worth about 8MB of memory allocation saved in my
659
- # testing, so is worth the complexity for the API.
660
- if proc then
661
- h[symbol] = proc.call(capture)
662
- else
663
- h[symbol] = capture
664
- end
649
+ next unless captures
650
+
651
+ symbols_and_lambdas.zip(captures[1..]).each do |symbol_and_lambda, capture|
652
+ symbol, proc = symbol_and_lambda
653
+ # Many types pass "identity" as the proc; we might as well give
654
+ # them a shortcut to delivering that without the extra cost.
655
+ #
656
+ # Especially because the global type defines title_patterns and
657
+ # uses the identity patterns.
658
+ #
659
+ # This was worth about 8MB of memory allocation saved in my
660
+ # testing, so is worth the complexity for the API.
661
+ if proc then
662
+ h[symbol] = proc.call(capture)
663
+ else
664
+ h[symbol] = capture
665
665
  end
666
- return h
667
666
  end
667
+ return h
668
668
  end
669
669
  # If we've gotten this far, then none of the provided title patterns
670
670
  # matched. Since there's no way to determine the title then the
671
671
  # resource should fail here.
672
672
  raise Puppet::Error, _("No set of title patterns matched the title \"%{title}\".") % { title: title }
673
673
  else
674
- return { :name => title.to_s }
674
+ { :name => title.to_s }
675
675
  end
676
676
  end
677
677
  end
@@ -8,7 +8,7 @@ module Puppet::Scheduler
8
8
 
9
9
  def run_loop(jobs)
10
10
  mark_start_times(jobs, @timer.now)
11
- while not enabled(jobs).empty?
11
+ until enabled(jobs).empty?
12
12
  @timer.wait_for(min_interval_to_next_run_from(jobs, @timer.now))
13
13
  run_ready(jobs, @timer.now)
14
14
  end
@@ -25,6 +25,15 @@ module Puppet::Scheduler
25
25
  end
26
26
  end
27
27
 
28
+ # Recalculates splay.
29
+ #
30
+ # @param splay_limit [Integer] the maximum time (in seconds) to delay before an agent's first run.
31
+ # @return @splay [Integer] a random integer less than or equal to the splay limit that represents the seconds to
32
+ # delay before next agent run.
33
+ def splay_limit=(splay_limit)
34
+ @splay = calculate_splay(splay_limit)
35
+ end
36
+
28
37
  private
29
38
 
30
39
  def calculate_splay(limit)
@@ -26,11 +26,9 @@ class Puppet::Settings::AliasSetting
26
26
  end
27
27
 
28
28
  def method_missing(method, *args)
29
- begin
30
- alias_for.send(method, *args)
31
- rescue => e
32
- Puppet.log_exception(self.class, e.message)
33
- end
29
+ alias_for.send(method, *args)
30
+ rescue => e
31
+ Puppet.log_exception(self.class, e.message)
34
32
  end
35
33
 
36
34
  private
@@ -89,7 +89,7 @@ class Puppet::Settings::BaseSetting
89
89
  def initialize(args = {})
90
90
  @settings = args.delete(:settings)
91
91
  unless @settings
92
- raise ArgumentError.new("You must refer to a settings object")
92
+ raise ArgumentError, "You must refer to a settings object"
93
93
  end
94
94
 
95
95
  # explicitly set name prior to calling other param= methods to provide meaningful feedback during
@@ -97,25 +97,25 @@ class Puppet::Settings::BaseSetting
97
97
  @name = args[:name] if args.include? :name
98
98
 
99
99
  # set the default value for call_hook
100
- @call_hook = :on_write_only if args[:hook] and not args[:call_hook]
100
+ @call_hook = :on_write_only if args[:hook] and !(args[:call_hook])
101
101
  @has_hook = false
102
102
 
103
- if args[:call_hook] and not args[:hook]
103
+ if args[:call_hook] and !(args[:hook])
104
104
  # TRANSLATORS ':call_hook' and ':hook' are specific setting names and should not be translated
105
105
  raise ArgumentError, _("Cannot reference :call_hook for :%{name} if no :hook is defined") % { name: @name }
106
106
  end
107
107
 
108
108
  args.each do |param, value|
109
109
  method = param.to_s + "="
110
- unless self.respond_to? method
110
+ unless respond_to? method
111
111
  raise ArgumentError, _("%{class_name} (setting '%{setting}') does not accept %{parameter}") %
112
112
  { class_name: self.class, setting: args[:name], parameter: param }
113
113
  end
114
114
 
115
- self.send(method, value)
115
+ send(method, value)
116
116
  end
117
- unless self.desc
118
- raise ArgumentError, _("You must provide a description for the %{class_name} config option") % { class_name: self.name }
117
+ unless desc
118
+ raise ArgumentError, _("You must provide a description for the %{class_name} config option") % { class_name: name }
119
119
  end
120
120
  end
121
121
 
@@ -146,7 +146,7 @@ class Puppet::Settings::BaseSetting
146
146
  end
147
147
  return default_value unless check_application_defaults_first
148
148
 
149
- return @settings.value(name, :application_defaults, true) || default_value
149
+ @settings.value(name, :application_defaults, true) || default_value
150
150
  end
151
151
 
152
152
  # Convert the object to a config statement.
@@ -161,7 +161,7 @@ class Puppet::Settings::BaseSetting
161
161
  # If the value has not been overridden, then print it out commented
162
162
  # and unconverted, so it's clear that that's the default and how it
163
163
  # works.
164
- value = @settings.value(self.name)
164
+ value = @settings.value(name)
165
165
 
166
166
  if value != @default
167
167
  line = "#{@name} = #{value}"
@@ -180,7 +180,7 @@ class Puppet::Settings::BaseSetting
180
180
  # @return [String] Retrieves the value, or if it's not set, retrieves the default.
181
181
  # @api public
182
182
  def value(bypass_interpolation = false)
183
- @settings.value(self.name, nil, bypass_interpolation)
183
+ @settings.value(name, nil, bypass_interpolation)
184
184
  end
185
185
 
186
186
  # Modify the value when it is first evaluated
@@ -223,6 +223,6 @@ class Puppet::Settings::BaseSetting
223
223
  end
224
224
 
225
225
  def inspect
226
- %Q{<#{self.class}:#{self.object_id} @name="#{@name}" @section="#{@section}" @default="#{@default}" @call_hook="#{@call_hook}">}
226
+ %Q(<#{self.class}:#{object_id} @name="#{@name}" @section="#{@section}" @default="#{@default}" @call_hook="#{@call_hook}">)
227
227
  end
228
228
  end
@@ -21,8 +21,8 @@ class Puppet::Settings::BooleanSetting < Puppet::Settings::BaseSetting
21
21
 
22
22
  def munge(value)
23
23
  case value
24
- when true, "true"; return true
25
- when false, "false"; return false
24
+ when true, "true"; true
25
+ when false, "false"; false
26
26
  else
27
27
  raise Puppet::Settings::ValidationError, _("Invalid value '%{value}' for boolean parameter: %{name}") % { value: value.inspect, name: @name }
28
28
  end
@@ -22,7 +22,7 @@ class Puppet::Settings::ConfigFile
22
22
  # @return A Struct with a +sections+ array representing each configuration section
23
23
  def parse_file(file, text, allowed_section_names = [])
24
24
  result = Conf.new
25
- if !allowed_section_names.empty?
25
+ unless allowed_section_names.empty?
26
26
  allowed_section_names << 'main' unless allowed_section_names.include?('main')
27
27
  end
28
28
 
@@ -123,10 +123,11 @@ class Puppet::Settings::ConfigFile
123
123
  def extract_fileinfo(string)
124
124
  result = {}
125
125
  value = string.sub(/\{\s*([^}]+)\s*\}/) do
126
- params = $1
126
+ params = ::Regexp.last_match(1)
127
127
  params.split(/\s*,\s*/).each do |str|
128
- if str =~ /^\s*(\w+)\s*=\s*([\w]+)\s*$/
129
- param, value = $1.intern, $2
128
+ if str =~ /^\s*(\w+)\s*=\s*(\w+)\s*$/
129
+ param = ::Regexp.last_match(1).intern
130
+ value = ::Regexp.last_match(2)
130
131
  result[param] = value
131
132
  unless [:owner, :mode, :group].include?(param)
132
133
  raise ArgumentError, _("Invalid file option '%{parameter}'") % { parameter: param }
@@ -24,8 +24,8 @@ class Puppet::Settings::DurationSetting < Puppet::Settings::BaseSetting
24
24
  def munge(value)
25
25
  if value.is_a?(Integer) || value.nil?
26
26
  value
27
- elsif (value.is_a?(String) and value =~ FORMAT)
28
- $1.to_i * UNITMAP[$2 || 's']
27
+ elsif value.is_a?(String) and value =~ FORMAT
28
+ ::Regexp.last_match(1).to_i * UNITMAP[::Regexp.last_match(2) || 's']
29
29
  else
30
30
  raise Puppet::Settings::ValidationError, _("Invalid duration format '%{value}' for parameter: %{name}") % { value: value.inspect, name: @name }
31
31
  end
@@ -149,7 +149,7 @@ class Puppet::Settings::EnvironmentConf
149
149
  end
150
150
 
151
151
  extraneous_settings = main.settings.map(&:name) - VALID_SETTINGS
152
- if !extraneous_settings.empty?
152
+ unless extraneous_settings.empty?
153
153
  # warn once per config file path
154
154
  Puppet.warn_once(
155
155
  :invalid_settings, "EnvironmentConf-settings:#{path_to_conf_file}",
@@ -161,7 +161,7 @@ class Puppet::Settings::EnvironmentConf
161
161
  valid = false
162
162
  end
163
163
 
164
- return valid
164
+ valid
165
165
  end
166
166
  private_class_method :validate
167
167
 
@@ -174,7 +174,7 @@ class Puppet::Settings::EnvironmentConf
174
174
  def expand_glob(path)
175
175
  return nil if path.nil?
176
176
 
177
- if path =~ /[*?\[\{]/
177
+ if path =~ /[*?\[{]/
178
178
  Dir.glob(path)
179
179
  else
180
180
  path
@@ -2,7 +2,7 @@
2
2
 
3
3
  class Puppet::Settings::FileOrDirectorySetting < Puppet::Settings::FileSetting
4
4
  def type
5
- if Puppet::FileSystem.directory?(self.value) || @path_ends_with_slash
5
+ if Puppet::FileSystem.directory?(value) || @path_ends_with_slash
6
6
  :directory
7
7
  else
8
8
  :file
@@ -12,7 +12,7 @@ class Puppet::Settings::FileOrDirectorySetting < Puppet::Settings::FileSetting
12
12
  # Overrides munge to be able to read the un-munged value (the FileSetting.munch removes trailing slash)
13
13
  #
14
14
  def munge(value)
15
- if value.is_a?(String) && value =~ /[\\\/]$/
15
+ if value.is_a?(String) && value =~ %r{[\\/]$}
16
16
  @path_ends_with_slash = true
17
17
  end
18
18
  super