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
@@ -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
 
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../puppet/provider/package"
4
+
5
+ Puppet::Type.type(:package).provide :xbps, :parent => Puppet::Provider::Package do
6
+ desc "Support for the Package Manager Utility (xbps) used in VoidLinux.
7
+
8
+ This provider supports the `install_options` attribute, which allows command-line flags to be passed to xbps-install.
9
+ These options should be specified as an array where each element is either a string or a hash."
10
+
11
+ commands :xbps_install => "/usr/bin/xbps-install"
12
+ commands :xbps_remove => "/usr/bin/xbps-remove"
13
+ commands :xbps_query => "/usr/bin/xbps-query"
14
+ commands :xbps_pkgdb => "/usr/bin/xbps-pkgdb"
15
+
16
+ confine 'os.name' => :void
17
+ defaultfor 'os.name' => :void
18
+ has_feature :install_options, :uninstall_options, :upgradeable, :holdable, :virtual_packages
19
+
20
+ def self.defaultto_allow_virtual
21
+ false
22
+ end
23
+
24
+ # Fetch the list of packages that are currently installed on the system.
25
+ def self.instances
26
+ packages = []
27
+ execpipe([command(:xbps_query), "-l"]) do |pipe|
28
+ # xbps-query -l output is 'ii package-name-version desc'
29
+ regex = /^\S+\s(\S+)-(\S+)\s+\S+/
30
+ pipe.each_line do |line|
31
+ match = regex.match(line.chomp)
32
+ if match
33
+ packages << new({ name: match.captures[0], ensure: match.captures[1], provider: name })
34
+ else
35
+ warning(_("Failed to match line '%{line}'") % { line: line })
36
+ end
37
+ end
38
+ end
39
+
40
+ packages
41
+ rescue Puppet::ExecutionFailure
42
+ fail(_("Error getting installed packages"))
43
+ end
44
+
45
+ # Install a package quietly (without confirmation or progress bar) using 'xbps-install'.
46
+ def install
47
+ resource_name = @resource[:name]
48
+ resource_source = @resource[:source]
49
+
50
+ cmd = %w[-S -y]
51
+ cmd += install_options if @resource[:install_options]
52
+ cmd << "--repository=#{resource_source}" if resource_source
53
+ cmd << resource_name
54
+
55
+ unhold if properties[:mark] == :hold
56
+ begin
57
+ xbps_install(*cmd)
58
+ ensure
59
+ hold if @resource[:mark] == :hold
60
+ end
61
+ end
62
+
63
+ # Because Voidlinux is a rolling release based distro, installing a package
64
+ # should always result in the newest release.
65
+ def update
66
+ install
67
+ end
68
+
69
+ # Removes a package from the system.
70
+ def uninstall
71
+ resource_name = @resource[:name]
72
+
73
+ cmd = %w[-R -y]
74
+ cmd += uninstall_options if @resource[:uninstall_options]
75
+ cmd << resource_name
76
+
77
+ xbps_remove(*cmd)
78
+ end
79
+
80
+ # The latest version of a given package
81
+ def latest
82
+ query&.[] :ensure
83
+ end
84
+
85
+ # Queries information for a package
86
+ def query
87
+ resource_name = @resource[:name]
88
+ installed_packages = self.class.instances
89
+
90
+ installed_packages.each do |pkg|
91
+ return pkg.properties if @resource[:name].casecmp(pkg.name).zero?
92
+ end
93
+
94
+ return nil unless @resource.allow_virtual?
95
+
96
+ # Search for virtual package
97
+ output = xbps_query("-Rs", resource_name).chomp
98
+
99
+ # xbps-query -Rs output is '[*] package-name-version description'
100
+ regex = /^\[\*\]+\s(\S+)-(\S+)\s+\S+/
101
+ match = regex.match(output)
102
+
103
+ return nil unless match
104
+
105
+ { name: match.captures[0], ensure: match.captures[1], provider: self.class.name }
106
+ end
107
+
108
+ # Puts a package on hold, so it doesn't update by itself on system update
109
+ def hold
110
+ xbps_pkgdb("-m", "hold", @resource[:name])
111
+ end
112
+
113
+ # Puts a package out of hold
114
+ def unhold
115
+ xbps_pkgdb("-m", "unhold", @resource[:name])
116
+ end
117
+
118
+ private
119
+
120
+ def install_options
121
+ join_options(@resource[:install_options])
122
+ end
123
+
124
+ def uninstall_options
125
+ join_options(@resource[:uninstall_options])
126
+ end
127
+ end
@@ -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
@@ -34,7 +34,7 @@ class Puppet::Provider::Package::Targetable < Puppet::Provider::Package
34
34
  catalog_packages.each do |catalog_package|
