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
@@ -236,33 +236,41 @@ class Puppet::Graph::RbTreeMap
236
236
 
237
237
  def rotate_left
238
238
  r = @right
239
- r_key, r_value = r.key, r.value
239
+ r_key = r.key
240
+ r_value = r.value
240
241
  b = r.left
241
242
  r.left = @left
242
243
  @left = r
243
244
  @right = r.right
244
245
  r.right = b
245
- r.color, r.key, r.value = :red, @key, @value
246
- @key, @value = r_key, r_value
246
+ r.color = :red
247
+ r.key = @key
248
+ r.value = @value
249
+ @key = r_key
250
+ @value = r_value
247
251
  self
248
252
  end
249
253
 
250
254
  def rotate_right
251
255
  l = @left
252
- l_key, l_value = l.key, l.value
256
+ l_key = l.key
257
+ l_value = l.value
253
258
  b = l.right
254
259
  l.right = @right
255
260
  @right = l
256
261
  @left = l.left
257
262
  l.left = b
258
- l.color, l.key, l.value = :red, @key, @value
259
- @key, @value = l_key, l_value
263
+ l.color = :red
264
+ l.key = @key
265
+ l.value = @value
266
+ @key = l_key
267
+ @value = l_value
260
268
  self
261
269
  end
262
270
 
263
271
  def move_red_left
264
272
  colorflip
265
- if (@right.left && @right.left.red?)
273
+ if @right.left && @right.left.red?
266
274
  @right.rotate_right
267
275
  rotate_left
268
276
  colorflip
@@ -272,7 +280,7 @@ class Puppet::Graph::RbTreeMap
272
280
 
273
281
  def move_red_right
274
282
  colorflip
275
- if (@left.left && @left.left.red?)
283
+ if @left.left && @left.left.red?
276
284
  rotate_right
277
285
  colorflip
278
286
  end
@@ -300,15 +308,15 @@ class Puppet::Graph::RbTreeMap
300
308
 
301
309
  def delete_recursive(node, key)
302
310
  if (key <=> node.key) == -1
303
- node.move_red_left if (!isred(node.left) && !isred(node.left.left))
311
+ node.move_red_left if !isred(node.left) && !isred(node.left.left)
304
312
  node.left, result = delete_recursive(node.left, key)
305
313
  else
306
314
  node.rotate_right if isred(node.left)
307
- if (((key <=> node.key) == 0) && node.right.nil?)
315
+ if ((key <=> node.key) == 0) && node.right.nil?
308
316
  return nil, node.value
309
317
  end
310
318
 
311
- if (!isred(node.right) && !isred(node.right.left))
319
+ if !isred(node.right) && !isred(node.right.left)
312
320
  node.move_red_right
313
321
  end
314
322
  if (key <=> node.key) == 0
@@ -321,7 +329,7 @@ class Puppet::Graph::RbTreeMap
321
329
  node.right, result = delete_recursive(node.right, key)
322
330
  end
323
331
  end
324
- return node.fixup, result
332
+ [node.fixup, result]
325
333
  end
326
334
 
327
335
  def delete_min_recursive(node)
@@ -329,35 +337,35 @@ class Puppet::Graph::RbTreeMap
329
337
  return nil, node.value
330
338
  end
331
339
 
332
- if (!isred(node.left) && !isred(node.left.left))
340
+ if !isred(node.left) && !isred(node.left.left)
333
341
  node.move_red_left
334
342
  end
335
343
  node.left, result = delete_min_recursive(node.left)
336
344
 
337
- return node.fixup, result
345
+ [node.fixup, result]
338
346
  end
339
347
 
340
348
  def delete_max_recursive(node)
341
- if (isred(node.left))
349
+ if isred(node.left)
342
350
  node = node.rotate_right
343
351
  end
344
352
  return nil, node.value if node.right.nil?
345
353
 
346
- if (!isred(node.right) && !isred(node.right.left))
354
+ if !isred(node.right) && !isred(node.right.left)
347
355
  node.move_red_right
348
356
  end
349
357
  node.right, result = delete_max_recursive(node.right)
350
358
 
351
- return node.fixup, result
359
+ [node.fixup, result]
352
360
  end
353
361
 
354
362
  def get_recursive(node, key)
355
363
  return nil if node.nil?
356
364
 
357
365
  case key <=> node.key
