puppet 6.17.0-x64-mingw32 → 7.1.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 (622) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -16
  3. data/Gemfile +3 -4
  4. data/Gemfile.lock +32 -30
  5. data/README.md +2 -3
  6. data/Rakefile +4 -12
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/build_defaults.yaml +1 -1
  9. data/ext/osx/file_mapping.yaml +0 -5
  10. data/ext/project_data.yaml +2 -14
  11. data/ext/redhat/puppet.spec.erb +0 -1
  12. data/ext/windows/service/daemon.rb +6 -5
  13. data/install.rb +21 -17
  14. data/lib/puppet.rb +11 -20
  15. data/lib/puppet/agent/locker.rb +0 -7
  16. data/lib/puppet/application.rb +172 -98
  17. data/lib/puppet/application/agent.rb +8 -3
  18. data/lib/puppet/application/apply.rb +18 -20
  19. data/lib/puppet/application/device.rb +100 -104
  20. data/lib/puppet/application/doc.rb +1 -1
  21. data/lib/puppet/application/filebucket.rb +15 -11
  22. data/lib/puppet/application/lookup.rb +16 -4
  23. data/lib/puppet/application/ssl.rb +1 -1
  24. data/lib/puppet/application_support.rb +7 -0
  25. data/lib/puppet/configurer.rb +46 -19
  26. data/lib/puppet/configurer/downloader.rb +31 -10
  27. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  28. data/lib/puppet/confine.rb +1 -1
  29. data/lib/puppet/confine/any.rb +1 -1
  30. data/lib/puppet/defaults.rb +116 -162
  31. data/lib/puppet/environments.rb +72 -62
  32. data/lib/puppet/face/catalog.rb +1 -1
  33. data/lib/puppet/face/config.rb +56 -16
  34. data/lib/puppet/face/epp.rb +12 -2
  35. data/lib/puppet/face/facts.rb +66 -6
  36. data/lib/puppet/face/help.rb +1 -1
  37. data/lib/puppet/face/node.rb +3 -3
  38. data/lib/puppet/face/node/clean.rb +10 -2
  39. data/lib/puppet/face/plugin.rb +5 -8
  40. data/lib/puppet/feature/base.rb +1 -1
  41. data/lib/puppet/ffi/posix.rb +10 -0
  42. data/lib/puppet/ffi/posix/constants.rb +14 -0
  43. data/lib/puppet/ffi/posix/functions.rb +24 -0
  44. data/lib/puppet/ffi/windows.rb +12 -0
  45. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  46. data/lib/puppet/ffi/windows/constants.rb +404 -0
  47. data/lib/puppet/ffi/windows/functions.rb +628 -0
  48. data/lib/puppet/ffi/windows/structs.rb +338 -0
  49. data/lib/puppet/file_bucket/dipper.rb +1 -1
  50. data/lib/puppet/file_serving/configuration.rb +0 -5
  51. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  52. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  53. data/lib/puppet/file_serving/mount.rb +1 -2
  54. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  55. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  56. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  57. data/lib/puppet/file_system/file_impl.rb +3 -3
  58. data/lib/puppet/forge/repository.rb +0 -1
  59. data/lib/puppet/functions/epp.rb +1 -0
  60. data/lib/puppet/functions/inline_epp.rb +1 -0
  61. data/lib/puppet/functions/lstrip.rb +4 -4
  62. data/lib/puppet/functions/new.rb +8 -3
  63. data/lib/puppet/functions/reverse_each.rb +1 -1
  64. data/lib/puppet/functions/rstrip.rb +4 -4
  65. data/lib/puppet/functions/step.rb +1 -1
  66. data/lib/puppet/functions/strip.rb +4 -4
  67. data/lib/puppet/generate/models/type/type.rb +4 -1
  68. data/lib/puppet/gettext/config.rb +5 -5
  69. data/lib/puppet/gettext/module_translations.rb +4 -4
  70. data/lib/puppet/http.rb +23 -13
  71. data/lib/puppet/http/client.rb +165 -115
  72. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  73. data/lib/puppet/http/errors.rb +16 -0
  74. data/lib/puppet/http/external_client.rb +5 -7
  75. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  76. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  77. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  78. data/lib/puppet/http/proxy.rb +137 -0
  79. data/lib/puppet/http/redirector.rb +4 -12
  80. data/lib/puppet/http/resolver.rb +10 -23
  81. data/lib/puppet/http/resolver/server_list.rb +23 -45
  82. data/lib/puppet/http/resolver/settings.rb +7 -10
  83. data/lib/puppet/http/resolver/srv.rb +11 -15
  84. data/lib/puppet/http/response.rb +36 -54
  85. data/lib/puppet/http/response_converter.rb +24 -0
  86. data/lib/puppet/http/response_net_http.rb +42 -0
  87. data/lib/puppet/http/retry_after_handler.rb +4 -13
  88. data/lib/puppet/http/service.rb +15 -27
  89. data/lib/puppet/http/service/ca.rb +11 -22
  90. data/lib/puppet/http/service/compiler.rb +23 -70
  91. data/lib/puppet/http/service/file_server.rb +19 -28
  92. data/lib/puppet/http/service/puppetserver.rb +53 -0
  93. data/lib/puppet/http/service/report.rb +8 -10
  94. data/lib/puppet/http/session.rb +16 -24
  95. data/lib/puppet/{network/http → http}/site.rb +1 -2
  96. data/lib/puppet/indirector/catalog/compiler.rb +1 -1
  97. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  98. data/lib/puppet/indirector/exec.rb +1 -1
  99. data/lib/puppet/indirector/fact_search.rb +60 -0
  100. data/lib/puppet/indirector/facts/facter.rb +27 -6
  101. data/lib/puppet/indirector/facts/json.rb +27 -0
  102. data/lib/puppet/indirector/facts/rest.rb +3 -22
  103. data/lib/puppet/indirector/facts/yaml.rb +4 -59
  104. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  105. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  106. data/lib/puppet/indirector/file_metadata/http.rb +1 -0
  107. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  108. data/lib/puppet/indirector/file_server.rb +1 -8
  109. data/lib/puppet/indirector/generic_http.rb +0 -11
  110. data/lib/puppet/indirector/hiera.rb +4 -0
  111. data/lib/puppet/indirector/indirection.rb +1 -1
  112. data/lib/puppet/indirector/json.rb +5 -1
  113. data/lib/puppet/indirector/msgpack.rb +1 -1
  114. data/lib/puppet/indirector/node/json.rb +8 -0
  115. data/lib/puppet/indirector/node/rest.rb +2 -4
  116. data/lib/puppet/indirector/report/json.rb +34 -0
  117. data/lib/puppet/indirector/report/processor.rb +2 -2
  118. data/lib/puppet/indirector/report/rest.rb +3 -8
  119. data/lib/puppet/indirector/request.rb +1 -102
  120. data/lib/puppet/indirector/rest.rb +12 -263
  121. data/lib/puppet/indirector/yaml.rb +1 -1
  122. data/lib/puppet/module.rb +1 -2
  123. data/lib/puppet/module_tool/applications.rb +0 -1
  124. data/lib/puppet/network/authconfig.rb +2 -96
  125. data/lib/puppet/network/authorization.rb +13 -35
  126. data/lib/puppet/network/format_support.rb +2 -2
  127. data/lib/puppet/network/formats.rb +2 -1
  128. data/lib/puppet/network/http.rb +3 -3
  129. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  130. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  131. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  132. data/lib/puppet/network/http/connection.rb +247 -316
  133. data/lib/puppet/network/http/handler.rb +0 -1
  134. data/lib/puppet/network/http/route.rb +2 -2
  135. data/lib/puppet/network/http_pool.rb +16 -34
  136. data/lib/puppet/node.rb +1 -30
  137. data/lib/puppet/node/environment.rb +12 -5
  138. data/lib/puppet/node/facts.rb +17 -0
  139. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  140. data/lib/puppet/pal/pal_impl.rb +93 -14
  141. data/lib/puppet/parameter.rb +1 -1
  142. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  143. data/lib/puppet/parser/compiler.rb +0 -198
  144. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  145. data/lib/puppet/parser/functions.rb +21 -17
  146. data/lib/puppet/parser/functions/create_resources.rb +11 -7
  147. data/lib/puppet/parser/resource.rb +0 -69
  148. data/lib/puppet/parser/templatewrapper.rb +1 -1
  149. data/lib/puppet/parser/type_loader.rb +2 -2
  150. data/lib/puppet/pops/adaptable.rb +7 -13
  151. data/lib/puppet/pops/adapters.rb +8 -4
  152. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  153. data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
  154. data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
  155. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  156. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  157. data/lib/puppet/pops/issues.rb +0 -5
  158. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  159. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
  160. data/lib/puppet/pops/loaders.rb +18 -11
  161. data/lib/puppet/pops/lookup/context.rb +1 -1
  162. data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
  163. data/lib/puppet/pops/model/ast.pp +0 -42
  164. data/lib/puppet/pops/model/ast.rb +0 -290
  165. data/lib/puppet/pops/model/factory.rb +0 -45
  166. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  167. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  168. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  169. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  170. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  171. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  172. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  173. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  174. data/lib/puppet/pops/types/iterable.rb +34 -8
  175. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  176. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  177. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  178. data/lib/puppet/pops/types/type_parser.rb +0 -4
  179. data/lib/puppet/pops/types/types.rb +0 -1
  180. data/lib/puppet/pops/validation/checker4_0.rb +28 -52
  181. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  182. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  183. data/lib/puppet/provider.rb +0 -13
  184. data/lib/puppet/provider/file/windows.rb +1 -1
  185. data/lib/puppet/provider/nameservice.rb +0 -18
  186. data/lib/puppet/provider/package/apt.rb +34 -0
  187. data/lib/puppet/provider/package/dpkg.rb +1 -11
  188. data/lib/puppet/provider/package/gem.rb +27 -5
  189. data/lib/puppet/provider/package/pip.rb +0 -1
  190. data/lib/puppet/provider/package/pip2.rb +17 -0
  191. data/lib/puppet/provider/package/pkg.rb +0 -4
  192. data/lib/puppet/provider/package/portage.rb +1 -1
  193. data/lib/puppet/provider/package/puppet_gem.rb +6 -4
  194. data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
  195. data/lib/puppet/provider/package/yum.rb +1 -0
  196. data/lib/puppet/provider/package/zypper.rb +3 -0
  197. data/lib/puppet/provider/service/smf.rb +191 -73
  198. data/lib/puppet/provider/user/aix.rb +3 -3
  199. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  200. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  201. data/lib/puppet/provider/user/windows_adsi.rb +18 -1
  202. data/lib/puppet/reference/configuration.rb +2 -0
  203. data/lib/puppet/reference/indirection.rb +1 -1
  204. data/lib/puppet/resource.rb +1 -89
  205. data/lib/puppet/resource/catalog.rb +1 -14
  206. data/lib/puppet/resource/type.rb +5 -120
  207. data/lib/puppet/resource/type_collection.rb +3 -48
  208. data/lib/puppet/runtime.rb +1 -2
  209. data/lib/puppet/settings.rb +84 -35
  210. data/lib/puppet/settings/base_setting.rb +26 -2
  211. data/lib/puppet/settings/integer_setting.rb +17 -0
  212. data/lib/puppet/settings/port_setting.rb +15 -0
  213. data/lib/puppet/settings/priority_setting.rb +5 -4
  214. data/lib/puppet/ssl.rb +10 -6
  215. data/lib/puppet/ssl/base.rb +3 -5
  216. data/lib/puppet/ssl/certificate.rb +0 -6
  217. data/lib/puppet/ssl/certificate_request.rb +1 -12
  218. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  219. data/lib/puppet/ssl/oids.rb +3 -1
  220. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  221. data/lib/puppet/ssl/state_machine.rb +3 -1
  222. data/lib/puppet/ssl/verifier.rb +2 -0
  223. data/lib/puppet/test/test_helper.rb +11 -6
  224. data/lib/puppet/transaction.rb +3 -9
  225. data/lib/puppet/transaction/persistence.rb +1 -1
  226. data/lib/puppet/transaction/report.rb +10 -8
  227. data/lib/puppet/trusted_external.rb +2 -2
  228. data/lib/puppet/type.rb +4 -79
  229. data/lib/puppet/type/file.rb +7 -9
  230. data/lib/puppet/type/file/checksum.rb +1 -1
  231. data/lib/puppet/type/file/source.rb +29 -9
  232. data/lib/puppet/type/filebucket.rb +4 -4
  233. data/lib/puppet/type/notify.rb +2 -2
  234. data/lib/puppet/type/package.rb +5 -13
  235. data/lib/puppet/type/service.rb +4 -0
  236. data/lib/puppet/type/user.rb +19 -4
  237. data/lib/puppet/util.rb +26 -12
  238. data/lib/puppet/util/autoload.rb +9 -7
  239. data/lib/puppet/util/character_encoding.rb +9 -5
  240. data/lib/puppet/util/execution.rb +2 -13
  241. data/lib/puppet/util/http_proxy.rb +2 -215
  242. data/lib/puppet/util/monkey_patches.rb +0 -46
  243. data/lib/puppet/util/posix.rb +53 -4
  244. data/lib/puppet/util/rdoc.rb +0 -7
  245. data/lib/puppet/util/retry_action.rb +1 -1
  246. data/lib/puppet/util/rubygems.rb +5 -1
  247. data/lib/puppet/util/run_mode.rb +14 -2
  248. data/lib/puppet/util/windows.rb +3 -7
  249. data/lib/puppet/util/windows/daemon.rb +360 -0
  250. data/lib/puppet/util/windows/error.rb +1 -0
  251. data/lib/puppet/util/windows/eventlog.rb +4 -9
  252. data/lib/puppet/util/windows/file.rb +8 -242
  253. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  254. data/lib/puppet/util/windows/process.rb +4 -226
  255. data/lib/puppet/util/windows/security.rb +4 -4
  256. data/lib/puppet/util/windows/service.rb +9 -460
  257. data/lib/puppet/util/windows/string.rb +12 -13
  258. data/lib/puppet/util/windows/user.rb +219 -0
  259. data/lib/puppet/util/yaml.rb +0 -22
  260. data/lib/puppet/vendor/require_vendored.rb +0 -1
  261. data/lib/puppet/version.rb +1 -1
  262. data/lib/puppet/x509.rb +5 -1
  263. data/lib/puppet/x509/cert_provider.rb +29 -1
  264. data/locales/puppet.pot +656 -1351
  265. data/man/man5/puppet.conf.5 +72 -97
  266. data/man/man8/puppet-agent.8 +6 -3
  267. data/man/man8/puppet-apply.8 +1 -1
  268. data/man/man8/puppet-catalog.8 +1 -1
  269. data/man/man8/puppet-config.8 +6 -6
  270. data/man/man8/puppet-describe.8 +1 -1
  271. data/man/man8/puppet-device.8 +1 -1
  272. data/man/man8/puppet-doc.8 +1 -1
  273. data/man/man8/puppet-epp.8 +1 -1
  274. data/man/man8/puppet-facts.8 +55 -9
  275. data/man/man8/puppet-filebucket.8 +6 -6
  276. data/man/man8/puppet-generate.8 +1 -1
  277. data/man/man8/puppet-help.8 +1 -1
  278. data/man/man8/puppet-lookup.8 +2 -2
  279. data/man/man8/puppet-module.8 +1 -58
  280. data/man/man8/puppet-node.8 +7 -4
  281. data/man/man8/puppet-parser.8 +1 -1
  282. data/man/man8/puppet-plugin.8 +1 -1
  283. data/man/man8/puppet-report.8 +4 -1
  284. data/man/man8/puppet-resource.8 +1 -1
  285. data/man/man8/puppet-script.8 +1 -1
  286. data/man/man8/puppet-ssl.8 +1 -1
  287. data/man/man8/puppet.8 +2 -2
  288. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  289. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  290. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  291. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  292. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  293. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  294. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
  295. data/spec/integration/application/agent_spec.rb +70 -61
  296. data/spec/integration/application/apply_spec.rb +150 -150
  297. data/spec/integration/application/doc_spec.rb +16 -6
  298. data/spec/integration/application/filebucket_spec.rb +78 -29
  299. data/spec/integration/application/help_spec.rb +44 -0
  300. data/spec/integration/application/lookup_spec.rb +13 -0
  301. data/spec/integration/application/module_spec.rb +68 -0
  302. data/spec/integration/application/plugin_spec.rb +76 -4
  303. data/spec/integration/configurer_spec.rb +14 -0
  304. data/spec/integration/data_binding_spec.rb +82 -0
  305. data/spec/integration/defaults_spec.rb +32 -3
  306. data/spec/integration/directory_environments_spec.rb +17 -17
  307. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  308. data/spec/integration/indirector/facts/facter_spec.rb +8 -6
  309. data/spec/integration/network/http_pool_spec.rb +3 -21
  310. data/spec/integration/node/environment_spec.rb +1 -1
  311. data/spec/integration/parser/catalog_spec.rb +0 -38
  312. data/spec/integration/parser/node_spec.rb +0 -9
  313. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  314. data/spec/integration/type/file_spec.rb +5 -4
  315. data/spec/integration/util/execution_spec.rb +22 -0
  316. data/spec/integration/util/windows/adsi_spec.rb +2 -2
  317. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  318. data/spec/integration/util/windows/process_spec.rb +26 -32
  319. data/spec/integration/util/windows/security_spec.rb +1 -1
  320. data/spec/integration/util/windows/user_spec.rb +7 -0
  321. data/spec/integration/util_spec.rb +7 -33
  322. data/spec/lib/puppet_spec/matchers.rb +0 -80
  323. data/spec/lib/puppet_spec/puppetserver.rb +9 -1
  324. data/spec/lib/puppet_spec/settings.rb +7 -1
  325. data/spec/shared_contexts/types_setup.rb +2 -0
  326. data/spec/spec_helper.rb +2 -0
  327. data/spec/unit/agent_spec.rb +0 -2
  328. data/spec/unit/application/agent_spec.rb +3 -4
  329. data/spec/unit/application/config_spec.rb +224 -4
  330. data/spec/unit/application/doc_spec.rb +2 -2
  331. data/spec/unit/application/face_base_spec.rb +6 -4
  332. data/spec/unit/application/facts_spec.rb +74 -8
  333. data/spec/unit/application/filebucket_spec.rb +41 -39
  334. data/spec/unit/application/resource_spec.rb +3 -1
  335. data/spec/unit/application/ssl_spec.rb +17 -4
  336. data/spec/unit/application_spec.rb +43 -4
  337. data/spec/unit/certificate_factory_spec.rb +1 -1
  338. data/spec/unit/configurer/downloader_spec.rb +14 -0
  339. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  340. data/spec/unit/configurer_spec.rb +96 -44
  341. data/spec/unit/confine_spec.rb +2 -1
  342. data/spec/unit/context/trusted_information_spec.rb +2 -6
  343. data/spec/unit/defaults_spec.rb +26 -32
  344. data/spec/unit/environments_spec.rb +173 -32
  345. data/spec/unit/face/config_spec.rb +65 -12
  346. data/spec/unit/face/facts_spec.rb +4 -0
  347. data/spec/unit/face/node_spec.rb +16 -4
  348. data/spec/unit/face/plugin_spec.rb +73 -33
  349. data/spec/unit/file_bucket/file_spec.rb +1 -1
  350. data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
  351. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  352. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  353. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  354. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  355. data/spec/unit/file_system/uniquefile_spec.rb +18 -0
  356. data/spec/unit/file_system_spec.rb +1 -2
  357. data/spec/unit/functions/camelcase_spec.rb +1 -1
  358. data/spec/unit/functions/capitalize_spec.rb +1 -1
  359. data/spec/unit/functions/downcase_spec.rb +1 -1
  360. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  361. data/spec/unit/functions/upcase_spec.rb +1 -1
  362. data/spec/unit/http/client_spec.rb +7 -9
  363. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  364. data/spec/unit/http/external_client_spec.rb +4 -4
  365. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  366. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  367. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  368. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  369. data/spec/unit/http/resolver_spec.rb +34 -15
  370. data/spec/unit/http/service/ca_spec.rb +2 -3
  371. data/spec/unit/http/service/compiler_spec.rb +51 -65
  372. data/spec/unit/http/service/file_server_spec.rb +5 -6
  373. data/spec/unit/http/service/puppetserver_spec.rb +112 -0
  374. data/spec/unit/http/service/report_spec.rb +2 -3
  375. data/spec/unit/http/service_spec.rb +1 -3
  376. data/spec/unit/http/session_spec.rb +24 -35
  377. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  378. data/spec/unit/indirector/catalog/json_spec.rb +1 -1
  379. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  380. data/spec/unit/indirector/facts/facter_spec.rb +97 -0
  381. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  382. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  383. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  384. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  385. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  386. data/spec/unit/indirector/file_server_spec.rb +1 -15
  387. data/spec/unit/indirector/json_spec.rb +8 -8
  388. data/spec/unit/indirector/msgpack_spec.rb +8 -8
  389. data/spec/unit/indirector/node/json_spec.rb +33 -0
  390. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  391. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  392. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  393. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  394. data/spec/unit/indirector/request_spec.rb +2 -266
  395. data/spec/unit/indirector/rest_spec.rb +98 -752
  396. data/spec/unit/indirector/yaml_spec.rb +7 -7
  397. data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
  398. data/spec/unit/network/authconfig_spec.rb +2 -132
  399. data/spec/unit/network/authorization_spec.rb +2 -55
  400. data/spec/unit/network/format_support_spec.rb +3 -2
  401. data/spec/unit/network/formats_spec.rb +4 -4
  402. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
  403. data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
  404. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  405. data/spec/unit/network/http/api_spec.rb +10 -0
  406. data/spec/unit/network/http/connection_spec.rb +19 -41
  407. data/spec/unit/network/http/handler_spec.rb +0 -6
  408. data/spec/unit/network/http_pool_spec.rb +0 -4
  409. data/spec/unit/node/environment_spec.rb +51 -22
  410. data/spec/unit/node_spec.rb +2 -54
  411. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  412. data/spec/unit/parser/templatewrapper_spec.rb +4 -3
  413. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  414. data/spec/unit/pops/loaders/loaders_spec.rb +76 -21
  415. data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
  416. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  417. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  418. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  419. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  420. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  421. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  422. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  423. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  424. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  425. data/spec/unit/pops/visitor_spec.rb +1 -1
  426. data/spec/unit/provider/exec_spec.rb +4 -3
  427. data/spec/unit/provider/nameservice_spec.rb +0 -57
  428. data/spec/unit/provider/package/apt_spec.rb +77 -0
  429. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  430. data/spec/unit/provider/package/dpkg_spec.rb +22 -55
  431. data/spec/unit/provider/package/gem_spec.rb +32 -0
  432. data/spec/unit/provider/package/openbsd_spec.rb +2 -0
  433. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  434. data/spec/unit/provider/package/puppet_gem_spec.rb +6 -2
  435. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  436. data/spec/unit/provider/package/yum_spec.rb +31 -0
  437. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  438. data/spec/unit/provider/service/base_spec.rb +2 -4
  439. data/spec/unit/provider/service/bsd_spec.rb +5 -1
  440. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  441. data/spec/unit/provider/service/debian_spec.rb +3 -5
  442. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  443. data/spec/unit/provider/service/gentoo_spec.rb +4 -5
  444. data/spec/unit/provider/service/init_spec.rb +45 -5
  445. data/spec/unit/provider/service/launchd_spec.rb +5 -6
  446. data/spec/unit/provider/service/openrc_spec.rb +4 -5
  447. data/spec/unit/provider/service/openwrt_spec.rb +1 -1
  448. data/spec/unit/provider/service/redhat_spec.rb +1 -1
  449. data/spec/unit/provider/service/runit_spec.rb +2 -1
  450. data/spec/unit/provider/service/smf_spec.rb +402 -166
  451. data/spec/unit/provider/service/src_spec.rb +3 -5
  452. data/spec/unit/provider/service/systemd_spec.rb +3 -6
  453. data/spec/unit/provider/service/upstart_spec.rb +4 -5
  454. data/spec/unit/provider/service/windows_spec.rb +28 -1
  455. data/spec/unit/provider/user/aix_spec.rb +5 -0
  456. data/spec/unit/provider/user/pw_spec.rb +2 -0
  457. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  458. data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
  459. data/spec/unit/provider_spec.rb +0 -12
  460. data/spec/unit/puppet_pal_2pec.rb +40 -0
  461. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  462. data/spec/unit/reports/store_spec.rb +17 -13
  463. data/spec/unit/resource/type_collection_spec.rb +2 -22
  464. data/spec/unit/resource_spec.rb +0 -56
  465. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  466. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  467. data/spec/unit/settings/port_setting_spec.rb +31 -0
  468. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  469. data/spec/unit/settings_spec.rb +586 -239
  470. data/spec/unit/ssl/base_spec.rb +36 -3
  471. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  472. data/spec/unit/ssl/certificate_spec.rb +2 -11
  473. data/spec/unit/ssl/ssl_provider_spec.rb +11 -8
  474. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  475. data/spec/unit/ssl/verifier_spec.rb +0 -21
  476. data/spec/unit/transaction/persistence_spec.rb +15 -0
  477. data/spec/unit/transaction/report_spec.rb +2 -2
  478. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  479. data/spec/unit/transaction_spec.rb +45 -79
  480. data/spec/unit/type/file/checksum_spec.rb +6 -6
  481. data/spec/unit/type/file/content_spec.rb +1 -1
  482. data/spec/unit/type/file/ensure_spec.rb +1 -1
  483. data/spec/unit/type/file/mode_spec.rb +1 -1
  484. data/spec/unit/type/file/source_spec.rb +1 -2
  485. data/spec/unit/type/file_spec.rb +12 -6
  486. data/spec/unit/type/filebucket_spec.rb +1 -1
  487. data/spec/unit/type/package_spec.rb +1 -1
  488. data/spec/unit/type/service_spec.rb +35 -2
  489. data/spec/unit/type/user_spec.rb +31 -2
  490. data/spec/unit/type_spec.rb +20 -0
  491. data/spec/unit/util/backups_spec.rb +0 -2
  492. data/spec/unit/util/character_encoding_spec.rb +4 -4
  493. data/spec/unit/util/command_line_spec.rb +11 -6
  494. data/spec/unit/util/execution_spec.rb +0 -29
  495. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  496. data/spec/unit/util/posix_spec.rb +357 -15
  497. data/spec/unit/util/rubygems_spec.rb +2 -2
  498. data/spec/unit/util/run_mode_spec.rb +27 -127
  499. data/spec/unit/util/storage_spec.rb +3 -1
  500. data/spec/unit/util/windows/string_spec.rb +1 -3
  501. data/spec/unit/util/yaml_spec.rb +0 -54
  502. data/spec/unit/util_spec.rb +0 -18
  503. metadata +84 -261
  504. data/conf/auth.conf +0 -150
  505. data/lib/puppet/application/cert.rb +0 -76
  506. data/lib/puppet/application/key.rb +0 -4
  507. data/lib/puppet/application/man.rb +0 -4
  508. data/lib/puppet/application/status.rb +0 -4
  509. data/lib/puppet/face/key.rb +0 -16
  510. data/lib/puppet/face/man.rb +0 -145
  511. data/lib/puppet/face/module/build.rb +0 -14
  512. data/lib/puppet/face/module/generate.rb +0 -14
  513. data/lib/puppet/face/module/search.rb +0 -103
  514. data/lib/puppet/face/status.rb +0 -51
  515. data/lib/puppet/indirector/certificate/file.rb +0 -9
  516. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  517. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  518. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  519. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  520. data/lib/puppet/indirector/file_content/http.rb +0 -22
  521. data/lib/puppet/indirector/key/file.rb +0 -46
  522. data/lib/puppet/indirector/key/memory.rb +0 -7
  523. data/lib/puppet/indirector/ssl_file.rb +0 -162
  524. data/lib/puppet/indirector/status.rb +0 -3
  525. data/lib/puppet/indirector/status/local.rb +0 -12
  526. data/lib/puppet/indirector/status/rest.rb +0 -27
  527. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  528. data/lib/puppet/network/auth_config_parser.rb +0 -90
  529. data/lib/puppet/network/authstore.rb +0 -283
  530. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  531. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  532. data/lib/puppet/network/http/base_pool.rb +0 -36
  533. data/lib/puppet/network/http/compression.rb +0 -127
  534. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  535. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  536. data/lib/puppet/network/rest_controller.rb +0 -2
  537. data/lib/puppet/network/rights.rb +0 -210
  538. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  539. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  540. data/lib/puppet/parser/environment_compiler.rb +0 -202
  541. data/lib/puppet/pops/types/enumeration.rb +0 -16
  542. data/lib/puppet/resource/capability_finder.rb +0 -154
  543. data/lib/puppet/rest/errors.rb +0 -15
  544. data/lib/puppet/rest/response.rb +0 -35
  545. data/lib/puppet/rest/route.rb +0 -85
  546. data/lib/puppet/rest/routes.rb +0 -135
  547. data/lib/puppet/ssl/host.rb +0 -505
  548. data/lib/puppet/ssl/key.rb +0 -61
  549. data/lib/puppet/ssl/validator.rb +0 -61
  550. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  551. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  552. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  553. data/lib/puppet/status.rb +0 -40
  554. data/lib/puppet/util/connection.rb +0 -88
  555. data/lib/puppet/util/ssl.rb +0 -83
  556. data/lib/puppet/util/windows/api_types.rb +0 -295
  557. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  558. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  559. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  560. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  561. data/lib/puppet/vendor/pathspec/README.md +0 -53
  562. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  563. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  564. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  565. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  566. data/man/man8/puppet-key.8 +0 -126
  567. data/man/man8/puppet-man.8 +0 -76
  568. data/man/man8/puppet-status.8 +0 -108
  569. data/spec/integration/faces/config_spec.rb +0 -91
  570. data/spec/integration/faces/documentation_spec.rb +0 -57
  571. data/spec/integration/file_bucket/file_spec.rb +0 -50
  572. data/spec/integration/file_serving/content_spec.rb +0 -7
  573. data/spec/integration/file_serving/fileset_spec.rb +0 -12
  574. data/spec/integration/file_serving/metadata_spec.rb +0 -8
  575. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
  576. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  577. data/spec/integration/module_tool/forge_spec.rb +0 -51
  578. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  579. data/spec/integration/network/authconfig_spec.rb +0 -256
  580. data/spec/integration/provider/service/init_spec.rb +0 -48
  581. data/spec/integration/provider/service/systemd_spec.rb +0 -25
  582. data/spec/integration/provider/service/windows_spec.rb +0 -50
  583. data/spec/integration/reference/providers_spec.rb +0 -21
  584. data/spec/integration/reports_spec.rb +0 -13
  585. data/spec/integration/ssl/certificate_request_spec.rb +0 -44
  586. data/spec/integration/ssl/host_spec.rb +0 -72
  587. data/spec/integration/ssl/key_spec.rb +0 -99
  588. data/spec/shared_behaviours/file_serving_model.rb +0 -51
  589. data/spec/unit/capability_spec.rb +0 -414
  590. data/spec/unit/face/catalog_spec.rb +0 -6
  591. data/spec/unit/face/key_spec.rb +0 -9
  592. data/spec/unit/face/man_spec.rb +0 -25
  593. data/spec/unit/face/module/search_spec.rb +0 -231
  594. data/spec/unit/face/module_spec.rb +0 -3
  595. data/spec/unit/face/status_spec.rb +0 -9
  596. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  597. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  598. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  599. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  600. data/spec/unit/indirector/key/file_spec.rb +0 -79
  601. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  602. data/spec/unit/indirector/status/local_spec.rb +0 -10
  603. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  604. data/spec/unit/man_spec.rb +0 -31
  605. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  606. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  607. data/spec/unit/network/authstore_spec.rb +0 -422
  608. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  609. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  610. data/spec/unit/network/http/compression_spec.rb +0 -240
  611. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  612. data/spec/unit/network/http_spec.rb +0 -9
  613. data/spec/unit/network/rights_spec.rb +0 -439
  614. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  615. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  616. data/spec/unit/resource/capability_finder_spec.rb +0 -143
  617. data/spec/unit/rest/route_spec.rb +0 -132
  618. data/spec/unit/ssl/host_spec.rb +0 -650
  619. data/spec/unit/ssl/key_spec.rb +0 -173
  620. data/spec/unit/ssl/validator_spec.rb +0 -278
  621. data/spec/unit/status_spec.rb +0 -45
  622. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -53,6 +53,13 @@ module Puppet
