puppet 8.5.1-x86-mingw32 → 8.7.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (581) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -2
  3. data/Gemfile.lock +55 -48
  4. data/Rakefile +45 -22
  5. data/examples/hiera/README.md +68 -57
  6. data/examples/hiera/data/common.yaml +12 -0
  7. data/examples/hiera/data/dc1.yaml +6 -0
  8. data/examples/hiera/hiera.yaml +15 -0
  9. data/examples/hiera/modules/ntp/data/common.yaml +4 -0
  10. data/examples/hiera/modules/ntp/hiera.yaml +9 -0
  11. data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
  12. data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
  13. data/examples/hiera/modules/users/manifests/common.pp +7 -2
  14. data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
  15. data/examples/hiera/site.pp +1 -1
  16. data/ext/project_data.yaml +0 -45
  17. data/ext/windows/service/daemon.rb +49 -55
  18. data/lib/hiera/scope.rb +3 -3
  19. data/lib/hiera_puppet.rb +1 -1
  20. data/lib/puppet/agent/disabler.rb +1 -1
  21. data/lib/puppet/application/agent.rb +2 -2
  22. data/lib/puppet/application/apply.rb +2 -2
  23. data/lib/puppet/application/describe.rb +6 -6
  24. data/lib/puppet/application/device.rb +99 -100
  25. data/lib/puppet/application/doc.rb +1 -1
  26. data/lib/puppet/application/face_base.rb +7 -7
  27. data/lib/puppet/application/filebucket.rb +1 -1
  28. data/lib/puppet/application/lookup.rb +5 -5
  29. data/lib/puppet/application/resource.rb +10 -3
  30. data/lib/puppet/application/ssl.rb +3 -3
  31. data/lib/puppet/application.rb +16 -18
  32. data/lib/puppet/coercion.rb +1 -1
  33. data/lib/puppet/configurer/downloader.rb +9 -4
  34. data/lib/puppet/configurer/fact_handler.rb +12 -13
  35. data/lib/puppet/configurer.rb +16 -18
  36. data/lib/puppet/confine/feature.rb +1 -1
  37. data/lib/puppet/confine/variable.rb +1 -1
  38. data/lib/puppet/confine.rb +2 -2
  39. data/lib/puppet/confine_collection.rb +1 -1
  40. data/lib/puppet/confiner.rb +2 -2
  41. data/lib/puppet/daemon.rb +4 -3
  42. data/lib/puppet/datatypes.rb +5 -6
  43. data/lib/puppet/defaults.rb +14 -8
  44. data/lib/puppet/environments.rb +3 -7
  45. data/lib/puppet/error.rb +3 -3
  46. data/lib/puppet/external/dot.rb +42 -34
  47. data/lib/puppet/face/catalog/select.rb +1 -1
  48. data/lib/puppet/face/epp.rb +7 -9
  49. data/lib/puppet/face/help.rb +12 -12
  50. data/lib/puppet/face/module/changes.rb +1 -3
  51. data/lib/puppet/face/module/list.rb +37 -37
  52. data/lib/puppet/face/node/clean.rb +1 -1
  53. data/lib/puppet/face/parser.rb +6 -8
  54. data/lib/puppet/face/report.rb +5 -7
  55. data/lib/puppet/facter_impl.rb +1 -1
  56. data/lib/puppet/feature/base.rb +9 -11
  57. data/lib/puppet/feature/pe_license.rb +1 -1
  58. data/lib/puppet/feature/ssh.rb +1 -1
  59. data/lib/puppet/feature/telnet.rb +3 -5
  60. data/lib/puppet/feature/zlib.rb +1 -1
  61. data/lib/puppet/ffi/windows/constants.rb +1 -1
  62. data/lib/puppet/ffi/windows/functions.rb +2 -2
  63. data/lib/puppet/ffi/windows/structs.rb +3 -3
  64. data/lib/puppet/file_bucket/dipper.rb +4 -4
  65. data/lib/puppet/file_bucket/file.rb +4 -4
  66. data/lib/puppet/file_serving/base.rb +5 -5
  67. data/lib/puppet/file_serving/configuration/parser.rb +9 -9
  68. data/lib/puppet/file_serving/configuration.rb +3 -3
  69. data/lib/puppet/file_serving/fileset.rb +13 -13
  70. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  71. data/lib/puppet/file_serving/metadata.rb +13 -9
  72. data/lib/puppet/file_serving/mount/file.rb +6 -6
  73. data/lib/puppet/file_serving/mount/locales.rb +2 -4
  74. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
  75. data/lib/puppet/file_serving/mount/plugins.rb +2 -4
  76. data/lib/puppet/file_serving/mount.rb +1 -1
  77. data/lib/puppet/file_system/file_impl.rb +3 -3
  78. data/lib/puppet/file_system/memory_impl.rb +1 -1
  79. data/lib/puppet/file_system/path_pattern.rb +1 -1
  80. data/lib/puppet/file_system/uniquefile.rb +17 -16
  81. data/lib/puppet/file_system/windows.rb +26 -18
  82. data/lib/puppet/forge/cache.rb +2 -2
  83. data/lib/puppet/forge/errors.rb +1 -1
  84. data/lib/puppet/forge/repository.rb +2 -2
  85. data/lib/puppet/forge.rb +13 -19
  86. data/lib/puppet/functions/abs.rb +2 -2
  87. data/lib/puppet/functions/camelcase.rb +1 -1
  88. data/lib/puppet/functions/compare.rb +2 -2
  89. data/lib/puppet/functions/contain.rb +1 -1
  90. data/lib/puppet/functions/defined.rb +2 -2
  91. data/lib/puppet/functions/dig.rb +1 -1
  92. data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
  93. data/lib/puppet/functions/get.rb +1 -1
  94. data/lib/puppet/functions/hocon_data.rb +3 -5
  95. data/lib/puppet/functions/import.rb +1 -1
  96. data/lib/puppet/functions/json_data.rb +4 -6
  97. data/lib/puppet/functions/max.rb +2 -2
  98. data/lib/puppet/functions/min.rb +2 -2
  99. data/lib/puppet/functions/new.rb +1 -1
  100. data/lib/puppet/functions/reduce.rb +6 -10
  101. data/lib/puppet/functions/regsubst.rb +2 -2
  102. data/lib/puppet/functions/require.rb +1 -1
  103. data/lib/puppet/functions/yaml_data.rb +11 -13
  104. data/lib/puppet/functions.rb +32 -37
  105. data/lib/puppet/generate/type.rb +2 -2
  106. data/lib/puppet/gettext/config.rb +9 -9
  107. data/lib/puppet/graph/rb_tree_map.rb +31 -23
  108. data/lib/puppet/graph/relationship_graph.rb +12 -12
  109. data/lib/puppet/graph/simple_graph.rb +8 -10
  110. data/lib/puppet/http/client.rb +1 -1
  111. data/lib/puppet/http/dns.rb +4 -4
  112. data/lib/puppet/http/external_client.rb +1 -1
  113. data/lib/puppet/http/factory.rb +1 -1
  114. data/lib/puppet/http/proxy.rb +15 -15
  115. data/lib/puppet/http/redirector.rb +6 -2
  116. data/lib/puppet/http/resolver.rb +2 -2
  117. data/lib/puppet/http/retry_after_handler.rb +2 -2
  118. data/lib/puppet/http/service/ca.rb +1 -1
  119. data/lib/puppet/http/service/compiler.rb +4 -4
  120. data/lib/puppet/http/service/file_server.rb +1 -1
  121. data/lib/puppet/http/service/report.rb +2 -2
  122. data/lib/puppet/http/service.rb +9 -13
  123. data/lib/puppet/http/session.rb +1 -1
  124. data/lib/puppet/http/site.rb +1 -1
  125. data/lib/puppet/indirector/catalog/compiler.rb +44 -45
  126. data/lib/puppet/indirector/catalog/rest.rb +7 -5
  127. data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
  128. data/lib/puppet/indirector/exec.rb +2 -2
  129. data/lib/puppet/indirector/face.rb +7 -9
  130. data/lib/puppet/indirector/fact_search.rb +1 -1
  131. data/lib/puppet/indirector/facts/facter.rb +6 -6
  132. data/lib/puppet/indirector/facts/json.rb +1 -1
  133. data/lib/puppet/indirector/facts/store_configs.rb +1 -1
  134. data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
  135. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
  136. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  137. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  138. data/lib/puppet/indirector/hiera.rb +1 -1
  139. data/lib/puppet/indirector/indirection.rb +27 -29
  140. data/lib/puppet/indirector/json.rb +4 -4
  141. data/lib/puppet/indirector/memory.rb +2 -2
  142. data/lib/puppet/indirector/msgpack.rb +5 -5
  143. data/lib/puppet/indirector/node/store_configs.rb +1 -1
  144. data/lib/puppet/indirector/none.rb +1 -1
  145. data/lib/puppet/indirector/report/json.rb +1 -1
  146. data/lib/puppet/indirector/report/yaml.rb +1 -1
  147. data/lib/puppet/indirector/request.rb +4 -4
  148. data/lib/puppet/indirector/resource/ral.rb +2 -4
  149. data/lib/puppet/indirector/resource/store_configs.rb +1 -1
  150. data/lib/puppet/indirector/terminus.rb +4 -4
  151. data/lib/puppet/indirector/yaml.rb +3 -3
  152. data/lib/puppet/info_service/class_information_service.rb +5 -8
  153. data/lib/puppet/info_service/task_information_service.rb +6 -7
  154. data/lib/puppet/interface/action.rb +5 -5
  155. data/lib/puppet/interface/action_manager.rb +5 -5
  156. data/lib/puppet/interface/documentation.rb +5 -5
  157. data/lib/puppet/interface/face_collection.rb +7 -7
  158. data/lib/puppet/interface/option.rb +2 -2
  159. data/lib/puppet/interface/option_manager.rb +6 -6
  160. data/lib/puppet/interface.rb +4 -4
  161. data/lib/puppet/metatype/manager.rb +2 -2
  162. data/lib/puppet/module/plan.rb +10 -10
  163. data/lib/puppet/module/task.rb +8 -8
  164. data/lib/puppet/module.rb +39 -41
  165. data/lib/puppet/module_tool/applications/application.rb +10 -8
  166. data/lib/puppet/module_tool/applications/installer.rb +53 -50
  167. data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
  168. data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
  169. data/lib/puppet/module_tool/checksums.rb +2 -2
  170. data/lib/puppet/module_tool/dependency.rb +1 -1
  171. data/lib/puppet/module_tool/errors/base.rb +1 -1
  172. data/lib/puppet/module_tool/install_directory.rb +1 -1
  173. data/lib/puppet/module_tool/local_tarball.rb +3 -5
  174. data/lib/puppet/module_tool/metadata.rb +12 -8
  175. data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
  176. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  177. data/lib/puppet/module_tool.rb +4 -4
  178. data/lib/puppet/network/client_request.rb +5 -3
  179. data/lib/puppet/network/format.rb +2 -2
  180. data/lib/puppet/network/format_support.rb +1 -1
  181. data/lib/puppet/network/formats.rb +1 -1
  182. data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
  183. data/lib/puppet/network/http/api/server/v3.rb +1 -1
  184. data/lib/puppet/network/http/connection.rb +1 -1
  185. data/lib/puppet/network/http/handler.rb +8 -12
  186. data/lib/puppet/network/http/request.rb +1 -1
  187. data/lib/puppet/network/http/route.rb +9 -9
  188. data/lib/puppet/node/environment.rb +21 -23
  189. data/lib/puppet/node/facts.rb +1 -1
  190. data/lib/puppet/node.rb +5 -5
  191. data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
  192. data/lib/puppet/pal/pal_impl.rb +48 -50
  193. data/lib/puppet/pal/plan_signature.rb +1 -1
  194. data/lib/puppet/pal/task_signature.rb +1 -1
  195. data/lib/puppet/parameter/package_options.rb +1 -1
  196. data/lib/puppet/parameter/value.rb +2 -2
  197. data/lib/puppet/parameter/value_collection.rb +7 -7
  198. data/lib/puppet/parameter.rb +8 -9
  199. data/lib/puppet/parser/ast/block_expression.rb +2 -2
  200. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  201. data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
  202. data/lib/puppet/parser/ast/resource.rb +4 -4
  203. data/lib/puppet/parser/ast/resourceparam.rb +4 -4
  204. data/lib/puppet/parser/ast.rb +14 -15
  205. data/lib/puppet/parser/compiler.rb +26 -28
  206. data/lib/puppet/parser/functions/create_resources.rb +3 -3
  207. data/lib/puppet/parser/functions/fail.rb +1 -1
  208. data/lib/puppet/parser/functions/generate.rb +2 -2
  209. data/lib/puppet/parser/functions/tag.rb +1 -1
  210. data/lib/puppet/parser/functions.rb +2 -2
  211. data/lib/puppet/parser/relationship.rb +3 -1
  212. data/lib/puppet/parser/resource/param.rb +2 -2
  213. data/lib/puppet/parser/resource.rb +23 -23
  214. data/lib/puppet/parser/scope.rb +10 -10
  215. data/lib/puppet/parser/script_compiler.rb +1 -1
  216. data/lib/puppet/parser/templatewrapper.rb +1 -1
  217. data/lib/puppet/parser/type_loader.rb +10 -12
  218. data/lib/puppet/parser.rb +1 -1
  219. data/lib/puppet/pops/adaptable.rb +1 -1
  220. data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
  221. data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
  222. data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
  223. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
  224. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
  225. data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
  226. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  227. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  228. data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
  229. data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
  230. data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
  231. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  232. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  233. data/lib/puppet/pops/functions/function.rb +14 -16
  234. data/lib/puppet/pops/issue_reporter.rb +2 -2
  235. data/lib/puppet/pops/label_provider.rb +2 -2
  236. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  237. data/lib/puppet/pops/loader/loader.rb +4 -4
  238. data/lib/puppet/pops/loader/loader_paths.rb +3 -3
  239. data/lib/puppet/pops/loader/module_loaders.rb +11 -11
  240. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
  241. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  242. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
  243. data/lib/puppet/pops/loader/static_loader.rb +5 -5
  244. data/lib/puppet/pops/loaders.rb +3 -3
  245. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  246. data/lib/puppet/pops/lookup/explainer.rb +2 -2
  247. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  248. data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
  249. data/lib/puppet/pops/lookup/interpolation.rb +3 -3
  250. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  251. data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
  252. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
  253. data/lib/puppet/pops/lookup/module_data_provider.rb +9 -9
  254. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  255. data/lib/puppet/pops/merge_strategy.rb +6 -6
  256. data/lib/puppet/pops/migration/migration_checker.rb +1 -1
  257. data/lib/puppet/pops/model/ast_transformer.rb +9 -11
  258. data/lib/puppet/pops/model/factory.rb +4 -5
  259. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  260. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  261. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
  262. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  263. data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
  264. data/lib/puppet/pops/parser/lexer2.rb +20 -12
  265. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  266. data/lib/puppet/pops/parser/locator.rb +4 -4
  267. data/lib/puppet/pops/parser/parser_support.rb +12 -14
  268. data/lib/puppet/pops/parser/pn_parser.rb +3 -3
  269. data/lib/puppet/pops/parser/slurp_support.rb +8 -8
  270. data/lib/puppet/pops/patterns.rb +12 -12
  271. data/lib/puppet/pops/pcore.rb +1 -1
  272. data/lib/puppet/pops/pn.rb +2 -2
  273. data/lib/puppet/pops/puppet_stack.rb +1 -1
  274. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  275. data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
  276. data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
  277. data/lib/puppet/pops/time/timestamp.rb +1 -1
  278. data/lib/puppet/pops/types/class_loader.rb +4 -6
  279. data/lib/puppet/pops/types/iterable.rb +1 -1
  280. data/lib/puppet/pops/types/p_binary_type.rb +1 -1
  281. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  282. data/lib/puppet/pops/types/p_object_type.rb +5 -5
  283. data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
  284. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  285. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  286. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  287. data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
  288. data/lib/puppet/pops/types/p_uri_type.rb +4 -4
  289. data/lib/puppet/pops/types/recursion_guard.rb +4 -4
  290. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  291. data/lib/puppet/pops/types/string_converter.rb +12 -8
  292. data/lib/puppet/pops/types/tree_iterators.rb +4 -6
  293. data/lib/puppet/pops/types/type_calculator.rb +10 -10
  294. data/lib/puppet/pops/types/type_factory.rb +7 -3
  295. data/lib/puppet/pops/types/type_formatter.rb +22 -24
  296. data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
  297. data/lib/puppet/pops/types/types.rb +28 -24
  298. data/lib/puppet/pops/utils.rb +38 -42
  299. data/lib/puppet/pops/validation/checker4_0.rb +10 -10
  300. data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
  301. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  302. data/lib/puppet/pops/validation.rb +4 -4
  303. data/lib/puppet/pops/visitor.rb +2 -2
  304. data/lib/puppet/property/ensure.rb +12 -14
  305. data/lib/puppet/property/keyvalue.rb +4 -4
  306. data/lib/puppet/property/list.rb +4 -4
  307. data/lib/puppet/property/ordered_list.rb +1 -1
  308. data/lib/puppet/property.rb +31 -33
  309. data/lib/puppet/provider/aix_object.rb +1 -1
  310. data/lib/puppet/provider/exec.rb +2 -2
  311. data/lib/puppet/provider/file/posix.rb +19 -17
  312. data/lib/puppet/provider/file/windows.rb +13 -19
  313. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  314. data/lib/puppet/provider/group/groupadd.rb +32 -11
  315. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  316. data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
  317. data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
  318. data/lib/puppet/provider/nameservice/pw.rb +1 -2
  319. data/lib/puppet/provider/nameservice.rb +8 -8
  320. data/lib/puppet/provider/package/aix.rb +19 -19
  321. data/lib/puppet/provider/package/appdmg.rb +2 -2
  322. data/lib/puppet/provider/package/apple.rb +1 -1
  323. data/lib/puppet/provider/package/apt.rb +18 -18
  324. data/lib/puppet/provider/package/aptitude.rb +1 -3
  325. data/lib/puppet/provider/package/aptrpm.rb +9 -9
  326. data/lib/puppet/provider/package/blastwave.rb +10 -14
  327. data/lib/puppet/provider/package/dnfmodule.rb +3 -3
  328. data/lib/puppet/provider/package/dpkg.rb +11 -13
  329. data/lib/puppet/provider/package/fink.rb +14 -14
  330. data/lib/puppet/provider/package/freebsd.rb +1 -1
  331. data/lib/puppet/provider/package/gem.rb +12 -14
  332. data/lib/puppet/provider/package/macports.rb +2 -2
  333. data/lib/puppet/provider/package/nim.rb +10 -10
  334. data/lib/puppet/provider/package/openbsd.rb +22 -22
  335. data/lib/puppet/provider/package/opkg.rb +6 -6
  336. data/lib/puppet/provider/package/pacman.rb +35 -29
  337. data/lib/puppet/provider/package/pip.rb +25 -24
  338. data/lib/puppet/provider/package/pkg.rb +15 -15
  339. data/lib/puppet/provider/package/pkgdmg.rb +10 -10
  340. data/lib/puppet/provider/package/pkgin.rb +2 -2
  341. data/lib/puppet/provider/package/pkgng.rb +5 -5
  342. data/lib/puppet/provider/package/pkgutil.rb +17 -21
  343. data/lib/puppet/provider/package/portage.rb +59 -61
  344. data/lib/puppet/provider/package/ports.rb +12 -11
  345. data/lib/puppet/provider/package/portupgrade.rb +35 -35
  346. data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
  347. data/lib/puppet/provider/package/rpm.rb +26 -26
  348. data/lib/puppet/provider/package/rug.rb +7 -9
  349. data/lib/puppet/provider/package/sun.rb +4 -4
  350. data/lib/puppet/provider/package/up2date.rb +5 -7
  351. data/lib/puppet/provider/package/urpmi.rb +6 -6
  352. data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
  353. data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
  354. data/lib/puppet/provider/package/windows/package.rb +2 -2
  355. data/lib/puppet/provider/package/windows.rb +3 -5
  356. data/lib/puppet/provider/package/xbps.rb +127 -0
  357. data/lib/puppet/provider/package/yum.rb +33 -37
  358. data/lib/puppet/provider/package/zypper.rb +12 -14
  359. data/lib/puppet/provider/package.rb +1 -1
  360. data/lib/puppet/provider/package_targetable.rb +1 -1
  361. data/lib/puppet/provider/parsedfile.rb +9 -9
  362. data/lib/puppet/provider/service/base.rb +16 -21
  363. data/lib/puppet/provider/service/bsd.rb +4 -4
  364. data/lib/puppet/provider/service/daemontools.rb +31 -31
  365. data/lib/puppet/provider/service/debian.rb +6 -6
  366. data/lib/puppet/provider/service/freebsd.rb +36 -36
  367. data/lib/puppet/provider/service/gentoo.rb +6 -6
  368. data/lib/puppet/provider/service/init.rb +19 -19
  369. data/lib/puppet/provider/service/launchd.rb +22 -22
  370. data/lib/puppet/provider/service/openbsd.rb +10 -10
  371. data/lib/puppet/provider/service/openrc.rb +1 -1
  372. data/lib/puppet/provider/service/openwrt.rb +3 -3
  373. data/lib/puppet/provider/service/rcng.rb +3 -3
  374. data/lib/puppet/provider/service/redhat.rb +4 -4
  375. data/lib/puppet/provider/service/runit.rb +6 -6
  376. data/lib/puppet/provider/service/service.rb +5 -7
  377. data/lib/puppet/provider/service/smf.rb +28 -27
  378. data/lib/puppet/provider/service/src.rb +7 -7
  379. data/lib/puppet/provider/service/systemd.rb +31 -37
  380. data/lib/puppet/provider/service/upstart.rb +17 -17
  381. data/lib/puppet/provider/service/windows.rb +7 -7
  382. data/lib/puppet/provider/user/aix.rb +4 -2
  383. data/lib/puppet/provider/user/directoryservice.rb +34 -36
  384. data/lib/puppet/provider/user/hpux.rb +10 -14
  385. data/lib/puppet/provider/user/pw.rb +1 -1
  386. data/lib/puppet/provider/user/user_role_add.rb +16 -18
  387. data/lib/puppet/provider/user/useradd.rb +7 -7
  388. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  389. data/lib/puppet/provider.rb +8 -8
  390. data/lib/puppet/reference/indirection.rb +3 -0
  391. data/lib/puppet/reference/metaparameter.rb +1 -1
  392. data/lib/puppet/reference/providers.rb +3 -3
  393. data/lib/puppet/reference/type.rb +1 -1
  394. data/lib/puppet/relationship.rb +4 -5
  395. data/lib/puppet/reports/http.rb +1 -1
  396. data/lib/puppet/reports/log.rb +2 -2
  397. data/lib/puppet/reports/store.rb +4 -4
  398. data/lib/puppet/reports.rb +2 -2
  399. data/lib/puppet/resource/catalog.rb +16 -16
  400. data/lib/puppet/resource/status.rb +3 -3
  401. data/lib/puppet/resource/type.rb +8 -8
  402. data/lib/puppet/resource/type_collection.rb +1 -1
  403. data/lib/puppet/resource.rb +41 -41
  404. data/lib/puppet/scheduler/scheduler.rb +1 -1
  405. data/lib/puppet/scheduler/splay_job.rb +9 -0
  406. data/lib/puppet/settings/alias_setting.rb +3 -5
  407. data/lib/puppet/settings/base_setting.rb +11 -11
  408. data/lib/puppet/settings/boolean_setting.rb +2 -2
  409. data/lib/puppet/settings/config_file.rb +5 -4
  410. data/lib/puppet/settings/duration_setting.rb +2 -2
  411. data/lib/puppet/settings/environment_conf.rb +3 -3
  412. data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
  413. data/lib/puppet/settings/file_setting.rb +11 -11
  414. data/lib/puppet/settings/ini_file.rb +3 -3
  415. data/lib/puppet/settings/port_setting.rb +1 -1
  416. data/lib/puppet/settings/priority_setting.rb +2 -2
  417. data/lib/puppet/settings/ttl_setting.rb +2 -2
  418. data/lib/puppet/settings/value_translator.rb +8 -8
  419. data/lib/puppet/settings.rb +65 -70
  420. data/lib/puppet/ssl/base.rb +2 -4
  421. data/lib/puppet/ssl/certificate_request.rb +18 -22
  422. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  423. data/lib/puppet/ssl/oids.rb +2 -2
  424. data/lib/puppet/ssl/openssl_loader.rb +4 -4
  425. data/lib/puppet/syntax_checkers/base64.rb +3 -3
  426. data/lib/puppet/syntax_checkers/epp.rb +3 -3
  427. data/lib/puppet/syntax_checkers/json.rb +3 -3
  428. data/lib/puppet/syntax_checkers/pp.rb +3 -3
  429. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  430. data/lib/puppet/transaction/event.rb +2 -2
  431. data/lib/puppet/transaction/event_manager.rb +5 -5
  432. data/lib/puppet/transaction/persistence.rb +12 -14
  433. data/lib/puppet/transaction/report.rb +4 -4
  434. data/lib/puppet/transaction/resource_harness.rb +2 -2
  435. data/lib/puppet/transaction.rb +14 -18
  436. data/lib/puppet/type/component.rb +3 -3
  437. data/lib/puppet/type/exec.rb +51 -45
  438. data/lib/puppet/type/file/checksum_value.rb +1 -1
  439. data/lib/puppet/type/file/content.rb +6 -6
  440. data/lib/puppet/type/file/ctime.rb +2 -2
  441. data/lib/puppet/type/file/data_sync.rb +3 -3
  442. data/lib/puppet/type/file/ensure.rb +16 -15
  443. data/lib/puppet/type/file/mode.rb +9 -9
  444. data/lib/puppet/type/file/mtime.rb +2 -2
  445. data/lib/puppet/type/file/selcontext.rb +14 -14
  446. data/lib/puppet/type/file/source.rb +19 -21
  447. data/lib/puppet/type/file/target.rb +11 -11
  448. data/lib/puppet/type/file.rb +21 -21
  449. data/lib/puppet/type/filebucket.rb +3 -3
  450. data/lib/puppet/type/group.rb +3 -3
  451. data/lib/puppet/type/notify.rb +2 -2
  452. data/lib/puppet/type/package.rb +4 -4
  453. data/lib/puppet/type/resources.rb +6 -6
  454. data/lib/puppet/type/schedule.rb +9 -9
  455. data/lib/puppet/type/service.rb +6 -8
  456. data/lib/puppet/type/tidy.rb +22 -24
  457. data/lib/puppet/type/user.rb +13 -13
  458. data/lib/puppet/type.rb +76 -88
  459. data/lib/puppet/util/at_fork/solaris.rb +33 -37
  460. data/lib/puppet/util/autoload.rb +2 -2
  461. data/lib/puppet/util/backups.rb +9 -9
  462. data/lib/puppet/util/character_encoding.rb +7 -6
  463. data/lib/puppet/util/checksums.rb +2 -2
  464. data/lib/puppet/util/classgen.rb +8 -8
  465. data/lib/puppet/util/colors.rb +1 -1
  466. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
  467. data/lib/puppet/util/command_line/trollop.rb +60 -46
  468. data/lib/puppet/util/command_line.rb +2 -2
  469. data/lib/puppet/util/constant_inflector.rb +2 -2
  470. data/lib/puppet/util/diff.rb +19 -21
  471. data/lib/puppet/util/docs.rb +2 -2
  472. data/lib/puppet/util/errors.rb +9 -9
  473. data/lib/puppet/util/execution.rb +32 -9
  474. data/lib/puppet/util/feature.rb +1 -1
  475. data/lib/puppet/util/fileparsing.rb +12 -16
  476. data/lib/puppet/util/filetype.rb +36 -40
  477. data/lib/puppet/util/inifile.rb +6 -12
  478. data/lib/puppet/util/ldap/connection.rb +1 -1
  479. data/lib/puppet/util/ldap/manager.rb +10 -12
  480. data/lib/puppet/util/lockfile.rb +6 -8
  481. data/lib/puppet/util/log/destination.rb +2 -2
  482. data/lib/puppet/util/log/destinations.rb +4 -4
  483. data/lib/puppet/util/log.rb +12 -9
  484. data/lib/puppet/util/logging.rb +11 -11
  485. data/lib/puppet/util/metric.rb +3 -3
  486. data/lib/puppet/util/monkey_patches.rb +5 -7
  487. data/lib/puppet/util/network_device/config.rb +3 -3
  488. data/lib/puppet/util/package/version/debian.rb +27 -28
  489. data/lib/puppet/util/package/version/pip.rb +5 -5
  490. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  491. data/lib/puppet/util/package/version/rpm.rb +1 -1
  492. data/lib/puppet/util/package.rb +2 -2
  493. data/lib/puppet/util/pidlock.rb +2 -2
  494. data/lib/puppet/util/platform.rb +1 -1
  495. data/lib/puppet/util/plist.rb +8 -10
  496. data/lib/puppet/util/posix.rb +17 -17
  497. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  498. data/lib/puppet/util/provider_features.rb +3 -3
  499. data/lib/puppet/util/rdoc/code_objects.rb +3 -3
  500. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
  501. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
  502. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
  503. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  504. data/lib/puppet/util/rdoc/parser.rb +1 -1
  505. data/lib/puppet/util/reference.rb +13 -9
  506. data/lib/puppet/util/retry_action.rb +1 -1
  507. data/lib/puppet/util/rpm_compare.rb +18 -19
  508. data/lib/puppet/util/rubygems.rb +1 -1
  509. data/lib/puppet/util/selinux.rb +7 -7
  510. data/lib/puppet/util/storage.rb +10 -12
  511. data/lib/puppet/util/suidmanager.rb +18 -19
  512. data/lib/puppet/util/symbolic_file_mode.rb +71 -75
  513. data/lib/puppet/util/tag_set.rb +2 -2
  514. data/lib/puppet/util/tagging.rb +8 -10
  515. data/lib/puppet/util/terminal.rb +4 -4
  516. data/lib/puppet/util/user_attr.rb +7 -7
  517. data/lib/puppet/util/watcher.rb +3 -5
  518. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  519. data/lib/puppet/util/windows/adsi.rb +42 -42
  520. data/lib/puppet/util/windows/com.rb +2 -2
  521. data/lib/puppet/util/windows/daemon.rb +64 -68
  522. data/lib/puppet/util/windows/error.rb +2 -2
  523. data/lib/puppet/util/windows/file.rb +18 -25
  524. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  525. data/lib/puppet/util/windows/principal.rb +8 -8
  526. data/lib/puppet/util/windows/process.rb +16 -28
  527. data/lib/puppet/util/windows/registry.rb +16 -15
  528. data/lib/puppet/util/windows/root_certs.rb +2 -2
  529. data/lib/puppet/util/windows/security.rb +31 -31
  530. data/lib/puppet/util/windows/service.rb +11 -11
  531. data/lib/puppet/util/windows/sid.rb +8 -8
  532. data/lib/puppet/util/windows/user.rb +18 -20
  533. data/lib/puppet/util/yaml.rb +1 -1
  534. data/lib/puppet/util.rb +55 -46
  535. data/lib/puppet/version.rb +2 -2
  536. data/lib/puppet/x509/pem_store.rb +1 -1
  537. data/lib/puppet.rb +3 -3
  538. data/locales/puppet.pot +604 -600
  539. data/man/man5/puppet.conf.5 +10 -2
  540. data/man/man8/puppet-agent.8 +1 -1
  541. data/man/man8/puppet-apply.8 +1 -1
  542. data/man/man8/puppet-catalog.8 +1 -1
  543. data/man/man8/puppet-config.8 +1 -1
  544. data/man/man8/puppet-describe.8 +1 -1
  545. data/man/man8/puppet-device.8 +1 -1
  546. data/man/man8/puppet-doc.8 +1 -1
  547. data/man/man8/puppet-epp.8 +1 -1
  548. data/man/man8/puppet-facts.8 +1 -1
  549. data/man/man8/puppet-filebucket.8 +1 -1
  550. data/man/man8/puppet-generate.8 +1 -1
  551. data/man/man8/puppet-help.8 +1 -1
  552. data/man/man8/puppet-lookup.8 +1 -1
  553. data/man/man8/puppet-module.8 +1 -1
  554. data/man/man8/puppet-node.8 +1 -1
  555. data/man/man8/puppet-parser.8 +1 -1
  556. data/man/man8/puppet-plugin.8 +1 -1
  557. data/man/man8/puppet-report.8 +1 -1
  558. data/man/man8/puppet-resource.8 +5 -1
  559. data/man/man8/puppet-script.8 +1 -1
  560. data/man/man8/puppet-ssl.8 +1 -1
  561. data/man/man8/puppet.8 +2 -2
  562. metadata +39 -25
  563. data/examples/hiera/etc/hiera.yaml +0 -15
  564. data/examples/hiera/etc/hieradb/common.yaml +0 -3
  565. data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
  566. data/examples/hiera/etc/hieradb/development.yaml +0 -2
  567. data/examples/hiera/etc/puppet.conf +0 -3
  568. data/examples/hiera/modules/data/manifests/common.pp +0 -4
  569. data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
  570. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
  571. data/examples/hiera/modules/users/manifests/development.pp +0 -4
  572. data/tasks/benchmark.rake +0 -180
  573. data/tasks/cfpropertylist.rake +0 -15
  574. data/tasks/ci.rake +0 -24
  575. data/tasks/generate_ast_model.rake +0 -90
  576. data/tasks/generate_cert_fixtures.rake +0 -199
  577. data/tasks/manpages.rake +0 -67
  578. data/tasks/memwalk.rake +0 -195
  579. data/tasks/parallel.rake +0 -410
  580. data/tasks/parser.rake +0 -22
  581. data/tasks/yard.rake +0 -59
