puppet 8.5.0-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 (543) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +29 -26
  3. data/ext/windows/service/daemon.rb +49 -55
  4. data/lib/hiera/scope.rb +3 -3
  5. data/lib/hiera_puppet.rb +1 -1
  6. data/lib/puppet/agent/disabler.rb +1 -1
  7. data/lib/puppet/application/agent.rb +2 -2
  8. data/lib/puppet/application/apply.rb +2 -2
  9. data/lib/puppet/application/describe.rb +6 -6
  10. data/lib/puppet/application/device.rb +99 -100
  11. data/lib/puppet/application/doc.rb +1 -1
  12. data/lib/puppet/application/face_base.rb +7 -7
  13. data/lib/puppet/application/filebucket.rb +1 -1
  14. data/lib/puppet/application/lookup.rb +5 -5
  15. data/lib/puppet/application/resource.rb +10 -3
  16. data/lib/puppet/application/ssl.rb +3 -3
  17. data/lib/puppet/application.rb +16 -18
  18. data/lib/puppet/coercion.rb +1 -1
  19. data/lib/puppet/configurer/downloader.rb +9 -4
  20. data/lib/puppet/configurer/fact_handler.rb +12 -13
  21. data/lib/puppet/configurer.rb +16 -18
  22. data/lib/puppet/confine/feature.rb +1 -1
  23. data/lib/puppet/confine/variable.rb +1 -1
  24. data/lib/puppet/confine.rb +2 -2
  25. data/lib/puppet/confine_collection.rb +1 -1
  26. data/lib/puppet/confiner.rb +2 -2
  27. data/lib/puppet/daemon.rb +3 -3
  28. data/lib/puppet/datatypes.rb +5 -6
  29. data/lib/puppet/defaults.rb +14 -8
  30. data/lib/puppet/environments.rb +3 -7
  31. data/lib/puppet/error.rb +3 -3
  32. data/lib/puppet/external/dot.rb +42 -34
  33. data/lib/puppet/face/catalog/select.rb +1 -1
  34. data/lib/puppet/face/epp.rb +7 -9
  35. data/lib/puppet/face/help.rb +12 -12
  36. data/lib/puppet/face/module/changes.rb +1 -3
  37. data/lib/puppet/face/module/list.rb +37 -37
  38. data/lib/puppet/face/node/clean.rb +1 -1
  39. data/lib/puppet/face/parser.rb +6 -8
  40. data/lib/puppet/face/report.rb +5 -7
  41. data/lib/puppet/facter_impl.rb +1 -1
  42. data/lib/puppet/feature/base.rb +9 -11
  43. data/lib/puppet/feature/pe_license.rb +1 -1
  44. data/lib/puppet/feature/ssh.rb +1 -1
  45. data/lib/puppet/feature/telnet.rb +3 -5
  46. data/lib/puppet/feature/zlib.rb +1 -1
  47. data/lib/puppet/ffi/windows/constants.rb +1 -1
  48. data/lib/puppet/ffi/windows/functions.rb +2 -2
  49. data/lib/puppet/ffi/windows/structs.rb +3 -3
  50. data/lib/puppet/file_bucket/dipper.rb +4 -4
  51. data/lib/puppet/file_bucket/file.rb +4 -4
  52. data/lib/puppet/file_serving/base.rb +5 -5
  53. data/lib/puppet/file_serving/configuration/parser.rb +9 -9
  54. data/lib/puppet/file_serving/configuration.rb +3 -3
  55. data/lib/puppet/file_serving/fileset.rb +13 -13
  56. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  57. data/lib/puppet/file_serving/metadata.rb +13 -9
  58. data/lib/puppet/file_serving/mount/file.rb +6 -6
  59. data/lib/puppet/file_serving/mount/locales.rb +2 -4
  60. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
  61. data/lib/puppet/file_serving/mount/plugins.rb +2 -4
  62. data/lib/puppet/file_serving/mount.rb +1 -1
  63. data/lib/puppet/file_system/file_impl.rb +3 -3
  64. data/lib/puppet/file_system/memory_impl.rb +1 -1
  65. data/lib/puppet/file_system/path_pattern.rb +1 -1
  66. data/lib/puppet/file_system/uniquefile.rb +17 -16
  67. data/lib/puppet/file_system/windows.rb +26 -18
  68. data/lib/puppet/forge/cache.rb +2 -2
  69. data/lib/puppet/forge/errors.rb +1 -1
  70. data/lib/puppet/forge/repository.rb +2 -2
  71. data/lib/puppet/forge.rb +13 -19
  72. data/lib/puppet/functions/abs.rb +2 -2
  73. data/lib/puppet/functions/camelcase.rb +1 -1
  74. data/lib/puppet/functions/compare.rb +2 -2
  75. data/lib/puppet/functions/contain.rb +1 -1
  76. data/lib/puppet/functions/defined.rb +2 -2
  77. data/lib/puppet/functions/dig.rb +1 -1
  78. data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
  79. data/lib/puppet/functions/get.rb +1 -1
  80. data/lib/puppet/functions/hocon_data.rb +3 -5
  81. data/lib/puppet/functions/import.rb +1 -1
  82. data/lib/puppet/functions/json_data.rb +4 -6
  83. data/lib/puppet/functions/max.rb +2 -2
  84. data/lib/puppet/functions/min.rb +2 -2
  85. data/lib/puppet/functions/new.rb +1 -1
  86. data/lib/puppet/functions/reduce.rb +6 -10
  87. data/lib/puppet/functions/regsubst.rb +2 -2
  88. data/lib/puppet/functions/require.rb +1 -1
  89. data/lib/puppet/functions/yaml_data.rb +11 -13
  90. data/lib/puppet/functions.rb +32 -37
  91. data/lib/puppet/generate/type.rb +2 -2
  92. data/lib/puppet/gettext/config.rb +9 -9
  93. data/lib/puppet/graph/rb_tree_map.rb +31 -23
  94. data/lib/puppet/graph/relationship_graph.rb +12 -12
  95. data/lib/puppet/graph/simple_graph.rb +8 -10
  96. data/lib/puppet/http/client.rb +1 -1
  97. data/lib/puppet/http/dns.rb +4 -4
  98. data/lib/puppet/http/external_client.rb +1 -1
  99. data/lib/puppet/http/factory.rb +1 -1
  100. data/lib/puppet/http/proxy.rb +15 -15
  101. data/lib/puppet/http/redirector.rb +6 -2
  102. data/lib/puppet/http/resolver.rb +2 -2
  103. data/lib/puppet/http/retry_after_handler.rb +2 -2
  104. data/lib/puppet/http/service/ca.rb +1 -1
  105. data/lib/puppet/http/service/compiler.rb +4 -4
  106. data/lib/puppet/http/service/file_server.rb +1 -1
  107. data/lib/puppet/http/service/report.rb +2 -2
  108. data/lib/puppet/http/service.rb +9 -13
  109. data/lib/puppet/http/session.rb +1 -1
  110. data/lib/puppet/http/site.rb +1 -1
  111. data/lib/puppet/indirector/catalog/compiler.rb +44 -45
  112. data/lib/puppet/indirector/catalog/rest.rb +7 -5
  113. data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
  114. data/lib/puppet/indirector/exec.rb +2 -2
  115. data/lib/puppet/indirector/face.rb +7 -9
  116. data/lib/puppet/indirector/fact_search.rb +1 -1
  117. data/lib/puppet/indirector/facts/facter.rb +6 -6
  118. data/lib/puppet/indirector/facts/json.rb +1 -1
  119. data/lib/puppet/indirector/facts/store_configs.rb +1 -1
  120. data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
  121. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
  122. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  123. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  124. data/lib/puppet/indirector/hiera.rb +1 -1
  125. data/lib/puppet/indirector/indirection.rb +27 -29
  126. data/lib/puppet/indirector/json.rb +4 -4
  127. data/lib/puppet/indirector/memory.rb +2 -2
  128. data/lib/puppet/indirector/msgpack.rb +5 -5
  129. data/lib/puppet/indirector/node/store_configs.rb +1 -1
  130. data/lib/puppet/indirector/none.rb +1 -1
  131. data/lib/puppet/indirector/report/json.rb +1 -1
  132. data/lib/puppet/indirector/report/yaml.rb +1 -1
  133. data/lib/puppet/indirector/request.rb +4 -4
  134. data/lib/puppet/indirector/resource/ral.rb +2 -4
  135. data/lib/puppet/indirector/resource/store_configs.rb +1 -1
  136. data/lib/puppet/indirector/terminus.rb +4 -4
  137. data/lib/puppet/indirector/yaml.rb +3 -3
  138. data/lib/puppet/info_service/class_information_service.rb +5 -8
  139. data/lib/puppet/info_service/task_information_service.rb +6 -7
  140. data/lib/puppet/interface/action.rb +5 -5
  141. data/lib/puppet/interface/action_manager.rb +5 -5
  142. data/lib/puppet/interface/documentation.rb +5 -5
  143. data/lib/puppet/interface/face_collection.rb +7 -7
  144. data/lib/puppet/interface/option.rb +2 -2
  145. data/lib/puppet/interface/option_manager.rb +6 -6
  146. data/lib/puppet/interface.rb +4 -4
  147. data/lib/puppet/metatype/manager.rb +2 -2
  148. data/lib/puppet/module/plan.rb +10 -10
  149. data/lib/puppet/module/task.rb +8 -8
  150. data/lib/puppet/module.rb +39 -41
  151. data/lib/puppet/module_tool/applications/application.rb +10 -8
  152. data/lib/puppet/module_tool/applications/installer.rb +53 -50
  153. data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
  154. data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
  155. data/lib/puppet/module_tool/checksums.rb +2 -2
  156. data/lib/puppet/module_tool/dependency.rb +1 -1
  157. data/lib/puppet/module_tool/errors/base.rb +1 -1
  158. data/lib/puppet/module_tool/install_directory.rb +1 -1
  159. data/lib/puppet/module_tool/local_tarball.rb +3 -5
  160. data/lib/puppet/module_tool/metadata.rb +12 -8
  161. data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
  162. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  163. data/lib/puppet/module_tool.rb +4 -4
  164. data/lib/puppet/network/client_request.rb +5 -3
  165. data/lib/puppet/network/format.rb +2 -2
  166. data/lib/puppet/network/format_support.rb +1 -1
  167. data/lib/puppet/network/formats.rb +1 -1
  168. data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
  169. data/lib/puppet/network/http/api/server/v3.rb +1 -1
  170. data/lib/puppet/network/http/connection.rb +1 -1
  171. data/lib/puppet/network/http/handler.rb +8 -12
  172. data/lib/puppet/network/http/request.rb +1 -1
  173. data/lib/puppet/network/http/route.rb +9 -9
  174. data/lib/puppet/node/environment.rb +21 -23
  175. data/lib/puppet/node/facts.rb +1 -1
  176. data/lib/puppet/node.rb +5 -5
  177. data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
  178. data/lib/puppet/pal/pal_impl.rb +48 -50
  179. data/lib/puppet/pal/plan_signature.rb +1 -1
  180. data/lib/puppet/pal/task_signature.rb +1 -1
  181. data/lib/puppet/parameter/package_options.rb +1 -1
  182. data/lib/puppet/parameter/value.rb +2 -2
  183. data/lib/puppet/parameter/value_collection.rb +7 -7
  184. data/lib/puppet/parameter.rb +8 -9
  185. data/lib/puppet/parser/ast/block_expression.rb +2 -2
  186. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  187. data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
  188. data/lib/puppet/parser/ast/resource.rb +4 -4
  189. data/lib/puppet/parser/ast/resourceparam.rb +4 -4
  190. data/lib/puppet/parser/ast.rb +14 -15
  191. data/lib/puppet/parser/compiler.rb +26 -28
  192. data/lib/puppet/parser/functions/create_resources.rb +3 -3
  193. data/lib/puppet/parser/functions/fail.rb +1 -1
  194. data/lib/puppet/parser/functions/generate.rb +2 -2
  195. data/lib/puppet/parser/functions/tag.rb +1 -1
  196. data/lib/puppet/parser/functions.rb +2 -2
  197. data/lib/puppet/parser/relationship.rb +3 -1
  198. data/lib/puppet/parser/resource/param.rb +2 -2
  199. data/lib/puppet/parser/resource.rb +23 -23
  200. data/lib/puppet/parser/scope.rb +10 -10
  201. data/lib/puppet/parser/script_compiler.rb +1 -1
  202. data/lib/puppet/parser/templatewrapper.rb +1 -1
  203. data/lib/puppet/parser/type_loader.rb +10 -12
  204. data/lib/puppet/parser.rb +1 -1
  205. data/lib/puppet/pops/adaptable.rb +1 -1
  206. data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
  207. data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
  208. data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
  209. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
  210. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
  211. data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
  212. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  213. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  214. data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
  215. data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
  216. data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
  217. data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
  218. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  219. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  220. data/lib/puppet/pops/functions/function.rb +14 -16
  221. data/lib/puppet/pops/issue_reporter.rb +2 -2
  222. data/lib/puppet/pops/label_provider.rb +2 -2
  223. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  224. data/lib/puppet/pops/loader/loader.rb +4 -4
  225. data/lib/puppet/pops/loader/loader_paths.rb +3 -3
  226. data/lib/puppet/pops/loader/module_loaders.rb +11 -11
  227. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
  228. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  229. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
  230. data/lib/puppet/pops/loader/static_loader.rb +3 -3
  231. data/lib/puppet/pops/loaders.rb +3 -3
  232. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  233. data/lib/puppet/pops/lookup/explainer.rb +2 -2
  234. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  235. data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
  236. data/lib/puppet/pops/lookup/interpolation.rb +3 -3
  237. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  238. data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
  239. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
  240. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  241. data/lib/puppet/pops/merge_strategy.rb +6 -6
  242. data/lib/puppet/pops/migration/migration_checker.rb +1 -1
  243. data/lib/puppet/pops/model/ast_transformer.rb +9 -11
  244. data/lib/puppet/pops/model/factory.rb +4 -5
  245. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  246. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  247. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
  248. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  249. data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
  250. data/lib/puppet/pops/parser/lexer2.rb +20 -12
  251. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  252. data/lib/puppet/pops/parser/locator.rb +4 -4
  253. data/lib/puppet/pops/parser/parser_support.rb +12 -14
  254. data/lib/puppet/pops/parser/pn_parser.rb +3 -3
  255. data/lib/puppet/pops/parser/slurp_support.rb +8 -8
  256. data/lib/puppet/pops/patterns.rb +12 -12
  257. data/lib/puppet/pops/pcore.rb +1 -1
  258. data/lib/puppet/pops/pn.rb +2 -2
  259. data/lib/puppet/pops/puppet_stack.rb +1 -1
  260. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  261. data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
  262. data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
  263. data/lib/puppet/pops/time/timestamp.rb +1 -1
  264. data/lib/puppet/pops/types/class_loader.rb +4 -6
  265. data/lib/puppet/pops/types/iterable.rb +1 -1
  266. data/lib/puppet/pops/types/p_binary_type.rb +1 -1
  267. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  268. data/lib/puppet/pops/types/p_object_type.rb +5 -5
  269. data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
  270. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  271. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  272. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  273. data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
  274. data/lib/puppet/pops/types/p_uri_type.rb +4 -4
  275. data/lib/puppet/pops/types/recursion_guard.rb +4 -4
  276. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  277. data/lib/puppet/pops/types/string_converter.rb +12 -8
  278. data/lib/puppet/pops/types/tree_iterators.rb +4 -6
  279. data/lib/puppet/pops/types/type_calculator.rb +10 -10
  280. data/lib/puppet/pops/types/type_factory.rb +7 -3
  281. data/lib/puppet/pops/types/type_formatter.rb +22 -24
  282. data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
  283. data/lib/puppet/pops/types/types.rb +28 -24
  284. data/lib/puppet/pops/utils.rb +38 -42
  285. data/lib/puppet/pops/validation/checker4_0.rb +10 -10
  286. data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
  287. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
  288. data/lib/puppet/pops/validation.rb +4 -4
  289. data/lib/puppet/pops/visitor.rb +2 -2
  290. data/lib/puppet/property/ensure.rb +12 -14
  291. data/lib/puppet/property/keyvalue.rb +4 -4
  292. data/lib/puppet/property/list.rb +4 -4
  293. data/lib/puppet/property/ordered_list.rb +1 -1
  294. data/lib/puppet/property.rb +31 -33
  295. data/lib/puppet/provider/exec.rb +2 -2
  296. data/lib/puppet/provider/file/posix.rb +19 -17
  297. data/lib/puppet/provider/file/windows.rb +13 -19
  298. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  299. data/lib/puppet/provider/group/groupadd.rb +4 -4
  300. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  301. data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
  302. data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
  303. data/lib/puppet/provider/nameservice/pw.rb +1 -2
  304. data/lib/puppet/provider/nameservice.rb +8 -8
  305. data/lib/puppet/provider/package/aix.rb +19 -19
  306. data/lib/puppet/provider/package/appdmg.rb +2 -2
  307. data/lib/puppet/provider/package/apple.rb +1 -1
  308. data/lib/puppet/provider/package/apt.rb +18 -18
  309. data/lib/puppet/provider/package/aptitude.rb +1 -3
  310. data/lib/puppet/provider/package/aptrpm.rb +9 -9
  311. data/lib/puppet/provider/package/blastwave.rb +10 -14
  312. data/lib/puppet/provider/package/dnfmodule.rb +3 -3
  313. data/lib/puppet/provider/package/dpkg.rb +11 -13
  314. data/lib/puppet/provider/package/fink.rb +14 -14
  315. data/lib/puppet/provider/package/freebsd.rb +1 -1
  316. data/lib/puppet/provider/package/gem.rb +12 -14
  317. data/lib/puppet/provider/package/macports.rb +2 -2
  318. data/lib/puppet/provider/package/nim.rb +10 -10
  319. data/lib/puppet/provider/package/openbsd.rb +22 -22
  320. data/lib/puppet/provider/package/opkg.rb +6 -6
  321. data/lib/puppet/provider/package/pacman.rb +35 -29
  322. data/lib/puppet/provider/package/pip.rb +25 -24
  323. data/lib/puppet/provider/package/pkg.rb +15 -15
  324. data/lib/puppet/provider/package/pkgdmg.rb +10 -10
  325. data/lib/puppet/provider/package/pkgin.rb +2 -2
  326. data/lib/puppet/provider/package/pkgng.rb +5 -5
  327. data/lib/puppet/provider/package/pkgutil.rb +17 -21
  328. data/lib/puppet/provider/package/portage.rb +59 -61
  329. data/lib/puppet/provider/package/ports.rb +12 -11
  330. data/lib/puppet/provider/package/portupgrade.rb +35 -35
  331. data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
  332. data/lib/puppet/provider/package/rpm.rb +26 -26
  333. data/lib/puppet/provider/package/rug.rb +7 -9
  334. data/lib/puppet/provider/package/sun.rb +4 -4
  335. data/lib/puppet/provider/package/up2date.rb +5 -7
  336. data/lib/puppet/provider/package/urpmi.rb +6 -6
  337. data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
  338. data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
  339. data/lib/puppet/provider/package/windows/package.rb +2 -2
  340. data/lib/puppet/provider/package/windows.rb +3 -5
  341. data/lib/puppet/provider/package/yum.rb +33 -37
  342. data/lib/puppet/provider/package/zypper.rb +12 -14
  343. data/lib/puppet/provider/package.rb +1 -1
  344. data/lib/puppet/provider/package_targetable.rb +1 -1
  345. data/lib/puppet/provider/parsedfile.rb +9 -9
  346. data/lib/puppet/provider/service/base.rb +16 -21
  347. data/lib/puppet/provider/service/bsd.rb +4 -4
  348. data/lib/puppet/provider/service/daemontools.rb +31 -31
  349. data/lib/puppet/provider/service/debian.rb +6 -6
  350. data/lib/puppet/provider/service/freebsd.rb +36 -36
  351. data/lib/puppet/provider/service/gentoo.rb +6 -6
  352. data/lib/puppet/provider/service/init.rb +19 -19
  353. data/lib/puppet/provider/service/launchd.rb +22 -22
  354. data/lib/puppet/provider/service/openbsd.rb +10 -10
  355. data/lib/puppet/provider/service/openrc.rb +1 -1
  356. data/lib/puppet/provider/service/openwrt.rb +3 -3
  357. data/lib/puppet/provider/service/rcng.rb +3 -3
  358. data/lib/puppet/provider/service/redhat.rb +4 -4
  359. data/lib/puppet/provider/service/runit.rb +6 -6
  360. data/lib/puppet/provider/service/service.rb +5 -7
  361. data/lib/puppet/provider/service/smf.rb +28 -27
  362. data/lib/puppet/provider/service/src.rb +7 -7
  363. data/lib/puppet/provider/service/systemd.rb +31 -37
  364. data/lib/puppet/provider/service/upstart.rb +17 -17
  365. data/lib/puppet/provider/service/windows.rb +7 -7
  366. data/lib/puppet/provider/user/aix.rb +4 -2
  367. data/lib/puppet/provider/user/directoryservice.rb +34 -36
  368. data/lib/puppet/provider/user/hpux.rb +10 -14
  369. data/lib/puppet/provider/user/pw.rb +1 -1
  370. data/lib/puppet/provider/user/user_role_add.rb +16 -18
  371. data/lib/puppet/provider/user/useradd.rb +7 -7
  372. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  373. data/lib/puppet/provider.rb +8 -8
  374. data/lib/puppet/reference/indirection.rb +3 -0
  375. data/lib/puppet/reference/metaparameter.rb +1 -1
  376. data/lib/puppet/reference/providers.rb +3 -3
  377. data/lib/puppet/reference/type.rb +1 -1
  378. data/lib/puppet/relationship.rb +4 -5
  379. data/lib/puppet/reports/http.rb +1 -1
  380. data/lib/puppet/reports/log.rb +2 -2
  381. data/lib/puppet/reports/store.rb +4 -4
  382. data/lib/puppet/reports.rb +2 -2
  383. data/lib/puppet/resource/catalog.rb +16 -16
  384. data/lib/puppet/resource/status.rb +3 -3
  385. data/lib/puppet/resource/type.rb +8 -8
  386. data/lib/puppet/resource/type_collection.rb +1 -1
  387. data/lib/puppet/resource.rb +41 -41
  388. data/lib/puppet/scheduler/scheduler.rb +1 -1
  389. data/lib/puppet/settings/alias_setting.rb +3 -5
  390. data/lib/puppet/settings/base_setting.rb +11 -11
  391. data/lib/puppet/settings/boolean_setting.rb +2 -2
  392. data/lib/puppet/settings/config_file.rb +5 -4
  393. data/lib/puppet/settings/duration_setting.rb +2 -2
  394. data/lib/puppet/settings/environment_conf.rb +3 -3
  395. data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
  396. data/lib/puppet/settings/file_setting.rb +11 -11
  397. data/lib/puppet/settings/ini_file.rb +3 -3
  398. data/lib/puppet/settings/port_setting.rb +1 -1
  399. data/lib/puppet/settings/priority_setting.rb +2 -2
  400. data/lib/puppet/settings/ttl_setting.rb +2 -2
  401. data/lib/puppet/settings/value_translator.rb +8 -8
  402. data/lib/puppet/settings.rb +65 -70
  403. data/lib/puppet/ssl/base.rb +2 -4
  404. data/lib/puppet/ssl/certificate_request.rb +18 -22
  405. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  406. data/lib/puppet/ssl/oids.rb +2 -2
  407. data/lib/puppet/ssl/openssl_loader.rb +4 -4
  408. data/lib/puppet/syntax_checkers/base64.rb +3 -3
  409. data/lib/puppet/syntax_checkers/epp.rb +3 -3
  410. data/lib/puppet/syntax_checkers/json.rb +3 -3
  411. data/lib/puppet/syntax_checkers/pp.rb +3 -3
  412. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  413. data/lib/puppet/transaction/event.rb +2 -2
  414. data/lib/puppet/transaction/event_manager.rb +5 -5
  415. data/lib/puppet/transaction/persistence.rb +12 -14
  416. data/lib/puppet/transaction/report.rb +4 -4
  417. data/lib/puppet/transaction/resource_harness.rb +2 -2
  418. data/lib/puppet/transaction.rb +14 -18
  419. data/lib/puppet/type/component.rb +3 -3
  420. data/lib/puppet/type/exec.rb +43 -45
  421. data/lib/puppet/type/file/checksum_value.rb +1 -1
  422. data/lib/puppet/type/file/content.rb +6 -6
  423. data/lib/puppet/type/file/ctime.rb +2 -2
  424. data/lib/puppet/type/file/data_sync.rb +3 -3
  425. data/lib/puppet/type/file/ensure.rb +16 -15
  426. data/lib/puppet/type/file/mode.rb +9 -9
  427. data/lib/puppet/type/file/mtime.rb +2 -2
  428. data/lib/puppet/type/file/selcontext.rb +14 -14
  429. data/lib/puppet/type/file/source.rb +19 -21
  430. data/lib/puppet/type/file/target.rb +11 -11
  431. data/lib/puppet/type/file.rb +21 -21
  432. data/lib/puppet/type/filebucket.rb +3 -3
  433. data/lib/puppet/type/group.rb +3 -3
  434. data/lib/puppet/type/notify.rb +2 -2
  435. data/lib/puppet/type/package.rb +4 -4
  436. data/lib/puppet/type/resources.rb +6 -6
  437. data/lib/puppet/type/schedule.rb +9 -9
  438. data/lib/puppet/type/service.rb +6 -8
  439. data/lib/puppet/type/tidy.rb +22 -24
  440. data/lib/puppet/type/user.rb +13 -13
  441. data/lib/puppet/type.rb +76 -88
  442. data/lib/puppet/util/at_fork/solaris.rb +33 -37
  443. data/lib/puppet/util/autoload.rb +2 -2
  444. data/lib/puppet/util/backups.rb +9 -9
  445. data/lib/puppet/util/character_encoding.rb +7 -6
  446. data/lib/puppet/util/checksums.rb +2 -2
  447. data/lib/puppet/util/classgen.rb +8 -8
  448. data/lib/puppet/util/colors.rb +1 -1
  449. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
  450. data/lib/puppet/util/command_line/trollop.rb +42 -46
  451. data/lib/puppet/util/command_line.rb +2 -2
  452. data/lib/puppet/util/constant_inflector.rb +2 -2
  453. data/lib/puppet/util/diff.rb +19 -21
  454. data/lib/puppet/util/docs.rb +2 -2
  455. data/lib/puppet/util/errors.rb +9 -9
  456. data/lib/puppet/util/execution.rb +32 -9
  457. data/lib/puppet/util/feature.rb +1 -1
  458. data/lib/puppet/util/fileparsing.rb +12 -16
  459. data/lib/puppet/util/filetype.rb +36 -40
  460. data/lib/puppet/util/inifile.rb +6 -12
  461. data/lib/puppet/util/ldap/connection.rb +1 -1
  462. data/lib/puppet/util/ldap/manager.rb +10 -12
  463. data/lib/puppet/util/lockfile.rb +6 -8
  464. data/lib/puppet/util/log/destination.rb +2 -2
  465. data/lib/puppet/util/log/destinations.rb +4 -4
  466. data/lib/puppet/util/log.rb +12 -9
  467. data/lib/puppet/util/logging.rb +11 -11
  468. data/lib/puppet/util/metric.rb +3 -3
  469. data/lib/puppet/util/monkey_patches.rb +5 -7
  470. data/lib/puppet/util/network_device/config.rb +3 -3
  471. data/lib/puppet/util/package/version/debian.rb +27 -28
  472. data/lib/puppet/util/package/version/pip.rb +5 -5
  473. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  474. data/lib/puppet/util/package/version/rpm.rb +1 -1
  475. data/lib/puppet/util/package.rb +2 -2
  476. data/lib/puppet/util/pidlock.rb +2 -2
  477. data/lib/puppet/util/platform.rb +1 -1
  478. data/lib/puppet/util/plist.rb +8 -10
  479. data/lib/puppet/util/posix.rb +17 -17
  480. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  481. data/lib/puppet/util/provider_features.rb +3 -3
  482. data/lib/puppet/util/rdoc/code_objects.rb +3 -3
  483. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
  484. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
  485. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
  486. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  487. data/lib/puppet/util/rdoc/parser.rb +1 -1
  488. data/lib/puppet/util/reference.rb +13 -9
  489. data/lib/puppet/util/retry_action.rb +1 -1
  490. data/lib/puppet/util/rpm_compare.rb +17 -18
  491. data/lib/puppet/util/rubygems.rb +1 -1
  492. data/lib/puppet/util/selinux.rb +7 -7
  493. data/lib/puppet/util/storage.rb +10 -12
  494. data/lib/puppet/util/suidmanager.rb +18 -19
  495. data/lib/puppet/util/symbolic_file_mode.rb +71 -75
  496. data/lib/puppet/util/tag_set.rb +2 -2
  497. data/lib/puppet/util/tagging.rb +8 -10
  498. data/lib/puppet/util/terminal.rb +4 -4
  499. data/lib/puppet/util/user_attr.rb +7 -7
  500. data/lib/puppet/util/watcher.rb +3 -5
  501. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  502. data/lib/puppet/util/windows/adsi.rb +42 -42
  503. data/lib/puppet/util/windows/daemon.rb +64 -68
  504. data/lib/puppet/util/windows/error.rb +2 -2
  505. data/lib/puppet/util/windows/file.rb +18 -25
  506. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  507. data/lib/puppet/util/windows/principal.rb +8 -8
  508. data/lib/puppet/util/windows/process.rb +16 -28
  509. data/lib/puppet/util/windows/registry.rb +16 -15
  510. data/lib/puppet/util/windows/root_certs.rb +2 -2
  511. data/lib/puppet/util/windows/security.rb +31 -31
  512. data/lib/puppet/util/windows/service.rb +11 -11
  513. data/lib/puppet/util/windows/sid.rb +8 -8
  514. data/lib/puppet/util/windows/user.rb +18 -20
  515. data/lib/puppet/util/yaml.rb +1 -1
  516. data/lib/puppet/util.rb +55 -46
  517. data/lib/puppet/version.rb +2 -2
  518. data/lib/puppet/x509/pem_store.rb +1 -1
  519. data/lib/puppet.rb +3 -3
  520. data/man/man5/puppet.conf.5 +10 -2
  521. data/man/man8/puppet-agent.8 +1 -1
  522. data/man/man8/puppet-apply.8 +1 -1
  523. data/man/man8/puppet-catalog.8 +1 -1
  524. data/man/man8/puppet-config.8 +1 -1
  525. data/man/man8/puppet-describe.8 +1 -1
  526. data/man/man8/puppet-device.8 +1 -1
  527. data/man/man8/puppet-doc.8 +1 -1
  528. data/man/man8/puppet-epp.8 +1 -1
  529. data/man/man8/puppet-facts.8 +1 -1
  530. data/man/man8/puppet-filebucket.8 +1 -1
  531. data/man/man8/puppet-generate.8 +1 -1
  532. data/man/man8/puppet-help.8 +1 -1
  533. data/man/man8/puppet-lookup.8 +1 -1
  534. data/man/man8/puppet-module.8 +1 -1
  535. data/man/man8/puppet-node.8 +1 -1
  536. data/man/man8/puppet-parser.8 +1 -1
  537. data/man/man8/puppet-plugin.8 +1 -1
  538. data/man/man8/puppet-report.8 +1 -1
  539. data/man/man8/puppet-resource.8 +5 -1
  540. data/man/man8/puppet-script.8 +1 -1
  541. data/man/man8/puppet-ssl.8 +1 -1
  542. data/man/man8/puppet.8 +2 -2
  543. metadata +2 -2
