puppet 5.5.17-x86-mingw32 → 5.5.22-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 (340) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +1 -1
  3. data/Gemfile +4 -5
  4. data/Gemfile.lock +59 -55
  5. data/ext/build_defaults.yaml +1 -0
  6. data/ext/cert_inspector +3 -3
  7. data/ext/puppet-test +2 -2
  8. data/ext/regexp_nodes/regexp_nodes.rb +4 -4
  9. data/ext/windows/service/daemon.rb +54 -8
  10. data/install.rb +6 -6
  11. data/lib/puppet.rb +5 -2
  12. data/lib/puppet/agent.rb +5 -13
  13. data/lib/puppet/application.rb +1 -1
  14. data/lib/puppet/application/agent.rb +3 -1
  15. data/lib/puppet/application/apply.rb +2 -2
  16. data/lib/puppet/application/describe.rb +3 -9
  17. data/lib/puppet/application/doc.rb +1 -1
  18. data/lib/puppet/application/filebucket.rb +13 -0
  19. data/lib/puppet/application/lookup.rb +1 -1
  20. data/lib/puppet/application/script.rb +2 -2
  21. data/lib/puppet/configurer.rb +106 -31
  22. data/lib/puppet/configurer/downloader.rb +33 -16
  23. data/lib/puppet/daemon.rb +1 -1
  24. data/lib/puppet/defaults.rb +86 -40
  25. data/lib/puppet/error.rb +9 -1
  26. data/lib/puppet/external/nagios/base.rb +1 -1
  27. data/lib/puppet/face/ca.rb +1 -1
  28. data/lib/puppet/face/module/list.rb +5 -5
  29. data/lib/puppet/face/module/search.rb +1 -1
  30. data/lib/puppet/face/module/uninstall.rb +1 -1
  31. data/lib/puppet/face/module/upgrade.rb +1 -1
  32. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  33. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  34. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  35. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  36. data/lib/puppet/file_system.rb +0 -8
  37. data/lib/puppet/file_system/memory_file.rb +1 -1
  38. data/lib/puppet/file_system/posix.rb +3 -2
  39. data/lib/puppet/file_system/uniquefile.rb +4 -0
  40. data/lib/puppet/forge.rb +3 -3
  41. data/lib/puppet/functions/epp.rb +4 -4
  42. data/lib/puppet/functions/inline_epp.rb +5 -5
  43. data/lib/puppet/functions/new.rb +8 -3
  44. data/lib/puppet/functions/reduce.rb +2 -4
  45. data/lib/puppet/functions/reverse_each.rb +1 -1
  46. data/lib/puppet/functions/step.rb +1 -1
  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 +6 -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 +1 -1
  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/pool.rb +7 -1
  69. data/lib/puppet/network/http/rack/rest.rb +2 -2
  70. data/lib/puppet/network/http/site.rb +1 -1
  71. data/lib/puppet/network/resolver.rb +2 -2
  72. data/lib/puppet/node/environment.rb +11 -3
  73. data/lib/puppet/parser/ast.rb +1 -1
  74. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  75. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  76. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  77. data/lib/puppet/parser/environment_compiler.rb +3 -0
  78. data/lib/puppet/parser/functions.rb +14 -10
  79. data/lib/puppet/parser/functions/epp.rb +3 -3
  80. data/lib/puppet/parser/functions/inline_epp.rb +5 -5
  81. data/lib/puppet/parser/resource.rb +3 -2
  82. data/lib/puppet/parser/resource/param.rb +6 -0
  83. data/lib/puppet/pops/adaptable.rb +7 -13
  84. data/lib/puppet/pops/adapters.rb +8 -4
  85. data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
  86. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  87. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
  88. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
  89. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
  90. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
  91. data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
  92. data/lib/puppet/pops/issues.rb +5 -0
  93. data/lib/puppet/pops/loaders.rb +1 -1
  94. data/lib/puppet/pops/lookup/hiera_config.rb +1 -0
  95. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  96. data/lib/puppet/pops/merge_strategy.rb +22 -18
  97. data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
  98. data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
  99. data/lib/puppet/pops/parser/locator.rb +1 -1
  100. data/lib/puppet/pops/parser/pn_parser.rb +17 -16
  101. data/lib/puppet/pops/puppet_stack.rb +51 -48
  102. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  103. data/lib/puppet/pops/types/iterable.rb +34 -8
  104. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  105. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  106. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  107. data/lib/puppet/pops/types/string_converter.rb +10 -10
  108. data/lib/puppet/pops/types/type_calculator.rb +24 -0
  109. data/lib/puppet/pops/types/types.rb +3 -3
  110. data/lib/puppet/pops/validation/checker4_0.rb +29 -15
  111. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  112. data/lib/puppet/property.rb +1 -1
  113. data/lib/puppet/property/ensure.rb +1 -1
  114. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  115. data/lib/puppet/provider/cron/crontab.rb +1 -1
  116. data/lib/puppet/provider/exec.rb +6 -2
  117. data/lib/puppet/provider/group/groupadd.rb +19 -19
  118. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  119. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  120. data/lib/puppet/provider/mount.rb +1 -1
  121. data/lib/puppet/provider/mount/parsed.rb +8 -8
  122. data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
  123. data/lib/puppet/provider/nameservice/pw.rb +2 -2
  124. data/lib/puppet/provider/package/aix.rb +17 -2
  125. data/lib/puppet/provider/package/apt.rb +14 -3
  126. data/lib/puppet/provider/package/dnfmodule.rb +141 -0
  127. data/lib/puppet/provider/package/dpkg.rb +16 -18
  128. data/lib/puppet/provider/package/fink.rb +20 -3
  129. data/lib/puppet/provider/package/gem.rb +4 -2
  130. data/lib/puppet/provider/package/openbsd.rb +14 -2
  131. data/lib/puppet/provider/package/pip.rb +37 -10
  132. data/lib/puppet/provider/package/pkg.rb +18 -5
  133. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  134. data/lib/puppet/provider/package/pkgng.rb +16 -4
  135. data/lib/puppet/provider/package/portage.rb +4 -4
  136. data/lib/puppet/provider/package/puppet_gem.rb +5 -0
  137. data/lib/puppet/provider/package/rpm.rb +6 -6
  138. data/lib/puppet/provider/package/windows/package.rb +1 -1
  139. data/lib/puppet/provider/package/yum.rb +28 -20
  140. data/lib/puppet/provider/package/zypper.rb +1 -0
  141. data/lib/puppet/provider/package_targetable.rb +5 -4
  142. data/lib/puppet/provider/parsedfile.rb +1 -1
  143. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +3 -3
  144. data/lib/puppet/provider/selmodule/semodule.rb +43 -26
  145. data/lib/puppet/provider/service/daemontools.rb +9 -9
  146. data/lib/puppet/provider/service/openbsd.rb +1 -1
  147. data/lib/puppet/provider/service/rcng.rb +2 -2
  148. data/lib/puppet/provider/service/runit.rb +2 -8
  149. data/lib/puppet/provider/service/systemd.rb +31 -13
  150. data/lib/puppet/provider/user/directoryservice.rb +31 -6
  151. data/lib/puppet/provider/user/hpux.rb +1 -1
  152. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  153. data/lib/puppet/provider/user/useradd.rb +39 -20
  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 +1 -1
  162. data/lib/puppet/resource/catalog.rb +1 -1
  163. data/lib/puppet/resource/type.rb +10 -1
  164. data/lib/puppet/settings.rb +3 -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 +20 -12
  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 +8 -4
  176. data/lib/puppet/type/cron.rb +1 -1
  177. data/lib/puppet/type/exec.rb +7 -3
  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 +97 -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 +2 -8
  187. data/lib/puppet/type/user.rb +5 -9
  188. data/lib/puppet/util.rb +35 -12
  189. data/lib/puppet/util/autoload.rb +9 -7
  190. data/lib/puppet/util/command_line/trollop.rb +1 -1
  191. data/lib/puppet/util/http_proxy.rb +8 -14
  192. data/lib/puppet/util/instance_loader.rb +1 -1
  193. data/lib/puppet/util/log.rb +1 -1
  194. data/lib/puppet/util/log/destinations.rb +3 -12
  195. data/lib/puppet/util/logging.rb +30 -18
  196. data/lib/puppet/util/metric.rb +2 -2
  197. data/lib/puppet/util/monkey_patches.rb +1 -1
  198. data/lib/puppet/util/nagios_maker.rb +2 -2
  199. data/lib/puppet/util/network_device/cisco/device.rb +1 -1
  200. data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
  201. data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
  202. data/lib/puppet/util/pidlock.rb +12 -6
  203. data/lib/puppet/util/plist.rb +6 -0
  204. data/lib/puppet/util/provider_features.rb +2 -4
  205. data/lib/puppet/util/rdoc.rb +1 -1
  206. data/lib/puppet/util/reference.rb +1 -1
  207. data/lib/puppet/util/resource_template.rb +1 -1
  208. data/lib/puppet/util/selinux.rb +3 -1
  209. data/lib/puppet/util/windows/adsi.rb +60 -30
  210. data/lib/puppet/util/windows/api_types.rb +45 -32
  211. data/lib/puppet/util/windows/eventlog.rb +1 -6
  212. data/lib/puppet/util/windows/principal.rb +8 -6
  213. data/lib/puppet/util/windows/process.rb +16 -15
  214. data/lib/puppet/util/windows/registry.rb +17 -15
  215. data/lib/puppet/util/windows/security.rb +1 -0
  216. data/lib/puppet/util/windows/sid.rb +3 -3
  217. data/lib/puppet/vendor.rb +1 -1
  218. data/lib/puppet/version.rb +1 -1
  219. data/lib/puppet_pal.rb +2 -2
  220. data/locales/puppet.pot +362 -318
  221. data/man/man5/puppet.conf.5 +39 -9
  222. data/man/man8/puppet-agent.8 +2 -2
  223. data/man/man8/puppet-apply.8 +1 -1
  224. data/man/man8/puppet-ca.8 +1 -1
  225. data/man/man8/puppet-catalog.8 +1 -1
  226. data/man/man8/puppet-cert.8 +1 -1
  227. data/man/man8/puppet-certificate.8 +1 -1
  228. data/man/man8/puppet-certificate_request.8 +1 -1
  229. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  230. data/man/man8/puppet-config.8 +1 -1
  231. data/man/man8/puppet-describe.8 +1 -1
  232. data/man/man8/puppet-device.8 +1 -1
  233. data/man/man8/puppet-doc.8 +1 -1
  234. data/man/man8/puppet-epp.8 +1 -1
  235. data/man/man8/puppet-facts.8 +1 -1
  236. data/man/man8/puppet-filebucket.8 +16 -1
  237. data/man/man8/puppet-generate.8 +1 -1
  238. data/man/man8/puppet-help.8 +1 -1
  239. data/man/man8/puppet-key.8 +1 -1
  240. data/man/man8/puppet-lookup.8 +1 -1
  241. data/man/man8/puppet-man.8 +1 -1
  242. data/man/man8/puppet-master.8 +1 -1
  243. data/man/man8/puppet-module.8 +1 -1
  244. data/man/man8/puppet-node.8 +1 -1
  245. data/man/man8/puppet-parser.8 +1 -1
  246. data/man/man8/puppet-plugin.8 +1 -1
  247. data/man/man8/puppet-report.8 +1 -1
  248. data/man/man8/puppet-resource.8 +1 -1
  249. data/man/man8/puppet-script.8 +1 -1
  250. data/man/man8/puppet-status.8 +1 -1
  251. data/man/man8/puppet.8 +2 -2
  252. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +1 -0
  253. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +19 -0
  254. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
  255. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
  256. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  257. data/spec/integration/configurer_spec.rb +66 -0
  258. data/spec/integration/data_binding_spec.rb +1 -0
  259. data/spec/integration/defaults_spec.rb +1 -2
  260. data/spec/integration/faces/plugin_spec.rb +29 -47
  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/type/notify_spec.rb +46 -0
  264. data/spec/integration/util/windows/adsi_spec.rb +6 -1
  265. data/spec/integration/util/windows/registry_spec.rb +7 -7
  266. data/spec/shared_contexts/types_setup.rb +2 -0
  267. data/spec/unit/agent_spec.rb +34 -26
  268. data/spec/unit/application/apply_spec.rb +2 -12
  269. data/spec/unit/configurer/downloader_spec.rb +10 -0
  270. data/spec/unit/configurer/fact_handler_spec.rb +0 -4
  271. data/spec/unit/configurer_spec.rb +430 -415
  272. data/spec/unit/daemon_spec.rb +0 -1
  273. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  274. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  275. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  276. data/spec/unit/file_system/uniquefile_spec.rb +11 -0
  277. data/spec/unit/forge/forge_spec.rb +1 -3
  278. data/spec/unit/forge/repository_spec.rb +1 -3
  279. data/spec/unit/indirector/catalog/compiler_spec.rb +45 -26
  280. data/spec/unit/indirector/resource/ral_spec.rb +4 -4
  281. data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
  282. data/spec/unit/network/http/connection_spec.rb +43 -1
  283. data/spec/unit/network/http/pool_spec.rb +32 -0
  284. data/spec/unit/node_spec.rb +7 -4
  285. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  286. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
  287. data/spec/unit/provider/exec_spec.rb +209 -0
  288. data/spec/unit/provider/group/groupadd_spec.rb +30 -1
  289. data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
  290. data/spec/unit/provider/package/aix_spec.rb +29 -0
  291. data/spec/unit/provider/package/apt_spec.rb +13 -2
  292. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  293. data/spec/unit/provider/package/dnfmodule_spec.rb +247 -0
  294. data/spec/unit/provider/package/dpkg_spec.rb +35 -7
  295. data/spec/unit/provider/package/openbsd_spec.rb +17 -0
  296. data/spec/unit/provider/package/pip_spec.rb +93 -22
  297. data/spec/unit/provider/package/pkg_spec.rb +13 -1
  298. data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
  299. data/spec/unit/provider/package/pkgng_spec.rb +36 -0
  300. data/spec/unit/provider/package/portage_spec.rb +4 -4
  301. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
  302. data/spec/unit/provider/package/yum_spec.rb +90 -0
  303. data/spec/unit/provider/package/zypper_spec.rb +13 -0
  304. data/spec/unit/provider/package_targetable_spec.rb +60 -0
  305. data/spec/unit/provider/selmodule_spec.rb +118 -47
  306. data/spec/unit/provider/service/daemontools_spec.rb +24 -0
  307. data/spec/unit/provider/service/runit_spec.rb +24 -0
  308. data/spec/unit/provider/service/systemd_spec.rb +109 -36
  309. data/spec/unit/provider/user/directoryservice_spec.rb +41 -0
  310. data/spec/unit/provider/user/hpux_spec.rb +2 -2
  311. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  312. data/spec/unit/provider/user/useradd_spec.rb +81 -16
  313. data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
  314. data/spec/unit/puppet_pal_2pec.rb +3 -0
  315. data/spec/unit/ssl/certificate_authority_spec.rb +2 -3
  316. data/spec/unit/ssl/certificate_spec.rb +7 -0
  317. data/spec/unit/ssl/host_spec.rb +2 -0
  318. data/spec/unit/test/test_helper_spec.rb +17 -0
  319. data/spec/unit/type/exec_spec.rb +6 -12
  320. data/spec/unit/type/file/content_spec.rb +9 -3
  321. data/spec/unit/type/file_spec.rb +9 -4
  322. data/spec/unit/type/package_spec.rb +8 -0
  323. data/spec/unit/type/selboolean_spec.rb +4 -6
  324. data/spec/unit/type/service_spec.rb +9 -8
  325. data/spec/unit/type/user_spec.rb +19 -13
  326. data/spec/unit/util/execution_spec.rb +16 -0
  327. data/spec/unit/util/http_proxy_spec.rb +97 -0
  328. data/spec/unit/util/log/destinations_spec.rb +2 -26
  329. data/spec/unit/util/log_spec.rb +0 -138
  330. data/spec/unit/util/logging_spec.rb +200 -0
  331. data/spec/unit/util/pidlock_spec.rb +67 -40
  332. data/spec/unit/util/plist_spec.rb +20 -0
  333. data/spec/unit/util/windows/adsi_spec.rb +55 -4
  334. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  335. data/spec/unit/util/windows/sid_spec.rb +2 -2
  336. data/tasks/manpages.rake +1 -0
  337. metadata +16 -7
  338. data/lib/puppet/pops/loader/null_loader.rb +0 -60
  339. data/locales/ja/puppet.po +0 -12114
  340. 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,