@@ -56,7 +56,7 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
56
56
  when :SERVICE_DISABLED
57
57
  :false
58
58
  else
59
- raise Puppet::Error.new(_("Unknown start type: %{start_type}") % { start_type: start_type })
59
+ raise Puppet::Error, _("Unknown start type: %{start_type}") % { start_type: start_type }
60
60
  end
61
61
  rescue => detail
62
62
  raise Puppet::Error.new(_("Cannot get start type %{resource_name}, error was: %{detail}") % { resource_name: @resource[:name], detail: detail }, detail)
@@ -73,7 +73,7 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
73
73
  if enabled? == :false
74
74
  # If disabled and not managing enable, respect disabled and fail.
75
75
  if @resource[:enable].nil?
76
- raise Puppet::Error.new(_("Will not start disabled service %{resource_name} without managing enable. Specify 'enable => false' to override.") % { resource_name: @resource[:name] })
76
+ raise Puppet::Error, _("Will not start disabled service %{resource_name} without managing enable. Specify 'enable => false' to override.") % { resource_name: @resource[:name] }
77
77
  # Otherwise start. If enable => false, we will later sync enable and
78
78
  # disable the service again.
79
79
  elsif @resource[:enable] == :true
@@ -101,7 +101,7 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
101
101
  when :SERVICE_RUNNING, :SERVICE_CONTINUE_PENDING, :SERVICE_START_PENDING
