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
@@ -74,21 +74,21 @@ module Puppet::Util::Windows::Security
74
74
  extend FFI::Library
75
75
 
76
76
  # file modes
77
- S_IRUSR = 0000400
78
- S_IRGRP = 0000040
79
- S_IROTH = 0000004
80
- S_IWUSR = 0000200
81
- S_IWGRP = 0000020
82
- S_IWOTH = 0000002
83
- S_IXUSR = 0000100
84
- S_IXGRP = 0000010
85
- S_IXOTH = 0000001
86
- S_IRWXU = 0000700
87
- S_IRWXG = 0000070
88
- S_IRWXO = 0000007
89
- S_ISVTX = 0001000
90
- S_IEXTRA = 02000000 # represents an extra ace
91
- S_ISYSTEM_MISSING = 04000000
77
+ S_IRUSR = 0o000400
78
+ S_IRGRP = 0o000040
79
+ S_IROTH = 0o000004
80
+ S_IWUSR = 0o000200
81
+ S_IWGRP = 0o000020
82
+ S_IWOTH = 0o000002
83
+ S_IXUSR = 0o000100
84
+ S_IXGRP = 0o000010
85
+ S_IXOTH = 0o000001
86
+ S_IRWXU = 0o000700
87
+ S_IRWXG = 0o000070
88
+ S_IRWXO = 0o000007
89
+ S_ISVTX = 0o001000
90
+ S_IEXTRA = 0o2000000 # represents an extra ace
91
+ S_ISYSTEM_MISSING = 0o4000000
92
92
 
93
93
  # constants that are missing from Windows::Security
94
94
  PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000
@@ -167,13 +167,13 @@ module Puppet::Util::Windows::Security
167
167
  supported = false
168
168
  root = Pathname.new(path).enum_for(:ascend).to_a.last.to_s
169
169
  # 'A trailing backslash is required'
170
- root = "#{root}\\" unless root =~ /[\/\\]$/
170
+ root = "#{root}\\" unless root =~ %r{[/\\]$}
171
171
 
172
172
  FFI::MemoryPointer.new(:pointer, 1) do |flags_ptr|
173
173
  if GetVolumeInformationW(wide_string(root), FFI::Pointer::NULL, 0,
174
174
  FFI::Pointer::NULL, FFI::Pointer::NULL,
175
175
  flags_ptr, FFI::Pointer::NULL, 0) == FFI::WIN32_FALSE
176
- raise Puppet::Util::Windows::Error.new(_("Failed to get volume information"))
176
+ raise Puppet::Util::Windows::Error, _("Failed to get volume information")
177
177
  end
178
178
 
179
179
  supported = flags_ptr.read_dword & FILE_PERSISTENT_ACLS == FILE_PERSISTENT_ACLS
@@ -314,10 +314,10 @@ module Puppet::Util::Windows::Security
314
314
 
315
315
  # With a mode value of '7' for group / other, the value must then include
316
316
  # additional perms beyond STANDARD_RIGHTS_READ to allow DACL modification
317
- if ((mode & S_IRWXG) == S_IRWXG)
317
+ if (mode & S_IRWXG) == S_IRWXG
318
318
  group_allow |= FILE::DELETE | FILE::WRITE_DAC | FILE::WRITE_OWNER
319
319
  end
320
- if ((mode & S_IRWXO) == S_IRWXO)
320
+ if (mode & S_IRWXO) == S_IRWXO
321
321
  other_allow |= FILE::DELETE | FILE::WRITE_DAC | FILE::WRITE_OWNER
322
322
  end
323
323
 
@@ -433,11 +433,11 @@ module Puppet::Util::Windows::Security
433
433
 
434
434
  Puppet::Util::Windows::SID.string_to_sid_ptr(sid) do |sid_ptr|
435
435
  if Puppet::Util::Windows::SID.IsValidSid(sid_ptr) == FFI::WIN32_FALSE
436
- raise Puppet::Util::Windows::Error.new(_("Invalid SID"))
436
+ raise Puppet::Util::Windows::Error, _("Invalid SID")
437
437
  end
438
438
 
439
439
  if AddAccessAllowedAceEx(acl, ACL_REVISION, inherit, mask, sid_ptr) == FFI::WIN32_FALSE
440
- raise Puppet::Util::Windows::Error.new(_("Failed to add access control entry"))
440
+ raise Puppet::Util::Windows::Error, _("Failed to add access control entry")
441
441
  end
442
442
  end
443
443
 
@@ -450,11 +450,11 @@ module Puppet::Util::Windows::Security
450
450
 
451
451
  Puppet::Util::Windows::SID.string_to_sid_ptr(sid) do |sid_ptr|
