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
@@ -24,19 +24,15 @@ module Puppet::Util::Windows::ADSI
24
24
  extend FFI::Library
25
25
 
26
26
  def connectable?(uri)
27
- begin
28
- !!connect(uri)
29
- rescue
30
- false
31
- end
27
+ !!connect(uri)
28
+ rescue
29
+ false
32
30
  end
33
31
 
34
32
  def connect(uri)
35
- begin
36
- WIN32OLE.connect(uri)
37
- rescue WIN32OLERuntimeError => e
38
- raise Puppet::Error.new(_("ADSI connection error: %{e}") % { e: e }, e)
39
- end
33
+ WIN32OLE.connect(uri)
34
+ rescue WIN32OLERuntimeError => e
35
+ raise Puppet::Error.new(_("ADSI connection error: %{e}") % { e: e }, e)
40
36
  end
41
37
 
42
38
  def create(name, resource_type)
@@ -58,7 +54,7 @@ module Puppet::Util::Windows::ADSI
58
54
  buffer_size.write_dword(max_length) # length in TCHARs
59
55
 
60
56
  if GetComputerNameW(buffer, buffer_size) == FFI::WIN32_FALSE
61
- raise Puppet::Util::Windows::Error.new(_("Failed to get computer name"))
57
+ raise Puppet::Util::Windows::Error, _("Failed to get computer name")
62
58
  end
63
59
 
64
60
  @computer_name = buffer.read_wide_string(buffer_size.read_dword)
@@ -97,7 +93,7 @@ module Puppet::Util::Windows::ADSI
97
93
  # used for IAdsGroup::Add / IAdsGroup::Remove. These URIs are not useable
98
94
  # to resolve an account with WIN32OLE.connect
99
95
  def sid_uri(sid)
100
- raise Puppet::Error.new(_("Must use a valid SID::Principal")) if !sid.is_a?(Puppet::Util::Windows::SID::Principal)
96
+ raise Puppet::Error, _("Must use a valid SID::Principal") unless sid.is_a?(Puppet::Util::Windows::SID::Principal)
101
97
 
102
98
  "WinNT://#{sid.sid}"
103
99
  end
@@ -161,15 +157,15 @@ module Puppet::Util::Windows::ADSI
161
157
  end
162
158
 
163
159
  def parse_name(name)
164
- if name =~ /\//
165
- raise Puppet::Error.new(_("Value must be in DOMAIN\\%{object_class} style syntax") % { object_class: @object_class })
160
+ if name =~ %r{/}
161
+ raise Puppet::Error, _("Value must be in DOMAIN\\%{object_class} style syntax") % { object_class: @object_class }
166
162
  end
167
163
 
168
164
  matches = name.scan(/((.*)\\)?(.*)/)
169
165
  domain = matches[0][1] || '.'
170
166
  account = matches[0][2]
171
167
 
172
- return account, domain
168
+ [account, domain]
173
169
  end
174
170
 
175
171
  # returns Puppet::Util::Windows::SID::Principal[]
@@ -195,7 +191,7 @@ module Puppet::Util::Windows::ADSI
195
191
 
196
192
  sids = names.map do |name|
197
193
  sid = Puppet::Util::Windows::SID.name_to_principal(name, allow_unresolved)
198
- raise Puppet::Error.new(_("Could not resolve name: %{name}") % { name: name }) if !sid
194
+ raise Puppet::Error, _("Could not resolve name: %{name}") % { name: name } unless sid
199
195
 
200
196
  [sid.sid, sid]
201
197
  end
@@ -292,9 +288,7 @@ module Puppet::Util::Windows::ADSI
292
288
  rescue WIN32OLERuntimeError => e
293
289
  # ERROR_BAD_USERNAME 2202L from winerror.h
294
290
  if e.message =~ /8007089A/m
295
- raise Puppet::Error.new(
296
- _("Puppet is not able to create/delete domain %{object_class} objects with the %{object_class} resource.") % { object_class: object_class },
297
- )
291
+ raise Puppet::Error, _("Puppet is not able to create/delete domain %{object_class} objects with the %{object_class} resource.") % { object_class: object_class }
298
292
  end
299
293
 
300
294
  raise Puppet::Error.new(_("%{object_class} update failed: %{error}") % { object_class: object_class.capitalize, error: e }, e)
@@ -323,7 +317,7 @@ module Puppet::Util::Windows::ADSI
323
317
 