102
102
  :running
103
103
  else
104
- raise Puppet::Error.new(_("Unknown service state '%{current_state}' for service '%{resource_name}'") % { current_state: current_state, resource_name: @resource[:name] })
104
+ raise Puppet::Error, _("Unknown service state '%{current_state}' for service '%{resource_name}'") % { current_state: current_state, resource_name: @resource[:name] }
105
105
  end
106
106
  debug("Service #{@resource[:name]} is #{current_state}")
107
107
  state
@@ -164,16 +164,16 @@ Puppet::Type.type(:service).provide :windows, :parent => :service do
164
164
 
165
165
  def validate_logon_credentials
166
166
  unless Puppet::Util::Windows::User.localsystem?(@normalized_logon_account)
167
- raise Puppet::Error.new("\"#{@normalized_logon_account}\" is not a valid account") unless @logonaccount_information && [:SidTypeUser, :SidTypeWellKnownGroup].include?(@logonaccount_information.account_type)
167
+ raise Puppet::Error, "\"#{@normalized_logon_account}\" is not a valid account" unless @logonaccount_information && [:SidTypeUser, :SidTypeWellKnownGroup].include?(@logonaccount_information.account_type)
168
168
 
169
169
  user_rights = Puppet::Util::Windows::User.get_rights(@logonaccount_information.domain_account) unless Puppet::Util::Windows::User.default_system_account?(@normalized_logon_account)