@@ -263,115 +263,114 @@ class Puppet::Application::Device < Puppet::Application
263
263
  end
264
264
  devices.collect do |_devicename, device|
265
265
  # TODO when we drop support for ruby < 2.5 we can remove the extra block here
266
- begin
267
- device_url = URI.parse(device.url)
268
- # Handle nil scheme & port
269
- scheme = "#{device_url.scheme}://" if device_url.scheme
270
- port = ":#{device_url.port}" if device_url.port
271
-
272
- # override local $vardir and $certname
273
- Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
274
- Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
275
- Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
276
- Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
277
- Puppet[:certname] = device.name
278
- ssl_context = nil
279
-
280
- # create device directory under $deviceconfdir
281
- Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
282
-
283
- # this will reload and recompute default settings and create device-specific sub vardir
284
- Puppet.settings.use :main, :agent, :ssl
285
-
286
- # Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
287
- optssldir = File.join(Puppet[:confdir], 'ssl')
288
- Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
289
-
290
- unless options[:resource] || options[:facts] || options[:apply]
291
- # Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
292
- # See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
293
- # This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
294
- # routines would fail with access errors
295
- if Puppet.features.root? && !Puppet::Util::Platform.windows?
296
- user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
297
- group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
298
- Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
299
- FileUtils.chown(user, group, Puppet[:confdir]) if user || group
300
- end
301
266
 