358
- when 0 then return node
359
- when -1 then return get_recursive(node.left, key)
360
- when 1 then return get_recursive(node.right, key)
366
+ when 0 then node
367
+ when -1 then get_recursive(node.left, key)
368
+ when 1 then get_recursive(node.right, key)
361
369
  end
362
370
  end
363
371
 
@@ -385,9 +393,9 @@ class Puppet::Graph::RbTreeMap
385
393
  when 1 then node.right = insert(node.right, key, value)
386
394
  end
387
395
 
388
- node.rotate_left if (node.right && node.right.red?)
389
- node.rotate_right if (node.left && node.left.red? && node.left.left && node.left.left.red?)
390
- node.colorflip if (node.left && node.left.red? && node.right && node.right.red?)
396
+ node.rotate_left if node.right && node.right.red?
397
+ node.rotate_right if node.left && node.left.red? && node.left.left && node.left.left.red?
398
+ node.colorflip if node.left && node.left.red? && node.right && node.right.red?
391
399
  node
392
400
  end
393
401
 
@@ -128,22 +128,22 @@ class Puppet::Graph::RelationshipGraph < Puppet::Graph::SimpleGraph
128
128
  deferred_resources << resource
129
129
  end
130
130
 
131
- if @ready.empty? and deferred_resources.any?
132
- if made_progress
133
- enqueue(*deferred_resources)
134
- else
135
- deferred_resources.each do |res|
136
- overly_deferred_resource_handler.call(res)
137
- finish(res)
138
- end
139
- end
131
+ next unless @ready.empty? and deferred_resources.any?
140
132
 
141
- made_progress = false
142
- deferred_resources = []
133
+ if made_progress
134
+ enqueue(*deferred_resources)
135
+ else
136
+ deferred_resources.each do |res|
137
+ overly_deferred_resource_handler.call(res)
138
+ finish(res)
139
+ end
143
140
  end
141
+
142
+ made_progress = false
143
+ deferred_resources = []
144
144
  end
145
145
 
146
- if !continue_while.call()
146
+ unless continue_while.call()
147
147
  while (resource = next_resource)
148
148
  canceled_resource_handler.call(resource)
149
149
  finish(resource)
@@ -106,7 +106,7 @@ class Puppet::Graph::SimpleGraph
106
106
  # decent Ruby stack.
107
107
  recur = [{ :node => root }]
108
108
 
109
- while not recur.empty? do
109
+ until recur.empty?
110
110
  frame = recur.last
111
111
  vertex = frame[:node]
112
112
 
@@ -171,7 +171,7 @@ class Puppet::Graph::SimpleGraph
171
171
 
172
172
  # we usually have a disconnected graph, must walk all possible roots
173
173
  vertices.each do |vertex|
174
- if !state[:index][vertex] then
174
+ unless state[:index][vertex] then
175
175
  tarjan vertex, state
176
176
  end
177
177
  end
@@ -186,9 +186,7 @@ class Puppet::Graph::SimpleGraph
186
186
  # time-scale.
187
187
  state[:scc].select do |component|
188
188
  multi_vertex_component?(component) || single_vertex_referring_to_self?(component)
189
- end.map do |component|
190
- component.sort
191
- end.sort
189
+ end.map(&:sort).sort
192
190
  end
193
191
 
194
192
  # Perform a BFS on the sub graph representing the cycle, with a view to
@@ -212,7 +210,7 @@ class Puppet::Graph::SimpleGraph
212
210
 
213
211
  # frame struct is vertex, [path]
214
212
  stack = [[cycle.first, []]]
215
- while frame = stack.shift do # rubocop:disable Lint/AssignmentInCondition
213
+ while frame = stack.shift # rubocop:disable Lint/AssignmentInCondition
216
214
  if frame[1].member?(frame[0]) then
217
215
  found << frame[1] + [frame[0]]
218
216
  break if found.length >= max_paths
@@ -223,7 +221,7 @@ class Puppet::Graph::SimpleGraph
223
221
  end
224
222
  end
225
223
 
226
- return found.sort
224
+ found.sort
227
225
  end
228
226
 
229
227
  # @return [Array] array of dependency cycles (arrays)
@@ -268,7 +266,7 @@ class Puppet::Graph::SimpleGraph
268
266
  filename = File.join(Puppet[:graphdir], "cycles.dot")