170
- raise Puppet::Error.new("\"#{@normalized_logon_account}\" has the 'Log On As A Service' right set to denied.") if user_rights =~ /SeDenyServiceLogonRight/
171
- raise Puppet::Error.new("\"#{@normalized_logon_account}\" is missing the 'Log On As A Service' right.") unless user_rights.nil? || user_rights =~ /SeServiceLogonRight/
170
+ raise Puppet::Error, "\"#{@normalized_logon_account}\" has the 'Log On As A Service' right set to denied." if user_rights =~ /SeDenyServiceLogonRight/
171
+ raise Puppet::Error, "\"#{@normalized_logon_account}\" is missing the 'Log On As A Service' right." unless user_rights.nil? || user_rights =~ /SeServiceLogonRight/
172
172
  end
173
173
 
174
174
  is_a_predefined_local_account = Puppet::Util::Windows::User.default_system_account?(@normalized_logon_account) || @normalized_logon_account == 'LocalSystem'
175
175
  account_info = @normalized_logon_account.split("\\")
176
176
  able_to_logon = Puppet::Util::Windows::User.password_is?(account_info[1], @resource[:logonpassword], account_info[0]) unless is_a_predefined_local_account
177
- raise Puppet::Error.new("The given password is invalid for user '#{@normalized_logon_account}'.") unless is_a_predefined_local_account || able_to_logon
177
+ raise Puppet::Error, "The given password is invalid for user '#{@normalized_logon_account}'." unless is_a_predefined_local_account || able_to_logon
178
178
  end
