puppet 7.8.0-x64-mingw32 → 7.12.0-x64-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 (379) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +5 -5
  3. data/Gemfile +2 -2
  4. data/Gemfile.lock +15 -15
  5. data/README.md +4 -4
  6. data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
  7. data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
  8. data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
  9. data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
  10. data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
  11. data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
  12. data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
  13. data/{ext → examples}/nagios/check_puppet.rb +2 -2
  14. data/ext/README.md +13 -0
  15. data/ext/project_data.yaml +1 -0
  16. data/install.rb +0 -4
  17. data/lib/puppet/application/agent.rb +4 -0
  18. data/lib/puppet/application/apply.rb +20 -2
  19. data/lib/puppet/application/filebucket.rb +1 -0
  20. data/lib/puppet/application/resource.rb +30 -15
  21. data/lib/puppet/application/ssl.rb +1 -0
  22. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  23. data/lib/puppet/configurer.rb +176 -58
  24. data/lib/puppet/confine/variable.rb +1 -1
  25. data/lib/puppet/defaults.rb +67 -29
  26. data/lib/puppet/environments.rb +75 -25
  27. data/lib/puppet/face/help/action.erb +1 -0
  28. data/lib/puppet/face/help/face.erb +1 -0
  29. data/lib/puppet/face/node/clean.rb +1 -1
  30. data/lib/puppet/facter_impl.rb +96 -0
  31. data/lib/puppet/file_serving/configuration/parser.rb +2 -0
  32. data/lib/puppet/file_serving/configuration.rb +2 -0
  33. data/lib/puppet/file_serving/mount/file.rb +4 -4
  34. data/lib/puppet/file_serving/mount/scripts.rb +24 -0
  35. data/lib/puppet/file_system/file_impl.rb +3 -1
  36. data/lib/puppet/file_system/windows.rb +2 -2
  37. data/lib/puppet/file_system.rb +2 -1
  38. data/lib/puppet/forge/cache.rb +1 -1
  39. data/lib/puppet/forge.rb +4 -4
  40. data/lib/puppet/functions/empty.rb +8 -0
  41. data/lib/puppet/functions/find_template.rb +2 -2
  42. data/lib/puppet/functions/strftime.rb +1 -0
  43. data/lib/puppet/functions/unwrap.rb +17 -2
  44. data/lib/puppet/http/service/compiler.rb +6 -1
  45. data/lib/puppet/indirector/catalog/compiler.rb +24 -6
  46. data/lib/puppet/indirector/catalog/rest.rb +1 -0
  47. data/lib/puppet/indirector/facts/facter.rb +6 -6
  48. data/lib/puppet/indirector/indirection.rb +1 -1
  49. data/lib/puppet/indirector/resource/ral.rb +6 -1
  50. data/lib/puppet/indirector/terminus.rb +4 -0
  51. data/lib/puppet/interface/documentation.rb +1 -0
  52. data/lib/puppet/module/plan.rb +0 -1
  53. data/lib/puppet/module/task.rb +1 -1
  54. data/lib/puppet/module_tool/applications/installer.rb +12 -4
  55. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  56. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  57. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  58. data/lib/puppet/module_tool/tar/mini.rb +1 -1
  59. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  60. data/lib/puppet/node/environment.rb +10 -11
  61. data/lib/puppet/pal/pal_impl.rb +1 -1
  62. data/lib/puppet/parser/scope.rb +8 -7
  63. data/lib/puppet/parser/templatewrapper.rb +1 -0
  64. data/lib/puppet/pops/evaluator/closure.rb +7 -5
  65. data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
  66. data/lib/puppet/pops/model/ast.rb +1 -0
  67. data/lib/puppet/pops/model/factory.rb +14 -13
  68. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  69. data/lib/puppet/pops/parser/eparser.rb +752 -753
  70. data/lib/puppet/pops/parser/lexer2.rb +69 -68
  71. data/lib/puppet/pops/parser/slurp_support.rb +1 -0
  72. data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
  73. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  74. data/lib/puppet/pops/types/type_formatter.rb +7 -6
  75. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  76. data/lib/puppet/pops/types/types.rb +1 -1
  77. data/lib/puppet/provider/aix_object.rb +1 -1
  78. data/lib/puppet/provider/exec/posix.rb +16 -4
  79. data/lib/puppet/provider/group/groupadd.rb +5 -2
  80. data/lib/puppet/provider/package/pip.rb +15 -3
  81. data/lib/puppet/provider/package/pkg.rb +19 -2
  82. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  83. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  84. data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
  85. data/lib/puppet/provider/package/windows/package.rb +2 -1
  86. data/lib/puppet/provider/package/windows.rb +14 -1
  87. data/lib/puppet/provider/package/yum.rb +1 -1
  88. data/lib/puppet/provider/parsedfile.rb +3 -0
  89. data/lib/puppet/provider/service/base.rb +1 -1
  90. data/lib/puppet/provider/service/init.rb +5 -5
  91. data/lib/puppet/provider/service/launchd.rb +2 -2
  92. data/lib/puppet/provider/service/redhat.rb +1 -1
  93. data/lib/puppet/provider/service/smf.rb +3 -3
  94. data/lib/puppet/provider/service/systemd.rb +2 -2
  95. data/lib/puppet/provider/service/upstart.rb +5 -5
  96. data/lib/puppet/provider/user/aix.rb +44 -1
  97. data/lib/puppet/provider/user/directoryservice.rb +1 -1
  98. data/lib/puppet/provider/user/useradd.rb +72 -16
  99. data/lib/puppet/provider.rb +1 -1
  100. data/lib/puppet/reference/providers.rb +2 -2
  101. data/lib/puppet/resource/type_collection.rb +4 -1
  102. data/lib/puppet/runtime.rb +11 -1
  103. data/lib/puppet/settings/config_file.rb +1 -8
  104. data/lib/puppet/settings/file_setting.rb +3 -8
  105. data/lib/puppet/settings/value_translator.rb +0 -1
  106. data/lib/puppet/settings.rb +32 -9
  107. data/lib/puppet/test/test_helper.rb +4 -1
  108. data/lib/puppet/transaction/persistence.rb +11 -1
  109. data/lib/puppet/transaction/report.rb +15 -1
  110. data/lib/puppet/type/exec.rb +35 -5
  111. data/lib/puppet/type/file/mode.rb +6 -0
  112. data/lib/puppet/type/file.rb +6 -6
  113. data/lib/puppet/type/filebucket.rb +2 -2
  114. data/lib/puppet/type/group.rb +0 -1
  115. data/lib/puppet/type/resources.rb +1 -1
  116. data/lib/puppet/type/service.rb +8 -3
  117. data/lib/puppet/type/tidy.rb +1 -1
  118. data/lib/puppet/type/user.rb +1 -2
  119. data/lib/puppet/type.rb +1 -1
  120. data/lib/puppet/util/autoload.rb +1 -1
  121. data/lib/puppet/util/command_line.rb +1 -1
  122. data/lib/puppet/util/filetype.rb +2 -2
  123. data/lib/puppet/util/json.rb +3 -0
  124. data/lib/puppet/util/log.rb +1 -2
  125. data/lib/puppet/util/logging.rb +1 -25
  126. data/lib/puppet/util/monkey_patches.rb +2 -17
  127. data/lib/puppet/util/pidlock.rb +1 -1
  128. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  129. data/lib/puppet/util/suidmanager.rb +1 -2
  130. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  131. data/lib/puppet/util/tagging.rb +1 -0
  132. data/lib/puppet/util/windows/sid.rb +3 -1
  133. data/lib/puppet/util/windows/user.rb +0 -1
  134. data/lib/puppet/util.rb +4 -3
  135. data/lib/puppet/version.rb +1 -1
  136. data/lib/puppet/x509/cert_provider.rb +3 -21
  137. data/lib/puppet.rb +5 -9
  138. data/locales/puppet.pot +409 -329
  139. data/man/man5/puppet.conf.5 +73 -25
  140. data/man/man8/puppet-agent.8 +4 -1
  141. data/man/man8/puppet-apply.8 +1 -1
  142. data/man/man8/puppet-catalog.8 +9 -9
  143. data/man/man8/puppet-config.8 +1 -1
  144. data/man/man8/puppet-describe.8 +1 -1
  145. data/man/man8/puppet-device.8 +1 -1
  146. data/man/man8/puppet-doc.8 +1 -1
  147. data/man/man8/puppet-epp.8 +1 -1
  148. data/man/man8/puppet-facts.8 +7 -7
  149. data/man/man8/puppet-filebucket.8 +1 -1
  150. data/man/man8/puppet-generate.8 +1 -1
  151. data/man/man8/puppet-help.8 +1 -1
  152. data/man/man8/puppet-lookup.8 +1 -1
  153. data/man/man8/puppet-module.8 +3 -3
  154. data/man/man8/puppet-node.8 +5 -5
  155. data/man/man8/puppet-parser.8 +1 -1
  156. data/man/man8/puppet-plugin.8 +1 -1
  157. data/man/man8/puppet-report.8 +5 -5
  158. data/man/man8/puppet-resource.8 +1 -1
  159. data/man/man8/puppet-script.8 +1 -1
  160. data/man/man8/puppet-ssl.8 +1 -1
  161. data/man/man8/puppet.8 +2 -2
  162. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
  163. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
  164. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
  165. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
  166. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
  167. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
  168. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
  169. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
  170. data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
  171. data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
  172. data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
  173. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
  174. data/spec/fixtures/ssl/ca.pem +52 -52
  175. data/spec/fixtures/ssl/crl.pem +25 -25
  176. data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
  177. data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
  178. data/spec/fixtures/ssl/ec-key.pem +11 -11
  179. data/spec/fixtures/ssl/ec.pem +32 -32
  180. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  181. data/spec/fixtures/ssl/encrypted-key.pem +107 -107
  182. data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
  183. data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
  184. data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
  185. data/spec/fixtures/ssl/intermediate.pem +51 -51
  186. data/spec/fixtures/ssl/oid-key.pem +117 -0
  187. data/spec/fixtures/ssl/oid.pem +69 -0
  188. data/spec/fixtures/ssl/pluto-key.pem +106 -106
  189. data/spec/fixtures/ssl/pluto.pem +50 -50
  190. data/spec/fixtures/ssl/request-key.pem +106 -106
  191. data/spec/fixtures/ssl/request.pem +45 -45
  192. data/spec/fixtures/ssl/revoked-key.pem +106 -106
  193. data/spec/fixtures/ssl/revoked.pem +49 -49
  194. data/spec/fixtures/ssl/signed-key.pem +106 -106
  195. data/spec/fixtures/ssl/signed.pem +47 -47
  196. data/spec/fixtures/ssl/tampered-cert.pem +49 -49
  197. data/spec/fixtures/ssl/tampered-csr.pem +45 -45
  198. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  199. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
  200. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
  201. data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
  202. data/spec/fixtures/ssl/unknown-ca.pem +52 -52
  203. data/spec/integration/application/agent_spec.rb +118 -52
  204. data/spec/integration/application/filebucket_spec.rb +16 -0
  205. data/spec/integration/application/module_spec.rb +21 -0
  206. data/spec/integration/application/resource_spec.rb +35 -1
  207. data/spec/integration/application/ssl_spec.rb +20 -0
  208. data/spec/integration/configurer_spec.rb +18 -2
  209. data/spec/integration/defaults_spec.rb +5 -0
  210. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  211. data/spec/integration/indirector/facts/facter_spec.rb +93 -39
  212. data/spec/integration/l10n/compiler_spec.rb +37 -0
  213. data/spec/integration/transaction/report_spec.rb +1 -1
  214. data/spec/integration/type/exec_spec.rb +70 -45
  215. data/spec/integration/type/file_spec.rb +2 -2
  216. data/spec/integration/type/package_spec.rb +6 -6
  217. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  218. data/spec/integration/util/windows/process_spec.rb +1 -9
  219. data/spec/lib/puppet/test_ca.rb +5 -0
  220. data/spec/lib/puppet_spec/modules.rb +13 -2
  221. data/spec/lib/puppet_spec/puppetserver.rb +15 -0
  222. data/spec/lib/puppet_spec/settings.rb +1 -0
  223. data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
  224. data/spec/shared_contexts/l10n.rb +27 -0
  225. data/spec/spec_helper.rb +1 -10
  226. data/spec/unit/application/apply_spec.rb +76 -56
  227. data/spec/unit/application/resource_spec.rb +29 -0
  228. data/spec/unit/configurer_spec.rb +291 -56
  229. data/spec/unit/environments_spec.rb +184 -0
  230. data/spec/unit/facter_impl_spec.rb +31 -0
  231. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  232. data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
  233. data/spec/unit/file_serving/configuration_spec.rb +12 -4
  234. data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
  235. data/spec/unit/file_system_spec.rb +13 -0
  236. data/spec/unit/functions/assert_type_spec.rb +1 -1
  237. data/spec/unit/functions/empty_spec.rb +10 -0
  238. data/spec/unit/functions/logging_spec.rb +1 -0
  239. data/spec/unit/functions/lookup_spec.rb +87 -0
  240. data/spec/unit/functions/unwrap_spec.rb +8 -0
  241. data/spec/unit/functions4_spec.rb +2 -2
  242. data/spec/unit/http/service/compiler_spec.rb +8 -0
  243. data/spec/unit/indirector/catalog/compiler_spec.rb +87 -0
  244. data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
  245. data/spec/unit/indirector/indirection_spec.rb +10 -3
  246. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  247. data/spec/unit/interface/action_spec.rb +0 -9
  248. data/spec/unit/module_spec.rb +14 -0
  249. data/spec/unit/module_tool/applications/installer_spec.rb +52 -14
  250. data/spec/unit/network/formats_spec.rb +6 -0
  251. data/spec/unit/parser/compiler_spec.rb +29 -0
  252. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  253. data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -9
  254. data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
  255. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
  256. data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
  257. data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
  258. data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
  259. data/spec/unit/provider/package/gem_spec.rb +1 -1
  260. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  261. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  262. data/spec/unit/provider/package/pip_spec.rb +38 -1
  263. data/spec/unit/provider/package/pkg_spec.rb +34 -5
  264. data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
  265. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  266. data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
  267. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  268. data/spec/unit/provider/service/launchd_spec.rb +11 -0
  269. data/spec/unit/provider/service/systemd_spec.rb +1 -1
  270. data/spec/unit/provider/user/aix_spec.rb +100 -0
  271. data/spec/unit/provider/user/directoryservice_spec.rb +1 -1
  272. data/spec/unit/provider/user/useradd_spec.rb +43 -2
  273. data/spec/unit/provider_spec.rb +4 -4
  274. data/spec/unit/puppet_spec.rb +12 -4
  275. data/spec/unit/resource/type_collection_spec.rb +16 -0
  276. data/spec/unit/resource/type_spec.rb +2 -2
  277. data/spec/unit/settings/config_file_spec.rb +1 -11
  278. data/spec/unit/settings/file_setting_spec.rb +10 -7
  279. data/spec/unit/settings/value_translator_spec.rb +4 -5
  280. data/spec/unit/settings_spec.rb +120 -79
  281. data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
  282. data/spec/unit/type/exec_spec.rb +76 -29
  283. data/spec/unit/type/file/source_spec.rb +4 -4
  284. data/spec/unit/type/service_spec.rb +27 -0
  285. data/spec/unit/type/tidy_spec.rb +7 -0
  286. data/spec/unit/type_spec.rb +2 -2
  287. data/spec/unit/util/autoload_spec.rb +25 -8
  288. data/spec/unit/util/ldap/connection_spec.rb +10 -10
  289. data/spec/unit/util/ldap/manager_spec.rb +2 -2
  290. data/spec/unit/util/logging_spec.rb +2 -0
  291. data/spec/unit/util/windows/sid_spec.rb +39 -4
  292. data/spec/unit/util_spec.rb +1 -3
  293. data/spec/unit/x509/cert_provider_spec.rb +9 -1
  294. data/tasks/generate_cert_fixtures.rake +10 -1
  295. data/tasks/parallel.rake +3 -3
  296. metadata +51 -95
  297. data/ext/README.environment +0 -8
  298. data/ext/dbfix.sql +0 -132
  299. data/ext/debian/README.Debian +0 -8
  300. data/ext/debian/README.source +0 -2
  301. data/ext/debian/TODO.Debian +0 -1
  302. data/ext/debian/changelog.erb +0 -1122
  303. data/ext/debian/compat +0 -1
  304. data/ext/debian/control +0 -144
  305. data/ext/debian/copyright +0 -339
  306. data/ext/debian/docs +0 -1
  307. data/ext/debian/fileserver.conf +0 -41
  308. data/ext/debian/puppet-common.dirs +0 -13
  309. data/ext/debian/puppet-common.install +0 -3
  310. data/ext/debian/puppet-common.lintian-overrides +0 -5
  311. data/ext/debian/puppet-common.manpages +0 -28
  312. data/ext/debian/puppet-common.postinst +0 -35
  313. data/ext/debian/puppet-common.postrm +0 -33
  314. data/ext/debian/puppet-el.dirs +0 -1
  315. data/ext/debian/puppet-el.emacsen-install +0 -25
  316. data/ext/debian/puppet-el.emacsen-remove +0 -11
  317. data/ext/debian/puppet-el.emacsen-startup +0 -9
  318. data/ext/debian/puppet-el.install +0 -1
  319. data/ext/debian/puppet-testsuite.install +0 -2
  320. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  321. data/ext/debian/puppet.lintian-overrides +0 -3
  322. data/ext/debian/puppet.logrotate +0 -20
  323. data/ext/debian/puppet.postinst +0 -20
  324. data/ext/debian/puppet.postrm +0 -20
  325. data/ext/debian/puppet.preinst +0 -20
  326. data/ext/debian/puppetmaster-common.install +0 -2
  327. data/ext/debian/puppetmaster-common.manpages +0 -2
  328. data/ext/debian/puppetmaster-common.postinst +0 -6
  329. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  330. data/ext/debian/puppetmaster-passenger.postinst +0 -162
  331. data/ext/debian/puppetmaster-passenger.postrm +0 -61
  332. data/ext/debian/puppetmaster.README.debian +0 -17
  333. data/ext/debian/puppetmaster.default +0 -14
  334. data/ext/debian/puppetmaster.init +0 -137
  335. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  336. data/ext/debian/puppetmaster.postinst +0 -20
  337. data/ext/debian/puppetmaster.postrm +0 -5
  338. data/ext/debian/puppetmaster.preinst +0 -22
  339. data/ext/debian/rules +0 -132
  340. data/ext/debian/source/format +0 -1
  341. data/ext/debian/source/options +0 -1
  342. data/ext/debian/vim-puppet.README.Debian +0 -13
  343. data/ext/debian/vim-puppet.dirs +0 -5
  344. data/ext/debian/vim-puppet.yaml +0 -7
  345. data/ext/debian/watch +0 -2
  346. data/ext/freebsd/puppetd +0 -26
  347. data/ext/freebsd/puppetmasterd +0 -26
  348. data/ext/gentoo/conf.d/puppet +0 -5
  349. data/ext/gentoo/conf.d/puppetmaster +0 -12
  350. data/ext/gentoo/init.d/puppet +0 -38
  351. data/ext/gentoo/init.d/puppetmaster +0 -51
  352. data/ext/gentoo/puppet/fileserver.conf +0 -41
  353. data/ext/ips/puppet-agent +0 -44
  354. data/ext/ips/puppet-master +0 -44
  355. data/ext/ips/puppet.p5m.erb +0 -12
  356. data/ext/ips/puppetagent.xml +0 -42
  357. data/ext/ips/puppetmaster.xml +0 -42
  358. data/ext/ips/rules +0 -19
  359. data/ext/ips/transforms +0 -34
  360. data/ext/ldap/puppet.schema +0 -24
  361. data/ext/logcheck/puppet +0 -23
  362. data/ext/osx/file_mapping.yaml +0 -28
  363. data/ext/osx/postflight.erb +0 -109
  364. data/ext/osx/preflight.erb +0 -52
  365. data/ext/osx/prototype.plist.erb +0 -38
  366. data/ext/redhat/fileserver.conf +0 -41
  367. data/ext/redhat/logrotate +0 -21
  368. data/ext/redhat/puppet.spec.erb +0 -841
  369. data/ext/redhat/server.init +0 -128
  370. data/ext/redhat/server.sysconfig +0 -13
  371. data/ext/solaris/pkginfo +0 -6
  372. data/ext/solaris/smf/puppetd.xml +0 -77
  373. data/ext/solaris/smf/puppetmasterd.xml +0 -77
  374. data/ext/solaris/smf/svc-puppetd +0 -71
  375. data/ext/solaris/smf/svc-puppetmasterd +0 -67
  376. data/ext/suse/puppet.spec +0 -310
  377. data/ext/suse/server.init +0 -173
  378. data/ext/yaml_nodes.rb +0 -105
  379. data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -91,7 +91,7 @@ class Puppet::Configurer