53
53
  route_file = Puppet[:route_file]
54
54
  if Puppet::FileSystem.exist?(route_file)
55
55
  routes = Puppet::Util::Yaml.safe_load_file(route_file, [Symbol])
56
+ if routes["server"] && routes["master"]
57
+ Puppet.warning("Route file #{route_file} contains both server and master route settings.")
58
+ elsif routes["server"] && !routes["master"]
59
+ routes["master"] = routes["server"]
60
+ elsif routes["master"] && !routes["server"]
61
+ routes["server"] = routes["master"]
62
+ end
56
63
  application_routes = routes[application_name]
57
64
  Puppet::Indirector.configure_routes(application_routes) if application_routes
58
65
  end
@@ -53,6 +53,7 @@ class Puppet::Configurer
53
53
  def initialize(transaction_uuid = nil, job_id = nil)
54
54
  @running = false
55
55
  @splayed = false
56
+ @running_failure = false
56
57
  @cached_catalog_status = 'not_used'
57
58
  @environment = Puppet[:environment]
58
59
  @transaction_uuid = transaction_uuid || SecureRandom.uuid
@@ -65,9 +66,16 @@ class Puppet::Configurer
65
66
  # Get the remote catalog, yo. Returns nil if no catalog can be found.
66
67
  def retrieve_catalog(facts, query_options)