452
452
  if Puppet::Util::Windows::SID.IsValidSid(sid_ptr) == FFI::WIN32_FALSE
453
- raise Puppet::Util::Windows::Error.new(_("Invalid SID"))
453
+ raise Puppet::Util::Windows::Error, _("Invalid SID")
454
454
  end
455
455
 
456
456
  if AddAccessDeniedAceEx(acl, ACL_REVISION, inherit, mask, sid_ptr) == FFI::WIN32_FALSE
457
- raise Puppet::Util::Windows::Error.new(_("Failed to add access control entry"))
457
+ raise Puppet::Util::Windows::Error, _("Failed to add access control entry")
458
458
  end
459
459
  end
460
460
 
@@ -465,7 +465,7 @@ module Puppet::Util::Windows::Security
465
465
  def parse_dacl(dacl_ptr)
466
466
  # REMIND: need to handle NULL DACL
467
467
  if IsValidAcl(dacl_ptr) == FFI::WIN32_FALSE
468
- raise Puppet::Util::Windows::Error.new(_("Invalid DACL"))
468
+ raise Puppet::Util::Windows::Error, _("Invalid DACL")
469
469
  end
470
470
 
471
471
  dacl_struct = ACL.new(dacl_ptr)
@@ -522,7 +522,7 @@ module Puppet::Util::Windows::Security
522
522
  ) # template
523
523
 
524
524
  if handle == Puppet::Util::Windows::File::INVALID_HANDLE_VALUE
525
- raise Puppet::Util::Windows::Error.new(_("Failed to open '%{path}'") % { path: path })
525
+ raise Puppet::Util::Windows::Error, _("Failed to open '%{path}'") % { path: path }
526
526
  end
527
527
 
528
528
  begin
@@ -569,7 +569,7 @@ module Puppet::Util::Windows::Security
569
569
  if AdjustTokenPrivileges(token, FFI::WIN32_FALSE,
570
570
  token_privileges, token_privileges.size,
571
571
  FFI::MemoryPointer::NULL, FFI::MemoryPointer::NULL) == FFI::WIN32_FALSE
572
- raise Puppet::Util::Windows::Error.new(_("Failed to adjust process privileges"))
572
+ raise Puppet::Util::Windows::Error, _("Failed to adjust process privileges")
573
573
  end
574
574
  end
575
575
  end
@@ -599,7 +599,7 @@ module Puppet::Util::Windows::Security
599
599
  FFI::Pointer::NULL, # sacl
600
600
  sd_ptr_ptr
601
601
  ) # sec desc
602
- raise Puppet::Util::Windows::Error.new(_("Failed to get security information")) if rv != FFI::ERROR_SUCCESS
602
+ raise Puppet::Util::Windows::Error, _("Failed to get security information") if rv != FFI::ERROR_SUCCESS
603
603
 
604
604
  # these 2 convenience params are not freed since they point inside sd_ptr
605
605
  owner = Puppet::Util::Windows::SID.sid_ptr_to_string(owner_sid_ptr_ptr.get_pointer(0))
@@ -609,7 +609,7 @@ module Puppet::Util::Windows::Security
609
609
  FFI::MemoryPointer.new(:dword, 1) do |revision|
610
610
  sd_ptr_ptr.read_win32_local_pointer do |sd_ptr|
611
611
  if GetSecurityDescriptorControl(sd_ptr, control, revision) == FFI::WIN32_FALSE
612
- raise Puppet::Util::Windows::Error.new(_("Failed to get security descriptor control"))
612
+ raise Puppet::Util::Windows::Error, _("Failed to get security descriptor control")
613
613
  end
614
614
 
615
615
  protect = (control.read_word & SE_DACL_PROTECTED) == SE_DACL_PROTECTED
@@ -642,11 +642,11 @@ module Puppet::Util::Windows::Security
642
642
  def set_security_descriptor(path, sd)
643
643
  FFI::MemoryPointer.new(:byte, get_max_generic_acl_size(sd.dacl.count)) do |acl_ptr|
644
644
  if InitializeAcl(acl_ptr, acl_ptr.size, ACL_REVISION) == FFI::WIN32_FALSE
645
- raise Puppet::Util::Windows::Error.new(_("Failed to initialize ACL"))
645
+ raise Puppet::Util::Windows::Error, _("Failed to initialize ACL")
646
646
  end
647
647
 
648
648
  if IsValidAcl(acl_ptr) == FFI::WIN32_FALSE
649
- raise Puppet::Util::Windows::Error.new(_("Invalid DACL"))
649
+ raise Puppet::Util::Windows::Error, _("Invalid DACL")
650
650
  end
651
651
 
652
652
  with_privilege(SE_BACKUP_NAME) do
