puppet 8.5.0-x64-mingw32 → 8.6.0-x64-mingw32

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 (543) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +29 -26
  3. data/ext/windows/service/daemon.rb +49 -55
  4. data/lib/hiera/scope.rb +3 -3
  5. data/lib/hiera_puppet.rb +1 -1
  6. data/lib/puppet/agent/disabler.rb +1 -1
  7. data/lib/puppet/application/agent.rb +2 -2
  8. data/lib/puppet/application/apply.rb +2 -2
  9. data/lib/puppet/application/describe.rb +6 -6
  10. data/lib/puppet/application/device.rb +99 -100
  11. data/lib/puppet/application/doc.rb +1 -1
  12. data/lib/puppet/application/face_base.rb +7 -7
  13. data/lib/puppet/application/filebucket.rb +1 -1
  14. data/lib/puppet/application/lookup.rb +5 -5
  15. data/lib/puppet/application/resource.rb +10 -3
  16. data/lib/puppet/application/ssl.rb +3 -3
  17. data/lib/puppet/application.rb +16 -18
  18. data/lib/puppet/coercion.rb +1 -1
  19. data/lib/puppet/configurer/downloader.rb +9 -4
  20. data/lib/puppet/configurer/fact_handler.rb +12 -13
  21. data/lib/puppet/configurer.rb +16 -18
  22. data/lib/puppet/confine/feature.rb +1 -1
  23. data/lib/puppet/confine/variable.rb +1 -1
  24. data/lib/puppet/confine.rb +2 -2
  25. data/lib/puppet/confine_collection.rb +1 -1
  26. data/lib/puppet/confiner.rb +2 -2
  27. data/lib/puppet/daemon.rb +3 -3
  28. data/lib/puppet/datatypes.rb +5 -6
  29. data/lib/puppet/defaults.rb +14 -8
  30. data/lib/puppet/environments.rb +3 -7
  31. data/lib/puppet/error.rb +3 -3
  32. data/lib/puppet/external/dot.rb +42 -34
  33. data/lib/puppet/face/catalog/select.rb +1 -1
  34. data/lib/puppet/face/epp.rb +7 -9
  35. data/lib/puppet/face/help.rb +12 -12
  36. data/lib/puppet/face/module/changes.rb +1 -3
  37. data/lib/puppet/face/module/list.rb +37 -37
  38. data/lib/puppet/face/node/clean.rb +1 -1
  39. data/lib/puppet/face/parser.rb +6 -8
  40. data/lib/puppet/face/report.rb +5 -7
  41. data/lib/puppet/facter_impl.rb +1 -1
  42. data/lib/puppet/feature/base.rb +9 -11
  43. data/lib/puppet/feature/pe_license.rb +1 -1
  44. data/lib/puppet/feature/ssh.rb +1 -1
  45. data/lib/puppet/feature/telnet.rb +3 -5
  46. data/lib/puppet/feature/zlib.rb +1 -1
  47. data/lib/puppet/ffi/windows/constants.rb +1 -1
  48. data/lib/puppet/ffi/windows/functions.rb +2 -2
  49. data/lib/puppet/ffi/windows/structs.rb +3 -3
  50. data/lib/puppet/file_bucket/dipper.rb +4 -4
  51. data/lib/puppet/file_bucket/file.rb +4 -4
  52. data/lib/puppet/file_serving/base.rb +5 -5
  53. data/lib/puppet/file_serving/configuration/parser.rb +9 -9
  54. data/lib/puppet/file_serving/configuration.rb +3 -3
  55. data/lib/puppet/file_serving/fileset.rb +13 -13
  56. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  57. data/lib/puppet/file_serving/metadata.rb +13 -9
  58. data/lib/puppet/file_serving/mount/file.rb +6 -6
  59. data/lib/puppet/file_serving/mount/locales.rb +2 -4
  60. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
  61. data/lib/puppet/file_serving/mount/plugins.rb +2 -4
  62. data/lib/puppet/file_serving/mount.rb +1 -1
  63. data/lib/puppet/file_system/file_impl.rb +3 -3
  64. data/lib/puppet/file_system/memory_impl.rb +1 -1
  65. data/lib/puppet/file_system/path_pattern.rb +1 -1
  66. data/lib/puppet/file_system/uniquefile.rb +17 -16
  67. data/lib/puppet/file_system/windows.rb +26 -18
  68. data/lib/puppet/forge/cache.rb +2 -2
  69. data/lib/puppet/forge/errors.rb +1 -1
  70. data/lib/puppet/forge/repository.rb +2 -2
  71. data/lib/puppet/forge.rb +13 -19
  72. data/lib/puppet/functions/abs.rb +2 -2
  73. data/lib/puppet/functions/camelcase.rb +1 -1
  74. data/lib/puppet/functions/compare.rb +2 -2
  75. data/lib/puppet/functions/contain.rb +1 -1
  76. data/lib/puppet/functions/defined.rb +2 -2
  77. data/lib/puppet/functions/dig.rb +1 -1
  78. data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
  79. data/lib/puppet/functions/get.rb +1 -1
  80. data/lib/puppet/functions/hocon_data.rb +3 -5
  81. data/lib/puppet/functions/import.rb +1 -1
  82. data/lib/puppet/functions/json_data.rb +4 -6
  83. data/lib/puppet/functions/max.rb +2 -2
  84. data/lib/puppet/functions/min.rb +2 -2
  85. data/lib/puppet/functions/new.rb +1 -1
  86. data/lib/puppet/functions/reduce.rb +6 -10
  87. data/lib/puppet/functions/regsubst.rb +2 -2
  88. data/lib/puppet/functions/require.rb +1 -1
  89. data/lib/puppet/functions/yaml_data.rb +11 -13
  90. data/lib/puppet/functions.rb +32 -37
  91. data/lib/puppet/generate/type.rb +2 -2
  92. data/lib/puppet/gettext/config.rb +9 -9
  93. data/lib/puppet/graph/rb_tree_map.rb +31 -23
  94. data/lib/puppet/graph/relationship_graph.rb +12 -12
  95. data/lib/puppet/graph/simple_graph.rb +8 -10
  96. data/lib/puppet/http/client.rb +1 -1
  97. data/lib/puppet/http/dns.rb +4 -4
  98. data/lib/puppet/http/external_client.rb +1 -1
  99. data/lib/puppet/http/factory.rb +1 -1
  100. data/lib/puppet/http/proxy.rb +15 -15
  101. data/lib/puppet/http/redirector.rb +6 -2
  102. data/lib/puppet/http/resolver.rb +2 -2
  103. data/lib/puppet/http/retry_after_handler.rb +2 -2
  104. data/lib/puppet/http/service/ca.rb +1 -1
  105. data/lib/puppet/http/service/compiler.rb +4 -4
  106. data/lib/puppet/http/service/file_server.rb +1 -1
  107. data/lib/puppet/http/service/report.rb +2 -2
  108. data/lib/puppet/http/service.rb +9 -13
  109. data/lib/puppet/http/session.rb +1 -1
  110. data/lib/puppet/http/site.rb +1 -1
  111. data/lib/puppet/indirector/catalog/compiler.rb +44 -45
  112. data/lib/puppet/indirector/catalog/rest.rb +7 -5
  113. data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
  114. data/lib/puppet/indirector/exec.rb +2 -2
  115. data/lib/puppet/indirector/face.rb +7 -9
  116. data/lib/puppet/indirector/fact_search.rb +1 -1
  117. data/lib/puppet/indirector/facts/facter.rb +6 -6
  118. data/lib/puppet/indirector/facts/json.rb +1 -1
  119. data/lib/puppet/indirector/facts/store_configs.rb +1 -1
  120. data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
  121. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
  122. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  123. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  124. data/lib/puppet/indirector/hiera.rb +1 -1
  125. data/lib/puppet/indirector/indirection.rb +27 -29
  126. data/lib/puppet/indirector/json.rb +4 -4
  127. data/lib/puppet/indirector/memory.rb +2 -2
  128. data/lib/puppet/indirector/msgpack.rb +5 -5
  129. data/lib/puppet/indirector/node/store_configs.rb +1 -1
  130. data/lib/puppet/indirector/none.rb +1 -1
  131. data/lib/puppet/indirector/report/json.rb +1 -1
  132. data/lib/puppet/indirector/report/yaml.rb +1 -1
  133. data/lib/puppet/indirector/request.rb +4 -4
  134. data/lib/puppet/indirector/resource/ral.rb +2 -4
  135. data/lib/puppet/indirector/resource/store_configs.rb +1 -1
  136. data/lib/puppet/indirector/terminus.rb +4 -4
  137. data/lib/puppet/indirector/yaml.rb +3 -3
  138. data/lib/puppet/info_service/class_information_service.rb +5 -8
  139. data/lib/puppet/info_service/task_information_service.rb +6 -7
  140. data/lib/puppet/interface/action.rb +5 -5
  141. data/lib/puppet/interface/action_manager.rb +5 -5
  142. data/lib/puppet/interface/documentation.rb +5 -5
  143. data/lib/puppet/interface/face_collection.rb +7 -7
  144. data/lib/puppet/interface/option.rb +2 -2
  145. data/lib/puppet/interface/option_manager.rb +6 -6
  146. data/lib/puppet/interface.rb +4 -4
  147. data/lib/puppet/metatype/manager.rb +2 -2
  148. data/lib/puppet/module/plan.rb +10 -10
  149. data/lib/puppet/module/task.rb +8 -8
  150. data/lib/puppet/module.rb +39 -41
  151. data/lib/puppet/module_tool/applications/application.rb +10 -8
  152. data/lib/puppet/module_tool/applications/installer.rb +53 -50
  153. data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
  154. data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
  155. data/lib/puppet/module_tool/checksums.rb +2 -2
  156. data/lib/puppet/module_tool/dependency.rb +1 -1
  157. data/lib/puppet/module_tool/errors/base.rb +1 -1
  158. data/lib/puppet/module_tool/install_directory.rb +1 -1
  159. data/lib/puppet/module_tool/local_tarball.rb +3 -5
  160. data/lib/puppet/module_tool/metadata.rb +12 -8
  161. data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
  162. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  163. data/lib/puppet/module_tool.rb +4 -4
  164. data/lib/puppet/network/client_request.rb +5 -3
  165. data/lib/puppet/network/format.rb +2 -2
  166. data/lib/puppet/network/format_support.rb +1 -1
  167. data/lib/puppet/network/formats.rb +1 -1
  168. data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
  169. data/lib/puppet/network/http/api/server/v3.rb +1 -1
  170. data/lib/puppet/network/http/connection.rb +1 -1
  171. data/lib/puppet/network/http/handler.rb +8 -12
  172. data/lib/puppet/network/http/request.rb +1 -1
  173. data/lib/puppet/network/http/route.rb +9 -9
  174. data/lib/puppet/node/environment.rb +21 -23
  175. data/lib/puppet/node/facts.rb +1 -1
  176. data/lib/puppet/node.rb +5 -5
  177. data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
  178. data/lib/puppet/pal/pal_impl.rb +48 -50
  179. data/lib/puppet/pal/plan_signature.rb +1 -1
  180. data/lib/puppet/pal/task_signature.rb +1 -1
  181. data/lib/puppet/parameter/package_options.rb +1 -1
  182. data/lib/puppet/parameter/value.rb +2 -2
  183. data/lib/puppet/parameter/value_collection.rb +7 -7
  184. data/lib/puppet/parameter.rb +8 -9
  185. data/lib/puppet/parser/ast/block_expression.rb +2 -2
  186. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  187. data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
  188. data/lib/puppet/parser/ast/resource.rb +4 -4
  189. data/lib/puppet/parser/ast/resourceparam.rb +4 -4
  190. data/lib/puppet/parser/ast.rb +14 -15
  191. data/lib/puppet/parser/compiler.rb +26 -28
  192. data/lib/puppet/parser/functions/create_resources.rb +3 -3
  193. data/lib/puppet/parser/functions/fail.rb +1 -1
  194. data/lib/puppet/parser/functions/generate.rb +2 -2
  195. data/lib/puppet/parser/functions/tag.rb +1 -1
  196. data/lib/puppet/parser/functions.rb +2 -2
  197. data/lib/puppet/parser/relationship.rb +3 -1
  198. data/lib/puppet/parser/resource/param.rb +2 -2
  199. data/lib/puppet/parser/resource.rb +23 -23
  200. data/lib/puppet/parser/scope.rb +10 -10
  201. data/lib/puppet/parser/script_compiler.rb +1 -1
  202. data/lib/puppet/parser/templatewrapper.rb +1 -1
  203. data/lib/puppet/parser/type_loader.rb +10 -12
  204. data/lib/puppet/parser.rb +1 -1
  205. data/lib/puppet/pops/adaptable.rb +1 -1
  206. data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
  207. data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
  208. data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
  209. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
  210. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
  211. data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
  212. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  213. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  214. data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
  215. data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
  216. data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
  217. data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
  218. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  219. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  220. data/lib/puppet/pops/functions/function.rb +14 -16
  221. data/lib/puppet/pops/issue_reporter.rb +2 -2
  222. data/lib/puppet/pops/label_provider.rb +2 -2
  223. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  224. data/lib/puppet/pops/loader/loader.rb +4 -4
  225. data/lib/puppet/pops/loader/loader_paths.rb +3 -3
  226. data/lib/puppet/pops/loader/module_loaders.rb +11 -11
  227. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
  228. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  229. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
  230. data/lib/puppet/pops/loader/static_loader.rb +3 -3
  231. data/lib/puppet/pops/loaders.rb +3 -3
  232. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  233. data/lib/puppet/pops/lookup/explainer.rb +2 -2
  234. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  235. data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
  236. data/lib/puppet/pops/lookup/interpolation.rb +3 -3
  237. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  238. data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
  239. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
  240. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  241. data/lib/puppet/pops/merge_strategy.rb +6 -6
  242. data/lib/puppet/pops/migration/migration_checker.rb +1 -1
  243. data/lib/puppet/pops/model/ast_transformer.rb +9 -11
  244. data/lib/puppet/pops/model/factory.rb +4 -5
  245. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  246. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  247. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
  248. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  249. data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
  250. data/lib/puppet/pops/parser/lexer2.rb +20 -12
  251. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  252. data/lib/puppet/pops/parser/locator.rb +4 -4
  253. data/lib/puppet/pops/parser/parser_support.rb +12 -14
  254. data/lib/puppet/pops/parser/pn_parser.rb +3 -3
  255. data/lib/puppet/pops/parser/slurp_support.rb +8 -8
  256. data/lib/puppet/pops/patterns.rb +12 -12
  257. data/lib/puppet/pops/pcore.rb +1 -1
  258. data/lib/puppet/pops/pn.rb +2 -2
  259. data/lib/puppet/pops/puppet_stack.rb +1 -1
  260. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  261. data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
  262. data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
  263. data/lib/puppet/pops/time/timestamp.rb +1 -1
  264. data/lib/puppet/pops/types/class_loader.rb +4 -6
  265. data/lib/puppet/pops/types/iterable.rb +1 -1
  266. data/lib/puppet/pops/types/p_binary_type.rb +1 -1
  267. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  268. data/lib/puppet/pops/types/p_object_type.rb +5 -5
  269. data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
  270. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  271. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  272. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  273. data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
  274. data/lib/puppet/pops/types/p_uri_type.rb +4 -4
  275. data/lib/puppet/pops/types/recursion_guard.rb +4 -4
  276. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  277. data/lib/puppet/pops/types/string_converter.rb +12 -8
  278. data/lib/puppet/pops/types/tree_iterators.rb +4 -6
  279. data/lib/puppet/pops/types/type_calculator.rb +10 -10
  280. data/lib/puppet/pops/types/type_factory.rb +7 -3
  281. data/lib/puppet/pops/types/type_formatter.rb +22 -24
  282. data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
  283. data/lib/puppet/pops/types/types.rb +28 -24
  284. data/lib/puppet/pops/utils.rb +38 -42
  285. data/lib/puppet/pops/validation/checker4_0.rb +10 -10
  286. data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
  287. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
  288. data/lib/puppet/pops/validation.rb +4 -4
  289. data/lib/puppet/pops/visitor.rb +2 -2
  290. data/lib/puppet/property/ensure.rb +12 -14
  291. data/lib/puppet/property/keyvalue.rb +4 -4
  292. data/lib/puppet/property/list.rb +4 -4
  293. data/lib/puppet/property/ordered_list.rb +1 -1
  294. data/lib/puppet/property.rb +31 -33
  295. data/lib/puppet/provider/exec.rb +2 -2
  296. data/lib/puppet/provider/file/posix.rb +19 -17
  297. data/lib/puppet/provider/file/windows.rb +13 -19
  298. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  299. data/lib/puppet/provider/group/groupadd.rb +4 -4
  300. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  301. data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
  302. data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
  303. data/lib/puppet/provider/nameservice/pw.rb +1 -2
  304. data/lib/puppet/provider/nameservice.rb +8 -8
  305. data/lib/puppet/provider/package/aix.rb +19 -19
  306. data/lib/puppet/provider/package/appdmg.rb +2 -2
  307. data/lib/puppet/provider/package/apple.rb +1 -1
  308. data/lib/puppet/provider/package/apt.rb +18 -18
  309. data/lib/puppet/provider/package/aptitude.rb +1 -3
  310. data/lib/puppet/provider/package/aptrpm.rb +9 -9
  311. data/lib/puppet/provider/package/blastwave.rb +10 -14
  312. data/lib/puppet/provider/package/dnfmodule.rb +3 -3
  313. data/lib/puppet/provider/package/dpkg.rb +11 -13
  314. data/lib/puppet/provider/package/fink.rb +14 -14
  315. data/lib/puppet/provider/package/freebsd.rb +1 -1
  316. data/lib/puppet/provider/package/gem.rb +12 -14
  317. data/lib/puppet/provider/package/macports.rb +2 -2
  318. data/lib/puppet/provider/package/nim.rb +10 -10
  319. data/lib/puppet/provider/package/openbsd.rb +22 -22
  320. data/lib/puppet/provider/package/opkg.rb +6 -6
  321. data/lib/puppet/provider/package/pacman.rb +35 -29
  322. data/lib/puppet/provider/package/pip.rb +25 -24
  323. data/lib/puppet/provider/package/pkg.rb +15 -15
  324. data/lib/puppet/provider/package/pkgdmg.rb +10 -10
  325. data/lib/puppet/provider/package/pkgin.rb +2 -2
  326. data/lib/puppet/provider/package/pkgng.rb +5 -5
  327. data/lib/puppet/provider/package/pkgutil.rb +17 -21
  328. data/lib/puppet/provider/package/portage.rb +59 -61
  329. data/lib/puppet/provider/package/ports.rb +12 -11
  330. data/lib/puppet/provider/package/portupgrade.rb +35 -35
  331. data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
  332. data/lib/puppet/provider/package/rpm.rb +26 -26
  333. data/lib/puppet/provider/package/rug.rb +7 -9
  334. data/lib/puppet/provider/package/sun.rb +4 -4
  335. data/lib/puppet/provider/package/up2date.rb +5 -7
  336. data/lib/puppet/provider/package/urpmi.rb +6 -6
  337. data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
  338. data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
  339. data/lib/puppet/provider/package/windows/package.rb +2 -2
  340. data/lib/puppet/provider/package/windows.rb +3 -5
  341. data/lib/puppet/provider/package/yum.rb +33 -37
  342. data/lib/puppet/provider/package/zypper.rb +12 -14
  343. data/lib/puppet/provider/package.rb +1 -1
  344. data/lib/puppet/provider/package_targetable.rb +1 -1
  345. data/lib/puppet/provider/parsedfile.rb +9 -9
  346. data/lib/puppet/provider/service/base.rb +16 -21
  347. data/lib/puppet/provider/service/bsd.rb +4 -4
  348. data/lib/puppet/provider/service/daemontools.rb +31 -31
  349. data/lib/puppet/provider/service/debian.rb +6 -6
  350. data/lib/puppet/provider/service/freebsd.rb +36 -36
  351. data/lib/puppet/provider/service/gentoo.rb +6 -6
  352. data/lib/puppet/provider/service/init.rb +19 -19
  353. data/lib/puppet/provider/service/launchd.rb +22 -22
  354. data/lib/puppet/provider/service/openbsd.rb +10 -10
  355. data/lib/puppet/provider/service/openrc.rb +1 -1
  356. data/lib/puppet/provider/service/openwrt.rb +3 -3
  357. data/lib/puppet/provider/service/rcng.rb +3 -3
  358. data/lib/puppet/provider/service/redhat.rb +4 -4
  359. data/lib/puppet/provider/service/runit.rb +6 -6
  360. data/lib/puppet/provider/service/service.rb +5 -7
  361. data/lib/puppet/provider/service/smf.rb +28 -27
  362. data/lib/puppet/provider/service/src.rb +7 -7
  363. data/lib/puppet/provider/service/systemd.rb +31 -37
  364. data/lib/puppet/provider/service/upstart.rb +17 -17
  365. data/lib/puppet/provider/service/windows.rb +7 -7
  366. data/lib/puppet/provider/user/aix.rb +4 -2
  367. data/lib/puppet/provider/user/directoryservice.rb +34 -36
  368. data/lib/puppet/provider/user/hpux.rb +10 -14
  369. data/lib/puppet/provider/user/pw.rb +1 -1
  370. data/lib/puppet/provider/user/user_role_add.rb +16 -18
  371. data/lib/puppet/provider/user/useradd.rb +7 -7
  372. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  373. data/lib/puppet/provider.rb +8 -8
  374. data/lib/puppet/reference/indirection.rb +3 -0
  375. data/lib/puppet/reference/metaparameter.rb +1 -1
  376. data/lib/puppet/reference/providers.rb +3 -3
  377. data/lib/puppet/reference/type.rb +1 -1
  378. data/lib/puppet/relationship.rb +4 -5
  379. data/lib/puppet/reports/http.rb +1 -1
  380. data/lib/puppet/reports/log.rb +2 -2
  381. data/lib/puppet/reports/store.rb +4 -4
  382. data/lib/puppet/reports.rb +2 -2
  383. data/lib/puppet/resource/catalog.rb +16 -16
  384. data/lib/puppet/resource/status.rb +3 -3
  385. data/lib/puppet/resource/type.rb +8 -8
  386. data/lib/puppet/resource/type_collection.rb +1 -1
  387. data/lib/puppet/resource.rb +41 -41
  388. data/lib/puppet/scheduler/scheduler.rb +1 -1
  389. data/lib/puppet/settings/alias_setting.rb +3 -5
  390. data/lib/puppet/settings/base_setting.rb +11 -11
  391. data/lib/puppet/settings/boolean_setting.rb +2 -2
  392. data/lib/puppet/settings/config_file.rb +5 -4
  393. data/lib/puppet/settings/duration_setting.rb +2 -2
  394. data/lib/puppet/settings/environment_conf.rb +3 -3
  395. data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
  396. data/lib/puppet/settings/file_setting.rb +11 -11
  397. data/lib/puppet/settings/ini_file.rb +3 -3
  398. data/lib/puppet/settings/port_setting.rb +1 -1
  399. data/lib/puppet/settings/priority_setting.rb +2 -2
  400. data/lib/puppet/settings/ttl_setting.rb +2 -2
  401. data/lib/puppet/settings/value_translator.rb +8 -8
  402. data/lib/puppet/settings.rb +65 -70
  403. data/lib/puppet/ssl/base.rb +2 -4
  404. data/lib/puppet/ssl/certificate_request.rb +18 -22
  405. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  406. data/lib/puppet/ssl/oids.rb +2 -2
  407. data/lib/puppet/ssl/openssl_loader.rb +4 -4
  408. data/lib/puppet/syntax_checkers/base64.rb +3 -3
  409. data/lib/puppet/syntax_checkers/epp.rb +3 -3
  410. data/lib/puppet/syntax_checkers/json.rb +3 -3
  411. data/lib/puppet/syntax_checkers/pp.rb +3 -3
  412. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  413. data/lib/puppet/transaction/event.rb +2 -2
  414. data/lib/puppet/transaction/event_manager.rb +5 -5
  415. data/lib/puppet/transaction/persistence.rb +12 -14
  416. data/lib/puppet/transaction/report.rb +4 -4
  417. data/lib/puppet/transaction/resource_harness.rb +2 -2
  418. data/lib/puppet/transaction.rb +14 -18
  419. data/lib/puppet/type/component.rb +3 -3
  420. data/lib/puppet/type/exec.rb +43 -45
  421. data/lib/puppet/type/file/checksum_value.rb +1 -1
  422. data/lib/puppet/type/file/content.rb +6 -6
  423. data/lib/puppet/type/file/ctime.rb +2 -2
  424. data/lib/puppet/type/file/data_sync.rb +3 -3
  425. data/lib/puppet/type/file/ensure.rb +16 -15
  426. data/lib/puppet/type/file/mode.rb +9 -9
  427. data/lib/puppet/type/file/mtime.rb +2 -2
  428. data/lib/puppet/type/file/selcontext.rb +14 -14
  429. data/lib/puppet/type/file/source.rb +19 -21
  430. data/lib/puppet/type/file/target.rb +11 -11
  431. data/lib/puppet/type/file.rb +21 -21
  432. data/lib/puppet/type/filebucket.rb +3 -3
  433. data/lib/puppet/type/group.rb +3 -3
  434. data/lib/puppet/type/notify.rb +2 -2
  435. data/lib/puppet/type/package.rb +4 -4
  436. data/lib/puppet/type/resources.rb +6 -6
  437. data/lib/puppet/type/schedule.rb +9 -9
  438. data/lib/puppet/type/service.rb +6 -8
  439. data/lib/puppet/type/tidy.rb +22 -24
  440. data/lib/puppet/type/user.rb +13 -13
  441. data/lib/puppet/type.rb +76 -88
  442. data/lib/puppet/util/at_fork/solaris.rb +33 -37
  443. data/lib/puppet/util/autoload.rb +2 -2
  444. data/lib/puppet/util/backups.rb +9 -9
  445. data/lib/puppet/util/character_encoding.rb +7 -6
  446. data/lib/puppet/util/checksums.rb +2 -2
  447. data/lib/puppet/util/classgen.rb +8 -8
  448. data/lib/puppet/util/colors.rb +1 -1
  449. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
  450. data/lib/puppet/util/command_line/trollop.rb +42 -46
  451. data/lib/puppet/util/command_line.rb +2 -2
  452. data/lib/puppet/util/constant_inflector.rb +2 -2
  453. data/lib/puppet/util/diff.rb +19 -21
  454. data/lib/puppet/util/docs.rb +2 -2
  455. data/lib/puppet/util/errors.rb +9 -9
  456. data/lib/puppet/util/execution.rb +32 -9
  457. data/lib/puppet/util/feature.rb +1 -1
  458. data/lib/puppet/util/fileparsing.rb +12 -16
  459. data/lib/puppet/util/filetype.rb +36 -40
  460. data/lib/puppet/util/inifile.rb +6 -12
  461. data/lib/puppet/util/ldap/connection.rb +1 -1
  462. data/lib/puppet/util/ldap/manager.rb +10 -12
  463. data/lib/puppet/util/lockfile.rb +6 -8
  464. data/lib/puppet/util/log/destination.rb +2 -2
  465. data/lib/puppet/util/log/destinations.rb +4 -4
  466. data/lib/puppet/util/log.rb +12 -9
  467. data/lib/puppet/util/logging.rb +11 -11
  468. data/lib/puppet/util/metric.rb +3 -3
  469. data/lib/puppet/util/monkey_patches.rb +5 -7
  470. data/lib/puppet/util/network_device/config.rb +3 -3
  471. data/lib/puppet/util/package/version/debian.rb +27 -28
  472. data/lib/puppet/util/package/version/pip.rb +5 -5
  473. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  474. data/lib/puppet/util/package/version/rpm.rb +1 -1
  475. data/lib/puppet/util/package.rb +2 -2
  476. data/lib/puppet/util/pidlock.rb +2 -2
  477. data/lib/puppet/util/platform.rb +1 -1
  478. data/lib/puppet/util/plist.rb +8 -10
  479. data/lib/puppet/util/posix.rb +17 -17
  480. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  481. data/lib/puppet/util/provider_features.rb +3 -3
  482. data/lib/puppet/util/rdoc/code_objects.rb +3 -3
  483. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
  484. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
  485. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
  486. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  487. data/lib/puppet/util/rdoc/parser.rb +1 -1
  488. data/lib/puppet/util/reference.rb +13 -9
  489. data/lib/puppet/util/retry_action.rb +1 -1
  490. data/lib/puppet/util/rpm_compare.rb +17 -18
  491. data/lib/puppet/util/rubygems.rb +1 -1
  492. data/lib/puppet/util/selinux.rb +7 -7
  493. data/lib/puppet/util/storage.rb +10 -12
  494. data/lib/puppet/util/suidmanager.rb +18 -19
  495. data/lib/puppet/util/symbolic_file_mode.rb +71 -75
  496. data/lib/puppet/util/tag_set.rb +2 -2
  497. data/lib/puppet/util/tagging.rb +8 -10
  498. data/lib/puppet/util/terminal.rb +4 -4
  499. data/lib/puppet/util/user_attr.rb +7 -7
  500. data/lib/puppet/util/watcher.rb +3 -5
  501. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  502. data/lib/puppet/util/windows/adsi.rb +42 -42
  503. data/lib/puppet/util/windows/daemon.rb +64 -68
  504. data/lib/puppet/util/windows/error.rb +2 -2
  505. data/lib/puppet/util/windows/file.rb +18 -25
  506. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  507. data/lib/puppet/util/windows/principal.rb +8 -8
  508. data/lib/puppet/util/windows/process.rb +16 -28
  509. data/lib/puppet/util/windows/registry.rb +16 -15
  510. data/lib/puppet/util/windows/root_certs.rb +2 -2
  511. data/lib/puppet/util/windows/security.rb +31 -31
  512. data/lib/puppet/util/windows/service.rb +11 -11
  513. data/lib/puppet/util/windows/sid.rb +8 -8
  514. data/lib/puppet/util/windows/user.rb +18 -20
  515. data/lib/puppet/util/yaml.rb +1 -1
  516. data/lib/puppet/util.rb +55 -46
  517. data/lib/puppet/version.rb +2 -2
  518. data/lib/puppet/x509/pem_store.rb +1 -1
  519. data/lib/puppet.rb +3 -3
  520. data/man/man5/puppet.conf.5 +10 -2
  521. data/man/man8/puppet-agent.8 +1 -1
  522. data/man/man8/puppet-apply.8 +1 -1
  523. data/man/man8/puppet-catalog.8 +1 -1
  524. data/man/man8/puppet-config.8 +1 -1
  525. data/man/man8/puppet-describe.8 +1 -1
  526. data/man/man8/puppet-device.8 +1 -1
  527. data/man/man8/puppet-doc.8 +1 -1
  528. data/man/man8/puppet-epp.8 +1 -1
  529. data/man/man8/puppet-facts.8 +1 -1
  530. data/man/man8/puppet-filebucket.8 +1 -1
  531. data/man/man8/puppet-generate.8 +1 -1
  532. data/man/man8/puppet-help.8 +1 -1
  533. data/man/man8/puppet-lookup.8 +1 -1
  534. data/man/man8/puppet-module.8 +1 -1
  535. data/man/man8/puppet-node.8 +1 -1
  536. data/man/man8/puppet-parser.8 +1 -1
  537. data/man/man8/puppet-plugin.8 +1 -1
  538. data/man/man8/puppet-report.8 +1 -1
  539. data/man/man8/puppet-resource.8 +5 -1
  540. data/man/man8/puppet-script.8 +1 -1
  541. data/man/man8/puppet-ssl.8 +1 -1
  542. data/man/man8/puppet.8 +2 -2
  543. metadata +2 -2
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'English'
3
4
  unless Puppet::Util::Platform.jruby_fips?