35
35
  if catalog_package[:name] == instance.name && catalog_package.original_parameters[:command] == command
36
36
  catalog_package.provider = instance
37
- self.debug "Prefetched instance: %{name} via command: %{cmd}" % { name: instance.name, cmd: (command || :default) }
37
+ debug "Prefetched instance: %{name} via command: %{cmd}" % { name: instance.name, cmd: command || :default }
38
38
  end
39
39
  end
40
40
  end
@@ -116,9 +116,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
116
116
  # Return the header placed at the top of each generated file, warning
117
117
  # users that modifying this file manually is probably a bad idea.
118
118
  def self.header
119
- %{# HEADER: This file was autogenerated at #{Time.now}
119
+ %(# HEADER: This file was autogenerated at #{Time.now}
120
120
  # HEADER: by puppet. While it can still be managed manually, it
121
- # HEADER: is definitely not recommended.\n}
121
+ # HEADER: is definitely not recommended.\n)
122
122
  end
123
123
 
124
124
  # An optional regular expression matched by third party headers.
@@ -282,7 +282,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
282
282
  begin
283
283
  target_records = retrieve(target)
284
284
  unless target_records
285
- raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: self.name }
285
+ raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: name }
286
286
  end
287
287
  rescue Puppet::Util::FileType::FileReadError => detail
288
288
  if @raise_prefetch_errors
@@ -292,7 +292,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
292
292
  @failed_prefetch_targets[target] = detail.to_s
293
293
  else
294
294
  puts detail.backtrace if Puppet[:trace]
295
- Puppet.err _("Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty") % { resource: self.resource_type.name, name: self.name, target: target, detail: detail }
295
+ Puppet.err _("Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty") % { resource: resource_type.name, name: name, target: target, detail: detail }
296
296
  end
297
297
 
298
298
  target_records = []
@@ -306,7 +306,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
306
306
 
307
307
  target_records = prefetch_hook(target_records) if respond_to?(:prefetch_hook)
308
308
 
309
- raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: self.name } unless target_records
309
+ raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: name } unless target_records
310
310
 
311
311
  target_records
312
312
  end
@@ -325,13 +325,13 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
325
325
  text = target_object(path).read
326
326
  if text.nil? or text == ""
327
327
  # there is no file
328
- return []
328
+ []
329
329
  else
330
330
  # Set the target, for logging.
331
331
  old = @target
332
332
  begin
333
333
  @target = path
334
- return self.parse(text)
334
+ parse(text)
335
335
  rescue Puppet::Error => detail
336
336
  detail.file = @target if detail.respond_to?(:file=)
337
337
  raise detail
@@ -380,9 +380,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
380
380
  def self.targets(resources = nil)
381
381
  targets = []
382
382
  # First get the default target
383
- raise Puppet::DevError, _("Parsed Providers must define a default target") unless self.default_target
383
+ raise Puppet::DevError, _("Parsed Providers must define a default target") unless default_target
384
384
 
385
- targets << self.default_target
385
+ targets << default_target
386
386
 
387
387
  # Then get each of the file objects
388
388
  targets += @target_objects.keys
@@ -35,7 +35,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
35
35
  regex = Regexp.new(@resource[:pattern])
36
36
  ps = getps
37
37
 
38
- self.debug "Executing '#{ps}'"
38
+ debug "Executing '#{ps}'"
39
39
  table = Puppet::Util::Execution.execute(ps)