324
318
  def create(name)
325
319
  # Windows error 1379: The specified local group already exists.
326
- raise Puppet::Error.new(_("Cannot create user if group '%{name}' exists.") % { name: name }) if Puppet::Util::Windows::ADSI::Group.exists? name
320
+ raise Puppet::Error, _("Cannot create user if group '%{name}' exists.") % { name: name } if Puppet::Util::Windows::ADSI::Group.exists? name
327
321
 
328
322
  new(name, Puppet::Util::Windows::ADSI.create(name, @object_class))
329
323
  end
@@ -334,7 +328,11 @@ module Puppet::Util::Windows::ADSI
334
328
  end
335
329
 
336
330
  def add_flag(flag_name, value)
337
- flag = native_object.Get(flag_name) rescue 0
331
+ flag = begin
332
+ native_object.Get(flag_name)
333
+ rescue
334
+ 0
335
+ end
338
336
 
339
337
  native_object.Put(flag_name, flag | value)
340
338
 
@@ -342,7 +340,7 @@ module Puppet::Util::Windows::ADSI
342
340
  end
343
341
 
344
342
  def password=(password)
345
- if !password.nil?
343
+ unless password.nil?
346
344
  native_object.SetPassword(password)
347
345
  commit
348
346
  end
@@ -356,7 +354,11 @@ module Puppet::Util::Windows::ADSI
356
354
  # WIN32OLE objects aren't enumerable, so no map
357
355
  groups = []
358
356
  # Setting WIN32OLE.codepage ensures values are returned as UTF-8
359
- native_object.Groups.each { |g| groups << g.Name } rescue nil
357
+ begin
358
+ native_object.Groups.each { |g| groups << g.Name }
359
+ rescue
360
+ nil
361
+ end
360
362
  groups
361
363
  end
362
364
 
@@ -375,12 +377,12 @@ module Puppet::Util::Windows::ADSI
375
377
  alias remove_from_group remove_from_groups
376
378
 
377
379
  def add_group_sids(*sids)
378
- group_names = sids.map { |s| s.domain_account }
380
+ group_names = sids.map(&:domain_account)
379
381
  add_to_groups(*group_names)
380
382
  end
381
383
 
382
384
  def remove_group_sids(*sids)
383
- group_names = sids.map { |s| s.domain_account }
385
+ group_names = sids.map(&:domain_account)
384
386
  remove_from_groups(*group_names)
385
387
  end
386
388
 
@@ -397,18 +399,18 @@ module Puppet::Util::Windows::ADSI
397
399
 
398
400
  desired_groups = desired_groups.split(',').map(&:strip)
399
401
 
400
- current_hash = self.group_sids.to_h { |sid| [sid.sid, sid] }
402
+ current_hash = group_sids.to_h { |sid| [sid.sid, sid] }
401
403
  desired_hash = self.class.name_sid_hash(desired_groups)
402
404
 
403
405
  # First we add the user to all the groups it should be in but isn't
404
- if !desired_groups.empty?
406
+ unless desired_groups.empty?
405
407
  groups_to_add = (desired_hash.keys - current_hash.keys).map { |sid| desired_hash[sid] }
406
408
  add_group_sids(*groups_to_add)
407
409
  end
408
410
 
409
411
  # Then we remove the user from all groups it is in but shouldn't be, if
410
412
  # that's been requested
411
- if !minimum
413
+ unless minimum
412
414
  if desired_hash.empty?
413
415
  groups_to_remove = current_hash.values
414
416
  else
@@ -508,7 +510,7 @@ module Puppet::Util::Windows::ADSI
508
510
  buffer_size.write_dword(max_length) # length in TCHARs
509
511
 
510
512
  if GetUserNameW(buffer, buffer_size) == FFI::WIN32_FALSE
511
- raise Puppet::Util::Windows::Error.new(_("Failed to get user name"))
513
+ raise Puppet::Util::Windows::Error, _("Failed to get user name")
512
514
  end
513
515
 
514
516
  # buffer_size includes trailing NULL
@@ -583,17 +585,15 @@ module Puppet::Util::Windows::ADSI
583
585
 
584
586
  class UserProfile
585
587
  def self.delete(sid)