@@ -681,7 +681,7 @@ module Puppet::Util::Windows::Security
681
681
  FFI::MemoryPointer::NULL)
682
682
 
683
683
  if rv != FFI::ERROR_SUCCESS
684
- raise Puppet::Util::Windows::Error.new(_("Failed to set security information"))
684
+ raise Puppet::Util::Windows::Error, _("Failed to set security information")
685
685
  end
686
686
  end
687
687
  end
@@ -111,7 +111,7 @@ module Puppet::Util::Windows
111
111
  end
112
112
  end
113
113
  if state.nil?
114
- raise Puppet::Error.new(_("Unknown Service state '%{current_state}' for '%{service_name}'") % { current_state: state.to_s, service_name: service_name })
114
+ raise Puppet::Error, _("Unknown Service state '%{current_state}' for '%{service_name}'") % { current_state: state.to_s, service_name: service_name }
115
115
  end
116
116
 
117
117
  state
@@ -139,7 +139,7 @@ module Puppet::Util::Windows
139
139
  end
140
140
  end
141
141
  if start_type.nil?
142
- raise Puppet::Error.new(_("Unknown start type '%{start_type}' for '%{service_name}'") % { start_type: start_type.to_s, service_name: service_name })
142
+ raise Puppet::Error, _("Unknown start type '%{start_type}' for '%{service_name}'") % { start_type: start_type.to_s, service_name: service_name }
143
143
  end
144
144
 
145
145
  start_type
@@ -190,7 +190,7 @@ module Puppet::Util::Windows
190
190
  FFI::Pointer::NULL # lpDisplayName
191
191
  )
192
192
  if success == FFI::WIN32_FALSE
193
- raise Puppet::Util::Windows::Error.new(_("Failed to update service configuration"))
193
+ raise Puppet::Util::Windows::Error, _("Failed to update service configuration")
194
194
  end
195
195
  end
196
196
 
@@ -255,7 +255,7 @@ module Puppet::Util::Windows
255
255
  FFI::Pointer::NULL
256
256
  )
257
257
  if success == FFI::WIN32_FALSE
258
- raise Puppet::Util::Windows::Error.new(_("Failed to fetch services"))
258
+ raise Puppet::Util::Windows::Error, _("Failed to fetch services")
259
259
  end
260
260
 
261
261
  # Now that the buffer is populated with services
@@ -305,7 +305,7 @@ module Puppet::Util::Windows
305
305
  result = nil
306
306
  open_scm(scm_access) do |scm|
307
307
  service = OpenServiceW(scm, wide_string(service_name), service_access)
308
- raise Puppet::Util::Windows::Error.new(_("Failed to open a handle to the service")) if service == FFI::Pointer::NULL_HANDLE
308
+ raise Puppet::Util::Windows::Error, _("Failed to open a handle to the service") if service == FFI::Pointer::NULL_HANDLE
309
309
 
310
310
  result = yield service
311
311
  end
@@ -323,7 +323,7 @@ module Puppet::Util::Windows
323
323
  # @param [Integer] scm_access code corresponding to the access type requested for the scm
324
324
  def open_scm(scm_access, &block)
325
325
  scm = OpenSCManagerW(FFI::Pointer::NULL, FFI::Pointer::NULL, scm_access)
326
- raise Puppet::Util::Windows::Error.new(_("Failed to open a handle to the service control manager")) if scm == FFI::Pointer::NULL_HANDLE
326
+ raise Puppet::Util::Windows::Error, _("Failed to open a handle to the service control manager") if scm == FFI::Pointer::NULL_HANDLE
327
327
 
328
328
  yield scm
329
329
  ensure
@@ -439,7 +439,7 @@ module Puppet::Util::Windows
439
439
  bytes_pointer
440
440
  )
441
441
  if success == FFI::WIN32_FALSE
442
- raise Puppet::Util::Windows::Error.new(_("Service query failed"))
442
+ raise Puppet::Util::Windows::Error, _("Service query failed")
443
443
  end
444
444
 
445
445
  yield status
@@ -476,7 +476,7 @@ module Puppet::Util::Windows
476
476
  bytes_pointer
477
477
  )
478
478
  if success == FFI::WIN32_FALSE
479
- raise Puppet::Util::Windows::Error.new(_("Service query failed"))
479
+ raise Puppet::Util::Windows::Error, _("Service query failed")
480
480
  end
481
481
 
482
482
  yield config
@@ -520,7 +520,7 @@ module Puppet::Util::Windows
520
520
  bytes_pointer
521
521
  )
522
522
  if success == FFI::WIN32_FALSE