302
- ssl_context = setup_context
267
+ device_url = URI.parse(device.url)
268
+ # Handle nil scheme & port
269
+ scheme = "#{device_url.scheme}://" if device_url.scheme
270
+ port = ":#{device_url.port}" if device_url.port
271
+
272
+ # override local $vardir and $certname
273
+ Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
274
+ Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
275
+ Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
276
+ Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
277
+ Puppet[:certname] = device.name
278
+ ssl_context = nil
279
+
280
+ # create device directory under $deviceconfdir
281
+ Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
282
+
283
+ # this will reload and recompute default settings and create device-specific sub vardir
284
+ Puppet.settings.use :main, :agent, :ssl
285
+
286
+ # Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
287
+ optssldir = File.join(Puppet[:confdir], 'ssl')
288
+ Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
289
+
290
+ unless options[:resource] || options[:facts] || options[:apply]
291
+ # Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
292
+ # See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
293
+ # This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
294
+ # routines would fail with access errors
295
+ if Puppet.features.root? && !Puppet::Util::Platform.windows?
296
+ user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
297
+ group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
298
+ Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
299
+ FileUtils.chown(user, group, Puppet[:confdir]) if user || group
300
+ end
301
+
302
+ ssl_context = setup_context
303
303
 
304
- unless options[:libdir]
305
- Puppet.override(ssl_context: ssl_context) do
306
- Puppet::Configurer::PluginHandler.new.download_plugins(env) if Puppet::Configurer.should_pluginsync?
307
- end
304
+ unless options[:libdir]
305
+ Puppet.override(ssl_context: ssl_context) do
306
+ Puppet::Configurer::PluginHandler.new.download_plugins(env) if Puppet::Configurer.should_pluginsync?
308
307
  end
