puppet 5.5.16-x86-mingw32 → 5.5.21-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +10 -10
  3. data/Gemfile +2 -3
  4. data/Gemfile.lock +57 -52
  5. data/ext/build_defaults.yaml +1 -0
  6. data/ext/cert_inspector +3 -3
  7. data/ext/project_data.yaml +2 -2
  8. data/ext/puppet-test +2 -2
  9. data/ext/regexp_nodes/regexp_nodes.rb +4 -4
  10. data/ext/windows/service/daemon.rb +54 -8
  11. data/install.rb +6 -24
  12. data/lib/puppet.rb +5 -2
  13. data/lib/puppet/agent.rb +5 -13
  14. data/lib/puppet/application.rb +1 -1
  15. data/lib/puppet/application/agent.rb +15 -1
  16. data/lib/puppet/application/apply.rb +2 -2
  17. data/lib/puppet/application/describe.rb +3 -9
  18. data/lib/puppet/application/device.rb +4 -4
  19. data/lib/puppet/application/doc.rb +1 -1
  20. data/lib/puppet/application/filebucket.rb +13 -0
  21. data/lib/puppet/application/lookup.rb +1 -1
  22. data/lib/puppet/application/resource.rb +4 -4
  23. data/lib/puppet/application/script.rb +2 -2
  24. data/lib/puppet/configurer.rb +86 -28
  25. data/lib/puppet/configurer/downloader.rb +2 -6
  26. data/lib/puppet/daemon.rb +1 -1
  27. data/lib/puppet/defaults.rb +82 -38
  28. data/lib/puppet/error.rb +9 -1
  29. data/lib/puppet/external/nagios/base.rb +1 -1
  30. data/lib/puppet/face/ca.rb +1 -1
  31. data/lib/puppet/face/config.rb +10 -48
  32. data/lib/puppet/face/facts.rb +1 -1
  33. data/lib/puppet/face/module/list.rb +5 -5
  34. data/lib/puppet/face/module/search.rb +1 -1
  35. data/lib/puppet/face/module/uninstall.rb +1 -1
  36. data/lib/puppet/face/module/upgrade.rb +1 -1
  37. data/lib/puppet/face/plugin.rb +9 -2
  38. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  39. data/lib/puppet/file_system.rb +0 -8
  40. data/lib/puppet/file_system/memory_file.rb +1 -1
  41. data/lib/puppet/file_system/posix.rb +3 -2
  42. data/lib/puppet/file_system/uniquefile.rb +4 -0
  43. data/lib/puppet/forge.rb +3 -3
  44. data/lib/puppet/functions/epp.rb +4 -4
  45. data/lib/puppet/functions/inline_epp.rb +5 -5
  46. data/lib/puppet/functions/reduce.rb +2 -4
  47. data/lib/puppet/gettext/module_translations.rb +1 -1
  48. data/lib/puppet/graph/rb_tree_map.rb +2 -2
  49. data/lib/puppet/graph/simple_graph.rb +6 -5
  50. data/lib/puppet/indirector/catalog/compiler.rb +8 -0
  51. data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
  52. data/lib/puppet/indirector/hiera.rb +2 -0
  53. data/lib/puppet/indirector/resource/ral.rb +1 -3
  54. data/lib/puppet/indirector/resource/validator.rb +1 -1
  55. data/lib/puppet/interface.rb +2 -1
  56. data/lib/puppet/loaders.rb +0 -1
  57. data/lib/puppet/metatype/manager.rb +1 -1
  58. data/lib/puppet/module.rb +1 -1
  59. data/lib/puppet/module_tool/applications/builder.rb +1 -1
  60. data/lib/puppet/module_tool/applications/installer.rb +1 -1
  61. data/lib/puppet/module_tool/applications/uninstaller.rb +3 -3
  62. data/lib/puppet/module_tool/metadata.rb +1 -1
  63. data/lib/puppet/module_tool/shared_behaviors.rb +4 -4
  64. data/lib/puppet/module_tool/tar/mini.rb +12 -2
  65. data/lib/puppet/network/http/api/indirected_routes.rb +13 -12
  66. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  67. data/lib/puppet/network/http/connection.rb +14 -12
  68. data/lib/puppet/network/http/factory.rb +1 -11
  69. data/lib/puppet/network/http/pool.rb +7 -1
  70. data/lib/puppet/network/http/rack/rest.rb +2 -2
  71. data/lib/puppet/network/http/site.rb +1 -1
  72. data/lib/puppet/network/resolver.rb +2 -2
  73. data/lib/puppet/node/environment.rb +4 -2
  74. data/lib/puppet/parameter.rb +8 -0
  75. data/lib/puppet/parser/ast.rb +1 -1
  76. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  77. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  78. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  79. data/lib/puppet/parser/environment_compiler.rb +3 -0
  80. data/lib/puppet/parser/functions.rb +1 -1
  81. data/lib/puppet/parser/functions/epp.rb +3 -3
  82. data/lib/puppet/parser/functions/inline_epp.rb +5 -5
  83. data/lib/puppet/parser/resource.rb +3 -2
  84. data/lib/puppet/parser/resource/param.rb +6 -0
  85. data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
  86. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
  87. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
  88. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
  89. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
  90. data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
  91. data/lib/puppet/pops/issues.rb +5 -0
  92. data/lib/puppet/pops/loaders.rb +1 -1
  93. data/lib/puppet/pops/lookup/hiera_config.rb +1 -0
  94. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  95. data/lib/puppet/pops/merge_strategy.rb +22 -18
  96. data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
  97. data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
  98. data/lib/puppet/pops/parser/locator.rb +1 -1
  99. data/lib/puppet/pops/parser/pn_parser.rb +17 -16
  100. data/lib/puppet/pops/puppet_stack.rb +51 -48
  101. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  102. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  103. data/lib/puppet/pops/types/string_converter.rb +10 -10
  104. data/lib/puppet/pops/types/type_calculator.rb +24 -0
  105. data/lib/puppet/pops/types/types.rb +3 -3
  106. data/lib/puppet/pops/validation/checker4_0.rb +10 -0
  107. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  108. data/lib/puppet/property.rb +1 -1
  109. data/lib/puppet/property/ensure.rb +1 -1
  110. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  111. data/lib/puppet/provider/cron/crontab.rb +1 -1
  112. data/lib/puppet/provider/exec.rb +6 -2
  113. data/lib/puppet/provider/file/posix.rb +5 -0
  114. data/lib/puppet/provider/group/groupadd.rb +19 -19
  115. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  116. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  117. data/lib/puppet/provider/mount.rb +1 -1
  118. data/lib/puppet/provider/mount/parsed.rb +8 -8
  119. data/lib/puppet/provider/nameservice.rb +10 -3
  120. data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
  121. data/lib/puppet/provider/nameservice/pw.rb +2 -2
  122. data/lib/puppet/provider/package/aix.rb +17 -2
  123. data/lib/puppet/provider/package/apt.rb +14 -3
  124. data/lib/puppet/provider/package/dnf.rb +1 -1
  125. data/lib/puppet/provider/package/dnfmodule.rb +141 -0
  126. data/lib/puppet/provider/package/dpkg.rb +16 -18
  127. data/lib/puppet/provider/package/fink.rb +20 -3
  128. data/lib/puppet/provider/package/openbsd.rb +14 -2
  129. data/lib/puppet/provider/package/pip.rb +37 -10
  130. data/lib/puppet/provider/package/pkg.rb +18 -5
  131. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  132. data/lib/puppet/provider/package/pkgng.rb +16 -4
  133. data/lib/puppet/provider/package/portage.rb +4 -4
  134. data/lib/puppet/provider/package/rpm.rb +57 -19
  135. data/lib/puppet/provider/package/windows/package.rb +1 -1
  136. data/lib/puppet/provider/package/yum.rb +35 -24
  137. data/lib/puppet/provider/package/zypper.rb +1 -0
  138. data/lib/puppet/provider/package_targetable.rb +5 -4
  139. data/lib/puppet/provider/parsedfile.rb +1 -1
  140. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +3 -3
  141. data/lib/puppet/provider/selmodule/semodule.rb +43 -26
  142. data/lib/puppet/provider/service/daemontools.rb +9 -9
  143. data/lib/puppet/provider/service/launchd.rb +20 -5
  144. data/lib/puppet/provider/service/openbsd.rb +1 -1
  145. data/lib/puppet/provider/service/rcng.rb +2 -2
  146. data/lib/puppet/provider/service/runit.rb +2 -8
  147. data/lib/puppet/provider/service/systemd.rb +35 -22
  148. data/lib/puppet/provider/service/windows.rb +8 -0
  149. data/lib/puppet/provider/user/directoryservice.rb +31 -6
  150. data/lib/puppet/provider/user/hpux.rb +1 -1
  151. data/lib/puppet/provider/user/pw.rb +12 -3
  152. data/lib/puppet/provider/user/user_role_add.rb +5 -1
  153. data/lib/puppet/provider/user/useradd.rb +62 -27
  154. data/lib/puppet/provider/user/windows_adsi.rb +4 -5
  155. data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
  156. data/lib/puppet/reference/indirection.rb +2 -2
  157. data/lib/puppet/reference/metaparameter.rb +1 -3
  158. data/lib/puppet/reference/providers.rb +1 -1
  159. data/lib/puppet/reference/type.rb +3 -9
  160. data/lib/puppet/reports.rb +1 -1
  161. data/lib/puppet/resource.rb +18 -1
  162. data/lib/puppet/resource/catalog.rb +1 -1
  163. data/lib/puppet/resource/type.rb +8 -0
  164. data/lib/puppet/settings.rb +43 -3
  165. data/lib/puppet/settings/environment_conf.rb +1 -0
  166. data/lib/puppet/ssl/certificate.rb +2 -1
  167. data/lib/puppet/ssl/certificate_authority.rb +6 -5
  168. data/lib/puppet/ssl/certificate_authority/interface.rb +1 -1
  169. data/lib/puppet/ssl/certificate_factory.rb +2 -2
  170. data/lib/puppet/ssl/host.rb +3 -3
  171. data/lib/puppet/ssl/oids.rb +1 -1
  172. data/lib/puppet/test/test_helper.rb +15 -10
  173. data/lib/puppet/transaction/report.rb +1 -1
  174. data/lib/puppet/transaction/resource_harness.rb +1 -1
  175. data/lib/puppet/type.rb +15 -4
  176. data/lib/puppet/type/cron.rb +1 -1
  177. data/lib/puppet/type/exec.rb +21 -9
  178. data/lib/puppet/type/file.rb +14 -2
  179. data/lib/puppet/type/file/data_sync.rb +5 -1
  180. data/lib/puppet/type/group.rb +4 -2
  181. data/lib/puppet/type/interface.rb +1 -1
  182. data/lib/puppet/type/notify.rb +3 -2
  183. data/lib/puppet/type/package.rb +107 -8
  184. data/lib/puppet/type/schedule.rb +1 -1
  185. data/lib/puppet/type/selboolean.rb +17 -3
  186. data/lib/puppet/type/service.rb +9 -10
  187. data/lib/puppet/type/user.rb +6 -24
  188. data/lib/puppet/type/yumrepo.rb +3 -7
  189. data/lib/puppet/util.rb +47 -25
  190. data/lib/puppet/util/command_line/trollop.rb +1 -1
  191. data/lib/puppet/util/execution.rb +4 -3
  192. data/lib/puppet/util/http_proxy.rb +24 -16
  193. data/lib/puppet/util/instance_loader.rb +1 -1
  194. data/lib/puppet/util/log.rb +1 -1
  195. data/lib/puppet/util/log/destinations.rb +3 -12
  196. data/lib/puppet/util/logging.rb +30 -18
  197. data/lib/puppet/util/metric.rb +2 -2
  198. data/lib/puppet/util/monkey_patches.rb +1 -1
  199. data/lib/puppet/util/nagios_maker.rb +2 -2
  200. data/lib/puppet/util/network_device/cisco/device.rb +1 -1
  201. data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
  202. data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
  203. data/lib/puppet/util/pidlock.rb +12 -6
  204. data/lib/puppet/util/plist.rb +6 -0
  205. data/lib/puppet/util/provider_features.rb +2 -4
  206. data/lib/puppet/util/rdoc.rb +1 -1
  207. data/lib/puppet/util/reference.rb +1 -1
  208. data/lib/puppet/util/resource_template.rb +1 -1
  209. data/lib/puppet/util/selinux.rb +8 -2
  210. data/lib/puppet/util/windows/adsi.rb +60 -30
  211. data/lib/puppet/util/windows/api_types.rb +45 -32
  212. data/lib/puppet/util/windows/eventlog.rb +1 -6
  213. data/lib/puppet/util/windows/principal.rb +8 -6
  214. data/lib/puppet/util/windows/process.rb +16 -15
  215. data/lib/puppet/util/windows/registry.rb +17 -15
  216. data/lib/puppet/util/windows/security.rb +3 -0
  217. data/lib/puppet/util/windows/service.rb +149 -4
  218. data/lib/puppet/util/windows/sid.rb +4 -3
  219. data/lib/puppet/vendor.rb +1 -1
  220. data/lib/puppet/version.rb +1 -1
  221. data/lib/puppet_pal.rb +2 -2
  222. data/locales/puppet.pot +479 -443
  223. data/man/man5/puppet.conf.5 +38 -8
  224. data/man/man8/puppet-agent.8 +2 -2
  225. data/man/man8/puppet-apply.8 +1 -1
  226. data/man/man8/puppet-ca.8 +1 -1
  227. data/man/man8/puppet-catalog.8 +1 -1
  228. data/man/man8/puppet-cert.8 +1 -1
  229. data/man/man8/puppet-certificate.8 +1 -1
  230. data/man/man8/puppet-certificate_request.8 +1 -1
  231. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  232. data/man/man8/puppet-config.8 +1 -1
  233. data/man/man8/puppet-describe.8 +1 -1
  234. data/man/man8/puppet-device.8 +1 -1
  235. data/man/man8/puppet-doc.8 +1 -1
  236. data/man/man8/puppet-epp.8 +1 -1
  237. data/man/man8/puppet-facts.8 +1 -1
  238. data/man/man8/puppet-filebucket.8 +16 -1
  239. data/man/man8/puppet-generate.8 +1 -1
  240. data/man/man8/puppet-help.8 +1 -1
  241. data/man/man8/puppet-key.8 +1 -1
  242. data/man/man8/puppet-lookup.8 +1 -1
  243. data/man/man8/puppet-man.8 +1 -1
  244. data/man/man8/puppet-master.8 +1 -1
  245. data/man/man8/puppet-module.8 +1 -1
  246. data/man/man8/puppet-node.8 +1 -1
  247. data/man/man8/puppet-parser.8 +1 -1
  248. data/man/man8/puppet-plugin.8 +1 -1
  249. data/man/man8/puppet-report.8 +1 -1
  250. data/man/man8/puppet-resource.8 +1 -1
  251. data/man/man8/puppet-script.8 +1 -1
  252. data/man/man8/puppet-status.8 +1 -1
  253. data/man/man8/puppet.8 +2 -2
  254. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +1 -0
  255. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +19 -0
  256. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
  257. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
  258. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  259. data/spec/integration/configurer_spec.rb +52 -0
  260. data/spec/integration/defaults_spec.rb +1 -2
  261. data/spec/integration/indirector/facts/facter_spec.rb +4 -0
  262. data/spec/integration/parser/compiler_spec.rb +11 -0
  263. data/spec/integration/provider/service/systemd_spec.rb +8 -5
  264. data/spec/integration/type/file_spec.rb +28 -0
  265. data/spec/integration/type/notify_spec.rb +46 -0
  266. data/spec/integration/util/execution_spec.rb +27 -0
  267. data/spec/integration/util/windows/adsi_spec.rb +6 -1
  268. data/spec/integration/util/windows/registry_spec.rb +7 -7
  269. data/spec/unit/agent_spec.rb +34 -26
  270. data/spec/unit/application/agent_spec.rb +18 -0
  271. data/spec/unit/application/apply_spec.rb +2 -12
  272. data/spec/unit/application/device_spec.rb +1 -1
  273. data/spec/unit/configurer/fact_handler_spec.rb +0 -4
  274. data/spec/unit/configurer_spec.rb +377 -397
  275. data/spec/unit/daemon_spec.rb +0 -1
  276. data/spec/unit/face/facts_spec.rb +9 -0
  277. data/spec/unit/face/plugin_spec.rb +8 -0
  278. data/spec/unit/file_system/uniquefile_spec.rb +11 -0
  279. data/spec/unit/forge/forge_spec.rb +1 -3
  280. data/spec/unit/forge/repository_spec.rb +1 -3
  281. data/spec/unit/indirector/catalog/compiler_spec.rb +45 -26
  282. data/spec/unit/indirector/resource/ral_spec.rb +4 -4
  283. data/spec/unit/module_tool/tar/mini_spec.rb +1 -1
  284. data/spec/unit/network/http/api/indirected_routes_spec.rb +28 -11
  285. data/spec/unit/network/http/connection_spec.rb +43 -1
  286. data/spec/unit/network/http/factory_spec.rb +27 -5
  287. data/spec/unit/network/http/pool_spec.rb +32 -0
  288. data/spec/unit/node_spec.rb +7 -4
  289. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  290. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
  291. data/spec/unit/pops/validator/validator_spec.rb +7 -0
  292. data/spec/unit/provider/exec_spec.rb +209 -0
  293. data/spec/unit/provider/group/groupadd_spec.rb +30 -1
  294. data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
  295. data/spec/unit/provider/package/aix_spec.rb +29 -0
  296. data/spec/unit/provider/package/apt_spec.rb +13 -2
  297. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  298. data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
  299. data/spec/unit/provider/package/dnf_spec.rb +7 -0
  300. data/spec/unit/provider/package/dnfmodule_spec.rb +247 -0
  301. data/spec/unit/provider/package/dpkg_spec.rb +35 -7
  302. data/spec/unit/provider/package/openbsd_spec.rb +17 -0
  303. data/spec/unit/provider/package/pip_spec.rb +93 -22
  304. data/spec/unit/provider/package/pkg_spec.rb +13 -1
  305. data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
  306. data/spec/unit/provider/package/pkgng_spec.rb +36 -0
  307. data/spec/unit/provider/package/portage_spec.rb +4 -4
  308. data/spec/unit/provider/package/rpm_spec.rb +150 -16
  309. data/spec/unit/provider/package/yum_spec.rb +66 -0
  310. data/spec/unit/provider/package/zypper_spec.rb +13 -0
  311. data/spec/unit/provider/package_targetable_spec.rb +60 -0
  312. data/spec/unit/provider/selmodule_spec.rb +118 -47
  313. data/spec/unit/provider/service/daemontools_spec.rb +24 -0
  314. data/spec/unit/provider/service/launchd_spec.rb +28 -0
  315. data/spec/unit/provider/service/runit_spec.rb +24 -0
  316. data/spec/unit/provider/service/systemd_spec.rb +109 -36
  317. data/spec/unit/provider/service/windows_spec.rb +20 -0
  318. data/spec/unit/provider/user/directoryservice_spec.rb +41 -0
  319. data/spec/unit/provider/user/hpux_spec.rb +2 -2
  320. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  321. data/spec/unit/provider/user/pw_spec.rb +37 -0
  322. data/spec/unit/provider/user/useradd_spec.rb +122 -15
  323. data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
  324. data/spec/unit/puppet_pal_2pec.rb +3 -0
  325. data/spec/unit/resource_spec.rb +26 -1
  326. data/spec/unit/ssl/certificate_authority_spec.rb +2 -3
  327. data/spec/unit/ssl/certificate_spec.rb +7 -0
  328. data/spec/unit/test/test_helper_spec.rb +17 -0
  329. data/spec/unit/transaction_spec.rb +18 -0
  330. data/spec/unit/type/exec_spec.rb +15 -12
  331. data/spec/unit/type/file/content_spec.rb +9 -3
  332. data/spec/unit/type/file/source_spec.rb +4 -4
  333. data/spec/unit/type/file_spec.rb +9 -4
  334. data/spec/unit/type/package_spec.rb +8 -0
  335. data/spec/unit/type/schedule_spec.rb +3 -1
  336. data/spec/unit/type/selboolean_spec.rb +4 -6
  337. data/spec/unit/type/service_spec.rb +25 -8
  338. data/spec/unit/type/user_spec.rb +32 -26
  339. data/spec/unit/type/yumrepo_spec.rb +30 -0
  340. data/spec/unit/type_spec.rb +40 -0
  341. data/spec/unit/util/execution_spec.rb +16 -0
  342. data/spec/unit/util/http_proxy_spec.rb +121 -1
  343. data/spec/unit/util/log/destinations_spec.rb +2 -26
  344. data/spec/unit/util/log_spec.rb +0 -112
  345. data/spec/unit/util/logging_spec.rb +200 -0
  346. data/spec/unit/util/pidlock_spec.rb +67 -40
  347. data/spec/unit/util/plist_spec.rb +20 -0
  348. data/spec/unit/util/windows/adsi_spec.rb +55 -4
  349. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  350. data/spec/unit/util/windows/service_spec.rb +9 -0
  351. data/spec/unit/util/windows/sid_spec.rb +2 -2
  352. data/tasks/manpages.rake +1 -0
  353. metadata +18 -13
  354. data/ext/windows/eventlog/Rakefile +0 -32
  355. data/ext/windows/eventlog/puppetres.dll +0 -0
  356. data/ext/windows/eventlog/puppetres.mc +0 -18
  357. data/lib/puppet/pops/loader/null_loader.rb +0 -60
  358. data/locales/ja/puppet.po +0 -12114
  359. data/spec/integration/test/test_helper_spec.rb +0 -31