67
68
  query_options ||= {}
68
- result = retrieve_catalog_from_cache(query_options) if Puppet[:use_cached_catalog]
69
+ if Puppet[:use_cached_catalog] || @running_failure
70
+ result = retrieve_catalog_from_cache(query_options)
71
+ end
72
+
69
73
  if result
70
- @cached_catalog_status = 'explicitly_requested'
74
+ if Puppet[:use_cached_catalog]
75
+ @cached_catalog_status = 'explicitly_requested'
76
+ elsif @running_failure
77
+ @cached_catalog_status = 'on_failure'
78
+ end
71
79
 
72
80
  Puppet.info _("Using cached catalog from environment '%{environment}'") % { environment: result.environment }
73
81
  else
@@ -194,7 +202,6 @@ class Puppet::Configurer
194
202
  # This just passes any options on to the catalog,
195
203
  # which accepts :tags and :ignoreschedules.
196
204
  def run(options = {})
197
- pool = Puppet.runtime[:http].pool
198
205
  # We create the report pre-populated with default settings for
199
206
  # environment and transaction_uuid very early, this is to ensure
200
207
  # they are sent regardless of any catalog compilation failures or
@@ -207,28 +214,40 @@ class Puppet::Configurer
207
214
 
208
215
  completed = nil
209
216
  begin