91
91
 
92
92
  if result
93
93
  # don't use use cached catalog if it doesn't match server specified environment
94
- if @node_environment && result.environment != @environment
94
+ if result.environment != @environment
95
95
  Puppet.err _("Not using cached catalog because its environment '%{catalog_env}' does not match '%{local_env}'") % { catalog_env: result.environment, local_env: @environment }
96
96
  return nil
97
97
  end
@@ -118,14 +118,105 @@ class Puppet::Configurer
118
118
  catalog = result.to_ral
119
119
  catalog.finalize
120
120
  catalog.retrieval_duration = duration
121
- catalog.write_class_file
122
- catalog.write_resource_file
121
+
122
+ if Puppet[:write_catalog_summary]
123
+ catalog.write_class_file
124
+ catalog.write_resource_file
125
+ end
123
126
  end
124
127
  options[:report].add_times(:convert_catalog, catalog_conversion_time) if options[:report]
125
128
 
126
129
  catalog
127
130
  end
128
131
 
132
+ def warn_number_of_facts(size, max_number)
133
+ Puppet.warning _("The current total number of facts: %{size} exceeds the number of facts limit: %{max_size}") % { size: size, max_size: max_number }
134
+ end
135
+
136
+ def warn_fact_name_length(name, max_length)
137
+ Puppet.warning _("Fact %{name} with length: '%{length}' exceeds the length limit: %{limit}") % { name: name, length: name.to_s.bytesize, limit: max_length }
138
+ end
139
+
140
+ def warn_number_of_top_level_facts(size, max_number)
141
+ Puppet.warning _("The current number of top level facts: %{size} exceeds the top facts limit: %{max_size}") % { size: size, max_size: max_number }
142
+ end
143
+
144
+ def warn_fact_value_length(value, max_length)
145
+ Puppet.warning _("Fact value '%{value}' with the value length: '%{length}' exceeds the value length limit: %{max_length}") % { value: value, length:value.to_s.bytesize, max_length: max_length }
146
+ end
147
+
148
+ def warn_fact_payload_size(payload, max_size)
149
+ Puppet.warning _("Payload with the current size of: '%{payload}' exceeds the payload size limit: %{max_size}") % { payload: payload, max_size: max_size }
150
+ end
151
+
152
+ def check_fact_name_length(name, number_of_dots)
153
+ max_length = Puppet[:fact_name_length_soft_limit]
154
+ return if max_length.zero?
155
+
156
+ # rough byte size estimations of fact path as a postgresql btree index
157
+ size_as_btree_index = 8 + (number_of_dots * 2) + name.to_s.bytesize
158
+ warn_fact_name_length(name, max_length) if size_as_btree_index > max_length
159
+ end
160
+
161
+ def check_fact_values_length(values)
162
+ max_length = Puppet[:fact_value_length_soft_limit]
163
+ return if max_length.zero?
164
+
165
+ warn_fact_value_length(values, max_length) if values.to_s.bytesize > max_length
166
+ end
167
+
168
+ def check_top_level_number_limit(size)
169
+ max_size = Puppet[:top_level_facts_soft_limit]
170
+ return if max_size.zero?
171
+
172
+ warn_number_of_top_level_facts(size, max_size) if size > max_size
173
+ end
174
+
175
+ def check_total_number_limit(size)
176
+ max_size = Puppet[:number_of_facts_soft_limit]
177
+ return if max_size.zero?
178
+
179
+ warn_number_of_facts(size, max_size) if size > max_size
180
+ end
181
+
182
+ def check_payload_size(payload)
183
+ max_size = Puppet[:payload_soft_limit]
184
+ return if max_size.zero?
185
+
186
+ warn_fact_payload_size(payload, max_size) if payload > max_size
187
+ Puppet.debug _("The size of the payload is %{payload}") % {payload: payload}
188
+ end
189
+
190
+ def parse_fact_name_and_value_limits(object, path = [])
191
+ case object
192
+ when Hash
193
+ object.each do |key, value|
194
+ path.push(key)
195
+ parse_fact_name_and_value_limits(value, path)
196
+ path.pop
197
+ @number_of_facts += 1
198
+ end
199
+ when Array
200
+ object.each_with_index do |e, idx|
201
+ path.push(idx)
202
+ parse_fact_name_and_value_limits(e, path)
203
+ path.pop
204
+ end
205
+ else
206
+ check_fact_name_length(path.join(), path.size)
207
+ check_fact_values_length(object)
208
+ end
209
+ end
210
+
211
+ def check_facts_limits(facts)
212
+ @number_of_facts = 0
213
+ check_top_level_number_limit(facts.size)
214
+
215
+ parse_fact_name_and_value_limits(facts)
216
+ check_total_number_limit(@number_of_facts)
217
+ Puppet.debug _("The total number of facts registered is %{number_of_facts}") % {number_of_facts: @number_of_facts}
218
+ end
219
+
129
220
  def get_facts(options)