523
- raise Puppet::Util::Windows::Error.new(_("Service query for %{parameter_name} failed") % { parameter_name: SERVICE_CONFIG_TYPES[info_level] })
523
+ raise Puppet::Util::Windows::Error, _("Service query for %{parameter_name} failed") % { parameter_name: SERVICE_CONFIG_TYPES[info_level] }
524
524
  end
525
525
 
526
526
  yield config
@@ -541,10 +541,10 @@ module Puppet::Util::Windows
541
541
  success = ChangeServiceConfig2W(
542
542
  service,
543
543
  change, # dwInfoLevel
544
- value, # lpInfo
544
+ value # lpInfo
545
545
  )
546
546
  if success == FFI::WIN32_FALSE
547
- raise Puppet::Util.windows::Error.new(_("Failed to update service %{change} configuration") % { change: change })
547
+ raise Puppet::Util.windows::Error, _("Failed to update service %{change} configuration") % { change: change }
548
548
  end
549
549
  end
550
550
  end
@@ -86,7 +86,7 @@ module Puppet::Util::Windows
86
86
 
87
87
  raw_sid_bytes ? Principal.lookup_account_sid(raw_sid_bytes) : Principal.lookup_account_name(name)
88
88
  rescue => e
89
- Puppet.debug("#{e.message}")
89
+ Puppet.debug(e.message.to_s)
90
90
  (allow_unresolved && raw_sid_bytes) ? unresolved_principal(name, raw_sid_bytes) : nil
91
91
  end
92
92
  module_function :name_to_principal
@@ -99,7 +99,7 @@ module Puppet::Util::Windows
99
99
  # This method returns a SID::Principal with the account, domain, SID, etc
100
100
  def octet_string_to_principal(bytes)
101
101
  if !bytes || !bytes.respond_to?('pack') || bytes.empty?
102
- raise Puppet::Util::Windows::Error.new(_("Octet string must be an array of bytes"))
102
+ raise Puppet::Util::Windows::Error, _("Octet string must be an array of bytes")
103
103
  end
104
104
 
105
105
  Principal.lookup_account_sid(bytes)
@@ -116,7 +116,7 @@ module Puppet::Util::Windows
116
116
  def ads_to_principal(ads_object)
117
117
  if !ads_object || !ads_object.respond_to?(:ole_respond_to?) ||
118
118
  !ads_object.ole_respond_to?(:objectSID) || !ads_object.ole_respond_to?(:Name)
119
- raise Puppet::Error.new("ads_object must be an IAdsUser or IAdsGroup instance")
119
+ raise Puppet::Error, "ads_object must be an IAdsUser or IAdsGroup instance"
120
120
  end
121
121
 
122
122
  octet_string_to_principal(ads_object.objectSID)
@@ -160,18 +160,18 @@ module Puppet::Util::Windows
160
160
  # Convert a SID pointer to a SID string, e.g. "S-1-5-32-544".
161
161
  def sid_ptr_to_string(psid)
162
162
  if !psid.is_a?(FFI::Pointer) || IsValidSid(psid) == FFI::WIN32_FALSE
163
- raise Puppet::Util::Windows::Error.new(_("Invalid SID"))
163
+ raise Puppet::Util::Windows::Error, _("Invalid SID")
164
164
  end
165
165
 
166
166
  sid_string = nil
167
167
  FFI::MemoryPointer.new(:pointer, 1) do |buffer_ptr|
168
168
  if ConvertSidToStringSidW(psid, buffer_ptr) == FFI::WIN32_FALSE
169
- raise Puppet::Util::Windows::Error.new(_("Failed to convert binary SID"))
169
+ raise Puppet::Util::Windows::Error, _("Failed to convert binary SID")
170
170
  end
171
171
 
172
172
  buffer_ptr.read_win32_local_pointer do |wide_string_ptr|
173
173
  if wide_string_ptr.null?
174
- raise Puppet::Error.new(_("ConvertSidToStringSidW failed to allocate buffer for sid"))
174
+ raise Puppet::Error, _("ConvertSidToStringSidW failed to allocate buffer for sid")
175
175
  end
176
176
 
177
177
  sid_string = wide_string_ptr.read_arbitrary_wide_string_up_to(MAXIMUM_SID_STRING_LENGTH)
@@ -190,7 +190,7 @@ module Puppet::Util::Windows
190
190
  FFI::MemoryPointer.from_string_to_wide_string(string_sid) do |lpcwstr|
191
191
  FFI::MemoryPointer.new(:pointer, 1) do |sid_ptr_ptr|
192
192
  if ConvertStringSidToSidW(lpcwstr, sid_ptr_ptr) == FFI::WIN32_FALSE
193
- raise Puppet::Util::Windows::Error.new(_("Failed to convert string SID: %{string_sid}") % { string_sid: string_sid })
193
+ raise Puppet::Util::Windows::Error, _("Failed to convert string SID: %{string_sid}") % { string_sid: string_sid }
194
194
  end