210
- Puppet.override(:http_pool => pool) do
211
- # Skip failover logic if the server_list setting is empty
212
- do_failover = Puppet.settings[:server_list] && !Puppet.settings[:server_list].empty?
213
-
214
- # When we are passed a catalog, that means we're in apply
215
- # mode. We shouldn't try to do any failover in that case.
216
- if options[:catalog].nil? && do_failover
217
- server, port = find_functional_server
218
- if server.nil?
219
- raise Puppet::Error, _("Could not select a functional puppet master from server_list: '%{server_list}'") % { server_list: Puppet.settings.value(:server_list, Puppet[:environment].to_sym, true) }
217
+ # Skip failover logic if the server_list setting is empty
218
+ do_failover = Puppet.settings[:server_list] && !Puppet.settings[:server_list].empty?
219
+
220
+ # When we are passed a catalog, that means we're in apply
221
+ # mode. We shouldn't try to do any failover in that case.
222
+ if options[:catalog].nil? && do_failover
223
+ server, port = find_functional_server
224
+ if server.nil?
225
+ detail = _("Could not select a functional puppet server from server_list: '%{server_list}'") % { server_list: Puppet.settings.value(:server_list, Puppet[:environment].to_sym, true) }
226
+ if Puppet[:usecacheonfailure]
227
+ options[:pluginsync] = false
228
+ @running_failure = true
229
+
230
+ server = Puppet[:server_list].first[0]
231
+ port = Puppet[:server_list].first[1] || Puppet[:serverport]
232
+
233
+ Puppet.err(detail)
220
234
  else