130
221
  if options[:pluginsync]
131
222
  plugin_sync_time = thinmark do
@@ -148,7 +239,9 @@ class Puppet::Configurer
148
239
  # facts_for_uploading may set Puppet[:node_name_value] as a side effect
149
240
  facter_time = thinmark do
150
241
  facts = find_facts
242
+ check_facts_limits(facts.to_data_hash['values'])
151
243
  facts_hash = encode_facts(facts) # encode for uploading # was: facts_for_uploading
244
+ check_payload_size(facts_hash[:facts].bytesize)
152
245
  end
153
246
  options[:report].add_times(:fact_generation, facter_time) if options[:report]
154
247
  end
@@ -255,6 +348,7 @@ class Puppet::Configurer
255
348
 
256
349
  def run_internal(options)
257
350
  report = options[:report]
351
+ report.initial_environment = Puppet[:environment]
258
352
 
259
353
  if options[:start_time]
260
354
  startup_time = Time.now - options[:start_time]
@@ -294,69 +388,35 @@ class Puppet::Configurer
294
388
  configured_environment = Puppet[:environment] if Puppet.settings.set_by_config?(:environment)
295
389
 
296
390
  # We only need to find out the environment to run in if we don't already have a catalog
297
- unless (cached_catalog || options[:catalog] || Puppet[:strict_environment_mode])
298
- begin
299
- node = nil
300
- node_retr_time = thinmark do
301
- node = Puppet::Node.indirection.find(Puppet[:node_name_value],
302
- :environment => Puppet::Node::Environment.remote(@environment),
303
- :configured_environment => configured_environment,
304
- :ignore_cache => true,
305
- :transaction_uuid => @transaction_uuid,
306
- :fail_on_404 => true)
307
- end
308
- options[:report].add_times(:node_retrieval, node_retr_time)
309
-
310
- if node
311
- # If we have deserialized a node from a rest call, we want to set
312
- # an environment instance as a simple 'remote' environment reference.
313
- if !node.has_environment_instance? && node.environment_name
314
- node.environment = Puppet::Node::Environment.remote(node.environment_name)
315
- end
316
-
317
- @node_environment = node.environment.to_s
318
-
319
- if node.environment.to_s != @environment
320
- Puppet.notice _("Local environment: '%{local_env}' doesn't match server specified node environment '%{node_env}', switching agent to '%{node_env}'.") % { local_env: @environment, node_env: node.environment }
321
- @environment = node.environment.to_s
322
- report.environment = @environment
323
- query_options = nil
324
- facts = nil
325
-
326
- new_env = Puppet::Node::Environment.remote(@environment)
327
- Puppet.push_context(
328
- {
329
- current_environment: new_env,
330
- loaders: Puppet::Pops::Loaders.new(new_env, true)
331
- },
332
- "Local node environment #{@environment} for configurer transaction"
333
- )
334
- else
335
- Puppet.info _("Using configured environment '%{env}'") % { env: @environment }
336
- end
337
- end
338
- rescue StandardError => detail
339
- Puppet.warning(_("Unable to fetch my node definition, but the agent run will continue:"))
340
- Puppet.warning(detail)
391
+ unless (cached_catalog || options[:catalog] || Puppet.settings.set_by_cli?(:environment) || Puppet[:strict_environment_mode])
392
+ Puppet.debug(_("Environment not passed via CLI and no catalog was given, attempting to find out the last server-specified environment"))
393
+ if last_server_specified_environment
394
+ @environment = last_server_specified_environment
395
+ report.environment = last_server_specified_environment
396
+
397
+ push_current_environment_and_loaders
398
+ else
399
+ Puppet.debug(_("Could not find a usable environment in the lastrunfile. Either the file does not exist, does not have the required keys, or the values of 'initial_environment' and 'converged_environment' are identical."))
341
400
  end