4
5
  require 'rubygems/commands/list_command'
5
6
  end
@@ -37,7 +38,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
37
38
  end
38
39
 
39
40
  def self.gemlist(options)
40
- command_options = ['gem', 'list']
41
+ command_options = %w[gem list]
41
42
 
42
43
  if options[:local]
43
44
  command_options << '--local'
@@ -74,14 +75,14 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
74
75
  .map { |set| gemsplit(set) }
75
76
 
76
77
  if options[:justme]
77
- return gem_list.shift
78
+ gem_list.shift
78
79
  else
79
- return gem_list
80
+ gem_list
80
81
  end
81
82
  end
82
83
 
83
84
  def install(useversion = true)
84
- command_options = ['gem', 'install']
85
+ command_options = %w[gem install]
85
86
  command_options += install_options if resource[:install_options]
86
87
 
87
88
  command_options << '-v' << resource[:ensure] if (!resource[:ensure].is_a? Symbol) && useversion
@@ -103,10 +104,10 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
103
104
  command_options << uri.path
104
105
  when 'puppet'
105
106
  # we don't support puppet:// URLs (yet)
106
- raise Puppet::Error.new(_('puppet:// URLs are not supported as gem sources'))
107
+ raise Puppet::Error, _('puppet:// URLs are not supported as gem sources')
107
108
  else