586
- begin
587
- Puppet::Util::Windows::ADSI.wmi_connection.Delete("Win32_UserProfile.SID='#{sid}'")
588
- rescue WIN32OLERuntimeError => e
589
- # https://social.technet.microsoft.com/Forums/en/ITCG/thread/0f190051-ac96-4bf1-a47f-6b864bfacee5
590
- # Prior to Vista SP1, there's no built-in way to programmatically
591
- # delete user profiles (except for delprof.exe). So try to delete
592
- # but warn if we fail
593
- raise e unless e.message.include?('80041010')
588
+ Puppet::Util::Windows::ADSI.wmi_connection.Delete("Win32_UserProfile.SID='#{sid}'")
589
+ rescue WIN32OLERuntimeError => e
590
+ # https://social.technet.microsoft.com/Forums/en/ITCG/thread/0f190051-ac96-4bf1-a47f-6b864bfacee5
591
+ # Prior to Vista SP1, there's no built-in way to programmatically
592
+ # delete user profiles (except for delprof.exe). So try to delete
593
+ # but warn if we fail
594
+ raise e unless e.message.include?('80041010')
594
595
 
595
- Puppet.warning _("Cannot delete user profile for '%{sid}' prior to Vista SP1") % { sid: sid }
596
- end
596
+ Puppet.warning _("Cannot delete user profile for '%{sid}' prior to Vista SP1") % { sid: sid }
597
597
  end
598
598
  end
599
599
 
@@ -609,7 +609,7 @@ module Puppet::Util::Windows::ADSI
609
609
 
610
610
  def create(name)
611
611
  # Windows error 2224: The account already exists.
612
- raise Puppet::Error.new(_("Cannot create group if user '%{name}' exists.") % { name: name }) if Puppet::Util::Windows::ADSI::User.exists?(name)
612
+ raise Puppet::Error, _("Cannot create group if user '%{name}' exists.") % { name: name } if Puppet::Util::Windows::ADSI::User.exists?(name)
613
613
 
614
614
  new(name, Puppet::Util::Windows::ADSI.create(name, @object_class))
615
615
  end
@@ -638,11 +638,11 @@ module Puppet::Util::Windows::ADSI
638
638
  def set_members(desired_members, inclusive = true)
639
639
  return if desired_members.nil?
640
640
 
641
- current_hash = self.member_sids.to_h { |sid| [sid.sid, sid] }
641
+ current_hash = member_sids.to_h { |sid| [sid.sid, sid] }
642
642
  desired_hash = self.class.name_sid_hash(desired_members)
643
643
 
644
644
  # First we add all missing members
645
- if !desired_hash.empty?
645
+ unless desired_hash.empty?
646
646
  members_to_add = (desired_hash.keys - current_hash.keys).map { |sid| desired_hash[sid] }
647
647
  add_member_sids(*members_to_add)
648
648
  end
@@ -74,7 +74,7 @@ module Puppet::Util::Windows
74
74
  NO_ERROR = 0
75
75
 
76
76
  # Wraps SetServiceStatus.
77
- SetTheServiceStatus = Proc.new do |dwCurrentState, dwWin32ExitCode, dwCheckPoint, dwWaitHint|
77
+ SetTheServiceStatus = proc do |dwCurrentState, dwWin32ExitCode, dwCheckPoint, dwWaitHint|
78
78
  ss = SERVICE_STATUS.new # Current status of the service.
79
79
 
80
80
  # Disable control requests until the service is started.
@@ -97,7 +97,7 @@ module Puppet::Util::Windows
97
97
  @@dwServiceState = dwCurrentState
98
98
 
99
99
  # Send status of the service to the Service Controller.
100
- if !SetServiceStatus(@@ssh, ss)
100
+ unless SetServiceStatus(@@ssh, ss)
101
101
  SetEvent(@@hStopEvent)
102
102
  end
103
103
  end
@@ -105,7 +105,7 @@ module Puppet::Util::Windows
105
105
  ERROR_CALL_NOT_IMPLEMENTED = 0x78
106
106
 
107
107
  # Handles control signals from the service control manager.
108
- Service_Ctrl_ex = Proc.new do |dwCtrlCode, _dwEventType, _lpEventData, _lpContext|
108
+ Service_Ctrl_ex = proc do |dwCtrlCode, _dwEventType, _lpEventData, _lpContext|
109
109
  @@waiting_control_code = dwCtrlCode;
110
110
  return_value = NO_ERROR
111
111
 
@@ -145,48 +145,46 @@ module Puppet::Util::Windows
145
145
 
146
146
  # Called by the service control manager after the call to StartServiceCtrlDispatcher.