309
308
  end
309
+ end
310
310
 
311
- # this inits the device singleton, so that the facts terminus
312
- # and the various network_device provider can use it
313
- Puppet::Util::NetworkDevice.init(device)
314
-
315
- if options[:resource]
316
- type, name = parse_args(command_line.args)
317
- Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
318
- resources = find_resources(type, name)
319
- if options[:to_yaml]
320
- data = resources.map do |resource|
321
- resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
322
- end.inject(:merge!)
323
- text = YAML.dump(type.downcase => data)
324
- else
325
- text = resources.map do |resource|
326
- resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
327
- end.join("\n")
328
- end
329
- (puts text)
330
- 0
331
- elsif options[:facts]
332
- Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
333
- remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
334
- # Give a proper name to the facts
335
- remote_facts.name = remote_facts.values['clientcert']
336
- renderer = Puppet::Network::FormatHandler.format(:console)
337
- puts renderer.render(remote_facts)
338
- 0
339
- elsif options[:apply]
340
- # avoid reporting to server
341
- Puppet::Transaction::Report.indirection.terminus_class = :yaml
342
- Puppet::Resource::Catalog.indirection.cache_class = nil
343
-
344
- require_relative '../../puppet/application/apply'
345
- begin
346
- Puppet[:node_terminus] = :plain
347
- Puppet[:catalog_terminus] = :compiler
348
- Puppet[:catalog_cache_terminus] = nil
349
- Puppet[:facts_terminus] = :network_device
350
- Puppet.override(:network_device => true) do
351
- Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
352
- end
353
- end
311
+ # this inits the device singleton, so that the facts terminus
312
+ # and the various network_device provider can use it
313
+ Puppet::Util::NetworkDevice.init(device)
314
+
315
+ if options[:resource]
316
+ type, name = parse_args(command_line.args)
317
+ Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
318
+ resources = find_resources(type, name)
319
+ if options[:to_yaml]
320
+ data = resources.map do |resource|
321
+ resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
322
+ end.inject(:merge!)
323
+ text = YAML.dump(type.downcase => data)
354
324
  else