108
109
  # interpret it as a gem repository
109
- command_options << '--source' << "#{resource[:source]}" << resource[:name]
110
+ command_options << '--source' << resource[:source].to_s << resource[:name]
110
111
  end
111
112
  else
112
113
  command_options << resource[:name]
@@ -118,7 +119,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
118
119
  end
119
120
 
120
121
  def uninstall
121
- command_options = ['gem', 'uninstall']
122
+ command_options = %w[gem uninstall]
122
123
  command_options << '--executables' << '--all' << resource[:name]
123
124
  command_options += uninstall_options if resource[:uninstall_options]
124
125
 
@@ -158,7 +159,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
158
159
  gem_env['GEM_HOME'] = puppetserver_conf['jruby-puppet'].key?('gem-home') ? puppetserver_conf['jruby-puppet']['gem-home'] : puppetserver_default_gem_home
159
160
  gem_env['GEM_PATH'] = puppetserver_conf['jruby-puppet'].key?('gem-path') ? puppetserver_conf['jruby-puppet']['gem-path'].join(':') : puppetserver_default_gem_path
160
161
  end
161
- gem_env['GEM_SPEC_CACHE'] = "/tmp/#{$$}"
162
+ gem_env['GEM_SPEC_CACHE'] = "/tmp/#{$PROCESS_ID}"
162
163
 