@@ -552,7 +564,7 @@ module Puppet
552
564
  },
553
565
  :no_proxy => {
554
566
  :default => "localhost, 127.0.0.1",
555
- :desc => "List of domain names that should not go through `http_proxy_host`. Environment variable no_proxy or NO_PROXY will override this value.",
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`.",
556
568
  },
557
569
  :http_keepalive_timeout => {
558
570
  :default => "4s",
@@ -669,7 +681,7 @@ module Puppet
669
681
  }
670
682
  )
671
683
 
672
- define_settings(:main,
684
+ settings.define_settings(:main,
673
685
  # Whether the application management feature is on or off - now deprecated and always on.
674
686
  :app_management => {
675
687
  :default => false,
@@ -679,7 +691,7 @@ module Puppet
679
691
  }
680
692
  )
681
693
 
682
- Puppet.define_settings(:module_tool,
694
+ settings.define_settings(:module_tool,
683
695
  :module_repository => {
684
696
  :default => 'https://forgeapi.puppet.com',
685
697
  :desc => "The module repository",
@@ -702,7 +714,7 @@ module Puppet
702
714
  }
703
715
  )
704
716
 
705
- Puppet.define_settings(
717
+ settings.define_settings(
706
718
  :main,
707
719
 
708
720
  # We have to downcase the fqdn, because the current ssl stuff (as opposed to in master) doesn't have good facilities for
@@ -795,13 +807,17 @@ This is useful for embedding a pre-shared key for autosigning policy executables
795
807
  ("challenge password") OID.
796
808
 
797
809
  Extension requests will be permanently embedded in the final certificate.
798
- Extension OIDs must be in the "ppRegCertExt" (`1.3.6.1.4.1.34380.1.1`) or
799
- "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
800
813
  reserved for four of the most common pieces of data to embed: `pp_uuid` (`.1`),
801
814
  `pp_instance_id` (`.2`), `pp_image_name` (`.3`), and `pp_preshared_key` (`.4`)
802
815
  --- in the YAML file, these can be referred to by their short descriptive names
803
816
  instead of their full OID. The ppPrivCertExt arc is unregulated, and can be used
804
- 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.
805
821
  EOT
806
822
  },
807
823
  :certdir => {
@@ -990,7 +1006,7 @@ EOT
990
1006
  }
991
1007
  )
992
1008
 
993
- define_settings(
1009
+ settings.define_settings(
994
1010
  :ca,
995
1011
  :ca_name => {
996
1012
  :default => "Puppet CA: $certname",
@@ -1138,7 +1154,7 @@ EOT
1138
1154
 
1139
1155
  # Define the config default.
1140
1156
 
1141
- define_settings(:application,
1157
+ settings.define_settings(:application,
1142
1158
  :config_file_name => {
1143
1159
  :type => :string,
1144
1160
  :default => Puppet::Settings.default_config_file_name,
@@ -1168,7 +1184,7 @@ EOT
1168
1184
  }
1169
1185
  )
1170
1186
 
1171
- define_settings(:environment,
1187
+ settings.define_settings(:environment,
1172
1188
  :manifest => {
1173
1189
  :default => nil,
1174
1190
  :type => :file_or_directory,
@@ -1211,7 +1227,7 @@ EOT
1211
1227
  }
1212
1228
  )
1213
1229
 
1214
- define_settings(:master,
1230
+ settings.define_settings(:master,
1215
1231
  :user => {
1216
1232
  :default => "puppet",
1217
1233
  :desc => "The user Puppet Server will run as. Used to ensure
@@ -1281,13 +1297,23 @@ EOT
1281
1297
  overridden by more specific settings (see `ca_port`, `report_port`).",
1282
1298
  },
1283
1299
  :node_name => {
1284
- :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
+ },
1285
1309
  :desc => "How the puppet master determines the client's identity
1286
1310
  and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
1287
1311
  in particular for determining which 'node' statement applies to the client.
1288
1312
  Possible values are 'cert' (use the subject's CN in the client's
1289
1313
  certificate) and 'facter' (use the hostname that the client
1290
- reported in its facts)",
1314
+ reported in its facts).
1315
+
1316
+ This setting is deprecated, please use explicit fact matching for classification.",
1291
1317
  },
1292
1318
  :bucketdir => {
1293
1319
  :default => "$vardir/bucket",
@@ -1416,14 +1442,23 @@ EOT
1416
1442
  :desc => "Where the fileserver configuration is stored.",
1417
1443
  },
1418
1444
  :strict_hostname_checking => {
1419
- :default => false,
1445
+ :default => true,
1446
+ :type => :boolean,
1420
1447
  :desc => "Whether to only search for the complete
1421
- hostname as it is in the certificate when searching for node information
1422
- 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
+ }
1423
1458
  }
1424
1459
  )
1425
1460
 
1426
- define_settings(:device,
1461
+ settings.define_settings(:device,
1427
1462
  :devicedir => {
1428
1463
  :default => "$vardir/devices",
1429
1464
  :type => :directory,
@@ -1438,7 +1473,7 @@ EOT
1438
1473
  }
1439
1474
  )
1440
1475
 
1441
- define_settings(:agent,
1476
+ settings.define_settings(:agent,
1442
1477
  :node_name_value => {
1443
1478
  :default => "$certname",
1444
1479
  :desc => "The explicit value used for the node name for all requests the agent
@@ -1463,7 +1498,7 @@ EOT
1463
1498
  :statefile => {
1464
1499
  :default => "$statedir/state.yaml",
1465
1500
  :type => :file,
1466
- :mode => "0660",
1501
+ :mode => "0640",
1467
1502
  :desc => "Where puppet agent and puppet master store state associated
1468
1503
  with the running configuration. In the case of puppet master,
1469
1504
  this file reflects the state discovered through interacting
@@ -1485,7 +1520,7 @@ EOT
1485
1520
  :transactionstorefile => {
1486
1521
  :default => "$statedir/transactionstore.yaml",
1487
1522
  :type => :file,
1488
- :mode => "0660",
1523
+ :mode => "0640",
1489
1524
  :desc => "Transactional storage file for persisting data between
1490
1525
  transactions for the purposes of infering information (such as
1491
1526
  corrective_change) on new data received."
@@ -1730,6 +1765,11 @@ EOT
1730
1765
  :type => :boolean,
1731
1766
  :desc => "Whether to send reports after every transaction.",
1732
1767
  },
1768
+ :resubmit_facts => {
1769
+ :default => false,
1770
+ :type => :boolean,
1771
+ :desc => "Whether to send updated facts after every transaction.",
1772
+ },
1733
1773
  :lastrunfile => {
1734
1774
  :default => "$statedir/last_run_summary.yaml",
1735
1775
  :type => :file,
@@ -1819,7 +1859,7 @@ EOT
1819
1859
 
1820
1860
  # Plugin information.
1821
1861
 
1822
- define_settings(
1862
+ settings.define_settings(
1823
1863
  :main,
1824
1864
  :plugindest => {
1825
1865
  :type => :directory,
@@ -1854,7 +1894,6 @@ EOT
1854
1894
  is used for retrieval, so anything that is a valid file source can
1855
1895
  be used here.",
1856
1896
  },
1857
-
1858
1897
  :pluginsync => {
1859
1898
  :default => true,
1860
1899
  :type => :boolean,
@@ -1868,12 +1907,19 @@ EOT
1868
1907
  :pluginsignore => {
1869
1908
  :default => ".svn CVS .git .hg",
1870
1909
  :desc => "What files to ignore when pulling down plugins.",
1910
+ },
1911
+ :ignore_plugin_errors => {
1912
+ :default => true,
1913
+ :type => :boolean,
1914
+ :desc => "Whether the puppet run should ignore errors during pluginsync. If the setting
1915
+ is false and there are errors during pluginsync, then the agent will abort the run and
1916
+ submit a report containing information about the failed run."
1871
1917
  }
1872
1918
  )
1873
1919
 
1874
1920
  # Central fact information.
1875
1921
 
1876
- define_settings(
1922
+ settings.define_settings(
1877
1923
  :main,
1878
1924
  :factpath => {
1879
1925
  :type => :path,
@@ -1890,7 +1936,7 @@ EOT
1890
1936
  }
1891
1937
  )
1892
1938
 
1893
- define_settings(
1939
+ settings.define_settings(
1894
1940
  :transaction,
1895
1941
  :tags => {
1896
1942
  :default => "",
@@ -1918,7 +1964,7 @@ EOT
1918
1964
  }
1919
1965
  )
1920
1966
 
1921
- define_settings(
1967
+ settings.define_settings(
1922
1968
  :main,
1923
1969
  :external_nodes => {
1924
1970
  :default => "none",
@@ -1943,7 +1989,7 @@ EOT
1943
1989
  }
1944
1990
  )
1945
1991
 
1946
- define_settings(
1992
+ settings.define_settings(
1947
1993
  :ldap,
1948
1994
  :ldapssl => {
1949
1995
  :default => false,
@@ -2012,7 +2058,7 @@ EOT
2012
2058
  }
2013
2059
  )
2014
2060
 
2015
- define_settings(:master,
2061
+ settings.define_settings(:master,
2016
2062
  :storeconfigs => {
2017
2063
  :default => false,
2018
2064
  :type => :boolean,
@@ -2045,7 +2091,7 @@ EOT
2045
2091
  }
2046
2092
  )
2047
2093
 
2048
- define_settings(:parser,
2094
+ settings.define_settings(:parser,
2049
2095
  :max_errors => {
2050
2096
  :default => 10,
2051
2097
  :desc => <<-'EOT'
@@ -2087,7 +2133,7 @@ EOT
2087
2133
  EOT
2088
2134
  }
2089
2135
  )
2090
- define_settings(:puppetdoc,
2136
+ settings.define_settings(:puppetdoc,
2091
2137
  :document_all => {
2092
2138
  :default => false,
2093
2139
  :type => :boolean,
@@ -2096,7 +2142,7 @@ EOT
2096
2142
  }
2097
2143
  )
2098
2144
 
2099
- define_settings(
2145
+ settings.define_settings(
2100
2146
  :main,
2101
2147
  :rich_data => {
2102
2148
  :default => false,
@@ -2113,5 +2159,5 @@ EOT
2113
2159
  EOT
2114
2160
  }
2115
2161
  )
2116
-
2162
+ end
2117
2163
  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")
@@ -128,10 +128,10 @@ Puppet::Face.define(:module, '1.0.0') do
128
128
  unmet_grouped.each do |type, deps|
129
129
  unless deps.empty?
130
130
  unmet_grouped[type].sort_by { |dep| dep[:name] }.each do |dep|
131
- dep_name = dep[:name].gsub('/', '-')
131
+ dep_name = dep[:name].tr('/', '-')
132
132
  installed_version = dep[:mod_details][:installed_version]
133
133
  version_constraint = dep[:version_constraint]
134
- parent_name = dep[:parent][:name].gsub('/', '-')
134
+ parent_name = dep[:parent][:name].tr('/', '-')
135
135
  parent_version = dep[:parent][:version]
136
136
 
137
137
  msg = _("'%{parent_name}' (%{parent_version}) requires '%{dependency_name}' (%{dependency_version})") % { parent_name: parent_name, parent_version: parent_version, dependency_name: dep_name, dependency_version: version_constraint }
@@ -151,7 +151,7 @@ Puppet::Face.define(:module, '1.0.0') do
151
151
  error_display_order.each do |type|
152
152
  unless @unmet_deps[type].empty?
153
153
  @unmet_deps[type].keys.sort.each do |dep|
154
- name = dep.gsub('/', '-')
154
+ name = dep.tr('/', '-')
155
155
  errors = @unmet_deps[type][dep][:errors]
156
156
  version = @unmet_deps[type][dep][:version]
157
157
 
@@ -219,7 +219,7 @@ Puppet::Face.define(:module, '1.0.0') do
219
219
  dep[:reason] == :missing
220
220
  end
221
221
  missing_deps.map do |mis_mod|
222
- str = "#{colorize(:bg_red, _('UNMET DEPENDENCY'))} #{mis_mod[:name].gsub('/', '-')} "
222
+ str = "#{colorize(:bg_red, _('UNMET DEPENDENCY'))} #{mis_mod[:name].tr('/', '-')} "
223
223
  str << "(#{colorize(:cyan, mis_mod[:version_constraint])})"
224
224
  node[:dependencies] << { :text => str }
225
225
  end
@@ -244,7 +244,7 @@ Puppet::Face.define(:module, '1.0.0') do
244
244
  #
245
245
  def list_build_node(mod, parent, params)
246
246
  str = ''
247
- str << (mod.forge_name ? mod.forge_name.gsub('/', '-') : mod.name)
247
+ str << (mod.forge_name ? mod.forge_name.tr('/', '-') : mod.name)
248
248
  str << ' (' + colorize(:cyan, mod.version ? "v#{mod.version}" : '???') + ')'
249
249
 
250
250
  unless File.dirname(mod.path) == params[:path]