355
- Puppet.info _("starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
356
-
357
- overrides = {}
358
- overrides[:ssl_context] = ssl_context if ssl_context
359
- Puppet.override(overrides) do
360
- configurer = Puppet::Configurer.new
361
- configurer.run(:network_device => true, :pluginsync => false)
325
+ text = resources.map do |resource|
326
+ resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
327
+ end.join("\n")
328
+ end
329
+ (puts text)
330
+ 0
331
+ elsif options[:facts]
332
+ Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
333
+ remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
334
+ # Give a proper name to the facts
335
+ remote_facts.name = remote_facts.values['clientcert']
336
+ renderer = Puppet::Network::FormatHandler.format(:console)
337
+ puts renderer.render(remote_facts)
338
+ 0
339
+ elsif options[:apply]
340
+ # avoid reporting to server
341
+ Puppet::Transaction::Report.indirection.terminus_class = :yaml
342
+ Puppet::Resource::Catalog.indirection.cache_class = nil
343
+
344
+ require_relative '../../puppet/application/apply'
345
+ begin
346
+ Puppet[:node_terminus] = :plain
347
+ Puppet[:catalog_terminus] = :compiler
348
+ Puppet[:catalog_cache_terminus] = nil
349
+ Puppet[:facts_terminus] = :network_device
350
+ Puppet.override(:network_device => true) do
351
+ Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
362
352
  end
363
353
  end
364
- rescue => detail
365
- Puppet.log_exception(detail)
366
- # If we rescued an error, then we return 1 as the exit code
367
- 1
368
- ensure
369
- Puppet[:libdir] = libdir
370
- Puppet[:vardir] = vardir
371
- Puppet[:confdir] = confdir
372
- Puppet[:ssldir] = ssldir
373
- Puppet[:certname] = certname
354
+ else
355
+ Puppet.info _("starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
356
+
357
+ overrides = {}
358
+ overrides[:ssl_context] = ssl_context if ssl_context
359
+ Puppet.override(overrides) do
360
+ configurer = Puppet::Configurer.new
361
+ configurer.run(:network_device => true, :pluginsync => false)
362
+ end
374
363
  end
364
+ rescue => detail
365
+ Puppet.log_exception(detail)
366
+ # If we rescued an error, then we return 1 as the exit code
367
+ 1
368
+ ensure
369
+ Puppet[:libdir] = libdir
370
+ Puppet[:vardir] = vardir
371
+ Puppet[:confdir] = confdir
372
+ Puppet[:ssldir] = ssldir
373
+ Puppet[:certname] = certname
375
374
  end
376
375
  end
377
376
 
@@ -122,7 +122,7 @@ class Puppet::Application::Doc < Puppet::Application
122
122
  end
123
123
 
124
124
  def run_command
125
- return [:rdoc].include?(options[:mode]) ? send(options[:mode]) : other
125
+ [:rdoc].include?(options[:mode]) ? send(options[:mode]) : other
126
126
  end
127
127
 
128
128
  def rdoc
@@ -74,7 +74,7 @@ class Puppet::Application::FaceBase < Puppet::Application
74
74
  # non-option word to use as the action.
75
75
  action_name = nil
76
76
  index = -1
77
- until action_name or (index += 1) >= command_line.args.length do
77
+ until action_name or (index += 1) >= command_line.args.length
78
78
  item = command_line.args[index]
79
79
  if item =~ /^-/
80
80
  option = @face.options.find do |name|
@@ -88,7 +88,7 @@ class Puppet::Application::FaceBase < Puppet::Application
88
88
  # when we get there. --daniel 2011-04-04
89
89
  if option.takes_argument? and !item.index('=')
90
90
  index += 1 unless
91
- (option.optional_argument? and command_line.args[index + 1] =~ /^-/)
91
+ option.optional_argument? and command_line.args[index + 1] =~ /^-/
92
92
  end
93
93
  else
94
94
  option = find_global_settings_argument(item)
@@ -103,9 +103,9 @@ class Puppet::Application::FaceBase < Puppet::Application
103
103
  else
104
104
  option = find_application_argument(item)
105
105
  if option
106
- index += 1 if (option[:argument] and not option[:optional])
106
+ index += 1 if option[:argument] and !(option[:optional])
107
107
  else
108
- raise OptionParser::InvalidOption.new(item.sub(/=.*$/, ''))
108
+ raise OptionParser::InvalidOption, item.sub(/=.*$/, '')
109
109
  end
110
110
  end
111
111
  end
@@ -164,7 +164,7 @@ class Puppet::Application::FaceBase < Puppet::Application
164
164
  pattern.match item and return object
165
165
  end
166
166
  end
167
- return nil # nothing found.
167
+ nil # nothing found.
168
168
  end
169
169
 
170
170
  def find_application_argument(item)
@@ -181,7 +181,7 @@ class Puppet::Application::FaceBase < Puppet::Application
181
181
  }
182
182
  end
183
183
  end
184
- return nil # not found
184
+ nil # not found
185
185
  end
186
186
 
187
187
  def setup
@@ -205,7 +205,7 @@ class Puppet::Application::FaceBase < Puppet::Application
205
205
  @arguments << options
206
206
 
207
207
  # If we don't have a rendering format, set one early.
208
- self.render_as ||= (@action.render_as || :console)
208
+ self.render_as ||= @action.render_as || :console
209
209
  end
210
210
 
211
211
  def main
@@ -213,7 +213,7 @@ class Puppet::Application::Filebucket < Puppet::Application
213
213
  def run_command
214
214
  @args = command_line.args
215
215
  command = args.shift
216
- return send(command) if %w{get backup restore diff list}.include? command
216
+ return send(command) if %w[get backup restore diff list].include? command
217
217
 
218
218
  help
219
219
  end
@@ -8,7 +8,7 @@ require_relative '../../puppet/parser/compiler'
8
8
  class Puppet::Application::Lookup < Puppet::Application
9
9
  RUN_HELP = _("Run 'puppet lookup --help' for more details").freeze
10
10
  DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'
11
- TRUSTED_INFORMATION_FACTS = ["hostname", "domain", "fqdn", "clientcert"].freeze
11
+ TRUSTED_INFORMATION_FACTS = %w[hostname domain fqdn clientcert].freeze
12
12
 
13
13
  run_mode :server
14
14
 
@@ -354,7 +354,7 @@ class Puppet::Application::Lookup < Puppet::Application
354
354
  given_facts = Puppet::Util::Yaml.safe_load_file(fact_file)
355
355
  else
356
356
  given_facts = Puppet::Util::Json.load_file_if_valid(fact_file)
357
- given_facts = Puppet::Util::Yaml.safe_load_file_if_valid(fact_file) unless given_facts
357
+ given_facts ||= Puppet::Util::Yaml.safe_load_file_if_valid(fact_file)
358
358
  end
359
359
 
360
360
  unless given_facts.instance_of?(Hash)
@@ -369,7 +369,9 @@ class Puppet::Application::Lookup < Puppet::Application
369
369
  end
370
370
  end
371
371
 
372
- unless node.is_a?(Puppet::Node) # to allow unit tests to pass a node instance
372
+ if node.is_a?(Puppet::Node)
373
+ node.add_extra_facts(given_facts) if given_facts
374
+ else # to allow unit tests to pass a node instance
373
375
  facts = retrieve_node_facts(node, given_facts)
374
376
  ni = Puppet::Node.indirection
375
377
  tc = ni.terminus_class
@@ -399,8 +401,6 @@ class Puppet::Application::Lookup < Puppet::Application
399
401
  node = ni.find(node, facts: facts, environment: Puppet[:environment])
400
402
  ni.terminus_class = tc
401
403
  end
402
- else
403
- node.add_extra_facts(given_facts) if given_facts
404
404
  end
405
405
  node.environment = Puppet[:environment] if Puppet.settings.set_by_cli?(:environment)
406
406
  Puppet[:code] = 'undef' unless options[:compile]
@@ -15,6 +15,7 @@ class Puppet::Application::Resource < Puppet::Application
15
15
  option("--verbose", "-v")
16
16
  option("--edit", "-e")
17
17
  option("--to_yaml", "-y")
18
+ option('--fail', '-f')
18
19
 
19
20
  option("--types", "-t") do |_arg|
20
21
  env = Puppet.lookup(:environments).get(Puppet[:environment]) || create_default_environment
@@ -109,6 +110,9 @@ class Puppet::Application::Resource < Puppet::Application
109
110
  Output found resources in yaml format, suitable to use with Hiera and
110
111
  create_resources.
111
112
 
113
+ * --fail:
114
+ Fails and returns an exit code of 1 if the resource could not be modified.
115
+
112
116
  EXAMPLE
113
117
  -------
114
118
  This example uses `puppet resource` to return a Puppet configuration for
@@ -207,7 +211,7 @@ class Puppet::Application::Resource < Puppet::Application
207
211
  params = {}
208
212
  args.each do |setting|
209
213
  if setting =~ /^(\w+)=(.+)$/
210
- params[$1] = $2
214
+ params[::Regexp.last_match(1)] = ::Regexp.last_match(2)
211
215
  else
212
216
  raise _("Invalid parameter setting %{setting}") % { setting: setting }
213
217
  end
@@ -236,8 +240,11 @@ class Puppet::Application::Resource < Puppet::Application
236
240
  resource = Puppet::Resource.new(type, name, :parameters => params)
237
241
 
238
242
  # save returns [resource that was saved, transaction log from applying the resource]
239
- save_result = Puppet::Resource.indirection.save(resource, key)
240
- [save_result.first]
243
+ save_result, report = Puppet::Resource.indirection.save(resource, key)
244
+ status = report.resource_statuses[resource.ref]
245
+ raise "Failed to manage resource #{resource.ref}" if status&.failed? && options[:fail]
246
+
247
+ [save_result]
241
248
  end
242
249
  else
243
250
  if type == "file"
@@ -160,7 +160,7 @@ class Puppet::Application::Ssl < Puppet::Application
160
160
 
161
161
  clean(certname)
162
162
  when 'bootstrap'
163
- if !Puppet::Util::Log.sendlevel?(:info)
163
+ unless Puppet::Util::Log.sendlevel?(:info)
164
164
  Puppet::Util::Log.level = :info
165
165
  end
166
166
  @machine.ensure_client_certificate
@@ -192,7 +192,7 @@ class Puppet::Application::Ssl < Puppet::Application
192
192
  Puppet.notice _("Submitted certificate request for '%{name}' to %{url}") % { name: Puppet[:certname], url: route.url }
193
193
  rescue Puppet::HTTP::ResponseError => e
194
194
  if e.response.code == 400
195
- raise Puppet::Error.new(_("Could not submit certificate request for '%{name}' to %{url} due to a conflict on the server") % { name: Puppet[:certname], url: route.url })
195
+ raise Puppet::Error, _("Could not submit certificate request for '%{name}' to %{url} due to a conflict on the server") % { name: Puppet[:certname], url: route.url }
196
196
  else
197
197
  raise Puppet::Error.new(_("Failed to submit certificate request: %{message}") % { message: e.message }, e)
198
198
  end
@@ -234,7 +234,7 @@ class Puppet::Application::Ssl < Puppet::Application
234
234
  cert
235
235
  rescue Puppet::HTTP::ResponseError => e
236
236
  if e.response.code == 404
237
- return nil
237
+ nil
238
238
  else
239
239
  raise Puppet::Error.new(_("Failed to download certificate: %{message}") % { message: e.message }, e)
240
240
  end
@@ -180,14 +180,14 @@ class Application
180
180
  def option(*options, &block)
181
181
  long = options.find { |opt| opt =~ /^--/ }.gsub(/^--(?:\[no-\])?([^ =]+).*$/, '\1').tr('-', '_')
182
182
  fname = "handle_#{long}".intern
183
- if (block_given?)
183
+ if block_given?
184
184
  define_method(fname, &block)
185
185
  else
186
186
  define_method(fname) do |value|
187
- self.options["#{long}".to_sym] = value
187
+ self.options[long.to_s.to_sym] = value
188
188
  end
189
189
  end
190
- self.option_parser_commands << [options, fname]
190
+ option_parser_commands << [options, fname]
191
191
  end
192
192
 
193
193
  def banner(banner = nil)
@@ -242,7 +242,7 @@ class Application
242
242
  #### eventually we need to issue a deprecation warning here,
243
243
  #### and then get rid of this stanza in a subsequent release.
244
244
  ################################################################
245
- if (clazz.nil?)
245
+ if clazz.nil?
246
246
  class_name = application_name.capitalize
247
247
  clazz = try_load_class(class_name)
248
248
  end
@@ -251,17 +251,17 @@ class Application
251
251
  ################################################################
252
252
 
253
253
  if clazz.nil?
254
- raise Puppet::Error.new(_("Unable to load application class '%{class_name}' from file 'puppet/application/%{application_name}.rb'") % { class_name: class_name, application_name: application_name })
254
+ raise Puppet::Error, _("Unable to load application class '%{class_name}' from file 'puppet/application/%{application_name}.rb'") % { class_name: class_name, application_name: application_name }
255
255
  end
256
256
 
257
- return clazz
257
+ clazz
258
258
  end
259
259
 
260
260
  # Given the fully qualified name of a class, attempt to get the class instance.
261
261
  # @param [String] class_name the fully qualified name of the class to try to load
262
262
  # @return [Class] the Class instance, or nil? if it could not be loaded.
263
263
  def try_load_class(class_name)
264
- return self.const_defined?(class_name) ? const_get(class_name) : nil
264
+ const_defined?(class_name) ? const_get(class_name) : nil
265
265
  end
266
266
  private :try_load_class
267
267
 
@@ -284,7 +284,7 @@ class Application
284
284
  Puppet.settings.preferred_run_mode = mode_name
285
285
  end
286
286
 
287
- return @run_mode if @run_mode and not mode_name
287
+ return @run_mode if @run_mode and !mode_name
288
288
 
289
289
  require_relative '../puppet/util/run_mode'
290
290
  @run_mode = Puppet::Util::RunMode[mode_name || Puppet.settings.preferred_run_mode]
@@ -330,7 +330,7 @@ class Application
330
330
  # See also `lib/puppet/util/command_line.rb` for some special case early
331
331
  # handling of this.
332
332
  option("--version", "-V") do |_arg|
333
- puts "#{Puppet.version}"
333
+ puts Puppet.version
334
334
  exit(0)
335
335
  end
336
336
 
@@ -452,7 +452,7 @@ class Application
452
452
  # @return [void]
453
453
  # @api public
454
454
  def setup_logs
455
- handle_logdest_arg(Puppet[:logdest]) if !options[:setdest]
455
+ handle_logdest_arg(Puppet[:logdest]) unless options[:setdest]
456
456
 
457
457
  unless options[:setdest]
458
458
  if options[:debug] || options[:verbose]
@@ -481,12 +481,10 @@ class Application
481
481
  Puppet[:logdest] = arg
482
482
 
483
483
  logdest.each do |dest|
484
- begin
485
- Puppet::Util::Log.newdestination(dest)
486
- options[:setdest] = true
487
- rescue => detail
488
- Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
489
- end
484
+ Puppet::Util::Log.newdestination(dest)
485
+ options[:setdest] = true
486
+ rescue => detail
487
+ Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
490
488
  end
491
489
  end
492
490
 
@@ -555,14 +553,14 @@ class Application
555
553
  self.class.option_parser_commands.each do |options, fname|
556
554
  option_parser.on(*options) do |value|
557
555
  # Call the method that "option()" created.
558
- self.send(fname, value)
556
+ send(fname, value)
559
557
  end
560
558
  end
561
559
 
562
560
  # Scan command line. We just hand any exceptions to our upper levels,
563
561
  # rather than printing help and exiting, so that we can meaningfully
564
562
  # respond with context-sensitive help if we want to. --daniel 2011-04-12
565
- option_parser.parse!(self.command_line.args)
563
+ option_parser.parse!(command_line.args)
566
564
  end
567
565
 
568
566
  def handlearg(opt, val)
@@ -37,6 +37,6 @@ module Puppet::Coercion
37
37
  # @raise
38
38
  # @api private
39
39
  def self.boolean_values
40
- ['true', 'false', 'yes', 'no']
40
+ %w[true false yes no]
41
41
  end
42
42
  end
@@ -20,7 +20,7 @@ class Puppet::Configurer::Downloader
20
20
  if first_failure
21
21
  event = (first_failure.events || []).first
22
22
  detail = event ? event.message : 'unknown'
23
- raise Puppet::Error.new(_("Failed to retrieve %{name}: %{detail}") % { name: name, detail: detail })
23
+ raise Puppet::Error, _("Failed to retrieve %{name}: %{detail}") % { name: name, detail: detail }
24
24
  end
25
25
  end
26
26
 
@@ -40,7 +40,12 @@ class Puppet::Configurer::Downloader
40
40
  end
41
41
 
42
42
  def initialize(name, path, source, ignore = nil, environment = nil, source_permissions = :ignore)
43
- @name, @path, @source, @ignore, @environment, @source_permissions = name, path, source, ignore, environment, source_permissions
43
+ @name = name
44
+ @path = path
45
+ @source = source
46
+ @ignore = ignore
47
+ @environment = environment
48
+ @source_permissions = source_permissions
44
49
  end
45
50
 
46
51
  def file
@@ -77,10 +82,10 @@ class Puppet::Configurer::Downloader
77
82
  :noop => false,
78
83
  :max_files => -1
79
84
  }