342
401
  end
343
402
 
403
+ Puppet.info _("Using environment '%{env}'") % { env: @environment }
404
+
344
405
  # This is to maintain compatibility with anyone using this class
345
406
  # aside from agent, apply, device.
346
407
  unless Puppet.lookup(:loaders) { nil }
347
- new_env = Puppet::Node::Environment.remote(@environment)
348
- Puppet.push_context(
349
- {
350
- current_environment: new_env,
351
- loaders: Puppet::Pops::Loaders.new(new_env, true)
352
- },
353
- "Local node environment #{@environment} for configurer transaction"
354
- )
408
+ push_current_environment_and_loaders
355
409
  end
356
410
 
411
+ temp_value = options[:pluginsync]
412
+
413
+ # only validate server environment if pluginsync is requested
414
+ options[:pluginsync] = valid_server_environment? if options[:pluginsync] == true
415
+
357
416
  query_options, facts = get_facts(options) unless query_options
417
+ options[:pluginsync] = temp_value
418
+
358
419
  query_options[:configured_environment] = configured_environment
359
- options[:convert_for_node] = node
360
420
 
361
421
  catalog = prepare_and_retrieve_catalog(cached_catalog, facts, options, query_options)
362
422
  unless catalog
@@ -381,6 +441,8 @@ class Puppet::Configurer
381
441
  @environment = catalog.environment