221
- report.master_used = "#{server}:#{port}"
222
- end
223
- Puppet.override(server: server, serverport: port) do
224
- completed = run_internal(options)
235
+ raise Puppet::Error, detail
225
236
  end
226
237
  else
238
+ #TRANSLATORS 'server_list' is the name of a setting and should not be translated
239
+ Puppet.debug _("Selected puppet server from the `server_list` setting: %{server}:%{port}") % { server: server, port: port }
240
+ report.server_used = "#{server}:#{port}"
241
+ end
242
+ Puppet.override(server: server, serverport: port) do
227
243
  completed = run_internal(options)
228
244
  end
245
+ else
246
+ completed = run_internal(options)
229
247
  end
230
248
  ensure
231
- pool.close
249
+ # we may sleep for awhile, close connections now
250
+ Puppet.runtime[:http].close
232
251
  end
233
252
 
234
253
  completed ? report.exit_status : nil
@@ -538,6 +557,14 @@ class Puppet::Configurer
538
557
  end
539
558
 
540
559
  def download_plugins(remote_environment_for_plugins)
541
- @handler.download_plugins(remote_environment_for_plugins)
560
+ begin
561
+ @handler.download_plugins(remote_environment_for_plugins)
562
+ rescue Puppet::Error => detail
563
+ if !Puppet[:ignore_plugin_errors] && Puppet[:usecacheonfailure]
564
+ @running_failure = true
565
+ else
566
+ raise detail
567
+ end
568
+ end
542
569
  end
543
570
  end
@@ -11,32 +11,53 @@ class Puppet::Configurer::Downloader
11
11
  files = []
12
12
  begin
13
13
  catalog.apply do |trans|
14
+ unless Puppet[:ignore_plugin_errors]
15
+ # Propagate the first failure associated with the transaction. The any_failed?
16
+ # method returns the first resource status that failed or nil, not a boolean.
17
+ first_failure = trans.any_failed?
18
+ if first_failure
19
+ event = (first_failure.events || []).first
20
+ detail = event ? event.message : 'unknown'
21
+ raise Puppet::Error.new(_("Failed to retrieve %{name}: %{detail}") % { name: name, detail: detail })
22
+ end
23
+ end
24
+
14
25
  trans.changed?.each do |resource|
15
26
  yield resource if block_given?
16
27
  files << resource[:path]
17
28
  end
18
29
  end
19
30
  rescue Puppet::Error => detail
20
- Puppet.log_exception(detail, _("Could not retrieve %{name}: %{detail}") % { name: name, detail: detail })
31
+ if Puppet[:ignore_plugin_errors]
32
+ Puppet.log_exception(detail, _("Could not retrieve %{name}: %{detail}") % { name: name, detail: detail })
33
+ else
34
+ raise detail
35
+ end
21
36
  end
22
37
  files
23
38
  end
24
39
 
25
40
  def initialize(name, path, source, ignore = nil, environment = nil, source_permissions = :ignore)
26
41
  @name, @path, @source, @ignore, @environment, @source_permissions = name, path, source, ignore, environment, source_permissions
27
- end
28
42
 
29
- def catalog
30
- catalog = Puppet::Resource::Catalog.new("PluginSync", @environment)
31
- catalog.host_config = false
32
- catalog.add_resource(file)
33
- catalog
34
43
  end
35
44
 
36
45
  def file
37
- args = default_arguments.merge(:path => path, :source => source)
38
- args[:ignore] = ignore.split if ignore
39
- Puppet::Type.type(:file).new(args)
46
+ unless @file
47
+ args = default_arguments.merge(:path => path, :source => source)
48
+ args[:ignore] = ignore.split if ignore
49
+ @file = Puppet::Type.type(:file).new(args)
50
+ end
51
+ @file
52
+ end
53
+
54
+ def catalog
55
+ unless @catalog
56
+ @catalog = Puppet::Resource::Catalog.new("PluginSync", @environment)
57
+ @catalog.host_config = false
58
+ @catalog.add_resource(file)
59
+ end
60
+ @catalog
40
61
  end
41
62
 
42
63
  private
@@ -29,25 +29,27 @@ class Puppet::Configurer::PluginHandler
29
29
  result += plugin_fact_downloader.evaluate
30
30
  result += plugin_downloader.evaluate
31
31
 
32
- # until file metadata/content are using the rest client, we need to check
33
- # both :server_agent_version and the session to see if the server supports
34
- # the "locales" mount
35
- server_agent_version = Puppet.lookup(:server_agent_version) { "0.0" }
36
- locales = Gem::Version.new(server_agent_version) >= SUPPORTED_LOCALES_MOUNT_AGENT_VERSION
37
- unless locales
38
- session = Puppet.lookup(:http_session)
39
- locales = session.supports?(:fileserver, 'locales') || session.supports?(:puppet, 'locales')
40
- end
41
-
42
- if locales
43
- locales_downloader = Puppet::Configurer::Downloader.new(
44
- "locales",
45
- Puppet[:localedest],
46
- Puppet[:localesource],
47
- Puppet[:pluginsignore] + " *.pot config.yaml",
48
- environment
49
- )
50
- result += locales_downloader.evaluate
32
+ unless Puppet[:disable_i18n]
33
+ # until file metadata/content are using the rest client, we need to check
34
+ # both :server_agent_version and the session to see if the server supports
35
+ # the "locales" mount
36
+ server_agent_version = Puppet.lookup(:server_agent_version) { "0.0" }
37
+ locales = Gem::Version.new(server_agent_version) >= SUPPORTED_LOCALES_MOUNT_AGENT_VERSION
38
+ unless locales
39
+ session = Puppet.lookup(:http_session)
40
+ locales = session.supports?(:fileserver, 'locales') || session.supports?(:puppet, 'locales')
41
+ end
42
+
43
+ if locales
44
+ locales_downloader = Puppet::Configurer::Downloader.new(
45
+ "locales",
46
+ Puppet[:localedest],
47
+ Puppet[:localesource],
48
+ Puppet[:pluginsignore] + " *.pot config.yaml",
49
+ environment
50
+ )
51
+ result += locales_downloader.evaluate
52
+ end
51
53
  end