80
- if !Puppet::Util::Platform.windows?
85
+ unless Puppet::Util::Platform.windows?
81
86
  defargs[:owner] = Process.uid
82
87
  defargs[:group] = Process.gid
83
88
  end
84
- return defargs
89
+ defargs
85
90
  end
86
91
  end
@@ -13,20 +13,19 @@ module Puppet::Configurer::FactHandler
13
13
  # This works because puppet agent configures Facts to use 'facter' for
14
14
  # finding facts and the 'rest' terminus for caching them. Thus, we'll
15
15
  # compile them and then "cache" them on the server.
16
- begin
17
- facts = Puppet::Node::Facts.indirection.find(Puppet[:node_name_value], :environment => Puppet::Node::Environment.remote(@environment))
18
- unless Puppet[:node_name_fact].empty?
19
- Puppet[:node_name_value] = facts.values[Puppet[:node_name_fact]]
20
- facts.name = Puppet[:node_name_value]
21
- end
22
- facts
23
- rescue SystemExit, NoMemoryError
24
- raise
25
- rescue Exception => detail
26
- message = _("Could not retrieve local facts: %{detail}") % { detail: detail }
27
- Puppet.log_exception(detail, message)
28
- raise Puppet::Error, message, detail.backtrace
16
+
17
+ facts = Puppet::Node::Facts.indirection.find(Puppet[:node_name_value], :environment => Puppet::Node::Environment.remote(@environment))
18
+ unless Puppet[:node_name_fact].empty?
19
+ Puppet[:node_name_value] = facts.values[Puppet[:node_name_fact]]
20
+ facts.name = Puppet[:node_name_value]
29
21
  end
22
+ facts
23
+ rescue SystemExit, NoMemoryError
24
+ raise
25
+ rescue Exception => detail
26
+ message = _("Could not retrieve local facts: %{detail}") % { detail: detail }
27
+ Puppet.log_exception(detail, message)
28
+ raise Puppet::Error, message, detail.backtrace
30
29
  end
31
30
 
32
31
  def facts_for_uploading