382
442
  report.environment = @environment
383
443
 
444
+ push_current_environment_and_loaders
445
+
384
446
  query_options, facts = get_facts(options)
385
447
  query_options[:configured_environment] = configured_environment
386
448
 
@@ -454,6 +516,25 @@ class Puppet::Configurer
454
516
  end
455
517
  private :run_internal
456
518
 
519
+ def valid_server_environment?
520
+ session = Puppet.lookup(:http_session)
521
+ begin
522
+ fs = session.route_to(:fileserver)
523
+ fs.get_file_metadatas(path: URI(Puppet[:pluginsource]).path, recurse: :false, environment: @environment)
524
+ true
525
+ rescue Puppet::HTTP::ResponseError => detail
526
+ if detail.response.code == 404
527
+ Puppet.notice(_("Environment '%{environment}' not found on server, skipping initial pluginsync.") % { environment: @environment })
528
+ else
529
+ Puppet.log_exception(detail, detail.message)
530
+ end
531
+ false
532
+ rescue => detail
533
+ Puppet.log_exception(detail, detail.message)
534
+ false
535
+ end
536
+ end
537
+
457
538
  def find_functional_server
458
539
  begin
459
540
  session = Puppet.lookup(:http_session)
@@ -470,10 +551,35 @@ class Puppet::Configurer
470
551
  end
471
552
  private :find_functional_server
472
553
 
554
+ def last_server_specified_environment
555
+ return @last_server_specified_environment if @last_server_specified_environment
556
+ if Puppet::FileSystem.exist?(Puppet[:lastrunfile])
557
+ summary = Puppet::Util::Yaml.safe_load_file(Puppet[:lastrunfile])
558
+ return unless summary.dig('application', 'run_mode') == 'agent'
559
+ initial_environment = summary.dig('application', 'initial_environment')
560
+ converged_environment = summary.dig('application', 'converged_environment')
561
+ @last_server_specified_environment = converged_environment if initial_environment != converged_environment
562
+ end
563
+
564
+ Puppet.debug(_("Found last server-specified environment: %{environment}") % { environment: @last_server_specified_environment }) if @last_server_specified_environment
565
+ @last_server_specified_environment
566
+ rescue => detail
567
+ Puppet.debug(_("Could not find last server-specified environment: %{detail}") % { detail: detail })
568
+ nil
569
+ end
570
+ private :last_server_specified_environment
571
+
473
572
  def send_report(report)