269
267
  # DOT files are assumed to be UTF-8 by default - http://www.graphviz.org/doc/info/lang.html
270
268
  File.open(filename, "w:UTF-8") { |f| f.puts graph }
271
- return filename
269
+ filename
272
270
  end
273
271
 
274
272
  # Add a new vertex to the graph.
@@ -330,7 +328,7 @@ class Puppet::Graph::SimpleGraph
330
328
  end
331
329
 
332
330
  def edges
333
- @in_to.values.collect { |x| x.values }.flatten
331
+ @in_to.values.collect(&:values).flatten
334
332
  end
335
333
 
336
334
  def each_edge
@@ -449,7 +447,7 @@ class Puppet::Graph::SimpleGraph
449
447
  # which match +dot+ properties will be used as well.
450
448
  def to_dot_graph(params = {})
451
449
  params['name'] ||= self.class.name.tr(':', '_')
452
- fontsize = params['fontsize'] ? params['fontsize'] : '8'
450
+ fontsize = params['fontsize'] || '8'
453
451
  graph = (directed? ? DOT::DOTDigraph : DOT::DOTSubgraph).new(params)
454
452
  edge_klass = directed? ? DOT::DOTDirectedEdge : DOT::DOTEdge
455
453
  vertices.each do |v|
@@ -365,7 +365,7 @@ class Puppet::HTTP::Client
365
365
  response = nil
366
366
  done = false
367
367
 
368
- while !done do
368
+ until done
369
369
  connect(request.uri, options: options) do |http|
370
370
  apply_auth(request, basic_auth) if redirects.zero?
371
371
 
@@ -41,7 +41,7 @@ module Puppet::HTTP
41
41
  # @param [Symbol] service_name the key of the service we are querying
42
42
  # @yields [String, Integer] server and port of selected record
43
43
  def each_srv_record(domain, service_name = :puppet, &block)
44
- if (domain.nil? or domain.empty?)
44
+ if domain.nil? or domain.empty?
45
45
  Puppet.debug "Domain not known; skipping SRV lookup"
46
46
  return
47
47
  end
@@ -118,7 +118,7 @@ module Puppet::HTTP
118
118
  # @param [String] service_name the service whose TTL we want
119
119
  # @return [Integer] the TTL for this service, in seconds
120
120
  def ttl(service_name)
121
- return @record_cache[service_name].ttl
121
+ @record_cache[service_name].ttl
122
122
  end
123
123
 
124
124
  # Checks if the cached entry for the given service has expired.
@@ -128,9 +128,9 @@ module Puppet::HTTP
128
128
  def expired?(service_name)
129
129
  entry = @record_cache[service_name]
130
130
  if entry
131
- return Time.now > (entry.resolution_time + entry.ttl)
131
+ Time.now > (entry.resolution_time + entry.ttl)
132
132
  else
133
- return true
133
+ true
134
134
  end
135
135
  end
136
136
 
@@ -39,7 +39,7 @@ class Puppet::HTTP::ExternalClient < Puppet::HTTP::Client
39
39
  # (see Puppet::HTTP::Client#post)
40
40
  # @api private
41
41
  def post(url, body, headers: {}, params: {}, options: {}, &block)
42
- raise ArgumentError.new("'post' requires a string 'body' argument") unless body.is_a?(String)
42
+ raise ArgumentError, "'post' requires a string 'body' argument" unless body.is_a?(String)
43
43
 
44
44
  url = encode_query(url, params)
45
45
 
@@ -17,7 +17,7 @@ class Puppet::HTTP::Factory
17
17
 
18
18
  def initialize
19
19
  # PUP-1411, make sure that openssl is initialized before we try to connect
20
- if !@@openssl_initialized
20
+ unless @@openssl_initialized
21
21
  OpenSSL::SSL::SSLContext.new
22
22
  @@openssl_initialized = true
23
23
  end
@@ -6,7 +6,7 @@ require_relative '../../puppet/ssl/openssl_loader'
6
6
  module Puppet::HTTP::Proxy
7
7
  def self.proxy(uri)
8
8
  if http_proxy_host && !no_proxy?(uri)
9
- Net::HTTP.new(uri.host, uri.port, self.http_proxy_host, self.http_proxy_port, self.http_proxy_user, self.http_proxy_password)
9
+ Net::HTTP.new(uri.host, uri.port, http_proxy_host, http_proxy_port, http_proxy_user, http_proxy_password)
10
10
  else