179
179
  end
@@ -72,8 +72,10 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
72
72
  return :absent
73
73
  end
74
74
 
75
- month, day, year = match_obj[1], match_obj[2], match_obj[-1]
76
- return "20#{year}-#{month}-#{day}"
75
+ month = match_obj[1]
76
+ day = match_obj[2]
77
+ year = match_obj[-1]
78
+ "20#{year}-#{month}-#{day}"
77
79
  end
78
80
 
79
81
  # We do some validation before-hand to ensure the value's an Array,
@@ -87,14 +87,14 @@ Puppet::Type.type(:user).provide :directoryservice do
87
87
  # display its output.
88
88
  def self.instances
89
89
  get_all_users.collect do |user|
90
- self.new(generate_attribute_hash(user))
90
+ new(generate_attribute_hash(user))
91
91
  end
92
92
  end
93
93
 
94
94
  # Return an array of hashes containing information about every user on
95
95
  # the system.
96
96
  def self.get_all_users
97
- Puppet::Util::Plist.parse_plist(dscl '-plist', '.', 'readall', '/Users')
97
+ Puppet::Util::Plist.parse_plist(dscl('-plist', '.', 'readall', '/Users'))
98
98
  end
99
99
 
100
100
  # This method accepts an individual user plist, passed as a hash, and
@@ -171,7 +171,7 @@ Puppet::Type.type(:user).provide :directoryservice do
171
171
  # of the local groups on the machine.
172
172
  def self.get_list_of_groups
173
173
  # rubocop:disable Naming/MemoizedInstanceVariableName
174
- @groups ||= Puppet::Util::Plist.parse_plist(dscl '-plist', '.', 'readall', '/Groups')
174
+ @groups ||= Puppet::Util::Plist.parse_plist(dscl('-plist', '.', 'readall', '/Groups'))
175
175
  # rubocop:enable Naming/MemoizedInstanceVariableName
176
176
  end
177
177
 
@@ -179,7 +179,7 @@ Puppet::Type.type(:user).provide :directoryservice do
179
179
  # value. The value returned is the first item within the array returned
180
180
  # from dscl
181
181
  def self.get_attribute_from_dscl(path, username, keyname)
182
- Puppet::Util::Plist.parse_plist(dscl '-plist', '.', 'read', "/#{path}/#{username}", keyname)
182
+ Puppet::Util::Plist.parse_plist(dscl('-plist', '.', 'read', "/#{path}/#{username}", keyname))
183
183
  end
184
184
 
185
185
  # The plist embedded in the ShadowHashData key is a binary plist. The
@@ -205,7 +205,7 @@ Puppet::Type.type(:user).provide :directoryservice do
205
205
  # The salted-SHA512 password hash in 10.7 is stored in the 'SALTED-SHA512'
206
206
  # key as binary data. That data is extracted and converted to a hex string.
207
207
  def self.get_salted_sha512(embedded_binary_plist)