474
573
  puts report.summary if Puppet[:summarize]
475
574
  save_last_run_summary(report)
476
- Puppet::Transaction::Report.indirection.save(report, nil, :environment => Puppet::Node::Environment.remote(@environment)) if Puppet[:report]
575
+ if Puppet[:report]
576
+ remote = Puppet::Node::Environment.remote(@environment)
577
+ begin
578
+ Puppet::Transaction::Report.indirection.save(report, nil, ignore_cache: true, environment: remote)
579
+ ensure
580
+ Puppet::Transaction::Report.indirection.save(report, nil, ignore_terminus: true, environment: remote)
581
+ end
582
+ end
477
583
  rescue => detail
478
584
  Puppet.log_exception(detail, _("Could not send report: %{detail}") % { detail: detail })
479
585
  end
@@ -496,7 +602,7 @@ class Puppet::Configurer
496
602
  # @return [false] If an exception is raised during fact generation or
497
603
  # submission.
498
604
  def resubmit_facts
499
- ::Facter.clear
605
+ Puppet.runtime[:facter].clear
500
606
  facts = find_facts
501
607
 
502
608
  client = Puppet.runtime[:http]
@@ -531,6 +637,17 @@ class Puppet::Configurer
531
637
  end
532
638
  end
533
639
 
640
+ def push_current_environment_and_loaders
641
+ new_env = Puppet::Node::Environment.remote(@environment)
642
+ Puppet.push_context(
643
+ {
644
+ :current_environment => new_env,
645
+ :loaders => Puppet::Pops::Loaders.new(new_env, true)
646
+ },
647
+ "Local node environment #{@environment} for configurer transaction"
648
+ )
649
+ end
650
+
534
651
  def retrieve_catalog_from_cache(query_options)
535
652
  result = nil
536
653
  @duration = thinmark do
@@ -558,6 +675,7 @@ class Puppet::Configurer
558
675
  # don't update cache until after environment converges
559
676
  :ignore_cache_save => true,
560
677
  :environment => Puppet::Node::Environment.remote(@environment),
678
+ :check_environment => true,
561
679
  :fail_on_404 => true,
562
680
  :facts_for_catalog => facts
563
681
  )
@@ -18,7 +18,7 @@ class Puppet::Confine::Variable < Puppet::Confine
18
18
 
19
19
  # Retrieve the value from facter
20
20
  def facter_value
21
- @facter_value ||= ::Facter.value(name).to_s.downcase
21
+ @facter_value ||= Puppet.runtime[:facter].value(name).to_s.downcase
22
22
  end
23
23
 
24
24
  def initialize(values)
@@ -3,7 +3,7 @@ require_relative '../puppet/util/platform'
3
3
  module Puppet
4
4
 
5
5
  def self.default_diffargs
6
- if (Facter.value(:kernel) == "AIX" && Facter.value(:kernelmajversion) == "5300")
6
+ if (Puppet.runtime[:facter].value(:kernel) == "AIX" && Puppet.runtime[:facter].value(:kernelmajversion) == "5300")
7
7
  ""
8
8
  else
9
9
  "-u"
@@ -199,7 +199,7 @@ module Puppet
199
199
 
200
200
  The strictness level is for both language semantics and runtime
201
201
  evaluation validation. In addition to controlling the behavior with
202
- this master switch some individual warnings may also be controlled
202
+ this primary server switch some individual warnings may also be controlled
203
203
  by the disable_warnings setting.
204
204
 
205
205
  No new validations will be added to a micro (x.y.z) release,
@@ -243,7 +243,7 @@ module Puppet
243
243
  internal Ruby stack trace interleaved with Puppet function frames.",
244
244
  :hook => proc do |value|
245
245
  # Enable or disable Facter's trace option too
246
- Facter.trace(value) if Facter.respond_to? :trace
246
+ Puppet.runtime[:facter].trace(value)
247
247
  end
248
248
  },
249
249
  :puppet_trace => {
@@ -268,7 +268,7 @@ module Puppet
268
268
  :default => true,
269
269
  :type => :boolean,
270
270
  :desc => "Whether to compile a [static catalog](https://puppet.com/docs/puppet/latest/static_catalogs.html#enabling-or-disabling-static-catalogs),
271
- which occurs only on a Puppet Server master when the `code-id-command` and
271
+ which occurs only on Puppet Server when the `code-id-command` and
272
272
  `code-content-command` settings are configured in its `puppetserver.conf` file.",
273
273
  },
274
274
  :settings_catalog => {
@@ -391,13 +391,13 @@ module Puppet
391
391
  :default => "production",
392
392
  :desc => "The environment in which Puppet is running. For clients,
393
393
  such as `puppet agent`, this determines the environment itself, which
394
- Puppet uses to find modules and much more. For servers, such as `puppet master`,
394
+ Puppet uses to find modules and much more. For servers, such as `puppet server`,
395
395
  this provides the default environment for nodes that Puppet knows nothing about.
396
396
 
397
397
  When defining an environment in the `[agent]` section, this refers to the
398
- environment that the agent requests from the master. The environment doesn't
398
+ environment that the agent requests from the primary server. The environment doesn't
399
399
  have to exist on the local filesystem because the agent fetches it from the
400
- master. This definition is used when running `puppet agent`.
400
+ primary server. This definition is used when running `puppet agent`.
401
401
 
402
402
  When defined in the `[user]` section, the environment refers to the path that
403
403
  Puppet uses to search for code and modules related to its execution. This
@@ -478,6 +478,7 @@ module Puppet
478
478
  },
479
479
  :maximum_uid => {
480
480
  :default => 4294967290,
481
+ :type => :integer,
481
482
  :desc => "The maximum allowed UID. Some platforms use negative UIDs
482
483
  but then ship with tools that do not know how to handle signed ints,
483
484
  so the UIDs show up as huge numbers that can then not be fed back into
@@ -615,6 +616,7 @@ module Puppet
615
616
  },
616
617
  :http_proxy_port => {
617
618
  :default => 3128,
619
+ :type => :port,
618
620
  :desc => "The HTTP proxy port to use for outgoing connections",
619
621
  },