147
147
  Service_Main = FFI::Function.new(:void, [:ulong, :pointer], :blocking => false) do |dwArgc, lpszArgv|
148
- begin
149
- # Obtain the name of the service.
150
- if lpszArgv.address != 0
151
- argv = lpszArgv.get_array_of_string(0, dwArgc)
152
- lpszServiceName = argv[0]
153
- else
154
- lpszServiceName = ''
155
- end
148
+ # Obtain the name of the service.
149
+ if lpszArgv.address != 0
150
+ argv = lpszArgv.get_array_of_string(0, dwArgc)
151
+ lpszServiceName = argv[0]
152
+ else
153
+ lpszServiceName = ''
154
+ end
156
155
 
157
- # Args passed to Service.start
158
- if (dwArgc > 1)
159
- @@Argv = argv[1..]
160
- else
161
- @@Argv = nil
162
- end
156
+ # Args passed to Service.start
157
+ if dwArgc > 1
158
+ @@Argv = argv[1..]
159
+ else
160
+ @@Argv = nil
161
+ end
163
162
 
164
- # Register the service ctrl handler.
165
- @@ssh = RegisterServiceCtrlHandlerExW(
166
- lpszServiceName,
167
- Service_Ctrl_ex,
168
- nil
169
- )
163
+ # Register the service ctrl handler.
164
+ @@ssh = RegisterServiceCtrlHandlerExW(
165
+ lpszServiceName,
166
+ Service_Ctrl_ex,
167
+ nil
168
+ )
170
169
 
171
- # No service to stop, no service handle to notify, nothing to do but exit.
172
- break if @@ssh == 0
170
+ # No service to stop, no service handle to notify, nothing to do but exit.
171
+ break if @@ssh == 0
173
172
 
174
- # The service has started.
175
- SetTheServiceStatus.call(SERVICE_RUNNING, NO_ERROR, 0, 0)
173
+ # The service has started.
174
+ SetTheServiceStatus.call(SERVICE_RUNNING, NO_ERROR, 0, 0)
176
175
 
177
- SetEvent(@@hStartEvent)
176
+ SetEvent(@@hStartEvent)
178
177
 
179
- # Main loop for the service.
180
- while (WaitForSingleObject(@@hStopEvent, 1000) != WAIT_OBJECT_0) do
181
- end
178
+ # Main loop for the service.
179
+ while WaitForSingleObject(@@hStopEvent, 1000) != WAIT_OBJECT_0
180
+ end
182
181
 
183
- # Main loop for the service.
184
- while (WaitForSingleObject(@@hStopCompletedEvent, 1000) != WAIT_OBJECT_0) do
185
- end
186
- ensure
187
- # Stop the service.
188
- SetTheServiceStatus.call(SERVICE_STOPPED, NO_ERROR, 0, 0)
182
+ # Main loop for the service.
183
+ while WaitForSingleObject(@@hStopCompletedEvent, 1000) != WAIT_OBJECT_0
189
184
  end
185
+ ensure
186
+ # Stop the service.
187
+ SetTheServiceStatus.call(SERVICE_STOPPED, NO_ERROR, 0, 0)
190
188
  end
191
189
 
192
190
  ThreadProc = FFI::Function.new(:ulong, [:pointer]) do |lpParameter|
@@ -201,7 +199,7 @@ module Puppet::Util::Windows
201
199
  s[:lpServiceProc] = nil
202
200
 
203
201
  # No service to step, no service handle, no ruby exceptions, just terminate the thread..
204
- if !StartServiceCtrlDispatcherW(ste)
202
+ unless StartServiceCtrlDispatcherW(ste)
205
203
  return 1
206
204
  end
207
205
 
@@ -211,7 +209,7 @@ module Puppet::Util::Windows
211
209
  # This is a shortcut for Daemon.new + Daemon#mainloop.
212
210
  #
213
211
  def self.mainloop
214
- self.new.mainloop
212
+ new.mainloop
215
213
  end
216
214
 
217
215
  # This is the method that actually puts your code into a loop and allows it
@@ -267,7 +265,7 @@ module Puppet::Util::Windows
267
265
  events.put_pointer(0, FFI::Pointer.new(hThread))
268
266
  events.put_pointer(FFI::Pointer.size, FFI::Pointer.new(@@hStartEvent))
269
267
 