11
11
  http = Net::HTTP.new(uri.host, uri.port, nil, nil, nil, nil)
12
12
  # Net::HTTP defaults the proxy port even though we said not to
@@ -24,7 +24,7 @@ module Puppet::HTTP::Proxy
24
24
  rescue URI::InvalidURIError
25
25
  return nil
26
26
  end
27
- return nil
27
+ nil
28
28
  end
29
29
 
30
30
  # The documentation around the format of the no_proxy variable seems
@@ -56,11 +56,11 @@ module Puppet::HTTP::Proxy
56
56
  # If this no_proxy entry specifies a port, we want to match it against
57
57
  # the destination port. Otherwise just match hosts.
58
58
  if port
59
- no_proxy_regex = %r(#{host}:#{port}$)
59
+ no_proxy_regex = /#{host}:#{port}$/
60
60
  dest_string = "#{dest.host}:#{dest.port}"
61
61
  else
62
- no_proxy_regex = %r(#{host}$)
63
- dest_string = "#{dest.host}"
62
+ no_proxy_regex = /#{host}$/
63
+ dest_string = dest.host.to_s
64
64
  end
65
65
 
66
66
  if no_proxy_regex.match(dest_string)
@@ -68,11 +68,11 @@ module Puppet::HTTP::Proxy
68
68
  end
69
69
  end
70
70
 
71
- return false
71
+ false
72
72
  end
73
73
 
74
74
  def self.http_proxy_host
75
- env = self.http_proxy_env
75
+ env = http_proxy_env
76
76
 
77
77
  if env and env.host
78
78
  return env.host
@@ -82,21 +82,21 @@ module Puppet::HTTP::Proxy
82
82
  return nil
83
83
  end
84
84
 
85
- return Puppet.settings[:http_proxy_host]
85
+ Puppet.settings[:http_proxy_host]
86
86
  end
87
87
 
88
88
  def self.http_proxy_port
89
- env = self.http_proxy_env
89
+ env = http_proxy_env
90
90
 
91
91
  if env and env.port
92
92
  return env.port
93
93
  end
94
94
 
95
- return Puppet.settings[:http_proxy_port]
95
+ Puppet.settings[:http_proxy_port]
96
96
  end
97
97
 
98
98
  def self.http_proxy_user
99
- env = self.http_proxy_env
99
+ env = http_proxy_env
100
100
 
101
101
  if env and env.user
102
102
  return env.user
@@ -106,11 +106,11 @@ module Puppet::HTTP::Proxy
106
106
  return nil
107
107
  end
108
108
 
109
- return Puppet.settings[:http_proxy_user]
109
+ Puppet.settings[:http_proxy_user]
110
110
  end
111
111
 
112
112
  def self.http_proxy_password
113
- env = self.http_proxy_env
113
+ env = http_proxy_env
114
114
 
115
115
  if env and env.password
116
116
  return env.password
@@ -120,7 +120,7 @@ module Puppet::HTTP::Proxy
120
120
  return nil
121
121
  end
122
122
 
123
- return Puppet.settings[:http_proxy_password]
123
+ Puppet.settings[:http_proxy_password]
124
124
  end
125
125
 
126
126
  def self.no_proxy
@@ -134,6 +134,6 @@ module Puppet::HTTP::Proxy
134
134
  return nil
135
135
  end
136
136
 
137
- return Puppet.settings[:no_proxy]
137
+ Puppet.settings[:no_proxy]
138
138
  end
139
139
  end
@@ -43,7 +43,7 @@ class Puppet::HTTP::Redirector
43
43
  #
44
44
  # @api private
45
45
  def redirect_to(request, response, redirects)
46
- raise Puppet::HTTP::TooManyRedirects.new(request.uri) if redirects >= @redirect_limit
46
+ raise Puppet::HTTP::TooManyRedirects, request.uri if redirects >= @redirect_limit
47
47
 
48
48
  location = parse_location(response)
49
49
  url = request.uri.merge(location)
@@ -56,6 +56,10 @@ class Puppet::HTTP::Redirector
56
56
  next if header.casecmp('Authorization').zero? && request.uri.host.casecmp(location.host) != 0
57
57
  next if header.casecmp('Cookie').zero? && request.uri.host.casecmp(location.host) != 0
58
58
  end
59
+ # Allow Net::HTTP to set its own Accept-Encoding header to avoid errors with HTTP compression.
60
+ # See https://github.com/puppetlabs/puppet/issues/9143
61
+ next if header.casecmp('Accept-Encoding').zero?
62
+
59
63
  new_request[header] = value
60
64
  end
61
65
 
@@ -74,7 +78,7 @@ class Puppet::HTTP::Redirector
74
78
 
75
79
  def parse_location(response)
76
80
  location = response['location']
77
- raise Puppet::HTTP::ProtocolError.new(_("Location response header is missing")) unless location
81
+ raise Puppet::HTTP::ProtocolError, _("Location response header is missing") unless location
78
82
 
79
83
  URI.parse(location)
80
84
  rescue URI::InvalidURIError => e
@@ -42,9 +42,9 @@ class Puppet::HTTP::Resolver
42
42
  # @api public
43
43
  def check_connection?(session, service, ssl_context: nil)
44
44
  service.connect(ssl_context: ssl_context)
45
- return true
45
+ true
46
46
  rescue Puppet::HTTP::ConnectionError => e
47
47
  Puppet.log_exception(e, "Connection to #{service.url} failed, trying next route: #{e.message}")
48
- return false
48
+ false
49
49
  end
50
50
  end
@@ -48,7 +48,7 @@ class Puppet::HTTP::RetryAfterHandler
48
48
  #
49
49
  # @api private
50
50
  def retry_after_interval(request, response, retries)
51
- raise Puppet::HTTP::TooManyRetryAfters.new(request.uri) if retries >= @retry_limit
51
+ raise Puppet::HTTP::TooManyRetryAfters, request.uri if retries >= @retry_limit
52
52
 
53
53
  retry_after = response['Retry-After']
54
54
  return nil unless retry_after
@@ -72,7 +72,7 @@ class Puppet::HTTP::RetryAfterHandler
72
72
  seconds = (tm.to_time - DateTime.now.to_time).to_i
73
73
  [seconds, 0].max
74
74
  rescue ArgumentError
75
- raise Puppet::HTTP::ProtocolError.new(_("Failed to parse Retry-After header '%{retry_after}' as an integer or RFC 2822 date") % { retry_after: retry_after })
75
+ raise Puppet::HTTP::ProtocolError, _("Failed to parse Retry-After header '%{retry_after}' as an integer or RFC 2822 date") % { retry_after: retry_after }
76
76
  end
77
77
  end
78
78
  end
@@ -124,7 +124,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
124
124
  options: { ssl_context: ssl_context }
125
125
  )
126
126
 
127
- raise ArgumentError.new(_('SSL context must contain a client certificate.')) unless ssl_context.client_cert
127
+ raise ArgumentError, _('SSL context must contain a client certificate.') unless ssl_context.client_cert
128
128
 
129
129
  process_response(response)
130
130
 
@@ -118,7 +118,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
118
118
  body,
119
119
  headers: headers,
120
120
  # for legacy reasons we always send environment as a query parameter too
121
- params: { environment: environment },
121
+ params: { environment: environment }
122
122
  )