208
- embedded_binary_plist['SALTED-SHA512'].unpack("H*")[0]
208
+ embedded_binary_plist['SALTED-SHA512'].unpack1("H*")
209
209
  end
210
210
 
211
211
  # This method reads the passed embedded_binary_plist hash and returns values
@@ -216,11 +216,11 @@ Puppet::Type.type(:user).provide :directoryservice do
216
216
  case field
217
217
  when 'salt', 'entropy'
218
218
  value = embedded_binary_plist['SALTED-SHA512-PBKDF2'][field]
219
- if value == nil
219
+ if value.nil?
220
220
  raise Puppet::Error, "Invalid #{field} given for user #{user_name}"
221
221
  end
222
222
 
223
- value.unpack('H*').first
223
+ value.unpack1('H*')
224
224
  when 'iterations'
225
225
  Integer(embedded_binary_plist['SALTED-SHA512-PBKDF2'][field])
226
226
  else
@@ -234,7 +234,7 @@ Puppet::Type.type(:user).provide :directoryservice do
234
234
  password_hash = nil
235
235
  password_hash_file = "#{password_hash_dir}/#{guid}"
236
236
  if Puppet::FileSystem.exist?(password_hash_file) and File.file?(password_hash_file)
237
- raise Puppet::Error, "Could not read password hash file at #{password_hash_file}" if not File.readable?(password_hash_file)
237
+ raise Puppet::Error, "Could not read password hash file at #{password_hash_file}" unless File.readable?(password_hash_file)
238
238
 
239
239
  f = File.new(password_hash_file)
240
240
  password_hash = f.read
@@ -300,22 +300,22 @@ Puppet::Type.type(:user).provide :directoryservice do
300
300
  # For the :password and :groups properties, call the setter methods
301
301
  # to enforce those values. For everything else, use dscl with the
302
302
  # ns_to_ds_attribute_map to set the appropriate values.
303
- if value != "" and not value.nil?
304
- case attribute
305
- when :password
306
- self.password = value
307
- when :iterations
308
- self.iterations = value
309
- when :salt
310
- self.salt = value
311
- when :groups
312
- value.split(',').each do |group|
313
- merge_attribute_with_dscl('Groups', group, 'GroupMembership', @resource.name)
314
- merge_attribute_with_dscl('Groups', group, 'GroupMembers', @guid)
315
- end
316
- else
317
- create_attribute_with_dscl('Users', @resource.name, self.class.ns_to_ds_attribute_map[attribute], value)
303
+ next unless value != "" and !value.nil?
304
+
305
+ case attribute
306
+ when :password
307
+ self.password = value
308
+ when :iterations
309
+ self.iterations = value
310
+ when :salt
311
+ self.salt = value
312
+ when :groups
313
+ value.split(',').each do |group|
314
+ merge_attribute_with_dscl('Groups', group, 'GroupMembership', @resource.name)
315
+ merge_attribute_with_dscl('Groups', group, 'GroupMembers', @guid)
318
316
  end
317
+ else
318
+ create_attribute_with_dscl('Users', @resource.name, self.class.ns_to_ds_attribute_map[attribute], value)
319
319
  end
320
320
  end
321
321
  end
@@ -395,7 +395,7 @@ Puppet::Type.type(:user).provide :directoryservice do
395
395
  # we have to treat the ds cache just like you would in the password=
396
396
  # method.
397
397
  def iterations=(value)