195
195
 
196
196
  sid_ptr_ptr.read_win32_local_pointer do |sid_ptr|
@@ -221,7 +221,7 @@ module Puppet::Util::Windows
221
221
  def get_length_sid(sid_ptr)
222
222
  # MSDN states IsValidSid should be called on pointer first
223
223
  if !sid_ptr.is_a?(FFI::Pointer) || IsValidSid(sid_ptr) == FFI::WIN32_FALSE
224
- raise Puppet::Util::Windows::Error.new(_("Invalid SID"))
224
+ raise Puppet::Util::Windows::Error, _("Invalid SID")
225
225
  end
226
226
 
227
227
  GetLengthSid(sid_ptr)
@@ -13,7 +13,7 @@ module Puppet::Util::Windows::User
13
13
 
14
14
  # if Vista or later, check for unrestricted process token
15
15
  elevated_supported = Puppet::Util::Windows::Process.supports_elevated_security?
16
- return elevated_supported ? Puppet::Util::Windows::Process.elevated_security? : true
16
+ elevated_supported ? Puppet::Util::Windows::Process.elevated_security? : true
17
17
  end
18
18
  module_function :admin?
19
19
 
@@ -52,17 +52,17 @@ module Puppet::Util::Windows::User
52
52
  size_pointer.write_uint32(SECURITY_MAX_SID_SIZE)
53
53
 
54
54
  if CreateWellKnownSid(:WinBuiltinAdministratorsSid, FFI::Pointer::NULL, sid_pointer, size_pointer) == FFI::WIN32_FALSE
55
- raise Puppet::Util::Windows::Error.new(_("Failed to create administrators SID"))
55
+ raise Puppet::Util::Windows::Error, _("Failed to create administrators SID")
56
56
  end
57
57
  end
58
58
 
59
59
  if IsValidSid(sid_pointer) == FFI::WIN32_FALSE
60
- raise Puppet::Util::Windows::Error.new(_("Invalid SID"))
60
+ raise Puppet::Util::Windows::Error, _("Invalid SID")
61
61
  end
62
62
 
63
63
  FFI::MemoryPointer.new(:win32_bool, 1) do |ismember_pointer|
64
64
  if CheckTokenMembership(FFI::Pointer::NULL_HANDLE, sid_pointer, ismember_pointer) == FFI::WIN32_FALSE
65
- raise Puppet::Util::Windows::Error.new(_("Failed to check membership"))
65
+ raise Puppet::Util::Windows::Error, _("Failed to check membership")
66
66
  end
67
67
 
68
68
  # Is administrators SID enabled in calling thread's access token?
@@ -75,18 +75,16 @@ module Puppet::Util::Windows::User
75
75
  module_function :check_token_membership
76
76
 
77
77
  def password_is?(name, password, domain = '.')
78
- begin
79
- logon_user(name, password, domain) { |token| }
80
- rescue Puppet::Util::Windows::Error => detail
81
- authenticated_error_codes = Set[
82
- ERROR_ACCOUNT_RESTRICTION,
83
- ERROR_INVALID_LOGON_HOURS,
84
- ERROR_INVALID_WORKSTATION,
85
- ERROR_ACCOUNT_DISABLED,
86
- ]
87
-
88
- return authenticated_error_codes.include?(detail.code)
89
- end
78
+ logon_user(name, password, domain) { |token| }
79
+ rescue Puppet::Util::Windows::Error => detail
80
+ authenticated_error_codes = Set[
81
+ ERROR_ACCOUNT_RESTRICTION,
82
+ ERROR_INVALID_LOGON_HOURS,
83
+ ERROR_INVALID_WORKSTATION,
84
+ ERROR_ACCOUNT_DISABLED,
85
+ ]
86
+
87
+ authenticated_error_codes.include?(detail.code)
90
88
  end
91
89
  module_function :password_is?
92
90
 
@@ -101,7 +99,7 @@ module Puppet::Util::Windows::User
101
99
  # try logon using network else try logon using interactive mode
102
100
  if logon_user_by_logon_type(name, domain, password, fLOGON32_LOGON_NETWORK, fLOGON32_PROVIDER_DEFAULT, token_pointer) == FFI::WIN32_FALSE
103
101
  if logon_user_by_logon_type(name, domain, password, fLOGON32_LOGON_INTERACTIVE, fLOGON32_PROVIDER_DEFAULT, token_pointer) == FFI::WIN32_FALSE
104
- raise Puppet::Util::Windows::Error.new(_("Failed to logon user %{name}") % { name: name.inspect })
102
+ raise Puppet::Util::Windows::Error, _("Failed to logon user %{name}") % { name: name.inspect }
105
103
  end