270
- while ((index = WaitForMultipleObjects(2, events, 0, 1000)) == WAIT_TIMEOUT) do
268
+ while (index = WaitForMultipleObjects(2, events, 0, 1000)) == WAIT_TIMEOUT
271
269
  end
272
270
 
273
271
  if index == WAIT_FAILED
@@ -280,36 +278,34 @@ module Puppet::Util::Windows
280
278
  end
281
279
 
282
280
  thr = Thread.new do
283
- begin
284
- while (WaitForSingleObject(@@hStopEvent, 1000) == WAIT_TIMEOUT)
285
- # Check to see if anything interesting has been signaled
286
- case @@waiting_control_code
287
- when SERVICE_CONTROL_PAUSE
288
- service_pause() if respond_to?('service_pause')
289
- when SERVICE_CONTROL_CONTINUE
290
- service_resume() if respond_to?('service_resume')
291
- when SERVICE_CONTROL_INTERROGATE
292
- service_interrogate() if respond_to?('service_interrogate')
293
- when SERVICE_CONTROL_SHUTDOWN
294
- service_shutdown() if respond_to?('service_shutdown')
295
- when SERVICE_CONTROL_PARAMCHANGE
296
- service_paramchange() if respond_to?('service_paramchange')
297
- when SERVICE_CONTROL_NETBINDADD
298
- service_netbindadd() if respond_to?('service_netbindadd')
299
- when SERVICE_CONTROL_NETBINDREMOVE
300
- service_netbindremove() if respond_to?('service_netbindremove')
301
- when SERVICE_CONTROL_NETBINDENABLE
302
- service_netbindenable() if respond_to?('service_netbindenable')
303
- when SERVICE_CONTROL_NETBINDDISABLE
304
- service_netbinddisable() if respond_to?('service_netbinddisable')
305
- end
306
- @@waiting_control_code = IDLE_CONTROL_CODE
281
+ while WaitForSingleObject(@@hStopEvent, 1000) == WAIT_TIMEOUT
282
+ # Check to see if anything interesting has been signaled
283
+ case @@waiting_control_code
284
+ when SERVICE_CONTROL_PAUSE
285
+ service_pause() if respond_to?('service_pause')
286
+ when SERVICE_CONTROL_CONTINUE
287
+ service_resume() if respond_to?('service_resume')
288
+ when SERVICE_CONTROL_INTERROGATE
289
+ service_interrogate() if respond_to?('service_interrogate')
290
+ when SERVICE_CONTROL_SHUTDOWN
291
+ service_shutdown() if respond_to?('service_shutdown')
292
+ when SERVICE_CONTROL_PARAMCHANGE
293
+ service_paramchange() if respond_to?('service_paramchange')
294
+ when SERVICE_CONTROL_NETBINDADD
295
+ service_netbindadd() if respond_to?('service_netbindadd')
296
+ when SERVICE_CONTROL_NETBINDREMOVE
297
+ service_netbindremove() if respond_to?('service_netbindremove')
298
+ when SERVICE_CONTROL_NETBINDENABLE
299
+ service_netbindenable() if respond_to?('service_netbindenable')
300
+ when SERVICE_CONTROL_NETBINDDISABLE
301
+ service_netbinddisable() if respond_to?('service_netbinddisable')
307
302
  end
308
-
309
- service_stop() if respond_to?('service_stop')
310
- ensure
311
- SetEvent(@@hStopCompletedEvent)
303
+ @@waiting_control_code = IDLE_CONTROL_CODE
312
304
  end
305
+
306
+ service_stop() if respond_to?('service_stop')
307
+ ensure
308
+ SetEvent(@@hStopCompletedEvent)
313
309
  end
314
310
 
315
311
  if respond_to?('service_main')
@@ -42,13 +42,13 @@ class Puppet::Util::Windows::Error < Puppet::Error
42
42
 
43
43
  if length == FFI::WIN32_FALSE
44
44
  # can't raise same error type here or potentially recurse infinitely
45
- raise Puppet::Error.new(_("FormatMessageW could not format code %{code}") % { code: code })
45
+ raise Puppet::Error, _("FormatMessageW could not format code %{code}") % { code: code }
46
46
  end
47
47
 
48
48
  # returns an FFI::Pointer with autorelease set to false, which is what we want
49
49
  buffer_ptr.read_win32_local_pointer do |wide_string_ptr|
50
50
  if wide_string_ptr.null?