163
164
  # Remove the 'gem' from the command_options
164
165
  command_options.shift
@@ -167,7 +168,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
167
168
  # There is no method exclude default gems from the local gem list,
168
169
  # for example: psych (default: 2.2.2)
169
170
  # but default gems should not be managed by this (or any) provider.
170
- gem_list = gem_out.lines.reject { |gem| gem =~ / \(default\: / }
171
+ gem_list = gem_out.lines.reject { |gem| gem =~ / \(default: / }
171
172
  gem_list.join("\n")
172
173
  end
173
174
  end
@@ -24,8 +24,8 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
24
24
  # Note: self:: is required here to keep these constants in the context of what will
25
25
  # eventually become this Puppet::Type::Package::ProviderRpm class.
26
26
  # The query format by which we identify installed packages
27
- self::NEVRA_FORMAT = %Q{%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\\n}
28
- self::NEVRA_REGEX = %r{^'?(\S+) (\S+) (\S+) (\S+) (\S+)$}
27
+ self::NEVRA_FORMAT = '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\\n'
28
+ self::NEVRA_REGEX = /^'?(\S+) (\S+) (\S+) (\S+) (\S+)$/
29
29
  self::NEVRA_FIELDS = [:name, :epoch, :version, :release, :arch]
30
30
  self::MULTIVERSION_SEPARATOR = "; "
31
31
 
@@ -71,8 +71,8 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
71
71
  # now turn each returned line into a package object
72
72
  nevra_to_multiversion_hash(process).each { |hash| packages << new(hash) }
73
73
  }
74
- rescue Puppet::ExecutionFailure
75
- raise Puppet::Error, _("Failed to list packages"), $!.backtrace
74
+ rescue Puppet::ExecutionFailure => e
75
+ raise Puppet::Error, _("Failed to list packages"), e.backtrace
76
76
  end
77
77
 
78
78
  packages
@@ -85,7 +85,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
85
85
  # NOTE: Prior to a fix for issue 1243, this method potentially returned a cached value
86
86
  # IF YOU CALL THIS METHOD, IT WILL CALL RPM
87
87
  # Use get(:property) to check if cached values are available
88
- cmd = ["-q", @resource[:name], "#{self.class.nosignature}", "#{self.class.nodigest}", "--qf", "#{self.class::NEVRA_FORMAT}"]
88
+ cmd = ["-q", @resource[:name], self.class.nosignature.to_s, self.class.nodigest.to_s, "--qf", self.class::NEVRA_FORMAT.to_s]
89
89
 
90
90
  begin
91
91
  output = rpm(*cmd)
@@ -114,7 +114,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
114
114
  @resource.fail _("RPMs must specify a package source")
115
115
  end
116
116
 
117
- cmd = [command(:rpm), "-q", "--qf", "#{self.class::NEVRA_FORMAT}", "-p", source]
117
+ cmd = [command(:rpm), "-q", "--qf", self.class::NEVRA_FORMAT.to_s, "-p", source]
118
118
  h = self.class.nevra_to_multiversion_hash(execute(cmd))
119
119
  h[:ensure]
120
120
  rescue Puppet::ExecutionFailure => e
@@ -175,7 +175,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
175
175
  end
176
176
 
177
177
  def update
178
- self.install
178
+ install
179
179
  end
180
180
 
181
181
  def install_options
@@ -209,14 +209,14 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
209
209
  match = self::NEVRA_REGEX.match(line)
210
210
  if match
211
211
  self::NEVRA_FIELDS.zip(match.captures) { |f, v| hash[f] = v }
212
- hash[:provider] = self.name
212
+ hash[:provider] = name
213
213
  hash[:ensure] = "#{hash[:version]}-#{hash[:release]}"
214
214
  hash[:ensure].prepend("#{hash[:epoch]}:") if hash[:epoch] != '0'
215
215
  else
216
216
  Puppet.debug("Failed to match rpm line #{line}")
217
217
  end
218
218
 
219
- return hash
219
+ hash
220
220
  end
221
221
 
222
222
  # @param line [String] multiple lines of rpm package query information
@@ -227,22 +227,22 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
227
227
  list = []
228
228
  multiversion_hash = {}
229
229
  multiline.each_line do |line|
230
- hash = self.nevra_to_hash(line)
231
- if !hash.empty?
232
- if multiversion_hash.empty?
233
- multiversion_hash = hash.dup
234
- next
235
- end
236
-
237
- if multiversion_hash[:name] != hash[:name]
238
- list << multiversion_hash
239
- multiversion_hash = hash.dup
240
- next
241
- end
242
-
243
- if !multiversion_hash[:ensure].include?(hash[:ensure])
244
- multiversion_hash[:ensure].concat("#{self::MULTIVERSION_SEPARATOR}#{hash[:ensure]}")
245
- end
230
+ hash = nevra_to_hash(line)
231
+ next if hash.empty?
232
+
233
+ if multiversion_hash.empty?
234
+ multiversion_hash = hash.dup
235
+ next
236
+ end
237
+
238
+ if multiversion_hash[:name] != hash[:name]
239
+ list << multiversion_hash
240
+ multiversion_hash = hash.dup
241
+ next
242
+ end
243
+
244
+ unless multiversion_hash[:ensure].include?(hash[:ensure])
245
+ multiversion_hash[:ensure].concat("#{self::MULTIVERSION_SEPARATOR}#{hash[:ensure]}")
246
246
  end
247
247
  end
248
248
  list << multiversion_hash if multiversion_hash
@@ -250,6 +250,6 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
250
250
  return list[0]
251
251
  end
252
252
 
253
- return list
253
+ list
254
254
  end
255
255
  end
@@ -12,7 +12,7 @@ Puppet::Type.type(:package).provide :rug, :parent => :rpm do
12
12
  # Install a package using 'rug'.
13
13
  def install
14
14
  should = @resource.should(:ensure)
15
- self.debug "Ensuring => #{should}"
15
+ debug "Ensuring => #{should}"
16
16
  wanted = @resource[:name]
17
17
 
18
18
  # XXX: We don't actually deal with epochs here.
@@ -25,10 +25,8 @@ Puppet::Type.type(:package).provide :rug, :parent => :rpm do
25
25
  end
26
26
  rug "--quiet", :install, "-y", wanted
27
27
 
28
- unless self.query
29
- raise Puppet::ExecutionFailure.new(
30
- _("Could not find package %{name}") % { name: self.name }
31
- )
28
+ unless query
29
+ raise Puppet::ExecutionFailure, _("Could not find package %{name}") % { name: name }
32
30
  end
33
31
  end
34
32
 
@@ -37,17 +35,17 @@ Puppet::Type.type(:package).provide :rug, :parent => :rpm do
37
35
  # rug can only get a list of *all* available packages?
38
36
  output = rug "list-updates"
39
37
 
40
- if output =~ /#{Regexp.escape @resource[:name]}\s*\|\s*([^\s\|]+)/
41
- return $1
38
+ if output =~ /#{Regexp.escape @resource[:name]}\s*\|\s*([^\s|]+)/
39
+ Regexp.last_match(1)
42
40
  else
43
41
  # rug didn't find updates, pretend the current
44
42
  # version is the latest
45
- return @property_hash[:ensure]
43
+ @property_hash[:ensure]
46
44
  end
47
45
  end
48
46
 
49
47
  def update
50
48
  # rug install can be used for update, too
51
- self.install
49
+ install
52
50
  end
53
51
  end
@@ -47,7 +47,7 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d
47
47
  pkgs << pkg unless pkg.empty?
48
48
  pkg = {}
49
49
  when /^\s*([^:]+):\s+(.+)$/
50
- pkg[$1] = $2
50
+ pkg[Regexp.last_match(1)] = Regexp.last_match(2)
51
51
  end
52
52
  end
53
53
  pkgs << pkg unless pkg.empty?
@@ -81,7 +81,7 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d
81
81
  # so even though pkginfo passed, we have to check the actual output
82
82
  raise Puppet::Error, _("Unable to get information about package %{name} because of: %{errmsg}") % { name: @resource[:name], errmsg: errmsg }
83
83
  rescue Puppet::ExecutionFailure
84
- return { :ensure => :absent }
84
+ { :ensure => :absent }
85
85
  end
86
86
  end
87
87
 
@@ -115,8 +115,8 @@ Puppet::Type.type(:package).provide :sun, :parent => Puppet::Provider::Package d
115
115
  # Remove the old package, and install the new one. This will probably
116
116
  # often fail.
117
117
  def update
118
- self.uninstall if (@property_hash[:ensure] || info2hash[:ensure]) != :absent
119
- self.install
118
+ uninstall if (@property_hash[:ensure] || info2hash[:ensure]) != :absent
119
+ install
120
120
  end
121
121
 
122
122
  def prepare_cmd(opt)
@@ -14,10 +14,8 @@ Puppet::Type.type(:package).provide :up2date, :parent => :rpm, :source => :rpm d
14
14
  def install
15
15
  up2date "-u", @resource[:name]
16
16
 
17
- unless self.query
18
- raise Puppet::ExecutionFailure.new(
19
- _("Could not find package %{name}") % { name: self.name }
20
- )
17
+ unless query
18
+ raise Puppet::ExecutionFailure, _("Could not find package %{name}") % { name: name }
21
19
  end
22
20
  end
23
21
 
@@ -27,16 +25,16 @@ Puppet::Type.type(:package).provide :up2date, :parent => :rpm, :source => :rpm d
27
25
  output = up2date "--showall"
28
26
 
29
27
  if output =~ /^#{Regexp.escape @resource[:name]}-(\d+.*)\.\w+/
30
- return $1
28
+ Regexp.last_match(1)
31
29
  else
32
30
  # up2date didn't find updates, pretend the current
33
31
  # version is the latest
34
- return @property_hash[:ensure]
32
+ @property_hash[:ensure]
35
33
  end
36
34
  end
37
35
 
38
36
  def update
39
37
  # Install in up2date can be used for update, too
40
- self.install
38
+ install
41
39
  end
42
40
  end
@@ -10,7 +10,7 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
10
10
 
11
11
  def install
12
12
  should = @resource.should(:ensure)
13
- self.debug "Ensuring => #{should}"
13
+ debug "Ensuring => #{should}"
14
14
  wanted = @resource[:name]
15
15
 
16
16
  # XXX: We don't actually deal with epochs here.
@@ -24,8 +24,8 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
24
24
 
25
25
  urpmi "--auto", wanted
26
26
 
27
- unless self.query
28
- raise Puppet::Error, _("Package %{name} was not present after trying to install it") % { name: self.name }
27
+ unless query
28
+ raise Puppet::Error, _("Package %{name} was not present after trying to install it") % { name: name }
29
29
  end
30
30
  end
31
31
 
@@ -34,17 +34,17 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
34
34
  output = urpmq "-S", @resource[:name]
35
35
 
36
36
  if output =~ /^#{Regexp.escape @resource[:name]}\s+:\s+.*\(\s+(\S+)\s+\)/
37
- return $1
37
+ Regexp.last_match(1)
38
38
  else
39
39
  # urpmi didn't find updates, pretend the current
40
40
  # version is the latest
41
- return @resource[:ensure]
41
+ @resource[:ensure]
42
42
  end
43
43
  end
44
44
 
45
45
  def update
46
46
  # Install in urpmi can be used for update, too
47
- self.install
47
+ install
48
48
  end
49
49
 
50
50
  # For normal package removal the urpmi provider will delegate to the RPM
@@ -16,7 +16,7 @@ class Puppet::Provider::Package::Windows
16
16
  'Security Update',
17
17
  'Update Rollup',
18
18
  'Hotfix',
19
- 'WindowsInstaller',
19
+ 'WindowsInstaller'
20
20
  ]
21
21
 
22
22
  def self.register(path)
@@ -44,10 +44,10 @@ class Puppet::Provider::Package::Windows
44
44
  values['UninstallString'].length > 0 &&
45
45
  values['WindowsInstaller'] != 1 && # DWORD
46
46
  name !~ /^KB[0-9]{6}/ &&
47
- values['ParentKeyName'] == nil &&
48
- values['Security Update'] == nil &&
49
- values['Update Rollup'] == nil &&
50
- values['Hotfix'] == nil)
47
+ values['ParentKeyName'].nil? &&
48
+ values['Security Update'].nil? &&
49
+ values['Update Rollup'].nil? &&
50
+ values['Hotfix'].nil?)
51
51
  end