123
123
 
124
124
  if (compiler = response['X-Puppet-Compiler-Name'])
@@ -163,9 +163,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
163
163
  #
164
164
  def post_catalog4(certname, persistence:, environment:, facts: nil, trusted_facts: nil, transaction_uuid: nil, job_id: nil, options: nil)
165
165
  unless persistence.is_a?(Hash) && (missing = [:facts, :catalog] - persistence.keys.map(&:to_sym)).empty?
166
- raise ArgumentError.new("The 'persistence' hash is missing the keys: #{missing.join(', ')}")
166
+ raise ArgumentError, "The 'persistence' hash is missing the keys: #{missing.join(', ')}"
167
167
  end
168
- raise ArgumentError.new("Facts must be a Hash not a #{facts.class}") unless facts.nil? || facts.is_a?(Hash)
168
+ raise ArgumentError, "Facts must be a Hash not a #{facts.class}" unless facts.nil? || facts.is_a?(Hash)
169
169
 
170
170
  body = {
171
171
  certname: certname,
@@ -248,7 +248,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
248
248
  with_base_url("/facts/#{name}"),
249
249
  serialize(formatter, facts),
250
250
  headers: headers,
251
- params: { environment: environment },
251
+ params: { environment: environment }
252
252
  )
253
253
 