51
- raise Puppet::Error.new(_("FormatMessageW failed to allocate buffer for code %{code}") % { code: code })
51
+ raise Puppet::Error, _("FormatMessageW failed to allocate buffer for code %{code}") % { code: code }
52
52
  end
53
53
 
54
54
  error_string = wide_string_ptr.read_wide_string(length)
@@ -30,7 +30,7 @@ module Puppet::Util::Windows::File
30
30
 
31
31
  return true if result != FFI::WIN32_FALSE
32
32
 
33
- raise Puppet::Util::Windows::Error.new("ReplaceFile(#{target}, #{source})")
33
+ raise Puppet::Util::Windows::Error, "ReplaceFile(#{target}, #{source})"
34
34
  end
35
35
  module_function :replace_file
36
36
 
@@ -41,8 +41,7 @@ module Puppet::Util::Windows::File
41
41
 
42
42
  return true if result != FFI::WIN32_FALSE
43
43
 
44
- raise Puppet::Util::Windows::Error
45
- .new("MoveFileEx(#{source}, #{target}, #{flags.to_s(8)})")
44
+ raise Puppet::Util::Windows::Error, "MoveFileEx(#{source}, #{target}, #{flags.to_s(8)})"
46
45
  end
47
46
  module_function :move_file_ex
48
47
 
@@ -52,9 +51,7 @@ module Puppet::Util::Windows::File
52
51
  wide_string(target.to_s), flags)
53
52
  return true if result != FFI::WIN32_FALSE
54
53
 
55
- raise Puppet::Util::Windows::Error.new(
56
- "CreateSymbolicLink(#{symlink}, #{target}, #{flags.to_s(8)})"
57
- )
54
+ raise Puppet::Util::Windows::Error, "CreateSymbolicLink(#{symlink}, #{target}, #{flags.to_s(8)})"
58
55
  end
59
56
  module_function :symlink
60
57
 
@@ -93,7 +90,7 @@ module Puppet::Util::Windows::File
93
90
  def get_attributes(file_name, raise_on_invalid = true)
94
91
  result = GetFileAttributesW(wide_string(file_name.to_s))
95
92
  if raise_on_invalid && result == INVALID_FILE_ATTRIBUTES
96
- raise Puppet::Util::Windows::Error.new("GetFileAttributes(#{file_name})")
93
+ raise Puppet::Util::Windows::Error, "GetFileAttributes(#{file_name})"
97
94
  end
98
95
 
99
96
  result
@@ -120,7 +117,7 @@ module Puppet::Util::Windows::File
120
117
 
121
118
  def set_attributes(path, flags)
122
119
  success = SetFileAttributesW(wide_string(path), flags) != FFI::WIN32_FALSE
123
- raise Puppet::Util::Windows::Error.new(_("Failed to set file attributes")) if !success
120
+ raise Puppet::Util::Windows::Error, _("Failed to set file attributes") unless success
124
121
 
125
122
  success
126
123
  end
@@ -137,11 +134,9 @@ module Puppet::Util::Windows::File
137
134
 
138
135
  return result unless result == INVALID_HANDLE_VALUE
139
136
 
140
- raise Puppet::Util::Windows::Error.new(
141
- "CreateFile(#{file_name}, #{desired_access.to_s(8)}, #{share_mode.to_s(8)}, " \
142
- "#{security_attributes}, #{creation_disposition.to_s(8)}, " \
143
- "#{flags_and_attributes.to_s(8)}, #{template_file_handle})"
144
- )
137
+ raise Puppet::Util::Windows::Error, "CreateFile(#{file_name}, #{desired_access.to_s(8)}, #{share_mode.to_s(8)}, " \
138
+ "#{security_attributes}, #{creation_disposition.to_s(8)}, " \
139
+ "#{flags_and_attributes.to_s(8)}, #{template_file_handle})"
145
140
  end
146
141
 
147
142
  def self.get_reparse_point_data(handle, &block)
@@ -156,10 +151,10 @@ module Puppet::Util::Windows::File
156
151
  when IO_REPARSE_TAG_MOUNT_POINT
157
152
  MOUNT_POINT_REPARSE_DATA_BUFFER
158
153
  when IO_REPARSE_TAG_NFS
159
- raise Puppet::Util::Windows::Error.new("Retrieving NFS reparse point data is unsupported")
154
+ raise Puppet::Util::Windows::Error, "Retrieving NFS reparse point data is unsupported"
160
155
  else
