puppet 8.5.1-universal-darwin → 8.6.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 (542) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +23 -20
  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/relationship_operator.rb +2 -2
  216. data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
  217. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  218. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  219. data/lib/puppet/pops/functions/function.rb +14 -16
  220. data/lib/puppet/pops/issue_reporter.rb +2 -2
  221. data/lib/puppet/pops/label_provider.rb +2 -2
  222. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  223. data/lib/puppet/pops/loader/loader.rb +4 -4
  224. data/lib/puppet/pops/loader/loader_paths.rb +3 -3
  225. data/lib/puppet/pops/loader/module_loaders.rb +11 -11
  226. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
  227. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  228. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
  229. data/lib/puppet/pops/loader/static_loader.rb +3 -3
  230. data/lib/puppet/pops/loaders.rb +3 -3
  231. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  232. data/lib/puppet/pops/lookup/explainer.rb +2 -2
  233. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  234. data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
  235. data/lib/puppet/pops/lookup/interpolation.rb +3 -3
  236. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  237. data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
  238. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
  239. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  240. data/lib/puppet/pops/merge_strategy.rb +6 -6
  241. data/lib/puppet/pops/migration/migration_checker.rb +1 -1
  242. data/lib/puppet/pops/model/ast_transformer.rb +9 -11
  243. data/lib/puppet/pops/model/factory.rb +4 -5
  244. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  245. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  246. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
  247. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  248. data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
  249. data/lib/puppet/pops/parser/lexer2.rb +20 -12
  250. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  251. data/lib/puppet/pops/parser/locator.rb +4 -4
  252. data/lib/puppet/pops/parser/parser_support.rb +12 -14
  253. data/lib/puppet/pops/parser/pn_parser.rb +3 -3
  254. data/lib/puppet/pops/parser/slurp_support.rb +8 -8
  255. data/lib/puppet/pops/patterns.rb +12 -12
  256. data/lib/puppet/pops/pcore.rb +1 -1
  257. data/lib/puppet/pops/pn.rb +2 -2
  258. data/lib/puppet/pops/puppet_stack.rb +1 -1
  259. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  260. data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
  261. data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
  262. data/lib/puppet/pops/time/timestamp.rb +1 -1
  263. data/lib/puppet/pops/types/class_loader.rb +4 -6
  264. data/lib/puppet/pops/types/iterable.rb +1 -1
  265. data/lib/puppet/pops/types/p_binary_type.rb +1 -1
  266. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  267. data/lib/puppet/pops/types/p_object_type.rb +5 -5
  268. data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
  269. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  270. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  271. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  272. data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
  273. data/lib/puppet/pops/types/p_uri_type.rb +4 -4
  274. data/lib/puppet/pops/types/recursion_guard.rb +4 -4
  275. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  276. data/lib/puppet/pops/types/string_converter.rb +12 -8
  277. data/lib/puppet/pops/types/tree_iterators.rb +4 -6
  278. data/lib/puppet/pops/types/type_calculator.rb +10 -10
  279. data/lib/puppet/pops/types/type_factory.rb +7 -3
  280. data/lib/puppet/pops/types/type_formatter.rb +22 -24
  281. data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
  282. data/lib/puppet/pops/types/types.rb +28 -24
  283. data/lib/puppet/pops/utils.rb +38 -42
  284. data/lib/puppet/pops/validation/checker4_0.rb +10 -10
  285. data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
  286. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  287. data/lib/puppet/pops/validation.rb +4 -4
  288. data/lib/puppet/pops/visitor.rb +2 -2
  289. data/lib/puppet/property/ensure.rb +12 -14
  290. data/lib/puppet/property/keyvalue.rb +4 -4
  291. data/lib/puppet/property/list.rb +4 -4
  292. data/lib/puppet/property/ordered_list.rb +1 -1
  293. data/lib/puppet/property.rb +31 -33
  294. data/lib/puppet/provider/exec.rb +2 -2
  295. data/lib/puppet/provider/file/posix.rb +19 -17
  296. data/lib/puppet/provider/file/windows.rb +13 -19
  297. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  298. data/lib/puppet/provider/group/groupadd.rb +4 -4
  299. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  300. data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
  301. data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
  302. data/lib/puppet/provider/nameservice/pw.rb +1 -2
  303. data/lib/puppet/provider/nameservice.rb +8 -8
  304. data/lib/puppet/provider/package/aix.rb +19 -19
  305. data/lib/puppet/provider/package/appdmg.rb +2 -2
  306. data/lib/puppet/provider/package/apple.rb +1 -1
  307. data/lib/puppet/provider/package/apt.rb +18 -18
  308. data/lib/puppet/provider/package/aptitude.rb +1 -3
  309. data/lib/puppet/provider/package/aptrpm.rb +9 -9
  310. data/lib/puppet/provider/package/blastwave.rb +10 -14
  311. data/lib/puppet/provider/package/dnfmodule.rb +3 -3
  312. data/lib/puppet/provider/package/dpkg.rb +11 -13
  313. data/lib/puppet/provider/package/fink.rb +14 -14
  314. data/lib/puppet/provider/package/freebsd.rb +1 -1
  315. data/lib/puppet/provider/package/gem.rb +12 -14
  316. data/lib/puppet/provider/package/macports.rb +2 -2
  317. data/lib/puppet/provider/package/nim.rb +10 -10
  318. data/lib/puppet/provider/package/openbsd.rb +22 -22
  319. data/lib/puppet/provider/package/opkg.rb +6 -6
  320. data/lib/puppet/provider/package/pacman.rb +35 -29
  321. data/lib/puppet/provider/package/pip.rb +25 -24
  322. data/lib/puppet/provider/package/pkg.rb +15 -15
  323. data/lib/puppet/provider/package/pkgdmg.rb +10 -10
  324. data/lib/puppet/provider/package/pkgin.rb +2 -2
  325. data/lib/puppet/provider/package/pkgng.rb +5 -5
  326. data/lib/puppet/provider/package/pkgutil.rb +17 -21
  327. data/lib/puppet/provider/package/portage.rb +59 -61
  328. data/lib/puppet/provider/package/ports.rb +12 -11
  329. data/lib/puppet/provider/package/portupgrade.rb +35 -35
  330. data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
  331. data/lib/puppet/provider/package/rpm.rb +26 -26
  332. data/lib/puppet/provider/package/rug.rb +7 -9
  333. data/lib/puppet/provider/package/sun.rb +4 -4
  334. data/lib/puppet/provider/package/up2date.rb +5 -7
  335. data/lib/puppet/provider/package/urpmi.rb +6 -6
  336. data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
  337. data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
  338. data/lib/puppet/provider/package/windows/package.rb +2 -2
  339. data/lib/puppet/provider/package/windows.rb +3 -5
  340. data/lib/puppet/provider/package/yum.rb +33 -37
  341. data/lib/puppet/provider/package/zypper.rb +12 -14
  342. data/lib/puppet/provider/package.rb +1 -1
  343. data/lib/puppet/provider/package_targetable.rb +1 -1
  344. data/lib/puppet/provider/parsedfile.rb +9 -9
  345. data/lib/puppet/provider/service/base.rb +16 -21
  346. data/lib/puppet/provider/service/bsd.rb +4 -4
  347. data/lib/puppet/provider/service/daemontools.rb +31 -31
  348. data/lib/puppet/provider/service/debian.rb +6 -6
  349. data/lib/puppet/provider/service/freebsd.rb +36 -36
  350. data/lib/puppet/provider/service/gentoo.rb +6 -6
  351. data/lib/puppet/provider/service/init.rb +19 -19
  352. data/lib/puppet/provider/service/launchd.rb +22 -22
  353. data/lib/puppet/provider/service/openbsd.rb +10 -10
  354. data/lib/puppet/provider/service/openrc.rb +1 -1
  355. data/lib/puppet/provider/service/openwrt.rb +3 -3
  356. data/lib/puppet/provider/service/rcng.rb +3 -3
  357. data/lib/puppet/provider/service/redhat.rb +4 -4
  358. data/lib/puppet/provider/service/runit.rb +6 -6
  359. data/lib/puppet/provider/service/service.rb +5 -7
  360. data/lib/puppet/provider/service/smf.rb +28 -27
  361. data/lib/puppet/provider/service/src.rb +7 -7
  362. data/lib/puppet/provider/service/systemd.rb +31 -37
  363. data/lib/puppet/provider/service/upstart.rb +17 -17
  364. data/lib/puppet/provider/service/windows.rb +7 -7
  365. data/lib/puppet/provider/user/aix.rb +4 -2
  366. data/lib/puppet/provider/user/directoryservice.rb +34 -36
  367. data/lib/puppet/provider/user/hpux.rb +10 -14
  368. data/lib/puppet/provider/user/pw.rb +1 -1
  369. data/lib/puppet/provider/user/user_role_add.rb +16 -18
  370. data/lib/puppet/provider/user/useradd.rb +7 -7
  371. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  372. data/lib/puppet/provider.rb +8 -8
  373. data/lib/puppet/reference/indirection.rb +3 -0
  374. data/lib/puppet/reference/metaparameter.rb +1 -1
  375. data/lib/puppet/reference/providers.rb +3 -3
  376. data/lib/puppet/reference/type.rb +1 -1
  377. data/lib/puppet/relationship.rb +4 -5
  378. data/lib/puppet/reports/http.rb +1 -1
  379. data/lib/puppet/reports/log.rb +2 -2
  380. data/lib/puppet/reports/store.rb +4 -4
  381. data/lib/puppet/reports.rb +2 -2
  382. data/lib/puppet/resource/catalog.rb +16 -16
  383. data/lib/puppet/resource/status.rb +3 -3
  384. data/lib/puppet/resource/type.rb +8 -8
  385. data/lib/puppet/resource/type_collection.rb +1 -1
  386. data/lib/puppet/resource.rb +41 -41
  387. data/lib/puppet/scheduler/scheduler.rb +1 -1
  388. data/lib/puppet/settings/alias_setting.rb +3 -5
  389. data/lib/puppet/settings/base_setting.rb +11 -11
  390. data/lib/puppet/settings/boolean_setting.rb +2 -2
  391. data/lib/puppet/settings/config_file.rb +5 -4
  392. data/lib/puppet/settings/duration_setting.rb +2 -2
  393. data/lib/puppet/settings/environment_conf.rb +3 -3
  394. data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
  395. data/lib/puppet/settings/file_setting.rb +11 -11
  396. data/lib/puppet/settings/ini_file.rb +3 -3
  397. data/lib/puppet/settings/port_setting.rb +1 -1
  398. data/lib/puppet/settings/priority_setting.rb +2 -2
  399. data/lib/puppet/settings/ttl_setting.rb +2 -2
  400. data/lib/puppet/settings/value_translator.rb +8 -8
  401. data/lib/puppet/settings.rb +65 -70
  402. data/lib/puppet/ssl/base.rb +2 -4
  403. data/lib/puppet/ssl/certificate_request.rb +18 -22
  404. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  405. data/lib/puppet/ssl/oids.rb +2 -2
  406. data/lib/puppet/ssl/openssl_loader.rb +4 -4
  407. data/lib/puppet/syntax_checkers/base64.rb +3 -3
  408. data/lib/puppet/syntax_checkers/epp.rb +3 -3
  409. data/lib/puppet/syntax_checkers/json.rb +3 -3
  410. data/lib/puppet/syntax_checkers/pp.rb +3 -3
  411. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  412. data/lib/puppet/transaction/event.rb +2 -2
  413. data/lib/puppet/transaction/event_manager.rb +5 -5
  414. data/lib/puppet/transaction/persistence.rb +12 -14
  415. data/lib/puppet/transaction/report.rb +4 -4
  416. data/lib/puppet/transaction/resource_harness.rb +2 -2
  417. data/lib/puppet/transaction.rb +14 -18
  418. data/lib/puppet/type/component.rb +3 -3
  419. data/lib/puppet/type/exec.rb +43 -45
  420. data/lib/puppet/type/file/checksum_value.rb +1 -1
  421. data/lib/puppet/type/file/content.rb +6 -6
  422. data/lib/puppet/type/file/ctime.rb +2 -2
  423. data/lib/puppet/type/file/data_sync.rb +3 -3
  424. data/lib/puppet/type/file/ensure.rb +16 -15
  425. data/lib/puppet/type/file/mode.rb +9 -9
  426. data/lib/puppet/type/file/mtime.rb +2 -2
  427. data/lib/puppet/type/file/selcontext.rb +14 -14
  428. data/lib/puppet/type/file/source.rb +19 -21
  429. data/lib/puppet/type/file/target.rb +11 -11
  430. data/lib/puppet/type/file.rb +21 -21
  431. data/lib/puppet/type/filebucket.rb +3 -3
  432. data/lib/puppet/type/group.rb +3 -3
  433. data/lib/puppet/type/notify.rb +2 -2
  434. data/lib/puppet/type/package.rb +4 -4
  435. data/lib/puppet/type/resources.rb +6 -6
  436. data/lib/puppet/type/schedule.rb +9 -9
  437. data/lib/puppet/type/service.rb +6 -8
  438. data/lib/puppet/type/tidy.rb +22 -24
  439. data/lib/puppet/type/user.rb +13 -13
  440. data/lib/puppet/type.rb +76 -88
  441. data/lib/puppet/util/at_fork/solaris.rb +33 -37
  442. data/lib/puppet/util/autoload.rb +2 -2
  443. data/lib/puppet/util/backups.rb +9 -9
  444. data/lib/puppet/util/character_encoding.rb +7 -6
  445. data/lib/puppet/util/checksums.rb +2 -2
  446. data/lib/puppet/util/classgen.rb +8 -8
  447. data/lib/puppet/util/colors.rb +1 -1
  448. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
  449. data/lib/puppet/util/command_line/trollop.rb +42 -46
  450. data/lib/puppet/util/command_line.rb +2 -2
  451. data/lib/puppet/util/constant_inflector.rb +2 -2
  452. data/lib/puppet/util/diff.rb +19 -21
  453. data/lib/puppet/util/docs.rb +2 -2
  454. data/lib/puppet/util/errors.rb +9 -9
  455. data/lib/puppet/util/execution.rb +32 -9
  456. data/lib/puppet/util/feature.rb +1 -1
  457. data/lib/puppet/util/fileparsing.rb +12 -16
  458. data/lib/puppet/util/filetype.rb +36 -40
  459. data/lib/puppet/util/inifile.rb +6 -12
  460. data/lib/puppet/util/ldap/connection.rb +1 -1
  461. data/lib/puppet/util/ldap/manager.rb +10 -12
  462. data/lib/puppet/util/lockfile.rb +6 -8
  463. data/lib/puppet/util/log/destination.rb +2 -2
  464. data/lib/puppet/util/log/destinations.rb +4 -4
  465. data/lib/puppet/util/log.rb +12 -9
  466. data/lib/puppet/util/logging.rb +11 -11
  467. data/lib/puppet/util/metric.rb +3 -3
  468. data/lib/puppet/util/monkey_patches.rb +5 -7
  469. data/lib/puppet/util/network_device/config.rb +3 -3
  470. data/lib/puppet/util/package/version/debian.rb +27 -28
  471. data/lib/puppet/util/package/version/pip.rb +5 -5
  472. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  473. data/lib/puppet/util/package/version/rpm.rb +1 -1
  474. data/lib/puppet/util/package.rb +2 -2
  475. data/lib/puppet/util/pidlock.rb +2 -2
  476. data/lib/puppet/util/platform.rb +1 -1
  477. data/lib/puppet/util/plist.rb +8 -10
  478. data/lib/puppet/util/posix.rb +17 -17
  479. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  480. data/lib/puppet/util/provider_features.rb +3 -3
  481. data/lib/puppet/util/rdoc/code_objects.rb +3 -3
  482. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
  483. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
  484. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
  485. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  486. data/lib/puppet/util/rdoc/parser.rb +1 -1
  487. data/lib/puppet/util/reference.rb +13 -9
  488. data/lib/puppet/util/retry_action.rb +1 -1
  489. data/lib/puppet/util/rpm_compare.rb +17 -18
  490. data/lib/puppet/util/rubygems.rb +1 -1
  491. data/lib/puppet/util/selinux.rb +7 -7
  492. data/lib/puppet/util/storage.rb +10 -12
  493. data/lib/puppet/util/suidmanager.rb +18 -19
  494. data/lib/puppet/util/symbolic_file_mode.rb +71 -75
  495. data/lib/puppet/util/tag_set.rb +2 -2
  496. data/lib/puppet/util/tagging.rb +8 -10
  497. data/lib/puppet/util/terminal.rb +4 -4
  498. data/lib/puppet/util/user_attr.rb +7 -7
  499. data/lib/puppet/util/watcher.rb +3 -5
  500. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  501. data/lib/puppet/util/windows/adsi.rb +42 -42
  502. data/lib/puppet/util/windows/daemon.rb +64 -68
  503. data/lib/puppet/util/windows/error.rb +2 -2
  504. data/lib/puppet/util/windows/file.rb +18 -25
  505. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  506. data/lib/puppet/util/windows/principal.rb +8 -8
  507. data/lib/puppet/util/windows/process.rb +16 -28
  508. data/lib/puppet/util/windows/registry.rb +16 -15
  509. data/lib/puppet/util/windows/root_certs.rb +2 -2
  510. data/lib/puppet/util/windows/security.rb +31 -31
  511. data/lib/puppet/util/windows/service.rb +11 -11
  512. data/lib/puppet/util/windows/sid.rb +8 -8
  513. data/lib/puppet/util/windows/user.rb +18 -20
  514. data/lib/puppet/util/yaml.rb +1 -1
  515. data/lib/puppet/util.rb +55 -46
  516. data/lib/puppet/version.rb +2 -2
  517. data/lib/puppet/x509/pem_store.rb +1 -1
  518. data/lib/puppet.rb +3 -3
  519. data/man/man5/puppet.conf.5 +10 -2
  520. data/man/man8/puppet-agent.8 +1 -1
  521. data/man/man8/puppet-apply.8 +1 -1
  522. data/man/man8/puppet-catalog.8 +1 -1
  523. data/man/man8/puppet-config.8 +1 -1
  524. data/man/man8/puppet-describe.8 +1 -1
  525. data/man/man8/puppet-device.8 +1 -1
  526. data/man/man8/puppet-doc.8 +1 -1
  527. data/man/man8/puppet-epp.8 +1 -1
  528. data/man/man8/puppet-facts.8 +1 -1
  529. data/man/man8/puppet-filebucket.8 +1 -1
  530. data/man/man8/puppet-generate.8 +1 -1
  531. data/man/man8/puppet-help.8 +1 -1
  532. data/man/man8/puppet-lookup.8 +1 -1
  533. data/man/man8/puppet-module.8 +1 -1
  534. data/man/man8/puppet-node.8 +1 -1
  535. data/man/man8/puppet-parser.8 +1 -1
  536. data/man/man8/puppet-plugin.8 +1 -1
  537. data/man/man8/puppet-report.8 +1 -1
  538. data/man/man8/puppet-resource.8 +5 -1
  539. data/man/man8/puppet-script.8 +1 -1
  540. data/man/man8/puppet-ssl.8 +1 -1
  541. data/man/man8/puppet.8 +2 -2
  542. metadata +2 -2