52
52
 
53
53
  def initialize(name, version, uninstall_string)
@@ -69,7 +69,7 @@ class Puppet::Provider::Package::Windows
69
69
  uri = URI(Puppet::Util.uri_encode(file_location))
70
70
  client = Puppet.runtime[:http]
71
71
  client.get(uri, options: { include_system_store: true }) do |response|
72
- raise Puppet::HTTP::ResponseError.new(response) unless response.success?
72
+ raise Puppet::HTTP::ResponseError, response unless response.success?
73
73
 
74
74
  File.open(tempfile.path, 'wb') do |file|
75
75
  response.read_body do |data|
@@ -80,7 +80,7 @@ class Puppet::Provider::Package::Windows
80
80
  rescue => detail
81
81
  raise Puppet::Error.new(_("Error when installing %{package}: %{detail}") % { package: resource[:name], detail: detail.message }, detail)
82
82
  ensure
83
- self.register(tempfile.path)
83
+ register(tempfile.path)
84
84
  tempfile.close()
85
85
  file_location = tempfile.path
86
86
  end
@@ -13,9 +13,9 @@ class Puppet::Provider::Package::Windows
13
13
  # registry values to load under each product entry in
14
14
  # HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
15
15
  # for this provider
16
- REG_VALUE_NAMES = [
17
- 'DisplayVersion',
18
- 'WindowsInstaller'
16
+ REG_VALUE_NAMES = %w[
17
+ DisplayVersion
18
+ WindowsInstaller
19
19
  ]
20
20
 
21
21
  # Get the COM installer object, it's in a separate method for testing
@@ -13,7 +13,7 @@ class Puppet::Provider::Package::Windows
13
13
 
14
14
  attr_reader :name, :version
15
15
 
16
- REG_DISPLAY_VALUE_NAMES = ['DisplayName', 'QuietDisplayName']
16
+ REG_DISPLAY_VALUE_NAMES = %w[DisplayName QuietDisplayName]
17
17
 
18
18
  def self.reg_value_names_to_load
19
19
  REG_DISPLAY_VALUE_NAMES |
@@ -91,7 +91,7 @@ class Puppet::Provider::Package::Windows
91
91
  end
92
92
 
93
93
  def self.quote(value)
94
- value.include?(' ') ? %Q["#{value.gsub(/"/, '\"')}"] : value
94
+ value.include?(' ') ? %Q("#{value.gsub(/"/, '\"')}") : value
95
95
  end