161
- raise Puppet::Util::Windows::Error.new("DeviceIoControl(#{handle}, " \
162
- "FSCTL_GET_REPARSE_POINT) returned unknown tag 0x#{reparse_tag.to_s(16).upcase}")
156
+ raise Puppet::Util::Windows::Error, "DeviceIoControl(#{handle}, " \
157
+ "FSCTL_GET_REPARSE_POINT) returned unknown tag 0x#{reparse_tag.to_s(16).upcase}"
163
158
  end
164
159
 
165
160
  yield buffer_type.new(reparse_data_buffer_ptr)
@@ -185,7 +180,7 @@ module Puppet::Util::Windows::File
185
180
 
186
181
  def self.device_io_control(handle, io_control_code, in_buffer = nil, out_buffer = nil)
187
182
  if out_buffer.nil?
188
- raise Puppet::Util::Windows::Error.new(_("out_buffer is required"))
183
+ raise Puppet::Util::Windows::Error, _("out_buffer is required")
189
184
  end
190
185
 
191
186
  FFI::MemoryPointer.new(:dword, 1) do |bytes_returned_ptr|
@@ -199,11 +194,9 @@ module Puppet::Util::Windows::File
199
194
  )
200
195
 
201
196
  if result == FFI::WIN32_FALSE
202
- raise Puppet::Util::Windows::Error.new(
203
- "DeviceIoControl(#{handle}, #{io_control_code}, " \
204
- "#{in_buffer}, #{in_buffer ? in_buffer.size : ''}, " \
205
- "#{out_buffer}, #{out_buffer ? out_buffer.size : ''}"
206
- )
197
+ raise Puppet::Util::Windows::Error, "DeviceIoControl(#{handle}, #{io_control_code}, " \
198
+ "#{in_buffer}, #{in_buffer ? in_buffer.size : ''}, " \
199
+ "#{out_buffer}, #{out_buffer ? out_buffer.size : ''}"
207
200
  end
208
201
  end
209
202
 
@@ -213,7 +206,7 @@ module Puppet::Util::Windows::File
213
206
  def reparse_point?(file_name)
214
207
  attributes = get_attributes(file_name, false)
215
208
 
216
- return false if (attributes == INVALID_FILE_ATTRIBUTES)
209
+ return false if attributes == INVALID_FILE_ATTRIBUTES
217
210
 
218
211
  (attributes & FILE_ATTRIBUTE_REPARSE_POINT) == FILE_ATTRIBUTE_REPARSE_POINT
219
212
  end
@@ -261,7 +254,7 @@ module Puppet::Util::Windows::File
261
254
  buffer_size = GetLongPathNameW(path_ptr, FFI::Pointer::NULL, 0)
262
255
  FFI::MemoryPointer.new(:wchar, buffer_size) do |converted_ptr|
263
256
  if GetLongPathNameW(path_ptr, converted_ptr, buffer_size) == FFI::WIN32_FALSE
264
- raise Puppet::Util::Windows::Error.new(_("Failed to call GetLongPathName"))
257
+ raise Puppet::Util::Windows::Error, _("Failed to call GetLongPathName")
265
258
  end
266
259
 
267
260
  converted = converted_ptr.read_wide_string(buffer_size - 1)
@@ -279,7 +272,7 @@ module Puppet::Util::Windows::File
279
272
  buffer_size = GetShortPathNameW(path_ptr, FFI::Pointer::NULL, 0)
280
273
  FFI::MemoryPointer.new(:wchar, buffer_size) do |converted_ptr|
281
274
  if GetShortPathNameW(path_ptr, converted_ptr, buffer_size) == FFI::WIN32_FALSE
282
- raise Puppet::Util::Windows::Error.new("Failed to call GetShortPathName")
275
+ raise Puppet::Util::Windows::Error, "Failed to call GetShortPathName"
283
276
  end
284
277
 
285
278
  converted = converted_ptr.read_wide_string(buffer_size - 1)
@@ -197,7 +197,7 @@ module Process
197
197
  FFI::WIN32.CloseHandle(handle)
198
198
  end
199
199
 
200
- return 0
200
+ 0
201
201
  end
202
202
 
203
203
  private
@@ -19,9 +19,9 @@ module Puppet::Util::Windows::SID
19
19
  # otherwise if domain is available then combine it with parsed account
20
20
  # otherwise when the domain is not available, use the account value directly