@@ -95,7 +95,7 @@ class Puppet::Daemon
95
95
 
96
96
  def restart
97
97
  Puppet::Application.restart!
98
- reexec unless agent and agent.running?
98
+ reexec
99
99
  end
100
100
 
101
101
  def reopen_logs
@@ -39,7 +39,11 @@ module Puppet
39
39
 
40
40
  AS_DURATION = %q{This setting can be a time interval in seconds (30 or 30s), minutes (30m), hours (6h), days (2d), or years (5y).}
41
41
 
42
- define_settings(:main,
42
+ # @api public
43
+ # @param args [Puppet::Settings] the settings object to define default settings for
44
+ # @return void
45
+ def self.initialize_default_settings!(settings)
46
+ settings.define_settings(:main,
43
47
  :confdir => {
44
48
  :default => nil,
45
49
  :type => :directory,
@@ -76,7 +80,7 @@ module Puppet
76
80
  }
77
81
  )
78
82
 
79
- define_settings(:main,
83
+ settings.define_settings(:main,
80
84
  :logdir => {
81
85
  :default => nil,
82
86
  :type => :directory,
@@ -167,7 +171,7 @@ module Puppet
167
171
  }
168
172
  )
169
173
 
170
- define_settings(:main,
174
+ settings.define_settings(:main,
171
175
  :priority => {
172
176
  :default => nil,
173
177
  :type => :priority,
@@ -180,12 +184,19 @@ module Puppet
180
184
  :trace => {
181
185
  :default => false,
182
186
  :type => :boolean,
183
- :desc => "Whether to print stack traces on some errors",
187
+ :desc => "Whether to print stack traces on some errors. Will print
188
+ internal Ruby stack trace interleaved with Puppet function frames.",
184
189
  :hook => proc do |value|
185
190
  # Enable or disable Facter's trace option too
186
191
  Facter.trace(value) if Facter.respond_to? :trace
187
192
  end
188
193
  },
194
+ :puppet_trace => {
195
+ :default => false,
196
+ :type => :boolean,
197
+ :desc => "Whether to print the Puppet stack trace on some errors.
198
+ This is a noop if `trace` is also set.",
199
+ },
189
200
  :profile => {
190
201
  :default => false,
191
202
  :type => :boolean,
@@ -481,12 +492,12 @@ module Puppet
481
492
  :hiera_config => {
482
493
  :default => lambda do
483
494
  config = nil
484
- codedir = Puppet.settings[:codedir]
495
+ codedir = settings[:codedir]
485
496
  if codedir.is_a?(String)
486
497
  config = File.expand_path(File.join(codedir, 'hiera.yaml'))
487
498
  config = nil unless Puppet::FileSystem.exist?(config)
488
499
  end
489
- config = File.expand_path(File.join(Puppet.settings[:confdir], 'hiera.yaml')) if config.nil?
500
+ config = File.expand_path(File.join(settings[:confdir], 'hiera.yaml')) if config.nil?
490
501
  config
491
502
  end,
492
503
  :desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet master every time you edit it.",
@@ -524,9 +535,10 @@ module Puppet
524
535
  },
525
536
  :http_proxy_host => {
526
537
  :default => "none",
527
- :desc => "The HTTP proxy host to use for outgoing connections. Note: You
538
+ :desc => "The HTTP proxy host to use for outgoing connections. The proxy will be bypassed if
539
+ the server's hostname matches the NO_PROXY environment variable or `no_proxy` setting. Note: You
528
540
  may need to use a FQDN for the server hostname when using a proxy. Environment variable
529
- http_proxy or HTTP_PROXY will override this value",
541
+ http_proxy or HTTP_PROXY will override this value. ",
530
542
  },
531
543
  :http_proxy_port => {
532
544
  :default => 3128,
@@ -539,7 +551,7 @@ module Puppet
539
551
  :http_proxy_password =>{
540
552
  :default => "none",
541
553
  :hook => proc do |value|
542
- if Puppet.settings[:http_proxy_password] =~ /[@!# \/]/
554
+ if settings[:http_proxy_password] =~ /[@!# \/]/
543
555
  raise "Passwords set in the http_proxy_password setting must be valid as part of a URL, and any reserved characters must be URL-encoded. We received: #{value}"
544
556
  end
545
557
  end,
@@ -550,6 +562,10 @@ module Puppet
550
562
  contains any characters with special meanings in URLs (as specified by RFC 3986
551
563
  section 2.2), they must be URL-encoded. (For example, `#` would become `%23`.)",
552
564
  },
565
+ :no_proxy => {
566
+ :default => "localhost, 127.0.0.1",
567
+ :desc => "List of host or domain names that should not go through `http_proxy_host`. Environment variable no_proxy or NO_PROXY will override this value. Names can be specified as an FQDN `host.example.com`, wildcard `*.example.com`, dotted domain `.example.com`, or suffix `example.com`.",
568
+ },
553
569
  :http_keepalive_timeout => {
554
570
  :default => "4s",
555
571
  :type => :duration,
@@ -665,7 +681,7 @@ module Puppet
665
681
  }
666
682
  )
667
683
 
668
- define_settings(:main,
684
+ settings.define_settings(:main,
669
685
  # Whether the application management feature is on or off - now deprecated and always on.
670
686
  :app_management => {
671
687
  :default => false,
@@ -675,7 +691,7 @@ module Puppet
675
691
  }
676
692
  )
677
693
 
678
- Puppet.define_settings(:module_tool,
694
+ settings.define_settings(:module_tool,
679
695
  :module_repository => {
680
696
  :default => 'https://forgeapi.puppet.com',
681
697
  :desc => "The module repository",
@@ -698,7 +714,7 @@ module Puppet
698
714
  }
699
715
  )
700
716
 
701
- Puppet.define_settings(
717
+ settings.define_settings(
702
718
  :main,
703
719
 
704
720
  # We have to downcase the fqdn, because the current ssl stuff (as opposed to in master) doesn't have good facilities for
@@ -791,13 +807,17 @@ This is useful for embedding a pre-shared key for autosigning policy executables
791
807
  ("challenge password") OID.
792
808
 
793
809
  Extension requests will be permanently embedded in the final certificate.
794
- Extension OIDs must be in the "ppRegCertExt" (`1.3.6.1.4.1.34380.1.1`) or
795
- "ppPrivCertExt" (`1.3.6.1.4.1.34380.1.2`) OID arcs. The ppRegCertExt arc is
810
+ Extension OIDs must be in the "ppRegCertExt" (`1.3.6.1.4.1.34380.1.1`),
811
+ "ppPrivCertExt" (`1.3.6.1.4.1.34380.1.2`), or
812
+ "ppAuthCertExt" (`1.3.6.1.4.1.34380.1.3`) OID arcs. The ppRegCertExt arc is
796
813
  reserved for four of the most common pieces of data to embed: `pp_uuid` (`.1`),
797
814
  `pp_instance_id` (`.2`), `pp_image_name` (`.3`), and `pp_preshared_key` (`.4`)
798
815
  --- in the YAML file, these can be referred to by their short descriptive names
799
816
  instead of their full OID. The ppPrivCertExt arc is unregulated, and can be used
800
- for site-specific extensions.
817
+ for site-specific extensions. The ppAuthCert arc is reserved for two pieces of
818
+ data to embed: `pp_authorization` (`.1`) and `pp_auth_role` (`.13`). As with
819
+ ppRegCertExt, in the YAML file, these can be referred to by their short
820
+ descriptive name instead of their full OID.
801
821
  EOT
802
822
  },
803
823
  :certdir => {
@@ -986,7 +1006,7 @@ EOT
986
1006
  }
987
1007
  )
988
1008
 
989
- define_settings(
1009
+ settings.define_settings(
990
1010
  :ca,
991
1011
  :ca_name => {
992
1012
  :default => "Puppet CA: $certname",
@@ -1134,7 +1154,7 @@ EOT
1134
1154
 
1135
1155
  # Define the config default.
1136
1156
 
1137
- define_settings(:application,
1157
+ settings.define_settings(:application,
1138
1158
  :config_file_name => {
1139
1159
  :type => :string,
1140
1160
  :default => Puppet::Settings.default_config_file_name,
@@ -1164,7 +1184,7 @@ EOT
1164
1184
  }
1165
1185
  )
1166
1186
 
1167
- define_settings(:environment,
1187
+ settings.define_settings(:environment,
1168
1188
  :manifest => {
1169
1189
  :default => nil,
1170
1190
  :type => :file_or_directory,
@@ -1207,7 +1227,7 @@ EOT
1207
1227
  }
1208
1228
  )
1209
1229
 
1210
- define_settings(:master,
1230
+ settings.define_settings(:master,
1211
1231
  :user => {
1212
1232
  :default => "puppet",
1213
1233
  :desc => "The user Puppet Server will run as. Used to ensure
@@ -1277,13 +1297,23 @@ EOT
1277
1297
  overridden by more specific settings (see `ca_port`, `report_port`).",
1278
1298
  },
1279
1299
  :node_name => {
1280
- :default => "cert",
1300
+ :default => 'cert',
1301
+ :type => :enum,
1302
+ :values => ['cert', 'facter'],
1303
+ :deprecated => :completely,
1304
+ :hook => proc { |val|
1305
+ if val != 'cert'
1306
+ Puppet.deprecation_warning("The node_name setting is deprecated and will be removed in a future release.")
1307
+ end
1308
+ },
1281
1309
  :desc => "How the puppet master determines the client's identity
1282
1310
  and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
1283
1311
  in particular for determining which 'node' statement applies to the client.
1284
1312
  Possible values are 'cert' (use the subject's CN in the client's
1285
1313
  certificate) and 'facter' (use the hostname that the client
1286
- reported in its facts)",
1314
+ reported in its facts).
1315
+
1316
+ This setting is deprecated, please use explicit fact matching for classification.",
1287
1317
  },
1288
1318
  :bucketdir => {
1289
1319
  :default => "$vardir/bucket",
@@ -1412,14 +1442,23 @@ EOT
1412
1442
  :desc => "Where the fileserver configuration is stored.",
1413
1443
  },
1414
1444
  :strict_hostname_checking => {
1415
- :default => false,
1445
+ :default => true,
1446
+ :type => :boolean,
1416
1447
  :desc => "Whether to only search for the complete
1417
- hostname as it is in the certificate when searching for node information
1418
- in the catalogs.",
1448
+ hostname as it is in the certificate when searching for node information
1449
+ in the catalogs or to match dot delimited segments of the cert's certname
1450
+ and the hostname, fqdn, and/or domain facts.
1451
+
1452
+ This setting is deprecated and will be removed in a future release.",
1453
+ :hook => proc { |val|
1454
+ if val != true
1455
+ Puppet.deprecation_warning("Setting strict_hostname_checking to false is deprecated and will be removed in a future release. Please use regular expressions in your node declarations or explicit fact matching for classification (though be warned that fact based classification may be considered insecure).")
1456
+ end
1457
+ }
1419
1458
  }
1420
1459
  )
1421
1460
 
1422
- define_settings(:device,
1461
+ settings.define_settings(:device,
1423
1462
  :devicedir => {
1424
1463
  :default => "$vardir/devices",
1425
1464
  :type => :directory,
@@ -1434,7 +1473,7 @@ EOT
1434
1473
  }
1435
1474
  )
1436
1475
 
1437
- define_settings(:agent,
1476
+ settings.define_settings(:agent,
1438
1477
  :node_name_value => {
1439
1478
  :default => "$certname",
1440
1479
  :desc => "The explicit value used for the node name for all requests the agent
@@ -1459,7 +1498,7 @@ EOT
1459
1498
  :statefile => {
1460
1499
  :default => "$statedir/state.yaml",
1461
1500
  :type => :file,
1462
- :mode => "0660",
1501
+ :mode => "0640",
1463
1502
  :desc => "Where puppet agent and puppet master store state associated
1464
1503
  with the running configuration. In the case of puppet master,
1465
1504
  this file reflects the state discovered through interacting
@@ -1481,7 +1520,7 @@ EOT
1481
1520
  :transactionstorefile => {
1482
1521
  :default => "$statedir/transactionstore.yaml",
1483
1522
  :type => :file,
1484
- :mode => "0660",
1523
+ :mode => "0640",
1485
1524
  :desc => "Transactional storage file for persisting data between
1486
1525
  transactions for the purposes of infering information (such as
1487
1526
  corrective_change) on new data received."
@@ -1726,6 +1765,11 @@ EOT
1726
1765
  :type => :boolean,
1727
1766
  :desc => "Whether to send reports after every transaction.",
1728
1767
  },
1768
+ :resubmit_facts => {
1769
+ :default => false,
1770
+ :type => :boolean,
1771
+ :desc => "Whether to send updated facts after every transaction.",
1772
+ },
1729
1773
  :lastrunfile => {
1730
1774
  :default => "$statedir/last_run_summary.yaml",
1731
1775
  :type => :file,
@@ -1815,7 +1859,7 @@ EOT
1815
1859
 
1816
1860
  # Plugin information.
1817
1861
 
1818
- define_settings(
1862
+ settings.define_settings(
1819
1863
  :main,
1820
1864
  :plugindest => {
1821
1865
  :type => :directory,
@@ -1869,7 +1913,7 @@ EOT
1869
1913
 
1870
1914
  # Central fact information.
1871
1915
 
1872
- define_settings(
1916
+ settings.define_settings(
1873
1917
  :main,
1874
1918
  :factpath => {
1875
1919
  :type => :path,
@@ -1886,7 +1930,7 @@ EOT
1886
1930
  }
1887
1931
  )
1888
1932
 
1889
- define_settings(
1933
+ settings.define_settings(
1890
1934
  :transaction,
1891
1935
  :tags => {
1892
1936
  :default => "",
@@ -1914,7 +1958,7 @@ EOT
1914
1958
  }
1915
1959
  )
1916
1960
 
1917
- define_settings(
1961
+ settings.define_settings(
1918
1962
  :main,
1919
1963
  :external_nodes => {
1920
1964
  :default => "none",
@@ -1939,7 +1983,7 @@ EOT
1939
1983
  }
1940
1984
  )
1941
1985
 
1942
- define_settings(
1986
+ settings.define_settings(
1943
1987
  :ldap,
1944
1988
  :ldapssl => {
1945
1989
  :default => false,
@@ -2008,7 +2052,7 @@ EOT
2008
2052
  }
2009
2053
  )
2010
2054
 
2011
- define_settings(:master,
2055
+ settings.define_settings(:master,
2012
2056
  :storeconfigs => {
2013
2057
  :default => false,
2014
2058
  :type => :boolean,
@@ -2041,7 +2085,7 @@ EOT
2041
2085
  }
2042
2086
  )
2043
2087
 
2044
- define_settings(:parser,
2088
+ settings.define_settings(:parser,
2045
2089
  :max_errors => {
2046
2090
  :default => 10,
2047
2091
  :desc => <<-'EOT'
@@ -2083,7 +2127,7 @@ EOT
2083
2127
  EOT
2084
2128
  }
2085
2129
  )
2086
- define_settings(:puppetdoc,
2130
+ settings.define_settings(:puppetdoc,
2087
2131
  :document_all => {
2088
2132
  :default => false,
2089
2133
  :type => :boolean,
@@ -2092,7 +2136,7 @@ EOT
2092
2136
  }
2093
2137
  )
2094
2138
 
2095
- define_settings(
2139
+ settings.define_settings(
2096
2140
  :main,
2097
2141
  :rich_data => {
2098
2142
  :default => false,
@@ -2109,5 +2153,5 @@ EOT
2109
2153
  EOT
2110
2154
  }
2111
2155
  )
2112
-
2156
+ end
2113
2157
  end
@@ -12,7 +12,7 @@ module Puppet
12
12
  # This module implements logging with a filename and line number. Use this
13
13
  # for errors that need to report a location in a non-ruby file that we
14
14
  # parse.
15
- attr_accessor :line, :file, :pos
15
+ attr_accessor :line, :file, :pos, :puppetstack
16
16
 
17
17
  # May be called with 3 arguments for message, file, line, and exception, or
18
18
  # 4 args including the position on the line.
@@ -22,10 +22,18 @@ module Puppet
22
22
  original = pos
23
23
  pos = nil
24
24
  end
25
+
25
26
  super(message, original)
27
+
26
28
  @file = file unless (file.is_a?(String) && file.empty?)
27
29
  @line = line
28
30
  @pos = pos
31
+
32
+ if original && original.respond_to?(:puppetstack)
33
+ @puppetstack = original.puppetstack
34
+ else
35
+ @puppetstack = Puppet::Pops::PuppetStack.stacktrace()
36
+ end
29
37
  end
30
38
 
31
39
  def to_s
@@ -250,7 +250,7 @@ class Nagios::Base
250
250
  if map.include?(param)
251
251
  return map[param]
252
252
  else
253
- return "nagios-" + param.id2name.gsub(/_/,'-')
253
+ return "nagios-" + param.id2name.tr('_','-')
254
254
  end
255
255
  end
256
256
 
@@ -93,7 +93,7 @@ Puppet::Face.define(:ca, '0.1.0') do
93
93
  ca.verify(host.name)
94
94
  "+ #{name} #{host.certificate.digest(options[:digest])}"
95
95
  rescue Puppet::SSL::CertificateAuthority::CertificateVerificationError => e
96
- "- #{name} #{host.certificate.digest(options[:digest])} (#{e.to_s})"
96
+ "- #{name} #{host.certificate.digest(options[:digest])} (#{e})"
97
97
  end
98
98
  end
99
99
  end.join("\n")
@@ -66,41 +66,18 @@ Puppet::Face.define(:config, '0.0.1') do
66
66
  @default_section = true
67
67
  end
68
68
 
69
- render_all_settings = args.empty? || args == ['all']
70
-
71
- args = Puppet.settings.to_a.collect(&:first) if render_all_settings
72
-
73
- values_from_the_selected_section =
74
- Puppet.settings.values(nil, options[:section].to_sym)
75
-
76
- loader_settings = {
77
- :environmentpath => values_from_the_selected_section.interpolate(:environmentpath),
78
- :basemodulepath => values_from_the_selected_section.interpolate(:basemodulepath),
79
- }
80
-
81
- to_be_rendered = nil
82
- Puppet.override(Puppet.base_context(loader_settings),
83
- _("New environment loaders generated from the requested section.")) do
84
- # And now we can lookup values that include those from environments configured from
85
- # the requested section
86
- values = Puppet.settings.values(Puppet[:environment].to_sym, options[:section].to_sym)
87
-
88
- if Puppet::Util::Log.sendlevel?(:info)
89
- warn_default_section(options[:section]) if @default_section
90
- report_section_and_environment(options[:section], Puppet.settings[:environment])
91
- end
92
-
93
- to_be_rendered = {}
94
- args.sort.each do |setting_name|
95
- to_be_rendered[setting_name] = values.print(setting_name.to_sym)
96
- end
69
+ if Puppet::Util::Log.sendlevel?(:info)
70
+ warn_default_section(options[:section]) if @default_section
71
+ report_section_and_environment(options[:section], Puppet.settings[:environment])
97
72
  end
98
73
 
99
- # convert symbols to strings before formatting output
100
- if render_all_settings
101
- to_be_rendered = stringifyhash(to_be_rendered)
102
- end
103
- to_be_rendered
74
+ names = if args.empty? || args == ['all']
75
+ :all
76
+ else
77
+ args
78
+ end
79
+
80
+ Puppet.settings.stringify_settings(options[:section], names)
104
81
  end
105
82
 
106
83
  when_rendering :console do |to_be_rendered|
@@ -117,21 +94,6 @@ Puppet::Face.define(:config, '0.0.1') do
117
94
  end
118
95
  end
119
96
 
120
- def stringifyhash(hash)
121
- newhash = {}
122
- hash.each do |key, val|
123
- key = key.to_s
124
- if val.is_a? Hash
125
- newhash[key] = stringifyhash(val)
126
- elsif val.is_a? Symbol
127
- newhash[key] = val.to_s
128
- else
129
- newhash[key] = val
130
- end
131
- end
132
- newhash
133
- end
134
-
135
97
  def warn_default_section(section_name)
136
98
  messages = []
137
99
  messages << _("No section specified; defaulting to '%{section_name}'.") %