52
54
 
53
55
  Puppet::Util::Autoload.reload_changed(Puppet.lookup(:current_environment))
@@ -67,7 +67,7 @@ class Puppet::Confine
67
67
  def valid?
68
68
  values.each do |value|
69
69
  unless pass?(value)
70
- Puppet.debug(label + ": " + message(value))
70
+ Puppet.debug { label + ": " + message(value) }
71
71
  return false
72
72
  end
73
73
  end
@@ -19,7 +19,7 @@ class Puppet::Confine::Any < Puppet::Confine
19
19
  if @values.any? { |value| pass?(value) }
20
20
  true
21
21
  else
22
- Puppet.debug("#{label}: #{message(@values)}")
22
+ Puppet.debug { "#{label}: #{message(@values)}" }
23
23
  false
24
24
  end
25
25
  end
@@ -11,25 +11,41 @@ module Puppet
11
11
  end
12
12
 
13
13
  def self.default_digest_algorithm
14
- Puppet::Util::Platform.fips_enabled? ? 'sha256' : 'md5'
14
+ 'sha256'
15
15
  end
16
16
 
17
17
  def self.valid_digest_algorithms
18
18
  Puppet::Util::Platform.fips_enabled? ?
19
19
  %w[sha256 sha384 sha512 sha224] :
20
- %w[md5 sha256 sha384 sha512 sha224]
20
+ %w[sha256 sha384 sha512 sha224 md5]
21
21
  end
22
22
 
23
23
  def self.default_file_checksum_types
24
24
  Puppet::Util::Platform.fips_enabled? ?
25
25
  %w[sha256 sha384 sha512 sha224] :
26
- %w[md5 sha256 sha384 sha512 sha224]
26
+ %w[sha256 sha384 sha512 sha224 md5]
27
27
  end
28
28
 
29
29
  def self.valid_file_checksum_types
30
30
  Puppet::Util::Platform.fips_enabled? ?
31
31
  %w[sha256 sha256lite sha384 sha512 sha224 sha1 sha1lite mtime ctime] :
32
- %w[md5 md5lite sha256 sha256lite sha384 sha512 sha224 sha1 sha1lite mtime ctime]
32
+ %w[sha256 sha256lite sha384 sha512 sha224 sha1 sha1lite md5 md5lite mtime ctime]
33
+ end
34
+
35
+ def self.default_cadir
36
+ return "" if Puppet::Util::Platform.windows?
37
+ old_ca_dir = "#{Puppet[:ssldir]}/ca"
38
+ new_ca_dir = "/etc/puppetlabs/puppetserver/ca"
39
+
40
+ if File.exist?(old_ca_dir)
41
+ if File.symlink?(old_ca_dir)
42
+ File.readlink(old_ca_dir)
43
+ else
44
+ old_ca_dir
45
+ end
46
+ else
47
+ new_ca_dir
48
+ end
33
49
  end
34
50
 
35
51
  def self.default_basemodulepath
@@ -70,28 +86,6 @@ module Puppet
70
86
  # @return void
71
87
  def self.initialize_default_settings!(settings)
72
88
  settings.define_settings(:main,
73
- :facterng => {
74
- :default => false,
75
- :type => :boolean,
76
- :desc => 'Whether to enable a pre-Facter 4.0 release of Facter (distributed as
77
- the "facter-ng" gem). This is not necessary if Facter 3.x or later is installed.
78
- This setting is still experimental.',
79
- :hook => proc do |value|
80
- if value
81
- begin
82
- original_facter = Object.const_get(:Facter)
83
- Object.send(:remove_const, :Facter)
84
-
85
- require 'facter-ng'
86
- # It is required to re-setup logger for facter-ng
87
- Puppet::Util::Logging.setup_facter_logging!
88
- rescue LoadError
89
- Object.const_set(:Facter, original_facter)
90
- raise ArgumentError, 'facter-ng could not be loaded'
91
- end
92
- end
93
- end
94
- },
95
89
  :confdir => {
96
90
  :default => nil,
97
91
  :type => :directory,
@@ -218,7 +212,7 @@ module Puppet
218
212
  end
219
213
  },
220
214
  :disable_i18n => {
221
- :default => false,
215
+ :default => true,
222
216
  :type => :boolean,
223
217
  :desc => "If true, turns off all translations of Puppet and module
224
218
  log messages, which affects error, warning, and info log messages,
@@ -263,13 +257,6 @@ module Puppet
263
257
  :type => :boolean,
264
258
  :desc => "Whether to enable experimental performance profiling",
265
259
  },
266
- :future_features => {
267
- :default => false,
268
- :type => :boolean,
269
- :desc => "Whether or not to enable all features currently being developed for future
270
- major releases of Puppet. Should be used with caution, as in development
271
- features are experimental and can have unexpected effects."
272
- },
273
260
  :versioned_environment_dirs => {
274
261
  :default => false,
275
262
  :type => :boolean,
@@ -284,6 +271,11 @@ module Puppet
284
271
  which occurs only on a Puppet Server master when the `code-id-command` and
285
272
  `code-content-command` settings are configured in its `puppetserver.conf` file.",
286
273
  },
274
+ :settings_catalog => {
275
+ :default => true,
276
+ :type => :boolean,
277
+ :desc => "Whether to compile and apply the settings catalog",
278
+ },
287
279
  :strict_environment_mode => {
288
280
  :default => false,
289
281
  :type => :boolean,
@@ -374,7 +366,7 @@ module Puppet
374
366
  from the parent process.
375
367
 
376
368
  This setting can only be set in the `[main]` section of puppet.conf; it cannot
377
- be set in `[master]`, `[agent]`, or an environment config section.",
369
+ be set in `[server]`, `[agent]`, or an environment config section.",
378
370
  :call_hook => :on_define_and_write,
379
371
  :hook => proc do |value|
380
372
  Puppet::Util.set_env('PATH', '') if Puppet::Util.get_env('PATH').nil?
@@ -562,7 +554,7 @@ module Puppet
562
554
  config = File.expand_path(File.join(settings[:confdir], 'hiera.yaml')) if config.nil?
563
555
  config
564
556
  end,
565
- :desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet master every time you edit it.",
557
+ :desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet server every time you edit it.",
566
558
  :type => :file,
567
559
  },