620
622
  :http_proxy_user => {
@@ -789,7 +791,7 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
789
791
  :certname => {
790
792
  :default => lambda { Puppet::Settings.default_certname.downcase },
791
793
  :desc => "The name to use when handling certificates. When a node
792
- requests a certificate from the CA puppet master, it uses the value of the
794
+ requests a certificate from the CA Puppet Server, it uses the value of the
793
795
  `certname` setting as its requested Subject CN.
794
796
 
795
797
  This is the name used when managing a node's permissions in
@@ -852,7 +854,7 @@ EOT
852
854
  :desc => <<EOT
853
855
  An optional file containing custom attributes to add to certificate signing
854
856
  requests (CSRs). You should ensure that this file does not exist on your CA
855
- puppet master; if it does, unwanted certificate extensions may leak into
857
+ Puppet Server; if it does, unwanted certificate extensions may leak into
856
858
  certificates created with the `puppetserver ca generate` command.
857
859
 
858
860
  If present, this file must be a YAML hash containing a `custom_attributes` key
@@ -1141,7 +1143,7 @@ EOT
1141
1143
  :default => "$confdir/autosign.conf",
1142
1144
  :type => :autosign,
1143
1145
  :desc => "Whether (and how) to autosign certificate requests. This setting
1144
- is only relevant on a puppet master acting as a certificate authority (CA).
1146
+ is only relevant on a Puppet Server acting as a certificate authority (CA).
1145
1147
 
1146
1148
  Valid values are true (autosigns all certificate requests; not recommended),
1147
1149
  false (disables autosigning certificates), or the absolute path to a file.
@@ -1152,7 +1154,7 @@ EOT
1152
1154
  file, it will be treated as a policy executable; otherwise, it will be
1153
1155
  treated as a config file.
1154
1156
 
1155
- If a custom policy executable is configured, the CA puppet master will run it
1157
+ If a custom policy executable is configured, the CA Puppet Server will run it
1156
1158
  every time it receives a CSR. The executable will be passed the subject CN of the
1157
1159
  request _as a command line argument,_ and the contents of the CSR in PEM format
1158
1160
  _on stdin._ It should exit with a status of 0 if the cert should be autosigned
@@ -1197,6 +1199,7 @@ EOT
1197
1199
  },
1198
1200
  :keylength => {
1199
1201
  :default => 4096,
1202
+ :type => :integer,
1200
1203
  :desc => "The bit length of keys.",
1201
1204
  },
1202
1205
  :cert_inventory => {
@@ -1238,7 +1241,7 @@ EOT
1238
1241
  :manifest => {
1239
1242
  :default => nil,
1240
1243
  :type => :file_or_directory,
1241
- :desc => "The entry-point manifest for puppet master. This can be one file
1244
+ :desc => "The entry-point manifest for the primary server. This can be one file
1242
1245
  or a directory of manifests to be evaluated in alphabetical order. Puppet manages
1243
1246
  this path as a directory if one exists or if the path ends with a / or \\.
1244
1247
 
@@ -1418,8 +1421,8 @@ EOT
1418
1421
  their names should be comma-separated, with whitespace allowed. (For example,
1419
1422
  `reports = http, store`.)
1420
1423
 
1421
- This setting is relevant to puppet master and puppet apply. The puppet
1422
- master will call these report handlers with the reports it receives from
1424
+ This setting is relevant to puppet server and puppet apply. The primary Puppet
1425
+ server will call these report handlers with the reports it receives from
1423
1426
  agent nodes, and puppet apply will call them with its own report. (In
1424
1427
  all cases, the node applying the catalog must have `report = true`.)
1425
1428
 
@@ -1471,14 +1474,14 @@ EOT
1471
1474
  :node_name_value => {
1472
1475
  :default => "$certname",
1473
1476
  :desc => "The explicit value used for the node name for all requests the agent
1474
- makes to the master. WARNING: This setting is mutually exclusive with
1477
+ makes to the primary server. WARNING: This setting is mutually exclusive with
1475
1478
  node_name_fact. Changing this setting also requires changes to
1476
1479
  Puppet Server's default [auth.conf](https://puppet.com/docs/puppetserver/latest/config_file_auth.html)."
1477
1480
  },
1478
1481
  :node_name_fact => {
1479
1482
  :default => "",
1480
1483
  :desc => "The fact name used to determine the node name used for all requests the agent
1481
- makes to the master. WARNING: This setting is mutually exclusive with
1484
+ makes to the primary server. WARNING: This setting is mutually exclusive with
1482
1485
  node_name_value. Changing this setting also requires changes to
1483
1486
  Puppet Server's default [auth.conf](https://puppet.com/docs/puppetserver/latest/config_file_auth.html).",
1484
1487
  :hook => proc do |value|
@@ -1491,8 +1494,8 @@ EOT
1491
1494
  :default => "$statedir/state.yaml",
1492
1495
  :type => :file,
1493
1496
  :mode => "0640",
1494
- :desc => "Where puppet agent and puppet master store state associated
1495
- with the running configuration. In the case of puppet master,
1497
+ :desc => "Where Puppet agent and Puppet Server store state associated
1498
+ with the running configuration. In the case of Puppet Server,
1496
1499
  this file reflects the state discovered through interacting
1497
1500
  with clients."
1498
1501
  },
@@ -1529,6 +1532,12 @@ EOT
1529
1532
  :mode => "0750",
1530
1533
  :desc => "The directory in which serialized data is stored on the client."
1531
1534
  },
1535
+ :write_catalog_summary => {
1536
+ :default => true,
1537
+ :type => :boolean,
1538
+ :desc => "Whether to write the `classfile` and `resourcefile` after applying
1539
+ the catalog. It is enabled by default, except when running `puppet apply`.",
1540
+ },
1532
1541
  :classfile => {
1533
1542
  :default => "$statedir/classes.txt",
1534
1543
  :type => :file,
@@ -1555,11 +1564,11 @@ EOT
1555
1564
  the POSIX syslog service and the Windows Event Log are unavailable. (Currently,
1556
1565
  no supported operating systems match that description.)
1557
1566
 
1558
- Despite the name, both puppet agent and puppet master will use this file
1567
+ Despite the name, both puppet agent and puppet server will use this file
1559
1568
  as the fallback logging destination.
1560
1569
 
1561
1570
  For control over logging destinations, see the `--logdest` command line
1562
- option in the manual pages for puppet master, puppet agent, and puppet
1571
+ option in the manual pages for puppet server, puppet agent, and puppet
1563
1572
  apply. You can see man pages by running `puppet <SUBCOMMAND> --help`,
1564
1573
  or read them online at https://puppet.com/docs/puppet/latest/man/."
1565
1574
  },
@@ -1573,12 +1582,12 @@ EOT
1573
1582
  },
1574
1583
  :server => {
1575
1584
  :default => "puppet",
1576
- :desc => "The puppet master server to which the puppet agent should connect.",
1585
+ :desc => "The primary Puppet server to which the Puppet agent should connect.",
1577
1586
  },
1578
1587
  :server_list => {
1579
1588
  :default => [],
1580
1589
  :type => :server_list,
1581
- :desc => "The list of Puppet master servers to which the Puppet agent should connect,
1590
+ :desc => "The list of primary Puppet servers to which the Puppet agent should connect,
1582
1591
  in the order that they will be tried. Each value should be a fully qualified domain name, followed by an optional ':' and port number. If a port is omitted, Puppet uses masterport for that host.",
1583
1592
  },
1584
1593
  :use_srv_records => {
@@ -1593,7 +1602,7 @@ EOT
1593
1602
  :http_extra_headers => {
1594
1603
  :default => [],
1595
1604
  :type => :http_extra_headers,
1596
- :desc => "The list of extra headers that will be sent with http requests to the master.
1605
+ :desc => "The list of extra headers that will be sent with http requests to the primary server.
1597
1606
  The header definition consists of a name and a value separated by a colon."
1598
1607
  },
1599
1608
  :ignoreschedules => {
@@ -1619,7 +1628,7 @@ EOT
1619
1628
  like it does when running normally. However, if a resource attribute is not in
1620
1629
  the desired state (as declared in the catalog), Puppet will take no
1621
1630
  action, and will instead report the changes it _would_ have made. These
1622
- simulated changes will appear in the report sent to the puppet master, or
1631
+ simulated changes will appear in the report sent to the primary Puppet server, or
1623
1632
  be shown on the console if running puppet agent or puppet apply in the
1624
1633
  foreground. The simulated changes will not send refresh events to any
1625
1634
  subscribing or notified resources, although Puppet will log that a refresh
@@ -1686,13 +1695,38 @@ EOT
1686
1695
  new configurations, where you want to fix the broken configuration
1687
1696
  rather than reverting to a known-good one.",
1688
1697
  },
1698
+ :fact_name_length_soft_limit => {
1699
+ :default => 2560,
1700
+ :type => :integer,
1701
+ :desc => "The soft limit for the length of a fact name.",
1702
+ },
1703
+ :fact_value_length_soft_limit => {
1704
+ :default => 4096,
1705
+ :type => :integer,
1706
+ :desc => "The soft limit for the length of a fact value.",
1707
+ },
1708
+ :top_level_facts_soft_limit => {
1709
+ :default => 512,
1710
+ :type => :integer,
1711
+ :desc => "The soft limit for the number of top level facts.",
1712
+ },
1713
+ :number_of_facts_soft_limit => {
1714
+ :default => 2048,
1715
+ :type => :integer,
1716
+ :desc => "The soft limit for the total number of facts.",
1717
+ },
1718
+ :payload_soft_limit => {
1719
+ :default => 16 * 1024 * 1024,
1720
+ :type => :integer,
1721
+ :desc => "The soft limit for the size of the payload.",
1722
+ },
1689
1723
  :use_cached_catalog => {
1690
1724
  :default => false,
1691
1725
  :type => :boolean,
1692
1726
  :desc => "Whether to only use the cached catalog rather than compiling a new catalog
1693
1727
  on every run. Puppet can be run with this enabled by default and then selectively
1694
1728
  disabled when a recompile is desired. Because a Puppet agent using cached catalogs
1695
- does not contact the master for a new catalog, it also does not upload facts at
1729
+ does not contact the primary server for a new catalog, it also does not upload facts at
1696
1730
  the beginning of the Puppet run.",
1697
1731
  },
1698
1732
  :ignoremissingtypes => {
@@ -1700,7 +1734,7 @@ EOT
1700
1734
  :type => :boolean,
1701
1735
  :desc => "Skip searching for classes and definitions that were missing during a
1702
1736
  prior compilation. The list of missing objects is maintained per-environment and
1703
- persists until the environment is cleared or the master is restarted.",
1737
+ persists until the environment is cleared or the primary server is restarted.",
1704
1738
  },
1705
1739
  :splaylimit => {
1706
1740
  :default => "$runinterval",
@@ -1730,7 +1764,7 @@ EOT
1730
1764
  If you restart an agent's puppet service with `splay` enabled, it
1731
1765
  recalculates its splay period and delays its first agent run after
1732
1766
  restarting for this new period. If you simultaneously restart a group of
1733
- puppet agents with `splay` enabled, their checkins to your puppet masters
1767
+ puppet agents with `splay` enabled, their checkins to your primary servers
1734
1768
  can be distributed more evenly.",
1735
1769
  },
1736
1770
  :clientbucketdir => {
@@ -1829,7 +1863,7 @@ EOT
1829
1863
 
1830
1864
  When starting for the first time, puppet agent will submit a certificate
1831
1865
  signing request (CSR) to the server named in the `ca_server` setting
1832
- (usually the puppet master); this may be autosigned, or may need to be
1866
+ (usually the primary Puppet server); this may be autosigned, or may need to be
1833
1867
  approved by a human, depending on the CA server's configuration.
1834
1868
 
1835
1869
  Puppet agent cannot apply configurations until its approved certificate is
@@ -1943,7 +1977,7 @@ EOT
1943
1977
  :call_hook => :on_initialize_and_write, # Call our hook with the default value, so we always get the value added to facter.
1944
1978
  :hook => proc do |value|
1945
1979
  paths = value.split(File::PATH_SEPARATOR)
1946
- Facter.search(*paths)
1980
+ Puppet.runtime[:facter].search(*paths)
1947
1981
  end
1948
1982
  }
1949
1983
  )
@@ -2023,6 +2057,7 @@ EOT
2023
2057
  },