106
104
  end
107
105
 
@@ -132,13 +130,13 @@ module Puppet::Util::Windows::User
132
130
 
133
131
  # Load the profile. Since it doesn't exist, it will be created
134
132
  if LoadUserProfileW(token, pi.pointer) == FFI::WIN32_FALSE
135
- raise Puppet::Util::Windows::Error.new(_("Failed to load user profile %{user}") % { user: user.inspect })
133
+ raise Puppet::Util::Windows::Error, _("Failed to load user profile %{user}") % { user: user.inspect }
136
134
  end
137
135
 
138
136
  Puppet.debug("Loaded profile for #{user}")
139
137
 
140
138
  if UnloadUserProfile(token, pi[:hProfile]) == FFI::WIN32_FALSE
141
- raise Puppet::Util::Windows::Error.new(_("Failed to unload user profile %{user}") % { user: user.inspect })
139
+ raise Puppet::Util::Windows::Error, _("Failed to unload user profile %{user}") % { user: user.inspect }
142
140
  end
143
141
  end
144
142
  end
@@ -260,7 +258,7 @@ module Puppet::Util::Windows::User
260
258
  "The RPC server is unavailable or given domain name is invalid."
261
259
  end
262
260
 
263
- raise Puppet::Error.new("Calling `#{method_name}` returned 'Win32 Error Code 0x%08X'. #{error_reason}" % error_code)
261
+ raise Puppet::Error, "Calling `#{method_name}` returned 'Win32 Error Code 0x%08X'. #{error_reason}" % error_code
264
262
  end
265
263
  private_class_method :check_lsa_nt_status_and_raise_failures
266
264
 
@@ -60,7 +60,7 @@ module Puppet::Util::Yaml
60
60
  end
61
61
 
62
62
  def self.dump(structure, filename)
63
- Puppet::FileSystem.replace_file(filename, 0660) do |fh|
63
+ Puppet::FileSystem.replace_file(filename, 0o660) do |fh|
64
64
  YAML.dump(structure, fh)
65
65
  end
66
66
  end
data/lib/puppet/util.rb CHANGED
@@ -190,7 +190,7 @@ module Util
190
190
  yield
191
191
  }
192
192
  object.send(level, msg % { seconds: "%0.2f" % seconds })
193
- return seconds
193
+ seconds
194
194
  else
195
195
  yield
196
196
  end
@@ -211,33 +211,31 @@ module Util
211
211
  exts = ENV.fetch('PATHEXT', nil)
212
212
  exts = exts ? exts.split(File::PATH_SEPARATOR) : %w[.COM .EXE .BAT .CMD]
213
213
  ENV.fetch('PATH').split(File::PATH_SEPARATOR).each do |dir|
214
- begin
215
- dest = File.expand_path(File.join(dir, bin))
216
- rescue ArgumentError => e
217
- # if the user's PATH contains a literal tilde (~) character and HOME is not set, we may get
218
- # an ArgumentError here. Let's check to see if that is the case; if not, re-raise whatever error
219
- # was thrown.
220
- if e.to_s =~ /HOME/ and (ENV['HOME'].nil? || ENV.fetch('HOME', nil) == "")
221
- # if we get here they have a tilde in their PATH. We'll issue a single warning about this and then
222
- # ignore this path element and carry on with our lives.
223
- # TRANSLATORS PATH and HOME are environment variables and should not be translated
224
- Puppet::Util::Warnings.warnonce(_("PATH contains a ~ character, and HOME is not set; ignoring PATH element '%{dir}'.") % { dir: dir })
225
- elsif e.to_s =~ /doesn't exist|can't find user/
226
- # ...otherwise, we just skip the non-existent entry, and do nothing.
227
- # TRANSLATORS PATH is an environment variable and should not be translated
228
- Puppet::Util::Warnings.warnonce(_("Couldn't expand PATH containing a ~ character; ignoring PATH element '%{dir}'.") % { dir: dir })
229
- else
230
- raise
231
- end
214
+ dest = File.expand_path(File.join(dir, bin))
215
+ rescue ArgumentError => e
216
+ # if the user's PATH contains a literal tilde (~) character and HOME is not set, we may get
217
+ # an ArgumentError here. Let's check to see if that is the case; if not, re-raise whatever error
218
+ # was thrown.
219
+ if e.to_s =~ /HOME/ and (ENV['HOME'].nil? || ENV.fetch('HOME', nil) == "")
220
+ # if we get here they have a tilde in their PATH. We'll issue a single warning about this and then
221
+ # ignore this path element and carry on with our lives.
222
+ # TRANSLATORS PATH and HOME are environment variables and should not be translated
223
+ Puppet::Util::Warnings.warnonce(_("PATH contains a ~ character, and HOME is not set; ignoring PATH element '%{dir}'.") % { dir: dir })
224
+ elsif e.to_s =~ /doesn't exist|can't find user/
225
+ # ...otherwise, we just skip the non-existent entry, and do nothing.
226
+ # TRANSLATORS PATH is an environment variable and should not be translated
227
+ Puppet::Util::Warnings.warnonce(_("Couldn't expand PATH containing a ~ character; ignoring PATH element '%{dir}'.") % { dir: dir })
232
228
  else