398
- if (Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.7') > 0)
398
+ if Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.7') > 0
399
399
  assert_full_pbkdf2_password
400
400
 
401
401
  sleep 3
@@ -412,12 +412,12 @@ Puppet::Type.type(:user).provide :directoryservice do
412
412
  # we have to treat the ds cache just like you would in the password=
413
413
  # method.
414
414
  def salt=(value)
415
- if (Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.15') >= 0)
415
+ if Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.15') >= 0
416
416
  if value.length != 64
417
417
  self.fail "macOS versions 10.15 and higher require the salt to be 32-bytes. Since Puppet's user resource requires the value to be hex encoded, the length of the salt's string must be 64. Please check your salt and try again."
418
418
  end
419
419
  end
420
- if (Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.7') > 0)
420
+ if Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.7') > 0
421
421
  assert_full_pbkdf2_password
422
422
 
423
423
  sleep 3
@@ -448,10 +448,10 @@ Puppet::Type.type(:user).provide :directoryservice do
448
448
  # In the event that the user doesn't HAVE a value for the attribute, the
449
449
  # provider should use the -create option with dscl to add the attribute value
450
450
  # for the user record
451
- ['home', 'uid', 'gid', 'comment', 'shell'].each do |setter_method|
451
+ %w[home uid gid comment shell].each do |setter_method|
452
452
  define_method("#{setter_method}=") do |value|
453
453
  if @property_hash[setter_method.intern]
454
- if %w(home uid).include?(setter_method)
454
+ if %w[home uid].include?(setter_method)
455
455
  raise Puppet::Error, "OS X version #{self.class.get_os_version} does not allow changing #{setter_method} using puppet"
456
456
  end
457
457
 
@@ -479,7 +479,7 @@ Puppet::Type.type(:user).provide :directoryservice do
479
479
  def assert_full_pbkdf2_password
480
480
  missing = [:password, :salt, :iterations].select { |parameter| @resource[parameter].nil? }
481
481
 
482
- if !missing.empty?
482
+ unless missing.empty?
483
483
  raise Puppet::Error, "OS X versions > 10\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}."
484
484
  end
485
485
  end
@@ -503,11 +503,9 @@ Puppet::Type.type(:user).provide :directoryservice do
503
503
  end
504
504
 
505
505
  def set_attribute_with_dscl(dscl_command, path, username, keyname, value)
506
- begin
507
- dscl '.', dscl_command, "/#{path}/#{username}", keyname, value
508
- rescue Puppet::ExecutionFailure => detail
509
- raise Puppet::Error, "Could not set the dscl #{keyname} key with value: #{value} - #{detail.inspect}", detail.backtrace
510
- end
506
+ dscl '.', dscl_command, "/#{path}/#{username}", keyname, value
507
+ rescue Puppet::ExecutionFailure => detail
508
+ raise Puppet::Error, "Could not set the dscl #{keyname} key with value: #{value} - #{detail.inspect}", detail.backtrace
511
509
  end
512
510
 
513
511
  # Create the new user with dscl
@@ -549,7 +547,7 @@ Puppet::Type.type(:user).provide :directoryservice do
549
547
  # variable IS a Hash and contains the 'SALTED-SHA512' key (indicating an
550
548
  # older 10.7-style password hash), it will be deleted and a newer
551
549
  # 10.8-style (PBKDF2) password hash will be generated.
552
- if (shadow_hash_data.instance_of?(Hash)) && (shadow_hash_data.has_key?('SALTED-SHA512'))
550
+ if shadow_hash_data.instance_of?(Hash) && shadow_hash_data.has_key?('SALTED-SHA512')
553
551
  shadow_hash_data.delete('SALTED-SHA512')
554
552
  end
555
553
 
@@ -661,7 +659,7 @@ Puppet::Type.type(:user).provide :directoryservice do
661
659
  # the user's plist itself, and the shadow_hash_data hash containing the
662
660
  # existing PBKDF2 values.
663
661
  def set_salted_pbkdf2(users_plist, shadow_hash_data, field, value)
664
- shadow_hash_data = Hash.new unless shadow_hash_data
662
+ shadow_hash_data ||= Hash.new
665
663
  shadow_hash_data['SALTED-SHA512-PBKDF2'] = Hash.new unless shadow_hash_data['SALTED-SHA512-PBKDF2']
666
664
  case field
667
665
  when 'salt', 'entropy'
@@ -40,7 +40,7 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
40
40
  cmd << "/usr/lbin/modprpw"
41
41
  cmd << "-v"
42
42
  cmd << "-l"
43
- cmd << "#{resource.name}"
43
+ cmd << resource.name.to_s
44
44
  end
45
45
  cmd
46
46
  end
@@ -48,14 +48,14 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
48
48
  def password
49
49
  # Password management routine for trusted and non-trusted systems
50
50
  # temp=""
51
- while ent = Etc.getpwent() do # rubocop:disable Lint/AssignmentInCondition
51
+ while ent = Etc.getpwent() # rubocop:disable Lint/AssignmentInCondition
52
52
  if ent.name == resource.name
53
53
  temp = ent.name
54
54
  break
55
55
  end
56
56
  end
57
57
  Etc.endpwent()
58
- if !temp
58
+ unless temp
59
59
  return nil
60
60
  end
61
61
 
@@ -66,17 +66,17 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
66
66
  if File.file?(file_name)
67
67
  # Found the tcb user for the specific user, now get passwd
68
68
  File.open(file_name).each do |line|
69
- if (line =~ /u_pwd/)
70
- temp_passwd = line.split(":")[1].split("=")[1]
71
- ent.passwd = temp_passwd
72
- return ent.passwd
73
- end
69
+ next unless line =~ /u_pwd/
70
+
71
+ temp_passwd = line.split(":")[1].split("=")[1]
72
+ ent.passwd = temp_passwd
73
+ return ent.passwd
74
74
  end
75
75
  else
76
76
  debug "No trusted computing user file #{file_name} found."
77
77
  end
78
78
  else
79
- return ent.passwd
79
+ ent.passwd
80
80
  end
81
81
  end
82
82
 
@@ -84,11 +84,7 @@ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
84
84
  # Check to see if the HP-UX box is running in trusted compute mode
85
85
  # UID for root should always be 0
86
86
  trusted_sys = exec_getprpw('root', '-m uid')
87
- if trusted_sys.chomp == "uid=0"
88
- return true
89
- else
90
- return false
91
- end
87
+ trusted_sys.chomp == "uid=0"
92
88
  end
93
89
 
94
90
  def exec_getprpw(user, opts)
@@ -96,7 +96,7 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::
96
96
 
97
97
  # Get expiry from system and convert to Puppet-style date
98
98
  def expiry
99
- expiry = self.get(:expiry)
99
+ expiry = get(:expiry)
100
100
  expiry = :absent if expiry == 0
101
101
 
102
102
  if expiry != :absent
@@ -76,7 +76,7 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
76
76
  end
77
77
 
78
78
  def command(cmd)
79
- cmd = ("role_#{cmd}").intern if is_role? or (!exists? and @resource[:ensure] == :role)
79
+ cmd = "role_#{cmd}".intern if is_role? or (!exists? and @resource[:ensure] == :role)
80
80
  super(cmd)
81
81
  end
82
82
 
@@ -221,25 +221,23 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
221
221
  # data, but it is still terrible. We still skip platform locking, so a
222
222
  # concurrent `vipw -s` session will have no idea we risk data loss.
223
223
  def password=(cryptopw)
224
- begin
225
- shadow = File.read(target_file_path)
226
-
227
- # Go Mifune loves the race here where we can lose data because
228
- # /etc/shadow changed between reading it and writing it.
229
- # --daniel 2012-02-05
230
- Puppet::Util.replace_file(target_file_path, 0640) do |fh|
231
- shadow.each_line do |line|
232
- line_arr = line.split(':')
233
- if line_arr[0] == @resource[:name]
234
- line_arr[1] = cryptopw
235
- line_arr[2] = (Date.today - Date.new(1970, 1, 1)).to_i.to_s
236
- line = line_arr.join(':')
237
- end
238
- fh.print line
224
+ shadow = File.read(target_file_path)
225
+
226
+ # Go Mifune loves the race here where we can lose data because
227
+ # /etc/shadow changed between reading it and writing it.
228
+ # --daniel 2012-02-05
229
+ Puppet::Util.replace_file(target_file_path, 0o640) do |fh|
230
+ shadow.each_line do |line|
231
+ line_arr = line.split(':')
232
+ if line_arr[0] == @resource[:name]
233
+ line_arr[1] = cryptopw
234
+ line_arr[2] = (Date.today - Date.new(1970, 1, 1)).to_i.to_s
235
+ line = line_arr.join(':')
239
236
  end
237
+ fh.print line
240
238
  end
241
- rescue => detail
242
- self.fail Puppet::Error, "Could not write replace #{target_file_path}: #{detail}", detail
243
239
  end
240
+ rescue => detail
241
+ self.fail Puppet::Error, "Could not write replace #{target_file_path}: #{detail}", detail
244
242
  end
245
243
  end
@@ -102,7 +102,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
102
102
 
103
103
  unless @users
104
104
  unless Puppet::FileSystem.exist?(passwd_file)
105
- raise Puppet::Error.new("Forcelocal set for user resource '#{resource[:name]}', but #{passwd_file} does not exist")
105
+ raise Puppet::Error, "Forcelocal set for user resource '#{resource[:name]}', but #{passwd_file} does not exist"
106
106
  end
107
107
 
108
108
  @users = []
@@ -163,7 +163,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
163
163
  @groups_of[user] = []
164
164
 
165
165
  unless Puppet::FileSystem.exist?(group_file)
166
- raise Puppet::Error.new("Forcelocal set for user resource '#{user}', but #{group_file} does not exist")
166
+ raise Puppet::Error, "Forcelocal set for user resource '#{user}', but #{group_file} does not exist"
167
167
  end
168
168
 
169
169
  Puppet::FileSystem.each_line(group_file) do |line|
@@ -225,7 +225,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
225
225
  end
226
226
 
227
227
  has_features :manages_homedir, :allows_duplicates, :manages_expiry
228
- has_features :system_users unless %w{HP-UX Solaris}.include? Puppet.runtime[:facter].value('os.name')
228
+ has_features :system_users unless %w[HP-UX Solaris].include? Puppet.runtime[:facter].value('os.name')
229
229
 
230
230
  has_features :manages_passwords, :manages_password_age if Puppet.features.libshadow?
231
231
  has_features :manages_shell
@@ -235,11 +235,11 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
235
235
  # because by default duplicates are allowed. This check is
236
236
  # to ensure consistent behaviour of the useradd provider when
237
237
  # using both useradd and luseradd
238
- if (!@resource.allowdupe?) && @resource.forcelocal?
238
+ if !@resource.allowdupe? && @resource.forcelocal?
239
239
  if @resource.should(:uid) && finduser(:uid, @resource.should(:uid).to_s)
240
240
  raise(Puppet::Error, "UID #{@resource.should(:uid)} already exists, use allowdupe to force user creation")
241
241
  end
242
- elsif @resource.allowdupe? && (!@resource.forcelocal?)
242
+ elsif @resource.allowdupe? && !@resource.forcelocal?
243
243
  return ["-o"]
244
244
  end
245
245
  []
@@ -324,7 +324,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
324
324
  else
325
325
  cmd = [command(:add)]
326
326
  end
327
- if (!@resource.should(:gid)) && Puppet::Util.gid(@resource[:name])
327
+ if !@resource.should(:gid) && Puppet::Util.gid(@resource[:name])
328
328
  cmd += ["-g", @resource[:name]]
329
329
  end
330
330
  cmd += add_properties
@@ -401,7 +401,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
401
401
  end
402
402
  super
403
403
  if @resource.forcelocal?
404
- set(:groups, @resource[:groups]) if self.groups?
404
+ set(:groups, @resource[:groups]) if groups?
405
405
  set(:expiry, @resource[:expiry]) if @resource[:expiry]
406
406
  end
407
407
  set(:password, @resource[:password]) if @resource[:password]
@@ -81,7 +81,7 @@ Puppet::Type.type(:user).provide :windows_adsi do
81
81
  resource.debug("#{sid.domain}\\#{account} (#{sid.sid})")
82
82
  "#{sid.domain}\\#{account}"
83
83
  end
84
- return groups.join(',')
84
+ groups.join(',')
85
85
  end
86
86
 
87
87
  def create
@@ -241,7 +241,7 @@ class Puppet::Provider
241
241
  end
242
242
 
243
243
  def command
244
- if not @optional
244
+ unless @optional
245
245
  @confiner.confine :exists => @path, :for_binary => true
246
246
  end
247
247
 
@@ -290,7 +290,7 @@ class Puppet::Provider
290
290
  def self.fact_match(fact, values)
291
291
  fact_val = Puppet.runtime[:facter].value(fact).to_s.downcase
292
292
  if fact_val.empty?
293
- return false
293
+ false
294
294
  else
295
295
  values = [values] unless values.is_a?(Array)
296
296
  values.any? do |value|
@@ -380,7 +380,7 @@ class Puppet::Provider
380
380
  # @raise [Puppet::DevError] Error indicating that the method should have been implemented by subclass.
381
381
  # @see prefetch
382
382
  def self.instances
383
- raise Puppet::DevError, _("To support listing resources of this type the '%{provider}' provider needs to implement an 'instances' class method returning the current set of resources. We recommend porting your module to the simpler Resource API instead: https://puppet.com/search/docs?keys=resource+api") % { provider: self.name }
383
+ raise Puppet::DevError, _("To support listing resources of this type the '%{provider}' provider needs to implement an 'instances' class method returning the current set of resources. We recommend porting your module to the simpler Resource API instead: https://puppet.com/search/docs?keys=resource+api") % { provider: name }
384
384
  end
385
385
 
386
386
  # Creates getter- and setter- methods for each property supported by the resource type.
@@ -415,7 +415,7 @@ class Puppet::Provider
415
415
  end
416
416
  end
417
417
 
418
- self.initvars
418
+ initvars
419
419
 
420
420
  # This method is used to generate a method for a command.
421
421
  # @return [void]
@@ -437,7 +437,7 @@ class Puppet::Provider
437
437
  # @return [String] Returns the data source, which is the provider name if no other source has been set.
438
438
  # @todo Unclear what "the source" is used for?
439
439
  def self.source
440
- @source ||= self.name
440
+ @source ||= name
441
441
  end
442
442
 
443
443
  # Returns true if the given attribute/parameter is supported by the provider.
@@ -536,8 +536,8 @@ class Puppet::Provider
536
536
  def name
537
537
  n = @property_hash[:name]
538
538
  if n
539
- return n
540
- elsif self.resource
539
+ n
540
+ elsif resource
541
541
  resource.name
542
542
  else
543
543
  raise Puppet::DevError, _("No resource and no name in property hash in %{class_name} instance") % { class_name: self.class.name }
@@ -579,7 +579,7 @@ class Puppet::Provider
579
579
  return nil unless other.is_a? Puppet::Provider
580
580
 
581
581
  # Otherwise, order by the providers class name.
582
- return self.class.name <=> other.class.name
582
+ self.class.name <=> other.class.name
583
583
  end
584
584
 
585
585
  # @comment Document prefetch here as it does not exist anywhere else (called from transaction if implemented)
@@ -15,6 +15,9 @@ reference = Puppet::Util::Reference.newreference :indirection, :doc => "Indirect
15
15
  text << Puppet::Util::Docs.scrub(ind.doc) + "\n\n"
16
16
 
17
17
  Puppet::Indirector::Terminus.terminus_classes(ind.name).sort_by(&:to_s).each do |terminus|
18
+ # this is an "abstract" terminus, ignore it
19
+ next if ind.name == :resource && terminus == :validator
20
+
18
21
  terminus_name = terminus.to_s
19
22
  term_class = Puppet::Indirector::Terminus.terminus_class(ind.name, terminus)
20
23
  if term_class
@@ -14,7 +14,7 @@ etc.), prevent Puppet from making changes (`noop`), and change logging verbosity
14
14
 
15
15
  ## Available Metaparameters
16
16
 
17
- }
17
+ }.dup
18
18
  begin