21
21
  # WinNT naming standard https://msdn.microsoft.com/en-us/library/windows/desktop/aa746534(v=vs.85).aspx
22
- if (domain && !domain.empty? && @account_type == :SidTypeDomain)
22
+ if domain && !domain.empty? && @account_type == :SidTypeDomain
23
23
  @domain_account = @domain
24
- elsif (domain && !domain.empty?)
24
+ elsif domain && !domain.empty?
25
25
  @domain_account = "#{domain}\\#{@account}"
26
26
  else
27
27
  @domain_account = account
@@ -65,7 +65,7 @@ module Puppet::Util::Windows::SID
65
65
  FFI::Pointer::NULL, domain_length_ptr, name_use_enum_ptr)
66
66
  last_error = FFI.errno
67
67
 
68
- if (success == FFI::WIN32_FALSE && last_error != ERROR_INSUFFICIENT_BUFFER)
68
+ if success == FFI::WIN32_FALSE && last_error != ERROR_INSUFFICIENT_BUFFER
69
69
  raise Puppet::Util::Windows::Error.new(_('Failed to call LookupAccountNameW with account: %{account_name}') % { account_name: account_name }, last_error)
70
70
  end
71
71
 
@@ -73,7 +73,7 @@ module Puppet::Util::Windows::SID
73
73
  if LookupAccountNameW(system_name_ptr, account_name_ptr,
74
74
  sid_ptr, sid_length_ptr,
75
75
  domain_ptr, domain_length_ptr, name_use_enum_ptr) == FFI::WIN32_FALSE
76
- raise Puppet::Util::Windows::Error.new(_('Failed to call LookupAccountNameW with account: %{account_name}') % { account_name: account_name })
76
+ raise Puppet::Util::Windows::Error, _('Failed to call LookupAccountNameW with account: %{account_name}') % { account_name: account_name }
77
77
  end
78
78
 
79
79
  # with a SID returned, loop back through lookup_account_sid to retrieve official name
@@ -95,9 +95,9 @@ module Puppet::Util::Windows::SID
95
95
 
96
96
  def self.lookup_account_sid(system_name = nil, sid_bytes)
97
97
  system_name_ptr = FFI::Pointer::NULL
98
- if (sid_bytes.nil? || (!sid_bytes.is_a? Array) || (sid_bytes.length == 0))
98
+ if sid_bytes.nil? || (!sid_bytes.is_a? Array) || (sid_bytes.length == 0)
99
99
  # TRANSLATORS `lookup_account_sid` is a variable name and should not be translated
100
- raise Puppet::Util::Windows::Error.new(_('Byte array for lookup_account_sid must not be nil and must be at least 1 byte long'))
100
+ raise Puppet::Util::Windows::Error, _('Byte array for lookup_account_sid must not be nil and must be at least 1 byte long')
101
101
  end
102
102
 
103
103
  begin
@@ -120,7 +120,7 @@ module Puppet::Util::Windows::SID
120
120
  FFI::Pointer::NULL, domain_length_ptr, name_use_enum_ptr)
121
121
  last_error = FFI.errno
122
122
 
123
- if (success == FFI::WIN32_FALSE && last_error != ERROR_INSUFFICIENT_BUFFER)
123
+ if success == FFI::WIN32_FALSE && last_error != ERROR_INSUFFICIENT_BUFFER
124
124
  raise Puppet::Util::Windows::Error.new(_('Failed to call LookupAccountSidW with bytes: %{sid_bytes}') % { sid_bytes: sid_bytes }, last_error)
125
125
  end
126
126
 
@@ -128,7 +128,7 @@ module Puppet::Util::Windows::SID
128
128
  FFI::MemoryPointer.new(:lpwstr, domain_length_ptr.read_dword) do |domain_ptr|
129
129
  if LookupAccountSidW(system_name_ptr, sid_ptr, name_ptr, name_length_ptr,
130
130
  domain_ptr, domain_length_ptr, name_use_enum_ptr) == FFI::WIN32_FALSE
131
- raise Puppet::Util::Windows::Error.new(_('Failed to call LookupAccountSidW with bytes: %{sid_bytes}') % { sid_bytes: sid_bytes })
131
+ raise Puppet::Util::Windows::Error, _('Failed to call LookupAccountSidW with bytes: %{sid_bytes}') % { sid_bytes: sid_bytes }
132
132
  end
133
133
 
134
134
  return new(