96
96
 
97
97
  def self.get_display_name(values)
@@ -39,11 +39,9 @@ Puppet::Type.type(:package).provide(:windows, :parent => Puppet::Provider::Packa
39
39
 
40
40
  def self.post_resource_eval
41
41
  @paths.each do |path|
42
- begin
43
- Puppet::FileSystem.unlink(path)
44
- rescue => detail
45
- raise Puppet::Error.new(_("Error when unlinking %{path}: %{detail}") % { path: path, detail: detail.message }, detail)
46
- end
42
+ Puppet::FileSystem.unlink(path)
43
+ rescue => detail
44
+ raise Puppet::Error.new(_("Error when unlinking %{path}: %{detail}") % { path: path, detail: detail.message }, detail)
47
45
  end if @paths
48
46
  end
49
47
 
@@ -59,12 +59,10 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
59
59
  end
60
60
 
61
61
  is.split(self.class::MULTIVERSION_SEPARATOR).any? do |version|
62
- begin
63
- is_version = RPM_VERSION.parse(version)
64
- should_version.include?(is_version)
65
- rescue RPM_VERSION::ValidationFailure
66
- Puppet.debug("Cannot parse #{is} as a RPM version")
67
- end
62
+ is_version = RPM_VERSION.parse(version)
63
+ should_version.include?(is_version)
64
+ rescue RPM_VERSION::ValidationFailure
65
+ Puppet.debug("Cannot parse #{is} as a RPM version")
68
66
  end
69
67
  end
70
68
  end
@@ -126,9 +124,9 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
126
124
  when 100
127
125
  updates = parse_updates(output)
128
126
  when 0
129
- self.debug "#{command(:cmd)} check-update exited with 0; no package updates available."
127
+ debug "#{command(:cmd)} check-update exited with 0; no package updates available."
130
128
  else
131
- self.warning _("Could not check for updates, '%{cmd} check-update' exited with %{status}") % { cmd: command(:cmd), status: output.exitstatus }
129
+ warning _("Could not check for updates, '%{cmd} check-update' exited with %{status}") % { cmd: command(:cmd), status: output.exitstatus }
132
130
  end
133
131
  updates
134
132
  end
@@ -213,15 +211,13 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
213
211
  end
214
212
  versions = []
215
213
  available_versions(@resource[:name], disablerepo, enablerepo, disableexcludes).each do |version|
216
- begin
217
- rpm_version = RPM_VERSION.parse(version)
218
- versions << rpm_version if should_range.include?(rpm_version)
219
- rescue RPM_VERSION::ValidationFailure
220
- Puppet.debug("Cannot parse #{version} as a RPM version")
221
- end
214
+ rpm_version = RPM_VERSION.parse(version)
215
+ versions << rpm_version if should_range.include?(rpm_version)
216
+ rescue RPM_VERSION::ValidationFailure
217
+ Puppet.debug("Cannot parse #{version} as a RPM version")
222
218
  end
223
219
 
224
- version = versions.sort.last if versions.any?
220
+ version = versions.max if versions.any?
225
221
 
226
222
  if version
227
223
  version = version.to_s.sub(/^\d+:/, '')
@@ -255,17 +251,17 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
255
251
  end
256
252
 
257
253
  should = @resource.should(:ensure)
258
- self.debug "Ensuring => #{should}"
254
+ debug "Ensuring => #{should}"
259
255
  operation = :install
260
256
 
261
257
  case should
262
258
  when :latest
263
- current_package = self.query
259
+ current_package = query
264
260
  if current_package && !current_package[:ensure].to_s.empty?
265
261
  operation = update_command
266
- self.debug "Ensuring latest, so using #{operation}"
262
+ debug "Ensuring latest, so using #{operation}"
267
263
  else
268
- self.debug "Ensuring latest, but package is absent, so using install"
264
+ debug "Ensuring latest, but package is absent, so using install"
269
265
  operation = :install
270
266
  end
271
267
  should = nil
@@ -274,7 +270,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
274
270
  # version feed it to yum directly
275
271
  if @resource[:source]
276
272
  wanted = @resource[:source]
277
- self.debug "Installing directly from #{wanted}"
273
+ debug "Installing directly from #{wanted}"
278
274
  end
279
275
  should = nil
280
276
  when false, :absent
@@ -286,26 +282,26 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
286
282
  # version, and also supplying the path to a package that supplies that
287
283
  # version.
288
284
  wanted = @resource[:source]
289
- self.debug "Installing directly from #{wanted}"
285
+ debug "Installing directly from #{wanted}"
290
286
  else
291
287
  # No explicit source was specified, so add the package version
292
288
  should = best_version(should)
293
289
  wanted += "-#{should}"
294
290
  if wanted.scan(self.class::ARCH_REGEX)
295
- self.debug "Detected Arch argument in package! - Moving arch to end of version string"
291
+ debug "Detected Arch argument in package! - Moving arch to end of version string"
296
292
  wanted.gsub!(/(.+)(#{self.class::ARCH_REGEX})(.+)/, '\1\3\2')
297
293
  end
298
294
  end
299
- current_package = self.query
295
+ current_package = query
300
296
  if current_package
301
297
  if @resource[:install_only]
302
- self.debug "Updating package #{@resource[:name]} from version #{current_package[:ensure]} to #{should} as install_only packages are never downgraded"
298
+ debug "Updating package #{@resource[:name]} from version #{current_package[:ensure]} to #{should} as install_only packages are never downgraded"
303
299
  operation = update_command
304
300
  elsif rpm_compare_evr(should, current_package[:ensure]) < 0
305
- self.debug "Downgrading package #{@resource[:name]} from version #{current_package[:ensure]} to #{should}"
301
+ debug "Downgrading package #{@resource[:name]} from version #{current_package[:ensure]} to #{should}"
306
302
  operation = :downgrade
307
303
  elsif rpm_compare_evr(should, current_package[:ensure]) > 0
308
- self.debug "Upgrading package #{@resource[:name]} from version #{current_package[:ensure]} to #{should}"
304
+ debug "Upgrading package #{@resource[:name]} from version #{current_package[:ensure]} to #{should}"
309
305
  operation = update_command
310
306
  end
311
307
  end
@@ -313,7 +309,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
313
309
 
314
310
  # Yum on el-4 and el-5 returns exit status 0 when trying to install a package it doesn't recognize;
315
311
  # ensure we capture output to check for errors.
316
- no_debug = if Puppet.runtime[:facter].value('os.release.major').to_i > 5 then ["-d", "0"] else [] end
312
+ no_debug = Puppet.runtime[:facter].value('os.release.major').to_i > 5 ? ["-d", "0"] : []
317
313
  command = [command(:cmd)] + no_debug + ["-e", error_level, "-y", install_options, operation, wanted].compact
318
314
  output = execute(command)
319
315
 
@@ -323,8 +319,8 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
323
319
 
324
320
  # If a version was specified, query again to see if it is a matching version
325
321
  if should
326
- is = self.query
327
- raise Puppet::Error, _("Could not find package %{name}") % { name: self.name } unless is
322
+ is = query
323
+ raise Puppet::Error, _("Could not find package %{name}") % { name: name } unless is
328
324
 
329
325
  version = is[:ensure]
330
326
  # FIXME: Should we raise an exception even if should == :latest
@@ -337,23 +333,23 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
337
333
  # What's the latest package version available?
338
334
  def latest
339
335
  upd = self.class.latest_package_version(@resource[:name], disablerepo, enablerepo, disableexcludes)
340
- unless upd.nil?
341
- # FIXME: there could be more than one update for a package
342
- # because of multiarch
343
- return "#{upd[:epoch]}:#{upd[:version]}-#{upd[:release]}"
344
- else
336
+ if upd.nil?
345
337
  # Yum didn't find updates, pretend the current version is the latest
346
- self.debug "Yum didn't find updates, current version (#{properties[:ensure]}) is the latest"
338
+ debug "Yum didn't find updates, current version (#{properties[:ensure]}) is the latest"
347
339
  version = properties[:ensure]
348
340
  raise Puppet::DevError, _("Tried to get latest on a missing package") if version == :absent || version == :purged
349
341
 
350
- return version
342
+ version
343
+ else
344
+ # FIXME: there could be more than one update for a package
345
+ # because of multiarch
346
+ "#{upd[:epoch]}:#{upd[:version]}-#{upd[:release]}"
351
347
  end
352
348
  end
353
349
 
354
350
  def update
355
351
  # Install in yum can be used for update, too
356
- self.install
352
+ install
357
353
  end
358
354
 
359
355
  def purge
@@ -82,7 +82,7 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
82
82
  end
83
83
  end
84
84
 
85
- return versions.sort.last if versions.any?
85
+ return versions.max if versions.any?
86
86
 
87
87
  Puppet.debug("No available version for package #{@resource[:name]} is included in range #{should_range}")
88
88
  should
@@ -92,7 +92,7 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
92
92
  # Install a package using 'zypper'.
93
93
  def install
94
94
  should = @resource.should(:ensure)
95
- self.debug "Ensuring => #{should}"
95
+ debug "Ensuring => #{should}"
96
96
  wanted = @resource[:name]
97
97
 
98
98
  # XXX: We don't actually deal with epochs here.
@@ -112,8 +112,8 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
112
112
  # Assume that this will work on newer zypper versions
113
113
 
114
114
  # extract version numbers and convert to integers
115
- major, minor, patch = zypper_version.scan(/\d+/).map { |x| x.to_i }
116
- self.debug "Detected zypper version #{major}.#{minor}.#{patch}"
115
+ major, minor, patch = zypper_version.scan(/\d+/).map(&:to_i)
116
+ debug "Detected zypper version #{major}.#{minor}.#{patch}"
117
117
 
118
118
  # zypper version < 1.0 does not support --quiet flag
119
119
  if major < 1
@@ -144,29 +144,27 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm, :source => :rpm do
144
144
 
145
145
  zypper(*options)
146
146
 
147
- unless self.query
148
- raise Puppet::ExecutionFailure.new(
149
- _("Could not find package %{name}") % { name: self.name }
150
- )
147
+ unless query
148
+ raise Puppet::ExecutionFailure, _("Could not find package %{name}") % { name: name }
151
149
  end
152
150
  end
153
151
 
154
152
  # What's the latest package version available?
155
153
  def latest
156
- return self.class.latest_package_version(@resource[:name]) ||
157
- # zypper didn't find updates, pretend the current
158
- # version is the latest
159
- @property_hash[:ensure]
154
+ self.class.latest_package_version(@resource[:name]) ||
155
+ # zypper didn't find updates, pretend the current
156
+ # version is the latest
157
+ @property_hash[:ensure]
160
158
  end
161
159
 
162
160
  def update
163
161
  # zypper install can be used for update, too
164
- self.install
162
+ install
165
163
  end
166
164
 
167
165
  def uninstall
168
166
  # extract version numbers and convert to integers
169
- major, minor, _ = zypper_version.scan(/\d+/).map { |x| x.to_i }
167
+ major, minor, _ = zypper_version.scan(/\d+/).map(&:to_i)
170
168
 
171
169
  if major < 1
172
170
  super
@@ -25,7 +25,7 @@ class Puppet::Provider::Package < Puppet::Provider
25
25
  # Purged is the "most uninstalled" a package can be, so a purged package will be in-sync with
26
26
  # either `ensure => absent` or `ensure => purged`; an absent package will be out of sync with `ensure => purged`.
27
27
  default_status = self.class.feature?(:purgeable) ? :purged : :absent
28
- @property_hash = query || { :ensure => (default_status) }
28
+ @property_hash = query || { :ensure => default_status }
29
29
  @property_hash[:ensure] = default_status if @property_hash.empty?
30
30
  end
31
31
  @property_hash.dup