568
560
  :binder_config => {
@@ -632,7 +624,7 @@ module Puppet
632
624
  :http_proxy_password =>{
633
625
  :default => "none",
634
626
  :hook => proc do |value|
635
- if settings[:http_proxy_password] =~ /[@!# \/]/
627
+ if value =~ /[@!# \/]/
636
628
  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}"
637
629
  end
638
630
  end,
@@ -700,39 +692,33 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
700
692
  :environment_timeout => {
701
693
  :default => "0",
702
694
  :type => :ttl,
703
- :desc => "How long the Puppet master should cache data it loads from an
695
+ :desc => "How long the Puppet server should cache data it loads from an
704
696
  environment.
705
697
 
706
698
  A value of `0` will disable caching. This setting can also be set to
707
- `unlimited`, which will cache environments until the master is restarted
708
- or told to refresh the cache.
699
+ `unlimited`, which will cache environments until the server is restarted
700
+ or told to refresh the cache. All other values will result in Puppet
701
+ server evicting environments that haven't been used within the last
702
+ `environment_timeout` seconds.
709
703
 
710
704
  You should change this setting once your Puppet deployment is doing
711
705
  non-trivial work. We chose the default value of `0` because it lets new
712
706
  users update their code without any extra steps, but it lowers the
713
- performance of your Puppet master.
707
+ performance of your Puppet server. We recommend either:
714
708
 
715
- We recommend setting this to `unlimited` and explicitly refreshing your
716
- Puppet master as part of your code deployment process.
709
+ * Setting this to `unlimited` and explicitly refreshing your Puppet server
710
+ as part of your code deployment process.
717
711
 
718
- * With Puppet Server, you should refresh environments by calling the
719
- `environment-cache` API endpoint. See the docs for the Puppet Server
720
- [administrative API](https://puppet.com/docs/puppetserver/latest/admin-api/v1/environment-cache.html).
712
+ * Setting this to a number that will keep your most actively used
713
+ environments cached, but allow testing environments to fall out of the
714
+ cache and reduce memory usage. A value of 3 minutes (3m) is a reasonable
715
+ value.
721
716
 
722
- Any value other than `0` or `unlimited` is deprecated, since most Puppet
723
- servers use a pool of Ruby interpreters which all have their own cache
724
- timers. When these timers drift out of sync, agents can be served
725
- inconsistent catalogs.",
726
- :hook => proc do |val|
727
- unless [0, 'unlimited', Float::INFINITY].include?(val)
728
- Puppet.deprecation_warning(<<-WARNING)
729
- Fine grained control of environment timeouts is deprecated,
730
- please use `0` or `unlimited` to control default caching behavior
731
- and the environment-cache endpoint in Puppet Server's administrative
732
- API to expire the cache as needed
733
- WARNING
734
- end
735
- end
717
+ Once you set `environment_timeout` to a non-zero value, you need to tell
718
+ Puppet server to read new code from disk using the `environment-cache` API
719
+ endpoint after you deploy new code. See the docs for the Puppet Server
720
+ [administrative API](https://puppet.com/docs/puppetserver/latest/admin-api/v1/environment-cache.html).
721
+ "
736
722
  },
737
723
  :environment_data_provider => {
738
724
  :desc => "The name of a registered environment data provider used when obtaining environment
@@ -807,7 +793,7 @@ API to expire the cache as needed
807
793
  `certname` setting as its requested Subject CN.
808
794
 
809
795
  This is the name used when managing a node's permissions in
810
- [auth.conf](https://puppet.com/docs/puppet/latest/config_file_auth.html).
796
+ Puppet Server's [auth.conf](https://puppet.com/docs/puppetserver/latest/config_file_auth.html).
811
797
  In most cases, it is also used as the node's name when matching
812
798
  [node definitions](https://puppet.com/docs/puppet/latest/lang_node_definitions.html)
813
799
  and requesting data from an ENC. (This can be changed with the `node_name_value`
@@ -824,8 +810,13 @@ API to expire the cache as needed
824
810
  * The special value `ca` is reserved, and can't be used as the certname
825
811
  for a normal node.
826
812
 
813
+ **Note:** You must set the certname in the main section of the puppet.conf file. Setting it in a different section causes errors.
814
+
827
815
  Defaults to the node's fully qualified domain name.",
828
- :hook => proc { |value| raise(ArgumentError, _("Certificate names must be lower case")) unless value == value.downcase }},
816
+ :call_hook => :on_initialize_and_write,
817
+ :hook => proc { |value|
818
+ raise(ArgumentError, _("Certificate names must be lower case")) unless value == value.downcase
819
+ }},
829
820
  :dns_alt_names => {
830
821
  :default => '',
831
822
  :desc => <<EOT,
@@ -952,13 +943,13 @@ EOT
952
943
  Generally unused."
953
944
  },
954
945
  :hostcsr => {
955
- :default => "$ssldir/csr_$certname.pem",
946
+ :default => "$requestdir/$certname.pem",
956
947
  :type => :file,
957
948
  :mode => "0644",
958
949
  :owner => "service",
959
950
  :group => "service",
960
- :deprecated => :completely,
961
- :desc => "This setting is deprecated."
951
+ :desc => "Where individual hosts store their certificate request (CSR)
952
+ while waiting for the CA to issue their certificate."
962
953
  },
963
954
  :hostcert => {
964
955
  :default => "$certdir/$certname.pem",
@@ -1009,29 +1000,6 @@ EOT
1009
1000
  puppet module tool and the 'http' report processor. This setting is ignored when
1010
1001
  making requests to puppet:// URLs such as catalog and report requests.",
1011
1002
  },
1012
- :ssl_client_ca_auth => {
1013
- :type => :file,
1014
- :mode => "0644",
1015
- :owner => "service",
1016
- :group => "service",
1017
- :desc => "Certificate authorities who issue server certificates. SSL servers will not be
1018
- considered authentic unless they possess a certificate issued by an authority
1019
- listed in this file. If this setting has no value then the Puppet master's CA
1020
- certificate (localcacert) will be used.",
1021
- :hook => proc do |val|
1022
- Puppet.deprecation_warning(_("Setting 'ssl_client_ca_auth' is deprecated."))
1023
- end
1024
- },
1025
- :ssl_server_ca_auth => {
1026
- :type => :file,
1027
- :mode => "0644",
1028
- :owner => "service",
1029
- :group => "service",
1030
- :deprecated => :completely,
1031
- :desc => "The setting is deprecated and has no effect. Ensure all root and
1032
- intermediate certificate authorities used to issue client certificates are
1033
- contained in the server's `cacert` file on the server."
1034
- },
1035
1003
  :hostcrl => {
1036
1004
  :default => "$ssldir/crl.pem",
1037
1005
  :type => :file,
@@ -1122,7 +1090,7 @@ EOT
1122
1090
  :desc => "The name to use the Certificate Authority certificate.",
1123
1091
  },
1124
1092
  :cadir => {
1125
- :default => "$ssldir/ca",
1093
+ :default => lambda { default_cadir },
1126
1094
  :type => :directory,
1127
1095
  :desc => "The root directory for the certificate authority.",
1128
1096
  },
@@ -1301,7 +1269,7 @@ EOT
1301
1269
  }
1302
1270
  )
1303
1271
 
1304
- settings.define_settings(:master,
1272
+ settings.define_settings(:server,
1305
1273
  :user => {
1306
1274
  :default => "puppet",
1307
1275
  :desc => "The user Puppet Server will run as. Used to ensure
@@ -1351,30 +1319,25 @@ EOT
1351
1319
  by `puppet`, and should only be set if you're writing your own Puppet
1352
1320
  executable.",
1353
1321
  },
1354
- :masterport => {
1322
+ :serverport => {
1355
1323
  :default => 8140,
1324
+ :type => :port,
1356
1325
  :desc => "The default port puppet subcommands use to communicate
1357
1326
  with Puppet Server. (eg `puppet facts upload`, `puppet agent`). May be
1358
1327
  overridden by more specific settings (see `ca_port`, `report_port`).",
1328
+ :hook => proc do |value|
1329
+ Puppet[:masterport] = value unless Puppet.settings.set_by_config?(:masterport)
1330
+ end
1359
1331
  },
1360
- :node_name => {
1361
- :default => 'cert',
1362
- :type => :enum,
1363
- :values => ['cert', 'facter'],
1364
- :deprecated => :completely,
1365
- :hook => proc { |val|
1366
- if val != 'cert'
1367
- Puppet.deprecation_warning("The node_name setting is deprecated and will be removed in a future release.")
1368
- end
1369
- },
1370
- :desc => "How the puppet master determines the client's identity
1371
- and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
1372
- in particular for determining which 'node' statement applies to the client.
1373
- Possible values are 'cert' (use the subject's CN in the client's
1374
- certificate) and 'facter' (use the hostname that the client
1375
- reported in its facts).
1376
-
1377
- This setting is deprecated, please use explicit fact matching for classification.",
1332
+ :masterport => {
1333
+ :default => "$serverport",
1334
+ :type => :port,
1335
+ :desc => "The default port puppet subcommands use to communicate
1336
+ with Puppet Server. (eg `puppet facts upload`, `puppet agent`). May be
1337
+ overridden by more specific settings (see `ca_port`, `report_port`).",
1338
+ :hook => proc do |value|
1339
+ Puppet[:serverport] = value unless Puppet.settings.set_by_config?(:serverport)
1340
+ end
1378
1341
  },
1379
1342
  :bucketdir => {
1380
1343
  :default => "$vardir/bucket",
@@ -1384,15 +1347,6 @@ EOT
1384
1347
  :group => "service",
1385
1348
  :desc => "Where FileBucket files are stored."
1386
1349
  },
1387
- :rest_authconfig => {
1388
- :default => "$confdir/auth.conf",
1389
- :type => :file,
1390
- :deprecated => :completely,
1391
- :desc => "The configuration file that defines the rights to the different
1392
- rest indirections. This can be used as a fine-grained authorization system for
1393
- `puppet master`. The `puppet master` command is deprecated and Puppet Server
1394
- uses its own auth.conf that must be placed within its configuration directory.",
1395
- },
1396
1350
  :trusted_oid_mapping_file => {
1397
1351
  :default => "$confdir/custom_trusted_oid_mapping.yaml",
1398
1352
  :type => :file,
@@ -1495,23 +1449,7 @@ EOT
1495
1449
  :default => "$confdir/fileserver.conf",
1496
1450
  :type => :file,
1497
1451
  :desc => "Where the fileserver configuration is stored.",
1498
- },
1499
- :strict_hostname_checking => {
1500
- :default => true,
1501
- :type => :boolean,
1502
- :desc => "Whether to only search for the complete
1503
- hostname as it is in the certificate when searching for node information
1504
- in the catalogs or to match dot delimited segments of the cert's certname
1505
- and the hostname, fqdn, and/or domain facts.
1506
-
1507
- This setting is deprecated and will be removed in a future release.",
1508
- :hook => proc { |val|
1509
- if val != true
1510
- 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).")
1511
- end
1512
- }
1513
- }
1514
- )
1452
+ })
1515
1453
 
1516
1454
  settings.define_settings(:device,
1517
1455
  :devicedir => {
@@ -1533,17 +1471,15 @@ EOT
1533
1471
  :default => "$certname",
1534
1472
  :desc => "The explicit value used for the node name for all requests the agent
1535
1473
  makes to the master. WARNING: This setting is mutually exclusive with
1536
- node_name_fact. Changing this setting also requires changes to the default
1537
- auth.conf configuration on the Puppet Master. Please see
1538
- http://links.puppet.com/node_name_value for more information."
1474
+ node_name_fact. Changing this setting also requires changes to
1475
+ Puppet Server's default [auth.conf](https://puppet.com/docs/puppetserver/latest/config_file_auth.html)."
1539
1476
  },
1540
1477
  :node_name_fact => {
1541
1478
  :default => "",
1542
1479
  :desc => "The fact name used to determine the node name used for all requests the agent
1543
1480
  makes to the master. WARNING: This setting is mutually exclusive with
1544
- node_name_value. Changing this setting also requires changes to the default
1545
- auth.conf configuration on the Puppet Master. Please see
1546
- http://links.puppet.com/node_name_fact for more information.",
1481
+ node_name_value. Changing this setting also requires changes to
1482
+ Puppet Server's default [auth.conf](https://puppet.com/docs/puppetserver/latest/config_file_auth.html).",
1547
1483
  :hook => proc do |value|
1548
1484
  if !value.empty? and Puppet[:node_name_value] != Puppet[:certname]
1549
1485
  raise "Cannot specify both the node_name_value and node_name_fact settings"
@@ -1641,8 +1577,8 @@ EOT
1641
1577
  :server_list => {
1642
1578
  :default => [],
1643
1579
  :type => :server_list,
1644
- :desc => "The list of puppet master servers to which the puppet agent should connect,
1645
- in the order that they will be tried.",
1580
+ :desc => "The list of Puppet master servers to which the Puppet agent should connect,
1581
+ 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.",
1646
1582
  },
1647
1583
  :use_srv_records => {
1648
1584
  :default => false,
@@ -1701,8 +1637,7 @@ EOT
1701
1637
  :type => :duration,
1702
1638
  :desc => "How often puppet agent applies the catalog.
1703
1639
  Note that a runinterval of 0 means \"run continuously\" rather than
1704
- \"never run.\" If you want puppet agent to never run, you should start
1705
- it with the `--no-client` option. #{AS_DURATION}",
1640
+ \"never run.\" #{AS_DURATION}",
1706
1641
  },
1707
1642
  :runtimeout => {
1708
1643
  :default => "1h",
@@ -1718,7 +1653,8 @@ EOT
1718
1653
  and does not need to horizontally scale.",
1719
1654
  },
1720
1655
  :ca_port => {
1721
- :default => "$masterport",
1656
+ :default => "$serverport",
1657
+ :type => :port,
1722
1658
  :desc => "The port to use for the certificate authority.",
1723
1659
  },
1724
1660
  :preferred_serialization_format => {
@@ -1807,7 +1743,8 @@ EOT
1807
1743
  :desc => "The server to send transaction reports to.",
1808
1744
  },
1809
1745
  :report_port => {
1810
- :default => "$masterport",
1746
+ :default => "$serverport",
1747
+ :type => :port,
1811
1748
  :desc => "The port to communicate with the report_server.",
1812
1749
  },
1813
1750
  :report => {
@@ -1837,17 +1774,27 @@ EOT
1837
1774
  for the node stored in puppetdb are current. However, this will double the fact
1838
1775
  submission load on puppetdb, so it is disabled by default.",
1839
1776
  },
1777
+ :publicdir => {
1778
+ :default => nil,
1779
+ :type => :directory,
1780
+ :mode => "0755",
1781
+ :desc => "Where Puppet stores public files."
1782
+ },
1840
1783
  :lastrunfile => {
1841
- :default => "$statedir/last_run_summary.yaml",
1784
+ :default => "$publicdir/last_run_summary.yaml",
1842
1785
  :type => :file,
1843
- :mode => "0644",
1786
+ :mode => "0640",
1844
1787
  :desc => "Where puppet agent stores the last run report summary in yaml format."
1845
1788
  },
1846
1789
  :lastrunreport => {
1847
1790
  :default => "$statedir/last_run_report.yaml",
1848
1791
  :type => :file,
1849
1792
  :mode => "0640",
1850
- :desc => "Where puppet agent stores the last run report in yaml format."
1793
+ :desc => "Where Puppet Agent stores the last run report, by default, in yaml format.
1794
+ The format of the report can be changed by setting the `cache` key of the `report` terminus
1795
+ in the [routes.yaml](https://puppet.com/docs/puppet/latest/config_file_routes.html) file.
1796
+ To avoid mismatches between content and file extension, this setting needs to be
1797
+ manually updated to reflect the terminus changes."
1851
1798
  },
1852
1799
  :graph => {
1853
1800
  :default => false,
@@ -1916,7 +1863,7 @@ EOT
1916
1863
  :type => :ttl,
1917
1864
  :desc => "The maximum amount of time the puppet agent should wait for an
1918
1865
  already running puppet agent to finish before starting a new one. This is set by default to 1 minute.
1919
- A value of `unlimited` will cause puppet agent to wait indefinitely.
1866
+ A value of `unlimited` will cause puppet agent to wait indefinitely.
1920
1867
  #{AS_DURATION}",
1921
1868
  }
1922
1869
  )
@@ -1958,9 +1905,26 @@ EOT
1958
1905
  is used for retrieval, so anything that is a valid file source can
1959
1906
  be used here.",
1960
1907
  },
1908
+ :pluginsync => {
1909
+ :default => true,
1910
+ :type => :boolean,
1911
+ :desc => "Whether plugins should be synced with the central server. This setting is
1912
+ deprecated.",
1913
+ :hook => proc { |value|
1914
+ #TRANSLATORS 'pluginsync' is a setting and should not be translated
1915
+ Puppet.deprecation_warning(_("Setting 'pluginsync' is deprecated."))
1916
+ }
1917
+ },
1961
1918
  :pluginsignore => {
1962
1919
  :default => ".svn CVS .git .hg",
1963
1920
  :desc => "What files to ignore when pulling down plugins.",
1921
+ },
1922
+ :ignore_plugin_errors => {
1923
+ :default => false,
1924
+ :type => :boolean,
1925
+ :desc => "Whether the puppet run should ignore errors during pluginsync. If the setting
1926
+ is false and there are errors during pluginsync, then the agent will abort the run and
1927
+ submit a report containing information about the failed run."
1964
1928
  }
1965
1929
  )
1966
1930
 
@@ -2105,7 +2069,7 @@ EOT
2105
2069
  }
2106
2070
  )
2107
2071
 
2108
- settings.define_settings(:master,
2072
+ settings.define_settings(:server,
2109
2073
  :storeconfigs => {
2110
2074
  :default => false,
2111
2075
  :type => :boolean,
@@ -2171,16 +2135,6 @@ EOT
2171
2135
  referencing variables that are explicitly set to undef).
2172
2136
  EOT
2173
2137
  },
2174
- :func3x_check => {
2175
- :default => true,
2176
- :type => :boolean,
2177
- :desc => <<-'EOT'
2178
- Causes validation of loaded legacy Ruby functions (3x API) to raise errors about illegal constructs that
2179
- could cause harm or that simply does not work. This flag is on by default. This flag is made available
2180
- so that the validation can be turned off in case the method of validation is faulty - if encountered, please
2181
- file a bug report.
2182
- EOT
2183
- },
2184
2138
  :tasks => {
2185
2139
  :default => false,
2186
2140
  :type => :boolean,