254
254
  process_response(response)
@@ -11,7 +11,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
11
11
  API = '/puppet/v3'
12
12
 
13
13
  # @return [RegEx] RegEx used to determine if a path contains a leading slash
14
- PATH_REGEX = /^\//
14
+ PATH_REGEX = %r{^/}
15
15
 
16
16
  # Use `Puppet::HTTP::Session.route_to(:fileserver)` to create or get an instance of this class.
17
17
  #
@@ -47,7 +47,7 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
47
47
  with_base_url("/report/#{name}"),
48
48
  serialize(formatter, report),
49
49
  headers: headers,
50
- params: { environment: environment },
50
+ params: { environment: environment }
51
51
  )
52
52
 
53
53
  # override parent's process_response handling
@@ -56,7 +56,7 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
56
56
  if response.success?
57
57
  response
58
58
  else
59
- raise Puppet::HTTP::ResponseError.new(response)
59
+ raise Puppet::HTTP::ResponseError, response
60
60
  end
61
61
  end
62
62
  end
@@ -129,30 +129,26 @@ class Puppet::HTTP::Service
129
129
 
130
130
  def formatter_for_response(response)
131
131
  header = response['Content-Type']
132
- raise Puppet::HTTP::ProtocolError.new(_("No content type in http response; cannot parse")) unless header
132
+ raise Puppet::HTTP::ProtocolError, _("No content type in http response; cannot parse") unless header
133
133
 
134
134
  header.gsub!(/\s*;.*$/, '') # strip any charset
135
135
 
136
136
  formatter = Puppet::Network::FormatHandler.mime(header)
137
- raise Puppet::HTTP::ProtocolError.new("Content-Type is unsupported") if EXCLUDED_FORMATS.include?(formatter.name)
137
+ raise Puppet::HTTP::ProtocolError, "Content-Type is unsupported" if EXCLUDED_FORMATS.include?(formatter.name)
138
138
 
139
139
  formatter
140
140
  end
141
141
 
142
142
  def serialize(formatter, object)
143
- begin
144
- formatter.render(object)
145
- rescue => err
146
- raise Puppet::HTTP::SerializationError.new("Failed to serialize #{object.class} to #{formatter.name}: #{err.message}", err)
147
- end
143
+ formatter.render(object)
144
+ rescue => err
145
+ raise Puppet::HTTP::SerializationError.new("Failed to serialize #{object.class} to #{formatter.name}: #{err.message}", err)
148
146
  end
149
147
 
150
148
  def serialize_multiple(formatter, object)
151
- begin
152
- formatter.render_multiple(object)
153
- rescue => err
154
- raise Puppet::HTTP::SerializationError.new("Failed to serialize multiple #{object.class} to #{formatter.name}: #{err.message}", err)
155
- end
149
+ formatter.render_multiple(object)
150
+ rescue => err
151
+ raise Puppet::HTTP::SerializationError.new("Failed to serialize multiple #{object.class} to #{formatter.name}: #{err.message}", err)
156
152
  end
157
153
 
158
154
  def deserialize(response, model)
@@ -176,6 +172,6 @@ class Puppet::HTTP::Service
176
172
  def process_response(response)
177
173
  @session.process_response(response)
178
174
 
179
- raise Puppet::HTTP::ResponseError.new(response) unless response.success?
175
+ raise Puppet::HTTP::ResponseError, response unless response.success?
180
176
  end
181
177
  end
@@ -52,7 +52,7 @@ class Puppet::HTTP::Session
52
52
  raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
53
53
 
54
54
  # short circuit if explicit URL host & port given
55
- if url && url.host != nil && !url.host.empty?
55
+ if url && !url.host.nil? && !url.host.empty?
56
56
  service = Puppet::HTTP::Service.create_service(@client, self, name, url.host, url.port)
57
57
  service.connect(ssl_context: ssl_context)
58
58
  return service
@@ -10,7 +10,7 @@ class Puppet::HTTP::Site
10
10
  attr_reader :scheme, :host, :port
11
11
 
12
12
  def self.from_uri(uri)
13
- self.new(uri.scheme, uri.host, uri.port)
13
+ new(uri.scheme, uri.host, uri.port)
14
14
  end
15
15
 
16
16
  def initialize(scheme, host, port)