40
40
 
41
41
  # The output of the PS command can be a mashup of several different
@@ -51,11 +51,11 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
51
51
  table = table.scrub unless table.valid_encoding?
52
52
 
53
53
  table.each_line { |line|
54
- if regex.match(line)
55
- self.debug "Process matched: #{line}"
56
- ary = line.sub(/^[[:space:]]+/u, '').split(/[[:space:]]+/u)
57
- return ary[1]
58
- end
54
+ next unless regex.match(line)
55
+
56
+ debug "Process matched: #{line}"
57
+ ary = line.sub(/^[[:space:]]+/u, '').split(/[[:space:]]+/u)
58
+ return ary[1]
59
59
  }
60
60
 
61
61
  nil
@@ -74,17 +74,17 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
74
74
 
75
75
  # Explicitly calling exitstatus to facilitate testing
76
76
  if status.exitstatus == 0
77
- return :running
77
+ :running
78
78
  else
79
- return :stopped
79
+ :stopped
80
80
  end
81
81
  else
82
82
  pid = getpid
83
83
  if pid
84
- self.debug "PID is #{pid}"
85
- return :running
84
+ debug "PID is #{pid}"
85
+ :running
86
86
  else
87
- return :stopped
87
+ :stopped
88
88
  end
89
89
  end
90
90
  end
@@ -102,12 +102,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
102
102
  # The command used to start. Generated if the 'binary' argument
103
103
  # is passed.
104
104
  def startcmd
105
- if @resource[:binary]
106
- return @resource[:binary]
107
- else
108
- raise Puppet::Error,
109
- "Services must specify a start command or a binary"
110
- end
105
+ @resource[:binary] || raise(Puppet::Error, "Services must specify a start command or a binary")
111
106
  end
112
107
 
113
108
  # Stop the service. If a 'stop' parameter is specified, it
@@ -122,15 +117,15 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
122
117
  else
123
118
  pid = getpid
124
119
  unless pid
125
- self.info _("%{name} is not running") % { name: self.name }
120
+ info _("%{name} is not running") % { name: name }
126
121
  return false
127
122
  end
128
123
  begin
129
124
  output = kill pid
130
- rescue Puppet::ExecutionFailure
131
- @resource.fail Puppet::Error, "Could not kill #{self.name}, PID #{pid}: #{output}", $!
125
+ rescue Puppet::ExecutionFailure => e
126
+ @resource.fail Puppet::Error, "Could not kill #{name}, PID #{pid}: #{output}", e
132
127
  end
133
- return true
128
+ true
134
129
  end
135
130
  end
136
131
 
@@ -34,9 +34,9 @@ Puppet::Type.type(:service).provide :bsd, :parent => :init do
34
34
  # enable service by creating a service file under rc.conf.d with the
35
35
  # proper contents
36
36
  def enable
37
- Dir.mkdir(rcconf_dir) if not Puppet::FileSystem.exist?(rcconf_dir)
37
+ Dir.mkdir(rcconf_dir) unless Puppet::FileSystem.exist?(rcconf_dir)
38
38
  rcfile = File.join(rcconf_dir, @resource[:name])
39
- File.open(rcfile, File::WRONLY | File::APPEND | File::CREAT, 0644) { |f|
39
+ File.open(rcfile, File::WRONLY | File::APPEND | File::CREAT, 0o644) { |f|
40
40
  f << "%s_enable=\"YES\"\n" % @resource[:name]
41
41
  }
42
42
  end
@@ -44,10 +44,10 @@ Puppet::Type.type(:service).provide :bsd, :parent => :init do
44
44
  # Override stop/start commands to use one<cmd>'s and the avoid race condition
45
45
  # where provider tries to stop/start the service before it is enabled
46
46
  def startcmd
47
- [self.initscript, :onestart]
47
+ [initscript, :onestart]
48
48
  end
49
49
 
50
50
  def stopcmd
51
- [self.initscript, :onestop]
51
+ [initscript, :onestop]
52
52
  end
53
53
  end