19
19
  params = []
20
20
  Puppet::Type.eachmetaparam { |param|
@@ -13,7 +13,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
13
13
  command_line = Puppet::Util::CommandLine.new
14
14
  types.reject! { |type| !command_line.args.include?(type.name.to_s) } unless command_line.args.empty?
15
15
 
16
- ret = "Details about this host:\n\n"
16
+ ret = "Details about this host:\n\n".dup
17
17
 
18
18
  # Throw some facts in there, so we know where the report is from.
19
19
  ret << option('Ruby Version', Facter.value('ruby.version'))
@@ -30,7 +30,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
30
30
  ret << "\n" # add a trailing newline
31
31
 
32
32
  # Now build up a table of provider suitability.
33
- headers = %w{Provider Suitable?} + features.collect { |f| f.to_s }.sort
33
+ headers = %w[Provider Suitable?] + features.collect(&:to_s).sort
34
34
 
35
35
  table_data = {}
36
36
 
@@ -71,7 +71,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
71
71
  when :false
72
72
  details << _(" - Got %{values} false tests that should have been true\n") % { values: values }
73
73
  when :feature
74
- details << _(" - Missing features %{values}\n") % { values: values.collect { |f| f.to_s }.join(",") }
74
+ details << _(" - Missing features %{values}\n") % { values: values.collect(&:to_s).join(",") }
75
75
  end
76
76
  end
77
77
  notes << details
@@ -50,7 +50,7 @@ Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types a
50
50
  Resource types define features they can use, and providers can be tested to see
51
51
  which features they provide.
52
52
 
53
- }
53
+ }.dup
54
54
 
55
55
  types.sort_by(&:to_s).each { |name, type|
56
56
  str << "
@@ -34,7 +34,8 @@ class Puppet::Relationship
34
34
  end
35
35
 
36
36
  def initialize(source, target, options = {})
37
- @source, @target = source, target
37
+ @source = source
38
+ @target = target
38
39
 
39
40
  options = (options || {}).each_with_object({}) { |a, h| h[a[0].to_sym] = a[1]; }
40
41
  [:callback, :event].each do |option|
@@ -47,11 +48,9 @@ class Puppet::Relationship
47
48
  # of :NONE comes from.
48
49
  def match?(event)
49
50
  if self.event.nil? or event == :NONE or self.event == :NONE
50
- return false
51
- elsif self.event == :ALL_EVENTS or event == self.event
52
- return true
51
+ false
53
52
  else
54
- return false
53
+ self.event == :ALL_EVENTS or event == self.event
55
54
  end
56
55
  end
57
56
 
@@ -36,7 +36,7 @@ Puppet::Reports.register_report(:http) do
36
36
  end
37
37
 
38
38
  client = Puppet.runtime[:http]
39
- client.post(url, self.to_yaml, headers: headers, options: options) do |response|
39
+ client.post(url, to_yaml, headers: headers, options: options) do |response|
40
40
  unless response.success?
41
41
  Puppet.err _("Unable to submit report to %{url} [%{code}] %{message}") % { url: Puppet[:reporturl].to_s, code: response.code, message: response.reason }
42
42
  end
@@ -7,8 +7,8 @@ Puppet::Reports.register_report(:log) do
7
7
  the log destination is syslog."
8
8
 
9
9
  def process
10
- self.logs.each do |log|
11
- log.source = "//#{self.host}/#{log.source}"
10
+ logs.each do |log|
11
+ log.source = "//#{host}/#{log.source}"
12
12
  Puppet::Util::Log.newmessage(log)
13
13
  end
14
14
  end
@@ -19,14 +19,14 @@ Puppet::Reports.register_report(:store) do
19
19
 
20
20
  dir = File.join(Puppet[:reportdir], host)
21
21
 
22
- if !Puppet::FileSystem.exist?(dir)
22
+ unless Puppet::FileSystem.exist?(dir)
23
23
  FileUtils.mkdir_p(dir)
24
- FileUtils.chmod_R(0750, dir)
24
+ FileUtils.chmod_R(0o750, dir)
25
25
  end
26
26
 
27
27
  # Now store the report.
28
28
  now = Time.now.gmtime
29
- name = %w{year month day hour min}.collect do |method|
29
+ name = %w[year month day hour min].collect do |method|
30
30
  # Make sure we're at least two digits everywhere
31
31
  "%02d" % now.send(method).to_s
32
32
  end.join("") + ".yaml"
@@ -34,7 +34,7 @@ Puppet::Reports.register_report(:store) do
34
34
  file = File.join(dir, name)
35
35
 
36
36
  begin
37
- Puppet::FileSystem.replace_file(file, 0640) do |fh|
37
+ Puppet::FileSystem.replace_file(file, 0o640) do |fh|
38
38
  fh.print to_yaml
39
39
  end
40
40
  rescue => detail
@@ -77,8 +77,8 @@ class Puppet::Reports
77
77
  # Use this method so they all get loaded
78
78
  instance_loader(:report).loadall(Puppet.lookup(:current_environment))
79
79
  loaded_instances(:report).sort_by(&:to_s).each do |name|
80
- mod = self.report(name)
81
- docs << "#{name}\n#{"-" * name.to_s.length}\n"
80
+ mod = report(name)
81
+ docs << "#{name}\n#{'-' * name.to_s.length}\n"
82
82
 
83
83
  docs << Puppet::Util::Docs.scrub(mod.doc) << "\n\n"
84
84
  end