@@ -45,10 +45,10 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
45
45
 
46
46
  # Note: self:: is required here to keep these constants in the context of what will
47
47
  # eventually become this Puppet::Type::Package::ProviderDpkg class.
48
- self::DPKG_QUERY_FORMAT_STRING = %Q{'${Status} ${Package} ${Version}\\n'}
49
- self::DPKG_QUERY_PROVIDES_FORMAT_STRING = %Q{'${Status} ${Package} ${Version} [${Provides}]\\n'}
50
- self::FIELDS_REGEX = %r{^'?(\S+) +(\S+) +(\S+) (\S+) (\S*)$}
51
- self::FIELDS_REGEX_WITH_PROVIDES = %r{^'?(\S+) +(\S+) +(\S+) (\S+) (\S*) \[.*\]$}
48
+ self::DPKG_QUERY_FORMAT_STRING = "'${Status} ${Package} ${Version}\\n'"
49
+ self::DPKG_QUERY_PROVIDES_FORMAT_STRING = "'${Status} ${Package} ${Version} [${Provides}]\\n'"
50
+ self::FIELDS_REGEX = /^'?(\S+) +(\S+) +(\S+) (\S+) (\S*)$/
51
+ self::FIELDS_REGEX_WITH_PROVIDES = /^'?(\S+) +(\S+) +(\S+) (\S+) (\S*) \[.*\]$/
52
52
  self::FIELDS = [:desired, :error, :status, :name, :ensure]
53
53
 
54
54
  def self.defaultto_allow_virtual
@@ -69,11 +69,11 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
69
69
  hash[field] = value
70
70
  end
71
71
 
72
- hash[:provider] = self.name
72
+ hash[:provider] = name
73
73
 
74
74
  if hash[:status] == 'not-installed'
75
75
  hash[:ensure] = :purged
76
- elsif ['config-files', 'half-installed', 'unpacked', 'half-configured'].include?(hash[:status])
76
+ elsif %w[config-files half-installed unpacked half-configured].include?(hash[:status])
77
77
  hash[:ensure] = :absent
78
78
  end
79
79
  hash[:mark] = hash[:desired] == 'hold' ? :hold : :none
@@ -81,7 +81,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
81
81
  Puppet.debug("Failed to match dpkg-query line #{line.inspect}")
82
82
  end
83
83
 
84
- return hash
84
+ hash
85
85
  end
86
86
 
87
87
  public
@@ -101,16 +101,16 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
101
101
  end
102
102
  args << '-i' << file
103
103
 
104
- self.unhold if self.properties[:mark] == :hold
104
+ unhold if properties[:mark] == :hold
105
105
  begin
106
106
  dpkg(*args)
107
107
  ensure
108
- self.hold if @resource[:mark] == :hold
108
+ hold if @resource[:mark] == :hold
109
109
  end
110
110
  end
111
111
 
112
112
  def update
113
- self.install
113
+ install
114
114
  end
115
115
 
116
116
  # Return the version from the package.
@@ -159,9 +159,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
159
159
  hash ||= { :ensure => :absent, :status => 'missing', :name => @resource[:name], :error => 'ok' }
160
160
 
161
161
  if hash[:error] != "ok"
162
- raise Puppet::Error.new(
163
- "Package #{hash[:name]}, version #{hash[:ensure]} is in error state: #{hash[:error]}"
164
- )
162
+ raise Puppet::Error, "Package #{hash[:name]}, version #{hash[:ensure]} is in error state: #{hash[:error]}"
165
163
  end
166
164
 
167
165
  hash
@@ -24,7 +24,7 @@ Puppet::Type.type(:package).provide :fink, :parent => :dpkg, :source => :dpkg do
24
24
  # Install a package using 'apt-get'. This function needs to support
25
25
  # installing a specific version.
26
26
  def install
27
- self.run_preseed if @resource[:responsefile]
27
+ run_preseed if @resource[:responsefile]
28
28
  should = @resource.should(:ensure)
29
29
 
30
30
  str = @resource[:name]
@@ -35,15 +35,15 @@ Puppet::Type.type(:package).provide :fink, :parent => :dpkg, :source => :dpkg do
35
35
  # Add the package version
36
36
  str += "=#{should}"
37
37
  end
38
- cmd = %w{-b -q -y}
38
+ cmd = %w[-b -q -y]
39
39
 
40
40
  cmd << :install << str
41
41
 
42
- self.unhold if self.properties[:mark] == :hold
42
+ unhold if properties[:mark] == :hold
43
43
  begin
44
44
  finkcmd(cmd)
45
45
  ensure
46
- self.hold if @resource[:mark] == :hold
46
+ hold if @resource[:mark] == :hold
47
47
  end
48
48
  end
49
49
 
@@ -52,10 +52,10 @@ Puppet::Type.type(:package).provide :fink, :parent => :dpkg, :source => :dpkg do
52
52
  output = aptcache :policy, @resource[:name]
53
53
 
54
54
  if output =~ /Candidate:\s+(\S+)\s/
55
- return $1
55
+ Regexp.last_match(1)
56
56
  else
57
- self.err _("Could not find latest version")
58
- return nil
57
+ err _("Could not find latest version")
58
+ nil
59
59
  end
60
60
  end
61
61
 
@@ -65,34 +65,34 @@ Puppet::Type.type(:package).provide :fink, :parent => :dpkg, :source => :dpkg do
65
65
  def run_preseed
66
66
  response = @resource[:responsefile]
67
67
  if response && Puppet::FileSystem.exist?(response)
68
- self.info(_("Preseeding %{response} to debconf-set-selections") % { response: response })
68
+ info(_("Preseeding %{response} to debconf-set-selections") % { response: response })
69
69
 
70
70
  preseed response
71
71
  else
72
- self.info _("No responsefile specified or non existent, not preseeding anything")
72
+ info _("No responsefile specified or non existent, not preseeding anything")
73
73
  end
74
74
  end
75
75
 
76
76
  def update
77
- self.install
77
+ install
78
78
  end
79
79
 
80
80
  def uninstall
81
- self.unhold if self.properties[:mark] == :hold
81
+ unhold if properties[:mark] == :hold
82
82
  begin
83
83
  finkcmd "-y", "-q", :remove, @model[:name]
84
84
  rescue StandardError, LoadError => e
85
- self.hold if self.properties[:mark] == :hold
85
+ hold if properties[:mark] == :hold
86
86
  raise e
87
87
  end
88
88
  end
89
89
 
90
90
  def purge
91
- self.unhold if self.properties[:mark] == :hold
91
+ unhold if properties[:mark] == :hold
92
92
  begin
93
93
  aptget '-y', '-q', 'remove', '--purge', @resource[:name]
94
94
  rescue StandardError, LoadError => e
95
- self.hold if self.properties[:mark] == :hold
95
+ hold if properties[:mark] == :hold
96
96
  raise e
97
97
  end
98
98
  end
@@ -18,7 +18,7 @@ Puppet::Type.type(:package).provide :freebsd, :parent => :openbsd do
18
18
  end
19
19
 
20
20
  def install
21
- if @resource[:source] =~ /\/$/
21
+ if @resource[:source] =~ %r{/$}
22
22
  if @resource[:source] =~ /^(ftp|https?):/
23
23
  Puppet::Util.withenv :PACKAGESITE => @resource[:source] do
24
24
  pkgadd "-r", @resource[:name]
@@ -126,9 +126,9 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
126
126
  end
127
127
 
128
128
  if options[:justme]
129
- return list.shift
129
+ list.shift
130
130
  else
131
- return list
131
+ list
132
132
  end
133
133
  end
134
134
 
@@ -140,8 +140,8 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
140
140
  # so we don't need to check for them
141
141
 
142
142
  if desc =~ /^(\S+)\s+\((.+)\)/
143
- gem_name = $1
144
- versions = $2.sub('default: ', '').split(/,\s*/)
143
+ gem_name = Regexp.last_match(1)
144
+ versions = Regexp.last_match(2).sub('default: ', '').split(/,\s*/)
145
145
  {
146
146
  :name => gem_name,
147
147
  :ensure => versions.map { |v| v.split[0] },
@@ -168,12 +168,10 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
168
168
  end
169
169
 
170
170
  return is.any? do |version|
171
- begin
172
- should_range.include?(GEM_VERSION.parse(version))
173
- rescue GEM_VERSION::ValidationFailure
174
- Puppet.debug("Cannot parse #{version} as a ruby gem version")
175
- false
176
- end
171
+ should_range.include?(GEM_VERSION.parse(version))
172
+ rescue GEM_VERSION::ValidationFailure
173
+ Puppet.debug("Cannot parse #{version} as a ruby gem version")
174
+ false
177
175
  end
178
176
  end
179
177
 
@@ -211,7 +209,7 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
211
209
  end
212
210
 
213
211
  if Puppet::Util::Platform.windows?
214
- command_options << "-v" << %Q["#{should}"] if useversion && !should.is_a?(Symbol)
212
+ command_options << "-v" << %Q("#{should}") if useversion && !should.is_a?(Symbol)
215
213
  elsif useversion && !should.is_a?(Symbol)
216
214
  command_options << "-v" << should
217
215
  end
@@ -238,14 +236,14 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
238
236
  command_options << uri.path
239
237
  when 'puppet'
240
238
  # we don't support puppet:// URLs (yet)
241
- raise Puppet::Error.new(_("puppet:// URLs are not supported as gem sources"))
239
+ raise Puppet::Error, _("puppet:// URLs are not supported as gem sources")
242
240
  else
243
241
  # check whether it's an absolute file path to help Windows out
244
242
  if Puppet::Util.absolute_path?(source)
245
243
  command_options << source
246
244
  else
247
245
  # interpret it as a gem repository
248
- command_options << "--source" << "#{source}" << resource[:name]
246
+ command_options << "--source" << source.to_s << resource[:name]
249
247
  end
250
248
  end
251
249
  else
@@ -284,7 +282,7 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package::
284
282
  end
285
283
 
286
284
  def update
287
- self.install(false)
285
+ install(false)
288
286
  end
289
287
 
290
288
  def install_options
@@ -44,7 +44,7 @@ Puppet::Type.type(:package).provide :macports, :parent => Puppet::Provider::Pack
44
44
  fields.zip(match.captures) { |field, value|
45
45
  hash[field] = value
46
46
  }
47
- hash[:provider] = self.name
47
+ hash[:provider] = name
48
48
  return hash
49
49
  end
50
50
  nil
@@ -76,7 +76,7 @@ Puppet::Type.type(:package).provide :macports, :parent => Puppet::Provider::Pack
76
76
  result = self.class.parse_installed_query_line(execute([command(:port), "-q", :installed, @resource[:name]], :failonfail => false, :combine => false))
77
77
  return {} if result.nil?
78
78
 
79
- return result
79
+ result
80
80
  end
81
81
 
82
82
  def latest
@@ -81,7 +81,7 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
81
81
  # switch back to the metaprogrammed stuff, and just parse all of the output
82
82
  # in Ruby... but we'd be doing an awful lot of unnecessary work.
83
83
  showres_command = "/usr/sbin/nimclient -o showres -a resource=#{source} |/usr/bin/grep -p -E "
84
- if (version_specified)
84
+ if version_specified
85
85
  version = @resource.should(:ensure)
86
86
  showres_command << "'#{Regexp.escape(pkg)}( |-)#{Regexp.escape(version)}'"
87
87
  else
@@ -90,13 +90,13 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
90
90
  end
91
91
  output = Puppet::Util::Execution.execute(showres_command)
92
92
 
93
- if (version_specified)
93
+ if version_specified
94
94
  package_type = determine_package_type(output, pkg, version)
95
95
  else
96
96
  package_type, version = determine_latest_version(output, pkg)
97
97
  end
98
98
 
99
- if (package_type == nil)
99
+ if package_type.nil?
100
100
 
101
101
  errmsg = if version_specified
102
102
  _("Unable to find package '%{package}' with version '%{version}' on lpp_source '%{source}'") %
@@ -112,10 +112,10 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
112
112
  # to add that value to our installation command. However, if there is only
113
113
  # one version of the package available, `version` will be set to `nil`, and
114
114
  # we don't need to add the version string to the command.
115
- if (version)
115
+ if version
116
116
  # Now we know if the package type is RPM or not, and we can adjust our
117
117
  # `pkg` string for passing to the install command accordingly.
118
- if (package_type == :rpm)
118
+ if package_type == :rpm
119
119
  # RPMs expect a hyphen between the package name and the version number
120
120
  version_separator = "-"
121
121
  else
@@ -202,7 +202,7 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
202
202
  # leading or trailing whitespace (including newlines) from the resulting
203
203
  # strings and then returns them as an array.
204
204
  def split_into_paragraphs(showres_output)
205
- showres_output.split(/^\s*$/).map { |p| p.strip! }
205
+ showres_output.split(/^\s*$/).map(&:strip!)
206
206
  end
207
207
 
208
208
  def parse_showres_header_line(line)
@@ -269,19 +269,19 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
269
269
  return nil
270
270
  end
271
271
 
272
- if (packages[package_name].count == 1)
272
+ if packages[package_name].count == 1
273
273
  version = packages[package_name].keys[0]
274
- return packages[package_name][version], nil
274
+ [packages[package_name][version], nil]
275
275
  else
276
276
  versions = packages[package_name].keys
277
277
  latest_version = (versions.sort { |a, b| Puppet::Util::Package.versioncmp(b, a) })[0]
278
- return packages[package_name][latest_version], latest_version
278
+ [packages[package_name][latest_version], latest_version]
279
279
  end
280
280
  end
281
281
 
282
282
  def determine_package_type(showres_output, package_name, version)
283
283
  packages = parse_showres_output(showres_output)
284
- unless (packages.has_key?(package_name) and packages[package_name].has_key?(version))
284
+ unless packages.has_key?(package_name) and packages[package_name].has_key?(version)
285
285
  return nil
286
286
  end
287
287
 
@@ -30,7 +30,7 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
30
30
  begin
31
31
  execpipe(listcmd) do |process|
32
32
  # our regex for matching pkg_info output
33
- regex = /^(.*)-(\d[^-]*)[-]?([\w-]*)(.*)$/
33
+ regex = /^(.*)-(\d[^-]*)-?([\w-]*)(.*)$/
34
34
  fields = [:name, :ensure, :flavor]
35
35
  hash = {}
36
36
 
@@ -42,7 +42,7 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
42
42
  hash[field] = value
43
43
  }
44
44
 
45
- hash[:provider] = self.name
45
+ hash[:provider] = name
46
46
 
47
47
  packages << new(hash)
48
48
  hash = {}
@@ -56,9 +56,9 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
56
56
  }
57
57
  end
58
58
 
59
- return packages
59
+ packages
60
60
  rescue Puppet::ExecutionFailure
61
- return nil
61
+ nil
62
62
  end
63
63
  end
64
64
 
@@ -89,35 +89,35 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
89
89
  return version
90
90
  else
91
91
  # Remove all fuzzy matches first.
92
- output = output.split.select { |p| p =~ /^#{resource[:name]}-(\d[^-]*)[-]?(\w*)/ }.join
92
+ output = output.split.select { |p| p =~ /^#{resource[:name]}-(\d[^-]*)-?(\w*)/ }.join
93
93
  debug "pkg_info -Q for #{resource[:name]}: #{output}"
94
94
  end
95
95
 
96
- if output =~ /^#{resource[:name]}-(\d[^-]*)[-]?(\w*) \(installed\)$/
96
+ if output =~ /^#{resource[:name]}-(\d[^-]*)-?(\w*) \(installed\)$/
97
97
  debug "Package is already the latest available"
98
- return version
98
+ version
99
99
  else
100
- match = /^(.*)-(\d[^-]*)[-]?(\w*)$/.match(output)
100
+ match = /^(.*)-(\d[^-]*)-?(\w*)$/.match(output)
101
101
  debug "Latest available for #{resource[:name]}: #{match[2]}"
102
102
 
103
103
  if version.to_sym == :absent || version.to_sym == :purged
104
104
  return match[2]
105
105
  end
106
106
 
107
- vcmp = version.split('.').map { |s| s.to_i } <=> match[2].split('.').map { |s| s.to_i }
107
+ vcmp = version.split('.').map(&:to_i) <=> match[2].split('.').map(&:to_i)
108
108
  if vcmp > 0
109
109
  # The locally installed package may actually be newer than what a mirror
110
110
  # has. Log it at debug, but ignore it otherwise.
111
111
  debug "Package #{resource[:name]} #{version} newer then available #{match[2]}"
112
- return version
112
+ version
113
113
  else
114
- return match[2]
114
+ match[2]
115
115
  end
116
116
  end
117
117
  end
118
118
 
119
119
  def update
120
- self.install(true)
120
+ install(true)
121
121
  end
122
122
 
123
123
  def parse_pkgconf
@@ -201,19 +201,19 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
201
201
  def get_version
202
202
  execpipe([command(:pkginfo), "-I", @resource[:name]]) do |process|
203
203
  # our regex for matching pkg_info output
204
- regex = /^(.*)-(\d[^-]*)[-]?(\w*)(.*)$/
204
+ regex = /^(.*)-(\d[^-]*)-?(\w*)(.*)$/
205
205
  master_version = 0
206
206
  version = -1
207
207
 
208
208
  process.each_line do |line|
209
209
  match = regex.match(line.split[0])
210
- if match
211
- # now we return the first version, unless ensure is latest
212
- version = match.captures[1]
213
- return version unless @resource[:ensure] == "latest"
210
+ next unless match
214
211
 
215
- master_version = version unless master_version > version
216
- end
212
+ # now we return the first version, unless ensure is latest
213
+ version = match.captures[1]
214
+ return version unless @resource[:ensure] == "latest"
215
+
216
+ master_version = version unless master_version > version
217
217
  end
218
218
 
219
219
  return master_version unless master_version == 0
@@ -222,15 +222,15 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa
222
222
  raise Puppet::Error, _("%{version} is not available for this package") % { version: version }
223
223
  end
224
224
  rescue Puppet::ExecutionFailure
225
- return nil
225
+ nil
226
226
  end
227
227
 
228
228
  def query
229
229
  # Search for the version info
230
230
  if pkginfo(@resource[:name]) =~ /Information for (inst:)?#{@resource[:name]}-(\S+)/
231
- return { :ensure => $2 }
231
+ { :ensure => Regexp.last_match(2) }
232
232
  else
233
- return nil
233
+ nil
234
234
  end
235
235
  end
236
236
 
@@ -13,7 +13,7 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
13
13
  def self.instances
14
14
  packages = []
15
15
  execpipe("#{command(:opkg)} list-installed") do |process|
16
- regex = %r{^(\S+) - (\S+)}
16
+ regex = /^(\S+) - (\S+)/
17
17
  fields = [:name, :ensure]
18
18
  hash = {}
19
19
 
@@ -21,7 +21,7 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
21
21
  match = regex.match(line)
22
22
  if match
23
23
  fields.zip(match.captures) { |field, value| hash[field] = value }
24
- hash[:provider] = self.name
24
+ hash[:provider] = name
25
25
  packages << new(hash)
26
26
  hash = {}
27
27
  else
@@ -31,7 +31,7 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
31
31
  end
32
32
  packages
33
33
  rescue Puppet::ExecutionFailure
34
- return nil
34
+ nil
35
35
  end
36
36
 
37
37
  def latest
@@ -57,19 +57,19 @@ Puppet::Type.type(:package).provide :opkg, :source => :opkg, :parent => Puppet::
57
57
  end
58
58
 
59
59
  def update
60
- self.install
60
+ install
61
61
  end
62
62
 
63
63
  def query
64
64
  # list out our specific package
65
65
  output = opkg('list-installed', @resource[:name])
66
66
  if output =~ /^(\S+) - (\S+)/
67
- return { :ensure => $2 }
67
+ return { :ensure => Regexp.last_match(2) }
68
68
  end
69
69
 
70
70
  nil
71
71
  rescue Puppet::ExecutionFailure
72
- return {
72
+ {
73
73
  :ensure => :purged,
74
74
  :status => 'missing',
75
75
  :name => @resource[:name],
@@ -25,15 +25,14 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
25
25
  has_feature :uninstall_options
26
26
  has_feature :upgradeable
27
27
  has_feature :virtual_packages
28
+ has_feature :purgeable
28
29
 
29
30
  # Checks if a given name is a group
30
31
  def self.group?(name)
31
- begin
32
- !pacman("-Sg", name).empty?
33
- rescue Puppet::ExecutionFailure
34
- # pacman returns an expected non-zero exit code when the name is not a group
35
- false
36
- end
32
+ !pacman("-Sg", name).empty?
33
+ rescue Puppet::ExecutionFailure
34
+ # pacman returns an expected non-zero exit code when the name is not a group
35
+ false
37
36
  end
38
37
 
39
38
  # Install a package using 'pacman', or 'yaourt' if available.
@@ -46,7 +45,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
46
45
  install_from_repo
47
46
  end
48
47
 
49
- unless self.query
48
+ unless query
50
49
  fail(_("Could not find package '%{name}'") % { name: @resource[:name] })
51
50
  end
52
51
  end
@@ -74,24 +73,22 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
74
73
 
75
74
  # returns a hash package => version of installed packages
76
75
  def self.get_installed_packages
77
- begin
78
- packages = {}
79
- execpipe([command(:pacman), "-Q"]) do |pipe|
80
- # pacman -Q output is 'packagename version-rel'
81
- regex = %r{^(\S+)\s(\S+)}
82
- pipe.each_line do |line|
83
- match = regex.match(line)
84
- if match
85
- packages[match.captures[0]] = match.captures[1]
86
- else
87
- warning(_("Failed to match line '%{line}'") % { line: line })
88
- end
76
+ packages = {}
77
+ execpipe([command(:pacman), "-Q"]) do |pipe|
78
+ # pacman -Q output is 'packagename version-rel'
79
+ regex = /^(\S+)\s(\S+)/
80
+ pipe.each_line do |line|
81
+ match = regex.match(line)
82
+ if match
83
+ packages[match.captures[0]] = match.captures[1]
84
+ else
85
+ warning(_("Failed to match line '%{line}'") % { line: line })
89
86
  end
90
87
  end
91
- packages
92
- rescue Puppet::ExecutionFailure
93
- fail(_("Error getting installed packages"))
94
88
  end
89
+ packages
90
+ rescue Puppet::ExecutionFailure
91
+ fail(_("Error getting installed packages"))
95
92
  end
96
93
 
97
94
  # returns a hash of group => version of installed groups
@@ -129,7 +126,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
129
126
  # should always result in the newest release.
130
127
  def update
131
128
  # Install in pacman can be used for update, too
132
- self.install
129
+ install
133
130
  end
134
131
 
135
132
  # We rescue the main check from Pacman with a check on the AUR using yaourt, if installed
@@ -137,7 +134,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
137
134
  resource_name = @resource[:name]
138
135
 
139
136
  # If target is a group, construct the group version
140
- return pacman("-Sp", "--print-format", "%n %v", resource_name).lines.map { |line| line.chomp }.sort.join(', ') if self.class.group?(resource_name)
137
+ return pacman("-Sp", "--print-format", "%n %v", resource_name).lines.map(&:chomp).sort.join(', ') if self.class.group?(resource_name)
141
138
 
142
139
  # Start by querying with pacman first
143
140
  # If that fails, retry using yaourt against the AUR
@@ -145,7 +142,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
145
142
  begin
146
143
  if pacman_check
147
144
  output = pacman "-Sp", "--print-format", "%v", resource_name
148
- return output.chomp
145
+ output.chomp
149
146
  else
150
147
  output = yaourt "-Qma", resource_name
151
148
  output.split("\n").each do |line|
@@ -195,16 +192,27 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
195
192
 
196
193
  # Removes a package from the system.
197
194
  def uninstall
195
+ remove_package(false)
196
+ end
197
+
198
+ def purge
199
+ remove_package(true)
200
+ end
201
+
202
+ private
203
+
204
+ def remove_package(purge_configs = false)
198
205
  resource_name = @resource[:name]
199
206
 
200
207
  is_group = self.class.group?(resource_name)
201
208
 
202
209
  fail(_("Refusing to uninstall package group %{resource_name}, because allow_virtual is false.") % { resource_name: resource_name }) if is_group && !@resource.allow_virtual?
203
210
 
204
- cmd = %w{--noconfirm --noprogressbar}
211
+ cmd = %w[--noconfirm --noprogressbar]
205
212
  cmd += uninstall_options if @resource[:uninstall_options]
206
213
  cmd << "-R"
207
214
  cmd << '-s' if is_group
215
+ cmd << '--nosave' if purge_configs
208
216
  cmd << resource_name
209
217
 
210
218
  if self.class.yaourt?
@@ -214,8 +222,6 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
214
222
  end
215
223
  end
216
224
 
217
- private
218
-
219
225
  def install_options
220
226
  join_options(@resource[:install_options])
221
227
  end
@@ -252,7 +258,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
252
258
  # Refuse to install if not allowing virtual packages and the resource is a group
253
259
  fail(_("Refusing to install package group %{resource_name}, because allow_virtual is false.") % { resource_name: resource_name }) if self.class.group?(resource_name) && !@resource.allow_virtual?
254
260
 
255
- cmd = %w{--noconfirm --needed --noprogressbar}
261
+ cmd = %w[--noconfirm --needed --noprogressbar]
256
262
  cmd += install_options if @resource[:install_options]
257
263
  cmd << "-S" << resource_name
258
264