puppet 8.5.1-universal-darwin → 8.7.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 (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 +23 -27
  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
@@ -1,53 +1,8 @@
1
1
  ---
2
2
  project: 'puppet'
3
- author: 'Puppet Labs'
4
- email: 'info@puppetlabs.com'
5
- homepage: 'https://github.com/puppetlabs/puppet'
6
- summary: 'Puppet, an automated configuration management tool'
7
- description: 'Puppet, an automated configuration management tool'
8
- version_file: 'lib/puppet/version.rb'
9
- # files and gem_files are space separated lists
10
- files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
11
- # Make sure these gem requirements are in sync with the gemspec and Gemfile
12
- gem_files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
13
- gem_test_files:
14
- gem_executables: 'puppet'
15
- gem_default_executables: 'puppet'
16
- gem_license: 'Apache-2.0'
17
- gem_forge_project: 'puppet'
18
- gem_required_ruby_version: '>= 3.1.0'
19
- gem_required_rubygems_version: '> 1.3.1'
20
- gem_runtime_dependencies:
21
- facter: ['>= 4.3.0', '< 5']
22
- semantic_puppet: '~> 1.0'
23
- fast_gettext: ['>= 2.1', '< 3']
24
- locale: '~> 2.1'
25
- multi_json: '~> 1.13'
26
- puppet-resource_api: '~>1.5'
27
- concurrent-ruby: "~> 1.0"
28
- deep_merge: '~> 1.0'
29
- scanf: '~> 1.0'
30
3
  gem_rdoc_options:
31
4
  - --title
32
5
  - "Puppet - Configuration Management"
33
6
  - --main
34
7
  - README.md
35
8
  - --line-numbers
36
- gem_platform_dependencies:
37
- universal-darwin:
38
- gem_runtime_dependencies:
39
- CFPropertyList: '~> 2.2'
40
- x86-mingw32:
41
- gem_runtime_dependencies:
42
- ffi: '1.15.5'
43
- minitar: '~> 0.9'
44
- x64-mingw32:
45
- gem_runtime_dependencies:
46
- ffi: '1.15.5'
47
- minitar: '~> 0.9'
48
- bundle_platforms:
49
- universal-darwin: all
50
- x86-mingw32: mingw
51
- x64-mingw32: x64_mingw
52
- pre_tasks:
53
- 'package:apple': 'cfpropertylist'
@@ -36,7 +36,7 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
36
36
 
37
37
  @LOG_TO_FILE = (argsv.index('--logtofile') ? true : false)
38
38
 
39
- if (@LOG_TO_FILE)
39
+ if @LOG_TO_FILE
40
40
  FileUtils.mkdir_p(File.dirname(LOG_FILE))
41
41
  args = args.gsub("--logtofile", "")
42
42
  end
@@ -75,25 +75,23 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
75
75
 
76
76
  service = self
77
77
  @run_thread = Thread.new do
78
- begin
79
- while service.running? do
80
- runinterval = service.parse_runinterval(ruby_puppet_cmd)
81
-
82
- if service.state == RUNNING or service.state == IDLE
83
- service.log_notice("Executing agent with arguments: #{args}")
84
- pid = Process.create(:command_line => "#{ruby_puppet_cmd} agent --onetime #{args}", :creation_flags => CREATE_NEW_CONSOLE).process_id
85
- service.log_debug("Process created: #{pid}")
86
- else
87
- service.log_debug("Service is paused. Not invoking Puppet agent")
88
- end
89
-
90
- service.log_debug("Service worker thread waiting for #{runinterval} seconds")
91
- sleep(runinterval)
92
- service.log_debug('Service worker thread woken up')
78
+ while service.running?
79
+ runinterval = service.parse_runinterval(ruby_puppet_cmd)
80
+
81
+ if service.state == RUNNING or service.state == IDLE
82
+ service.log_notice("Executing agent with arguments: #{args}")
83
+ pid = Process.create(:command_line => "#{ruby_puppet_cmd} agent --onetime #{args}", :creation_flags => CREATE_NEW_CONSOLE).process_id
84
+ service.log_debug("Process created: #{pid}")
85
+ else
86
+ service.log_debug("Service is paused. Not invoking Puppet agent")
93
87
  end
94
- rescue Exception => e
95
- service.log_exception(e)
88
+
89
+ service.log_debug("Service worker thread waiting for #{runinterval} seconds")
90
+ sleep(runinterval)
91
+ service.log_debug('Service worker thread woken up')
96
92
  end
93
+ rescue Exception => e
94
+ service.log_exception(e)
97
95
  end
98
96
  @run_thread.join
99
97
  rescue Exception => e
@@ -131,7 +129,7 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
131
129
 
132
130
  def log(msg, level)
133
131
  if LEVELS.index(level) >= @loglevel
134
- if (@LOG_TO_FILE)
132
+ if @LOG_TO_FILE
135
133
  # without this change its possible that we get Encoding errors trying to write UTF-8 messages in current codepage
136
134
  File.open(LOG_FILE, 'a:UTF-8') { |f| f.puts("#{Time.now} Puppet (#{level}): #{msg}") }
137
135
  end
@@ -142,26 +140,24 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
142
140
  end
143
141
 
144
142
  def report_windows_event(type, id, message)
145
- begin
146
- eventlog = nil
147
- eventlog = Puppet::Util::Windows::EventLog.open("Puppet")
148
- eventlog.report_event(
149
- :event_type => type, # EVENTLOG_ERROR_TYPE, etc
150
- :event_id => id, # 0x01 or 0x02, 0x03 etc.
151
- :data => message # "the message"
152
- )
153
- rescue Exception
154
- # Ignore all errors
155
- ensure
156
- if (!eventlog.nil?)
157
- eventlog.close
158
- end
143
+ eventlog = nil
144
+ eventlog = Puppet::Util::Windows::EventLog.open("Puppet")
145
+ eventlog.report_event(
146
+ :event_type => type, # EVENTLOG_ERROR_TYPE, etc
147
+ :event_id => id, # 0x01 or 0x02, 0x03 etc.
148
+ :data => message # "the message"
149
+ )
150
+ rescue Exception
151
+ # Ignore all errors
152
+ ensure
153
+ unless eventlog.nil?
154
+ eventlog.close
159
155
  end
160
156
  end
161
157
 
162
158
  def parse_runinterval(puppet_path)
163
159
  begin
164
- runinterval = %x{#{puppet_path} config --section agent --log_level notice print runinterval}.to_i
160
+ runinterval = %x(#{puppet_path} config --section agent --log_level notice print runinterval).to_i
165
161
  if runinterval == 0
166
162
  runinterval = 1800
167
163
  log_err("Failed to determine runinterval, defaulting to #{runinterval} seconds")
@@ -176,7 +172,7 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
176
172
 
177
173
  def parse_log_level(puppet_path, cmdline_debug)
178
174
  begin
179
- loglevel = %x{#{puppet_path} config --section agent --log_level notice print log_level}.chomp
175
+ loglevel = %x(#{puppet_path} config --section agent --log_level notice print log_level).chomp
180
176
  unless loglevel && respond_to?("log_#{loglevel}")
181
177
  loglevel = :notice
182
178
  log_err("Failed to determine loglevel, defaulting to #{loglevel}")
@@ -186,33 +182,31 @@ class WindowsDaemon < Puppet::Util::Windows::Daemon
186
182
  loglevel = :notice
187
183
  end
188
184
 
189
- LEVELS.index(cmdline_debug ? cmdline_debug : loglevel.to_sym)
185
+ LEVELS.index(cmdline_debug || loglevel.to_sym)
190
186
  end
191
187
 
192
188
  private
193
189
 
194
190
  def load_env(base_dir)
195
- begin
196
- # ENV that uses backward slashes
197
- ENV['FACTER_env_windows_installdir'] = base_dir.tr('/', '\\')
198
- ENV['PL_BASEDIR'] = base_dir.tr('/', '\\')
199
- ENV['PUPPET_DIR'] = File.join(base_dir, 'puppet').tr('/', '\\')
200
- ENV['OPENSSL_CONF'] = File.join(base_dir, 'puppet', 'ssl', 'openssl.cnf').tr('/', '\\')
201
- ENV['SSL_CERT_DIR'] = File.join(base_dir, 'puppet', 'ssl', 'certs').tr('/', '\\')
202
- ENV['SSL_CERT_FILE'] = File.join(base_dir, 'puppet', 'ssl', 'cert.pem').tr('/', '\\')
203
- ENV['Path'] = [
204
- File.join(base_dir, 'puppet', 'bin'),
205
- File.join(base_dir, 'bin'),
206
- ].join(';').tr('/', '\\') + ';' + ENV.fetch('Path', nil)
207
-
208
- # ENV that uses forward slashes
209
- ENV['RUBYLIB'] = "#{File.join(base_dir, 'puppet', 'lib')};#{ENV.fetch('RUBYLIB', nil)}"
210
- rescue => e
211
- log_exception(e)
212
- end
191
+ # ENV that uses backward slashes
192
+ ENV['FACTER_env_windows_installdir'] = base_dir.tr('/', '\\')
193
+ ENV['PL_BASEDIR'] = base_dir.tr('/', '\\')
194
+ ENV['PUPPET_DIR'] = File.join(base_dir, 'puppet').tr('/', '\\')
195
+ ENV['OPENSSL_CONF'] = File.join(base_dir, 'puppet', 'ssl', 'openssl.cnf').tr('/', '\\')
196
+ ENV['SSL_CERT_DIR'] = File.join(base_dir, 'puppet', 'ssl', 'certs').tr('/', '\\')
197
+ ENV['SSL_CERT_FILE'] = File.join(base_dir, 'puppet', 'ssl', 'cert.pem').tr('/', '\\')
198
+ ENV['Path'] = [
199
+ File.join(base_dir, 'puppet', 'bin'),
200
+ File.join(base_dir, 'bin')
201
+ ].join(';').tr('/', '\\') + ';' + ENV.fetch('Path', nil)
202
+
203
+ # ENV that uses forward slashes
204
+ ENV['RUBYLIB'] = "#{File.join(base_dir, 'puppet', 'lib')};#{ENV.fetch('RUBYLIB', nil)}"
205
+ rescue => e
206
+ log_exception(e)
213
207
  end
214
208
  end
215
209
 
216
- if __FILE__ == $0
210
+ if __FILE__ == $PROGRAM_NAME
217
211
  WindowsDaemon.mainloop
218
212
  end
data/lib/hiera/scope.rb CHANGED
@@ -77,11 +77,11 @@ class Hiera
77
77
 
78
78
  def find_hostclass(scope)
79
79
  if scope.source and scope.source.type == :hostclass
80
- return scope.source.name.downcase
80
+ scope.source.name.downcase
81
81
  elsif scope.parent
82
- return find_hostclass(scope.parent)
82
+ find_hostclass(scope.parent)
83
83
  else
84
- return nil
84
+ nil
85
85
  end
86
86
  end
87
87
  private :find_hostclass
data/lib/hiera_puppet.rb CHANGED
@@ -47,7 +47,7 @@ module HieraPuppet
47
47
  default = args[1]
48
48
  override = args[2]
49
49
 
50
- return [key, default, override]
50
+ [key, default, override]
51
51
  end
52
52
 
53
53
  def hiera
@@ -26,7 +26,7 @@ module Puppet::Agent::Disabler
26
26
  def disable(msg = nil)
27
27
  data = {}
28
28
  Puppet.notice _("Disabling Puppet.")
29
- if (!msg.nil?)
29
+ unless msg.nil?
30
30
  data[DISABLED_MESSAGE_JSON_KEY] = msg
31
31
  end
32
32
  disable_lockfile.lock(data)
@@ -441,7 +441,7 @@ class Puppet::Application::Agent < Puppet::Application
441
441
 
442
442
  daemon.stop(:exit => false)
443
443
 
444
- if not exitstatus
444
+ if !exitstatus
445
445
  exit(1)
446
446
  elsif options[:detailed_exitcodes] then
447
447
  exit(exitstatus)
@@ -509,7 +509,7 @@ class Puppet::Application::Agent < Puppet::Application
509
509
  end
510
510
 
511
511
  def setup_agent
512
- agent = Puppet::Agent.new(Puppet::Configurer, (not(Puppet[:onetime])))
512
+ agent = Puppet::Agent.new(Puppet::Configurer, !(Puppet[:onetime]))
513
513
 
514
514
  enable_disable_client(agent) if options[:enable] or options[:disable]
515
515
 
@@ -224,7 +224,7 @@ class Puppet::Application::Apply < Puppet::Application
224
224
  $stderr.puts _("%{file} is not readable") % { file: file }
225
225
  exit(63)
226
226
  end
227
- node.classes = Puppet::FileSystem.read(file, :encoding => 'utf-8').split(/[\s]+/)
227
+ node.classes = Puppet::FileSystem.read(file, :encoding => 'utf-8').split(/\s+/)
228
228
  end
229
229
  end
230
230
 
@@ -276,7 +276,7 @@ class Puppet::Application::Apply < Puppet::Application
276
276
 
277
277
  exit_status = apply_catalog(catalog)
278
278
 
279
- if not exit_status
279
+ if !exit_status
280
280
  exit(1)
281
281
  elsif options[:detailed_exitcodes] then
282
282
  exit(exit_status)
@@ -11,7 +11,7 @@ class Formatter
11
11
  return "" unless txt && !txt.empty?
12
12
 
13
13
  work = (opts[:scrub] ? scrub(txt) : txt)
14
- indent = (opts[:indent] ? opts[:indent] : 0)
14
+ indent = opts[:indent] || 0
15
15
  textLen = @width - indent
16
16
  patt = Regexp.new("\\A(.{0,#{textLen}})[ \n]")
17
17
  prefix = " " * indent
@@ -20,8 +20,8 @@ class Formatter
20
20
 
21
21
  while work.length > textLen
22
22
  if work =~ patt
23
- res << $1
24
- work.slice!(0, $MATCH.length)
23
+ res << ::Regexp.last_match(1)
24
+ work.slice!(0, ::Regexp.last_match(0).length)
25
25
  else
26
26
  res << work.slice!(0, textLen)
27
27
  end
@@ -43,10 +43,10 @@ class Formatter
43
43
  # If we can match an indentation, then just remove that same level of
44
44
  # indent from every line.
45
45
  if text =~ /^(\s+)/
46
- indent = $1
47
- return text.gsub(/^#{indent}/, '')
46
+ indent = ::Regexp.last_match(1)
47
+ text.gsub(/^#{indent}/, '')
48
48
  else
49
- return text
49
+ text
50
50
  end
51
51
  end
52
52
  end
@@ -263,115 +263,114 @@ class Puppet::Application::Device < Puppet::Application
263
263
  end
264
264
  devices.collect do |_devicename, device|
265
265
  # TODO when we drop support for ruby < 2.5 we can remove the extra block here
266
- begin
267
- device_url = URI.parse(device.url)
268
- # Handle nil scheme & port
269
- scheme = "#{device_url.scheme}://" if device_url.scheme
270
- port = ":#{device_url.port}" if device_url.port
271
-
272
- # override local $vardir and $certname
273
- Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
274
- Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
275
- Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
276
- Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
277
- Puppet[:certname] = device.name
278
- ssl_context = nil
279
-
280
- # create device directory under $deviceconfdir
281
- Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
282
-
283
- # this will reload and recompute default settings and create device-specific sub vardir
284
- Puppet.settings.use :main, :agent, :ssl
285
-
286
- # Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
287
- optssldir = File.join(Puppet[:confdir], 'ssl')
288
- Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
289
-
290
- unless options[:resource] || options[:facts] || options[:apply]
291
- # Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
292
- # See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
293
- # This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
294
- # routines would fail with access errors
295
- if Puppet.features.root? && !Puppet::Util::Platform.windows?
296
- user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
297
- group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
298
- Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
299
- FileUtils.chown(user, group, Puppet[:confdir]) if user || group
300
- end
301
266
 
302
- ssl_context = setup_context
267
+ device_url = URI.parse(device.url)
268
+ # Handle nil scheme & port
269
+ scheme = "#{device_url.scheme}://" if device_url.scheme
270
+ port = ":#{device_url.port}" if device_url.port
271
+
272
+ # override local $vardir and $certname
273
+ Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
274
+ Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
275
+ Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
276
+ Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
277
+ Puppet[:certname] = device.name
278
+ ssl_context = nil
279
+
280
+ # create device directory under $deviceconfdir
281
+ Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
282
+
283
+ # this will reload and recompute default settings and create device-specific sub vardir
284
+ Puppet.settings.use :main, :agent, :ssl
285
+
286
+ # Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
287
+ optssldir = File.join(Puppet[:confdir], 'ssl')
288
+ Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
289
+
290
+ unless options[:resource] || options[:facts] || options[:apply]
291
+ # Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
292
+ # See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
293
+ # This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
294
+ # routines would fail with access errors
295
+ if Puppet.features.root? && !Puppet::Util::Platform.windows?
296
+ user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
297
+ group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
298
+ Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
299
+ FileUtils.chown(user, group, Puppet[:confdir]) if user || group
300
+ end
301
+
302
+ ssl_context = setup_context
303
303
 
304
- unless options[:libdir]
305
- Puppet.override(ssl_context: ssl_context) do
306
- Puppet::Configurer::PluginHandler.new.download_plugins(env) if Puppet::Configurer.should_pluginsync?
307
- end
304
+ unless options[:libdir]
305
+ Puppet.override(ssl_context: ssl_context) do
306
+ Puppet::Configurer::PluginHandler.new.download_plugins(env) if Puppet::Configurer.should_pluginsync?
308
307
  end
309
308
  end
309
+ end
310
310
 
311
- # this inits the device singleton, so that the facts terminus
312
- # and the various network_device provider can use it
313
- Puppet::Util::NetworkDevice.init(device)
314
-
315
- if options[:resource]
316
- type, name = parse_args(command_line.args)
317
- Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
318
- resources = find_resources(type, name)
319
- if options[:to_yaml]
320
- data = resources.map do |resource|
321
- resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
322
- end.inject(:merge!)
323
- text = YAML.dump(type.downcase => data)
324
- else
325
- text = resources.map do |resource|
326
- resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
327
- end.join("\n")
328
- end
329
- (puts text)
330
- 0
331
- elsif options[:facts]
332
- Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
333
- remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
334
- # Give a proper name to the facts
335
- remote_facts.name = remote_facts.values['clientcert']
336
- renderer = Puppet::Network::FormatHandler.format(:console)
337
- puts renderer.render(remote_facts)
338
- 0
339
- elsif options[:apply]
340
- # avoid reporting to server
341
- Puppet::Transaction::Report.indirection.terminus_class = :yaml
342
- Puppet::Resource::Catalog.indirection.cache_class = nil
343
-
344
- require_relative '../../puppet/application/apply'
345
- begin
346
- Puppet[:node_terminus] = :plain
347
- Puppet[:catalog_terminus] = :compiler
348
- Puppet[:catalog_cache_terminus] = nil
349
- Puppet[:facts_terminus] = :network_device
350
- Puppet.override(:network_device => true) do
351
- Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
352
- end
353
- end
311
+ # this inits the device singleton, so that the facts terminus
312
+ # and the various network_device provider can use it
313
+ Puppet::Util::NetworkDevice.init(device)
314
+
315
+ if options[:resource]
316
+ type, name = parse_args(command_line.args)
317
+ Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
318
+ resources = find_resources(type, name)
319
+ if options[:to_yaml]
320
+ data = resources.map do |resource|
321
+ resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
322
+ end.inject(:merge!)
323
+ text = YAML.dump(type.downcase => data)
354
324
  else
355
- Puppet.info _("starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
356
-
357
- overrides = {}
358
- overrides[:ssl_context] = ssl_context if ssl_context
359
- Puppet.override(overrides) do
360
- configurer = Puppet::Configurer.new
361
- configurer.run(:network_device => true, :pluginsync => false)
325
+ text = resources.map do |resource|
326
+ resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
327
+ end.join("\n")
328
+ end
329
+ (puts text)
330
+ 0
331
+ elsif options[:facts]
332
+ Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
333
+ remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
334
+ # Give a proper name to the facts
335
+ remote_facts.name = remote_facts.values['clientcert']
336
+ renderer = Puppet::Network::FormatHandler.format(:console)
337
+ puts renderer.render(remote_facts)
338
+ 0
339
+ elsif options[:apply]
340
+ # avoid reporting to server
341
+ Puppet::Transaction::Report.indirection.terminus_class = :yaml
342
+ Puppet::Resource::Catalog.indirection.cache_class = nil
343
+
344
+ require_relative '../../puppet/application/apply'
345
+ begin
346
+ Puppet[:node_terminus] = :plain
347
+ Puppet[:catalog_terminus] = :compiler
348
+ Puppet[:catalog_cache_terminus] = nil
349
+ Puppet[:facts_terminus] = :network_device
350
+ Puppet.override(:network_device => true) do
351
+ Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
362
352
  end
363
353
  end
364
- rescue => detail
365
- Puppet.log_exception(detail)
366
- # If we rescued an error, then we return 1 as the exit code
367
- 1
368
- ensure
369
- Puppet[:libdir] = libdir
370
- Puppet[:vardir] = vardir
371
- Puppet[:confdir] = confdir
372
- Puppet[:ssldir] = ssldir
373
- Puppet[:certname] = certname
354
+ else
355
+ Puppet.info _("starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
356
+
357
+ overrides = {}
358
+ overrides[:ssl_context] = ssl_context if ssl_context
359
+ Puppet.override(overrides) do
360
+ configurer = Puppet::Configurer.new
361
+ configurer.run(:network_device => true, :pluginsync => false)
362
+ end
374
363
  end
364
+ rescue => detail
365
+ Puppet.log_exception(detail)
366
+ # If we rescued an error, then we return 1 as the exit code
367
+ 1
368
+ ensure
369
+ Puppet[:libdir] = libdir
370
+ Puppet[:vardir] = vardir
371
+ Puppet[:confdir] = confdir
372
+ Puppet[:ssldir] = ssldir
373
+ Puppet[:certname] = certname
375
374
  end
376
375
  end
377
376
 
@@ -122,7 +122,7 @@ class Puppet::Application::Doc < Puppet::Application
122
122
  end
123
123
 
124
124
  def run_command
125
- return [:rdoc].include?(options[:mode]) ? send(options[:mode]) : other
125
+ [:rdoc].include?(options[:mode]) ? send(options[:mode]) : other
126
126
  end
127
127
 
128
128
  def rdoc
@@ -74,7 +74,7 @@ class Puppet::Application::FaceBase < Puppet::Application
74
74
  # non-option word to use as the action.
75
75
  action_name = nil
76
76
  index = -1
77
- until action_name or (index += 1) >= command_line.args.length do
77
+ until action_name or (index += 1) >= command_line.args.length
78
78
  item = command_line.args[index]
79
79
  if item =~ /^-/
80
80
  option = @face.options.find do |name|
@@ -88,7 +88,7 @@ class Puppet::Application::FaceBase < Puppet::Application
88
88
  # when we get there. --daniel 2011-04-04
89
89
  if option.takes_argument? and !item.index('=')
90
90
  index += 1 unless
91
- (option.optional_argument? and command_line.args[index + 1] =~ /^-/)
91
+ option.optional_argument? and command_line.args[index + 1] =~ /^-/
92
92
  end
93
93
  else
94
94
  option = find_global_settings_argument(item)
@@ -103,9 +103,9 @@ class Puppet::Application::FaceBase < Puppet::Application
103
103
  else
104
104
  option = find_application_argument(item)
105
105
  if option
106
- index += 1 if (option[:argument] and not option[:optional])
106
+ index += 1 if option[:argument] and !(option[:optional])
107
107
  else
108
- raise OptionParser::InvalidOption.new(item.sub(/=.*$/, ''))
108
+ raise OptionParser::InvalidOption, item.sub(/=.*$/, '')
109
109
  end
110
110
  end
111
111
  end
@@ -164,7 +164,7 @@ class Puppet::Application::FaceBase < Puppet::Application
164
164
  pattern.match item and return object
165
165
  end
166
166
  end
167
- return nil # nothing found.
167
+ nil # nothing found.
168
168
  end
169
169
 
170
170
  def find_application_argument(item)
@@ -181,7 +181,7 @@ class Puppet::Application::FaceBase < Puppet::Application
181
181
  }
182
182
  end
183
183
  end
184
- return nil # not found
184
+ nil # not found
185
185
  end
186
186
 
187
187
  def setup
@@ -205,7 +205,7 @@ class Puppet::Application::FaceBase < Puppet::Application
205
205
  @arguments << options
206
206
 
207
207
  # If we don't have a rendering format, set one early.
208
- self.render_as ||= (@action.render_as || :console)
208
+ self.render_as ||= @action.render_as || :console
209
209
  end
210
210
 
211
211
  def main
@@ -213,7 +213,7 @@ class Puppet::Application::Filebucket < Puppet::Application
213
213
  def run_command
214
214
  @args = command_line.args
215
215
  command = args.shift
216
- return send(command) if %w{get backup restore diff list}.include? command
216
+ return send(command) if %w[get backup restore diff list].include? command
217
217
 
218
218
  help
219
219
  end
@@ -8,7 +8,7 @@ require_relative '../../puppet/parser/compiler'
8
8
  class Puppet::Application::Lookup < Puppet::Application
9
9
  RUN_HELP = _("Run 'puppet lookup --help' for more details").freeze
10
10
  DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'
11
- TRUSTED_INFORMATION_FACTS = ["hostname", "domain", "fqdn", "clientcert"].freeze
11
+ TRUSTED_INFORMATION_FACTS = %w[hostname domain fqdn clientcert].freeze
12
12
 
13
13
  run_mode :server
14
14
 
@@ -354,7 +354,7 @@ class Puppet::Application::Lookup < Puppet::Application
354
354
  given_facts = Puppet::Util::Yaml.safe_load_file(fact_file)
355
355
  else
356
356
  given_facts = Puppet::Util::Json.load_file_if_valid(fact_file)
357
- given_facts = Puppet::Util::Yaml.safe_load_file_if_valid(fact_file) unless given_facts
357
+ given_facts ||= Puppet::Util::Yaml.safe_load_file_if_valid(fact_file)
358
358
  end
359
359
 
360
360
  unless given_facts.instance_of?(Hash)
@@ -369,7 +369,9 @@ class Puppet::Application::Lookup < Puppet::Application
369
369
  end
370
370
  end
371
371
 
372
- unless node.is_a?(Puppet::Node) # to allow unit tests to pass a node instance
372
+ if node.is_a?(Puppet::Node)
373
+ node.add_extra_facts(given_facts) if given_facts
374
+ else # to allow unit tests to pass a node instance
373
375
  facts = retrieve_node_facts(node, given_facts)
374
376
  ni = Puppet::Node.indirection
375
377
  tc = ni.terminus_class
@@ -399,8 +401,6 @@ class Puppet::Application::Lookup < Puppet::Application
399
401
  node = ni.find(node, facts: facts, environment: Puppet[:environment])
400
402
  ni.terminus_class = tc
401
403
  end
402
- else
403
- node.add_extra_facts(given_facts) if given_facts
404
404
  end
405
405
  node.environment = Puppet[:environment] if Puppet.settings.set_by_cli?(:environment)
406
406
  Puppet[:code] = 'undef' unless options[:compile]