2024
2058
  :ldapport => {
2025
2059
  :default => 389,
2060
+ :type => :port,
2026
2061
  :desc => "The LDAP port.",
2027
2062
  },
2028
2063
 
@@ -2106,6 +2141,7 @@ EOT
2106
2141
  settings.define_settings(:parser,
2107
2142
  :max_errors => {
2108
2143
  :default => 10,
2144
+ :type => :integer,
2109
2145
  :desc => <<-'EOT'
2110
2146
  Sets the max number of logged/displayed parser validation errors in case
2111
2147
  multiple errors have been detected. A value of 0 is the same as a value of 1; a
@@ -2114,6 +2150,7 @@ EOT
2114
2150
  },
2115
2151
  :max_warnings => {
2116
2152
  :default => 10,
2153
+ :type => :integer,
2117
2154
  :desc => <<-'EOT'
2118
2155
  Sets the max number of logged/displayed parser validation warnings in
2119
2156
  case multiple warnings have been detected. A value of 0 blocks logging of
@@ -2122,6 +2159,7 @@ EOT
2122
2159
  },
2123
2160
  :max_deprecations => {
2124
2161
  :default => 10,
2162
+ :type => :integer,
2125
2163
  :desc => <<-'EOT'
2126
2164
  Sets the max number of logged/displayed parser validation deprecation
2127
2165
  warnings in case multiple deprecation warnings have been detected. A value of 0