233
- if Puppet::Util::Platform.windows? && File.extname(dest).empty?
234
- exts.each do |ext|
235
- destext = File.expand_path(dest + ext)
236
- return destext if FileTest.file? destext and FileTest.executable? destext
237
- end
229
+ raise
230
+ end
231
+ else
232
+ if Puppet::Util::Platform.windows? && File.extname(dest).empty?
233
+ exts.each do |ext|
234
+ destext = File.expand_path(dest + ext)
235
+ return destext if FileTest.file? destext and FileTest.executable? destext
238
236
  end
239
- return dest if FileTest.file? dest and FileTest.executable? dest
240
237
  end
238
+ return dest if FileTest.file? dest and FileTest.executable? dest
241
239
  end
242
240
  end
243
241
  nil
@@ -250,8 +248,8 @@ module Util
250
248
  # Escape once for the string literal, and once for the regex.
251
249
  slash = '[\\\\/]'
252
250
  label = '[^\\\\/]+'
253
- AbsolutePathWindows = %r!^(?:(?:[A-Z]:#{slash})|(?:#{slash}#{slash}#{label}#{slash}#{label})|(?:#{slash}#{slash}\?#{slash}#{label}))!io
254
- AbsolutePathPosix = %r!^/!
251
+ AbsolutePathWindows = /^(?:(?:[A-Z]:#{slash})|(?:#{slash}#{slash}#{label}#{slash}#{label})|(?:#{slash}#{slash}\?#{slash}#{label}))/io
252
+ AbsolutePathPosix = %r{^/}
255
253
  def absolute_path?(path, platform = nil)
256
254
  unless path.is_a?(String)
257
255
  Puppet.warning("Cannot check if #{path} is an absolute path because it is a '#{path.class}' and not a String'")
@@ -288,11 +286,11 @@ module Util
288
286
  if Puppet::Util::Platform.windows?
289
287
  path = path.tr('\\', '/')
290
288
 
291
- unc = /^\/\/([^\/]+)(\/.+)/.match(path)
289
+ unc = %r{^//([^/]+)(/.+)}.match(path)
292
290
  if unc
293
291
  params[:host] = unc[1]
294
292
  path = unc[2]
295
- elsif path =~ /^[a-z]:\//i
293
+ elsif path =~ %r{^[a-z]:/}i
296
294
  path = '/' + path
297
295
  end
298
296
  end
@@ -324,7 +322,7 @@ module Util
324
322
  if uri.host && !uri.host.empty?
325
323
  path = "//#{uri.host}" + path # UNC
326
324
  else
327
- path.sub!(/^\//, '')
325
+ path.sub!(%r{^/}, '')
328
326
  end
329
327
  end
330
328
 
@@ -332,7 +330,7 @@ module Util
332
330
  end
333
331
  module_function :uri_to_path
334
332
 
335
- RFC_3986_URI_REGEX = /^(?<scheme>(?:[^:\/?#]+):)?(?<authority>\/\/(?:[^\/?#]*))?(?<path>[^?#]*)(?:\?(?<query>[^#]*))?(?:#(?<fragment>.*))?$/
333
+ RFC_3986_URI_REGEX = %r{^(?<scheme>(?:[^:/?#]+):)?(?<authority>//(?:[^/?#]*))?(?<path>[^?#]*)(?:\?(?<query>[^#]*))?(?:#(?<fragment>.*))?$}
336
334
 
337
335
  # Percent-encodes a URI query parameter per RFC3986 - https://tools.ietf.org/html/rfc3986
338
336
  #
@@ -407,7 +405,7 @@ module Util
407
405
  # query will encode + as %2B and space as %20
408
406
  # fragment behaves like query
409
407
  def uri_encode(path, opts = { :allow_fragment => false })
410
- raise ArgumentError.new(_('path may not be nil')) if path.nil?
408
+ raise ArgumentError, _('path may not be nil') if path.nil?
411
409
 
412
410
  encoded = ''.dup
413
411
 
@@ -425,7 +423,7 @@ module Util
425
423
  encoded += rfc2396_escape(parts[:path]) unless parts[:path].nil?
426
424
 
427
425
  # each query parameter
428
- if !parts[:query].nil?
426
+ unless parts[:query].nil?
429
427
  query_string = parts[:query].split('&').map do |pair|
430
428
  # can optionally be separated by an =
431
429
  pair.split('=').map do |v|
@@ -465,12 +463,12 @@ module Util
465
463
  def uri_unescape(str)
466
464
  enc = str.encoding
467
465
  enc = Encoding::UTF_8 if enc == Encoding::US_ASCII
468
- str.gsub(ESCAPED) { [$&[1, 2]].pack('H2').force_encoding(enc) }
466
+ str.gsub(ESCAPED) { [::Regexp.last_match(0)[1, 2]].pack('H2').force_encoding(enc) }
469
467
  end
470
468
  module_function :uri_unescape
471
469
 
472
470
  def safe_posix_fork(stdin = $stdin, stdout = $stdout, stderr = $stderr, &block)
473
- child_pid = Kernel.fork do
471
+ Kernel.fork do
474
472
  STDIN.reopen(stdin)
475
473
  STDOUT.reopen(stdout)
476
474
  STDERR.reopen(stderr)
@@ -482,16 +480,25 @@ module Util
482
480
  begin
483
481
  Dir.foreach('/proc/self/fd') do |f|
484
482
  if f != '.' && f != '..' && f.to_i >= 3
485
- IO.new(f.to_i).close rescue nil
483
+ begin
484
+ IO.new(f.to_i).close
485
+ rescue
486
+ nil
487
+ end
486
488
  end
487
489
  end
488
490
  rescue Errno::ENOENT, Errno::ENOTDIR # /proc/self/fd not found, /proc/self not a dir
489
- 3.upto(256) { |fd| IO.new(fd).close rescue nil }
491
+ 3.upto(256) { |fd|
492
+ begin
493
+ IO.new(fd).close
494
+ rescue
495
+ nil
496
+ end
497
+ }
490
498
  end
491
499
 
492
500
  block.call if block
493
501
  end
494
- child_pid
495
502
  end
496
503
  module_function :safe_posix_fork
497
504
 
@@ -507,11 +514,9 @@ module Util
507
514
 
508
515
  # Just benchmark, with no logging.
509
516
  def thinmark
510
- seconds = Benchmark.realtime {
517
+ Benchmark.realtime {
511
518
  yield
512
519
  }
513
-
514
- seconds
515
520
  end
516
521
 
517
522
  module_function :thinmark
@@ -545,7 +550,11 @@ module Util
545
550
  def self.resolve_stackframe(frame)
546
551
  _, path, rest = /^(.*):(\d+.*)$/.match(frame).to_a
547
552
  if path
548
- path = Pathname(path).realpath rescue path
553
+ path = begin
554
+ Pathname(path).realpath
555
+ rescue
556
+ path
557
+ end
549
558
  "#{path}:#{rest}"
550
559
  else
551
560
  frame
@@ -579,7 +588,7 @@ module Util
579
588
  # The staging_location is a location to render the temporary file before
580
589
  # moving the file to it's final location.
581
590
 
582
- DEFAULT_POSIX_MODE = 0644
591
+ DEFAULT_POSIX_MODE = 0o644
583
592
  DEFAULT_WINDOWS_MODE = nil
584
593
 
585
594
  def replace_file(file, default_mode, staging_location: nil, validate_callback: nil, &block)
@@ -608,7 +617,7 @@ module Util
608
617
  end
609
618
 
610
619
  effective_mode =
611
- if !Puppet::Util::Platform.windows?
620
+ unless Puppet::Util::Platform.windows?
612
621
  # Grab the current file mode, and fall back to the defaults.
613
622
 
614
623
  if Puppet::FileSystem.exist?(file)
@@ -626,7 +635,7 @@ module Util
626
635
  if effective_mode
627
636
  # We only care about the bottom four slots, which make the real mode,
628
637
  # and not the rest of the platform stat call fluff and stuff.
629
- tempfile.chmod(effective_mode & 07777)
638
+ tempfile.chmod(effective_mode & 0o7777)
630
639
  end
631
640
 
632
641
  # Now, make sure the data (which includes the mode) is safe on disk.
@@ -651,7 +660,7 @@ module Util
651
660
 
652
661
  if Puppet::Util::Platform.windows?
653
662
  # Windows ReplaceFile needs a file to exist, so touch handles this
654
- if !Puppet::FileSystem.exist?(file)
663
+ unless Puppet::FileSystem.exist?(file)
655
664
  Puppet::FileSystem.touch(file)
656
665
  if mode
657
666
  Puppet::Util::Windows::Security.set_mode(mode, Puppet::FileSystem.path_string(file))