puppet 6.21.1 → 7.4.1

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 (402) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -4
  3. data/Gemfile.lock +5 -5
  4. data/README.md +1 -1
  5. data/conf/fileserver.conf +5 -10
  6. data/ext/build_defaults.yaml +1 -2
  7. data/ext/osx/file_mapping.yaml +0 -5
  8. data/ext/project_data.yaml +2 -14
  9. data/ext/redhat/puppet.spec.erb +0 -1
  10. data/ext/windows/service/daemon.rb +6 -5
  11. data/install.rb +21 -17
  12. data/lib/puppet.rb +11 -20
  13. data/lib/puppet/application.rb +172 -98
  14. data/lib/puppet/application/device.rb +100 -104
  15. data/lib/puppet/application/filebucket.rb +13 -9
  16. data/lib/puppet/application/ssl.rb +1 -1
  17. data/lib/puppet/configurer.rb +27 -29
  18. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  19. data/lib/puppet/defaults.rb +57 -162
  20. data/lib/puppet/environments.rb +8 -23
  21. data/lib/puppet/face/facts.rb +73 -49
  22. data/lib/puppet/face/help.rb +1 -1
  23. data/lib/puppet/face/node/clean.rb +8 -0
  24. data/lib/puppet/face/plugin.rb +5 -8
  25. data/lib/puppet/ffi/windows.rb +12 -0
  26. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  27. data/lib/puppet/ffi/windows/constants.rb +404 -0
  28. data/lib/puppet/ffi/windows/functions.rb +628 -0
  29. data/lib/puppet/ffi/windows/structs.rb +338 -0
  30. data/lib/puppet/file_serving/configuration.rb +0 -5
  31. data/lib/puppet/file_serving/configuration/parser.rb +6 -32
  32. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  33. data/lib/puppet/file_serving/mount.rb +1 -2
  34. data/lib/puppet/forge/repository.rb +0 -1
  35. data/lib/puppet/generate/models/type/type.rb +4 -1
  36. data/lib/puppet/http.rb +22 -13
  37. data/lib/puppet/http/client.rb +164 -114
  38. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  39. data/lib/puppet/http/errors.rb +16 -0
  40. data/lib/puppet/http/external_client.rb +5 -7
  41. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  42. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  43. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  44. data/lib/puppet/http/proxy.rb +137 -0
  45. data/lib/puppet/http/redirector.rb +4 -12
  46. data/lib/puppet/http/resolver.rb +5 -15
  47. data/lib/puppet/http/resolver/server_list.rb +6 -10
  48. data/lib/puppet/http/resolver/settings.rb +4 -7
  49. data/lib/puppet/http/resolver/srv.rb +7 -11
  50. data/lib/puppet/http/response.rb +36 -54
  51. data/lib/puppet/http/response_converter.rb +24 -0
  52. data/lib/puppet/http/response_net_http.rb +42 -0
  53. data/lib/puppet/http/retry_after_handler.rb +4 -13
  54. data/lib/puppet/http/service.rb +12 -26
  55. data/lib/puppet/http/service/ca.rb +11 -22
  56. data/lib/puppet/http/service/compiler.rb +22 -69
  57. data/lib/puppet/http/service/file_server.rb +18 -27
  58. data/lib/puppet/http/service/puppetserver.rb +26 -12
  59. data/lib/puppet/http/service/report.rb +8 -10
  60. data/lib/puppet/http/session.rb +11 -20
  61. data/lib/puppet/{network/http → http}/site.rb +1 -2
  62. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  63. data/lib/puppet/indirector/facts/facter.rb +25 -3
  64. data/lib/puppet/indirector/facts/rest.rb +3 -22
  65. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  66. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  67. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  68. data/lib/puppet/indirector/file_server.rb +1 -8
  69. data/lib/puppet/indirector/generic_http.rb +0 -11
  70. data/lib/puppet/indirector/node/rest.rb +2 -4
  71. data/lib/puppet/indirector/report/rest.rb +3 -8
  72. data/lib/puppet/indirector/request.rb +0 -101
  73. data/lib/puppet/indirector/rest.rb +12 -263
  74. data/lib/puppet/module_tool/applications.rb +0 -1
  75. data/lib/puppet/network/authconfig.rb +2 -96
  76. data/lib/puppet/network/authorization.rb +13 -35
  77. data/lib/puppet/network/formats.rb +67 -0
  78. data/lib/puppet/network/http.rb +3 -3
  79. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  80. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  81. data/lib/puppet/network/http/connection.rb +247 -316
  82. data/lib/puppet/network/http/handler.rb +0 -1
  83. data/lib/puppet/network/http_pool.rb +16 -34
  84. data/lib/puppet/node.rb +1 -30
  85. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  86. data/lib/puppet/pal/pal_impl.rb +3 -1
  87. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  88. data/lib/puppet/parser/compiler.rb +0 -198
  89. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  90. data/lib/puppet/parser/resource.rb +0 -69
  91. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  92. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  93. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  94. data/lib/puppet/pops/issues.rb +0 -5
  95. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  96. data/lib/puppet/pops/model/ast.pp +0 -42
  97. data/lib/puppet/pops/model/ast.rb +0 -290
  98. data/lib/puppet/pops/model/factory.rb +0 -45
  99. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  100. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  101. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  102. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  103. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  104. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  105. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  106. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  107. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  108. data/lib/puppet/pops/types/type_parser.rb +0 -4
  109. data/lib/puppet/pops/types/types.rb +0 -1
  110. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  111. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  112. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  113. data/lib/puppet/provider.rb +0 -13
  114. data/lib/puppet/provider/nameservice.rb +0 -18
  115. data/lib/puppet/provider/package/dpkg.rb +0 -10
  116. data/lib/puppet/provider/package/gem.rb +23 -3
  117. data/lib/puppet/provider/package/pip.rb +0 -1
  118. data/lib/puppet/provider/package/pkg.rb +0 -4
  119. data/lib/puppet/provider/package/portage.rb +1 -1
  120. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  121. data/lib/puppet/provider/service/smf.rb +191 -73
  122. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  123. data/lib/puppet/reference/configuration.rb +7 -5
  124. data/lib/puppet/reference/indirection.rb +1 -1
  125. data/lib/puppet/resource.rb +1 -89
  126. data/lib/puppet/resource/catalog.rb +1 -14
  127. data/lib/puppet/resource/type.rb +3 -119
  128. data/lib/puppet/resource/type_collection.rb +3 -48
  129. data/lib/puppet/runtime.rb +1 -2
  130. data/lib/puppet/settings.rb +45 -33
  131. data/lib/puppet/settings/integer_setting.rb +17 -0
  132. data/lib/puppet/settings/port_setting.rb +15 -0
  133. data/lib/puppet/settings/priority_setting.rb +5 -4
  134. data/lib/puppet/ssl.rb +10 -6
  135. data/lib/puppet/ssl/base.rb +3 -5
  136. data/lib/puppet/ssl/certificate.rb +0 -6
  137. data/lib/puppet/ssl/certificate_request.rb +1 -12
  138. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  139. data/lib/puppet/ssl/oids.rb +3 -1
  140. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  141. data/lib/puppet/ssl/state_machine.rb +3 -1
  142. data/lib/puppet/ssl/verifier.rb +2 -0
  143. data/lib/puppet/test/test_helper.rb +1 -3
  144. data/lib/puppet/transaction.rb +1 -7
  145. data/lib/puppet/transaction/report.rb +2 -4
  146. data/lib/puppet/type.rb +0 -76
  147. data/lib/puppet/type/file.rb +5 -7
  148. data/lib/puppet/type/file/checksum.rb +1 -1
  149. data/lib/puppet/type/file/source.rb +1 -1
  150. data/lib/puppet/type/filebucket.rb +3 -3
  151. data/lib/puppet/type/package.rb +5 -13
  152. data/lib/puppet/type/user.rb +1 -1
  153. data/lib/puppet/util/execution.rb +0 -11
  154. data/lib/puppet/util/http_proxy.rb +2 -215
  155. data/lib/puppet/util/monkey_patches.rb +0 -46
  156. data/lib/puppet/util/rdoc.rb +0 -7
  157. data/lib/puppet/util/retry_action.rb +1 -1
  158. data/lib/puppet/util/run_mode.rb +9 -1
  159. data/lib/puppet/util/windows.rb +3 -8
  160. data/lib/puppet/util/windows/daemon.rb +360 -0
  161. data/lib/puppet/util/windows/error.rb +1 -0
  162. data/lib/puppet/util/windows/eventlog.rb +4 -9
  163. data/lib/puppet/util/windows/file.rb +8 -242
  164. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  165. data/lib/puppet/util/windows/process.rb +4 -226
  166. data/lib/puppet/util/windows/service.rb +9 -460
  167. data/lib/puppet/util/windows/string.rb +12 -13
  168. data/lib/puppet/util/yaml.rb +0 -22
  169. data/lib/puppet/vendor/require_vendored.rb +0 -1
  170. data/lib/puppet/version.rb +1 -1
  171. data/lib/puppet/x509.rb +5 -1
  172. data/lib/puppet/x509/cert_provider.rb +29 -1
  173. data/locales/puppet.pot +521 -1226
  174. data/man/man5/puppet.conf.5 +34 -94
  175. data/man/man8/puppet-facts.8 +56 -35
  176. data/man/man8/puppet-filebucket.8 +3 -3
  177. data/man/man8/puppet-module.8 +0 -57
  178. data/man/man8/puppet.8 +1 -1
  179. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  180. data/spec/integration/application/agent_spec.rb +24 -11
  181. data/spec/integration/application/apply_spec.rb +1 -1
  182. data/spec/integration/application/filebucket_spec.rb +16 -16
  183. data/spec/integration/application/help_spec.rb +2 -0
  184. data/spec/integration/application/plugin_spec.rb +23 -1
  185. data/spec/integration/defaults_spec.rb +7 -3
  186. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
  187. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
  188. data/spec/integration/network/http_pool_spec.rb +3 -21
  189. data/spec/integration/parser/catalog_spec.rb +0 -38
  190. data/spec/integration/parser/node_spec.rb +0 -9
  191. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  192. data/spec/integration/type/file_spec.rb +5 -4
  193. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  194. data/spec/integration/util/windows/security_spec.rb +1 -1
  195. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  196. data/spec/lib/puppet_spec/settings.rb +1 -0
  197. data/spec/spec_helper.rb +2 -0
  198. data/spec/unit/agent_spec.rb +0 -2
  199. data/spec/unit/application/facts_spec.rb +86 -0
  200. data/spec/unit/application/filebucket_spec.rb +41 -39
  201. data/spec/unit/application/ssl_spec.rb +2 -2
  202. data/spec/unit/certificate_factory_spec.rb +1 -1
  203. data/spec/unit/configurer/downloader_spec.rb +6 -2
  204. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  205. data/spec/unit/configurer_spec.rb +12 -9
  206. data/spec/unit/context/trusted_information_spec.rb +2 -6
  207. data/spec/unit/defaults_spec.rb +22 -47
  208. data/spec/unit/environments_spec.rb +0 -3
  209. data/spec/unit/face/facts_spec.rb +4 -0
  210. data/spec/unit/face/node_spec.rb +14 -2
  211. data/spec/unit/face/plugin_spec.rb +73 -33
  212. data/spec/unit/file_bucket/file_spec.rb +1 -1
  213. data/spec/unit/file_serving/configuration/parser_spec.rb +22 -18
  214. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  215. data/spec/unit/functions/camelcase_spec.rb +1 -1
  216. data/spec/unit/functions/capitalize_spec.rb +1 -1
  217. data/spec/unit/functions/downcase_spec.rb +1 -1
  218. data/spec/unit/functions/upcase_spec.rb +1 -1
  219. data/spec/unit/http/client_spec.rb +7 -8
  220. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  221. data/spec/unit/http/external_client_spec.rb +4 -4
  222. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  223. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  224. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  225. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  226. data/spec/unit/http/resolver_spec.rb +13 -13
  227. data/spec/unit/http/service/compiler_spec.rb +0 -62
  228. data/spec/unit/http/service/file_server_spec.rb +3 -3
  229. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  230. data/spec/unit/http/service_spec.rb +0 -1
  231. data/spec/unit/http/session_spec.rb +16 -14
  232. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  233. data/spec/unit/indirector/facts/facter_spec.rb +113 -0
  234. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  235. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  236. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  237. data/spec/unit/indirector/file_server_spec.rb +1 -15
  238. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  239. data/spec/unit/indirector/request_spec.rb +0 -264
  240. data/spec/unit/indirector/rest_spec.rb +98 -752
  241. data/spec/unit/network/authconfig_spec.rb +2 -129
  242. data/spec/unit/network/authorization_spec.rb +2 -55
  243. data/spec/unit/network/formats_spec.rb +45 -4
  244. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
  245. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  246. data/spec/unit/network/http/api_spec.rb +10 -0
  247. data/spec/unit/network/http/connection_spec.rb +19 -41
  248. data/spec/unit/network/http/handler_spec.rb +0 -1
  249. data/spec/unit/network/http_pool_spec.rb +0 -4
  250. data/spec/unit/node/environment_spec.rb +33 -21
  251. data/spec/unit/node_spec.rb +2 -54
  252. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  253. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  254. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  255. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  256. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  257. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  258. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  259. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  260. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  261. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  262. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  263. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  264. data/spec/unit/pops/visitor_spec.rb +1 -1
  265. data/spec/unit/provider/nameservice_spec.rb +0 -57
  266. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  267. data/spec/unit/provider/package/gem_spec.rb +32 -0
  268. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  269. data/spec/unit/provider/service/smf_spec.rb +401 -165
  270. data/spec/unit/provider/service/windows_spec.rb +0 -1
  271. data/spec/unit/provider_spec.rb +0 -12
  272. data/spec/unit/resource/type_collection_spec.rb +2 -22
  273. data/spec/unit/resource_spec.rb +0 -56
  274. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  275. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  276. data/spec/unit/settings/port_setting_spec.rb +31 -0
  277. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  278. data/spec/unit/settings_spec.rb +17 -0
  279. data/spec/unit/ssl/base_spec.rb +36 -3
  280. data/spec/unit/ssl/certificate_request_spec.rb +19 -55
  281. data/spec/unit/ssl/certificate_spec.rb +2 -11
  282. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  283. data/spec/unit/ssl/verifier_spec.rb +0 -21
  284. data/spec/unit/transaction/report_spec.rb +0 -2
  285. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  286. data/spec/unit/transaction_spec.rb +45 -79
  287. data/spec/unit/type/file/checksum_spec.rb +6 -6
  288. data/spec/unit/type/file/content_spec.rb +1 -1
  289. data/spec/unit/type/file/ensure_spec.rb +1 -1
  290. data/spec/unit/type/file/mode_spec.rb +1 -1
  291. data/spec/unit/type/file/source_spec.rb +0 -1
  292. data/spec/unit/type/file_spec.rb +12 -6
  293. data/spec/unit/type/package_spec.rb +1 -1
  294. data/spec/unit/type_spec.rb +20 -0
  295. data/spec/unit/util/backups_spec.rb +0 -2
  296. data/spec/unit/util/execution_spec.rb +0 -29
  297. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  298. data/spec/unit/util/run_mode_spec.rb +21 -121
  299. data/spec/unit/util/windows/string_spec.rb +1 -3
  300. data/spec/unit/util/yaml_spec.rb +0 -54
  301. data/spec/unit/util_spec.rb +0 -18
  302. metadata +47 -162
  303. data/conf/auth.conf +0 -150
  304. data/lib/puppet/application/cert.rb +0 -76
  305. data/lib/puppet/application/key.rb +0 -4
  306. data/lib/puppet/application/man.rb +0 -4
  307. data/lib/puppet/application/status.rb +0 -4
  308. data/lib/puppet/face/key.rb +0 -16
  309. data/lib/puppet/face/man.rb +0 -145
  310. data/lib/puppet/face/module/build.rb +0 -14
  311. data/lib/puppet/face/module/generate.rb +0 -14
  312. data/lib/puppet/face/module/search.rb +0 -103
  313. data/lib/puppet/face/status.rb +0 -51
  314. data/lib/puppet/indirector/certificate/file.rb +0 -9
  315. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  316. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  317. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  318. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  319. data/lib/puppet/indirector/file_content/http.rb +0 -22
  320. data/lib/puppet/indirector/key/file.rb +0 -46
  321. data/lib/puppet/indirector/key/memory.rb +0 -7
  322. data/lib/puppet/indirector/ssl_file.rb +0 -162
  323. data/lib/puppet/indirector/status.rb +0 -3
  324. data/lib/puppet/indirector/status/local.rb +0 -12
  325. data/lib/puppet/indirector/status/rest.rb +0 -27
  326. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  327. data/lib/puppet/network/auth_config_parser.rb +0 -90
  328. data/lib/puppet/network/authstore.rb +0 -283
  329. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  330. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  331. data/lib/puppet/network/http/base_pool.rb +0 -36
  332. data/lib/puppet/network/http/compression.rb +0 -127
  333. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  334. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  335. data/lib/puppet/network/rest_controller.rb +0 -2
  336. data/lib/puppet/network/rights.rb +0 -210
  337. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  338. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  339. data/lib/puppet/parser/environment_compiler.rb +0 -202
  340. data/lib/puppet/pops/types/enumeration.rb +0 -16
  341. data/lib/puppet/resource/capability_finder.rb +0 -154
  342. data/lib/puppet/rest/errors.rb +0 -15
  343. data/lib/puppet/rest/response.rb +0 -35
  344. data/lib/puppet/rest/route.rb +0 -85
  345. data/lib/puppet/rest/routes.rb +0 -135
  346. data/lib/puppet/ssl/host.rb +0 -505
  347. data/lib/puppet/ssl/key.rb +0 -61
  348. data/lib/puppet/ssl/validator.rb +0 -61
  349. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  350. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  351. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  352. data/lib/puppet/status.rb +0 -40
  353. data/lib/puppet/util/connection.rb +0 -88
  354. data/lib/puppet/util/fact_dif.rb +0 -62
  355. data/lib/puppet/util/ssl.rb +0 -83
  356. data/lib/puppet/util/windows/api_types.rb +0 -309
  357. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  358. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  359. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  360. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  361. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  362. data/lib/puppet/vendor/pathspec/README.md +0 -53
  363. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  364. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  365. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  366. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  367. data/man/man8/puppet-key.8 +0 -126
  368. data/man/man8/puppet-man.8 +0 -76
  369. data/man/man8/puppet-status.8 +0 -108
  370. data/spec/integration/network/authconfig_spec.rb +0 -256
  371. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  372. data/spec/unit/application/man_spec.rb +0 -52
  373. data/spec/unit/capability_spec.rb +0 -414
  374. data/spec/unit/face/key_spec.rb +0 -9
  375. data/spec/unit/face/module/search_spec.rb +0 -231
  376. data/spec/unit/face/status_spec.rb +0 -9
  377. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  378. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  379. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  380. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  381. data/spec/unit/indirector/key/file_spec.rb +0 -78
  382. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  383. data/spec/unit/indirector/status/local_spec.rb +0 -10
  384. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  385. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  386. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  387. data/spec/unit/network/authstore_spec.rb +0 -422
  388. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  389. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  390. data/spec/unit/network/http/compression_spec.rb +0 -240
  391. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  392. data/spec/unit/network/http_spec.rb +0 -9
  393. data/spec/unit/network/rights_spec.rb +0 -439
  394. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  395. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  396. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  397. data/spec/unit/rest/route_spec.rb +0 -132
  398. data/spec/unit/ssl/host_spec.rb +0 -645
  399. data/spec/unit/ssl/key_spec.rb +0 -173
  400. data/spec/unit/ssl/validator_spec.rb +0 -278
  401. data/spec/unit/status_spec.rb +0 -45
  402. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -260,119 +260,115 @@ Licensed under the Apache 2.0 License
260
260
  end
261
261
  end
262
262
  devices.collect do |devicename,device|
263
- pool = Puppet.runtime[:http].pool
264
- Puppet.override(:http_pool => pool) do
265
- # TODO when we drop support for ruby < 2.5 we can remove the extra block here
266
- begin
267
- device_url = URI.parse(device.url)
268
- # Handle nil scheme & port
269
- scheme = "#{device_url.scheme}://" if device_url.scheme
270
- port = ":#{device_url.port}" if device_url.port
271
-
272
- # override local $vardir and $certname
273
- Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
274
- Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
275
- Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
276
- Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
277
- Puppet[:certname] = device.name
278
- ssl_context = nil
279
-
280
- # create device directory under $deviceconfdir
281
- Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
282
-
283
- # this will reload and recompute default settings and create device-specific sub vardir
284
- Puppet.settings.use :main, :agent, :ssl
285
-
286
- # Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
287
- optssldir = File.join(Puppet[:confdir], 'ssl')
288
- Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
289
-
290
- unless options[:resource] || options[:facts] || options[:apply]
291
- # Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
292
- # See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
293
- # This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
294
- # routines would fail with access errors
295
- if Puppet.features.root? && !Puppet::Util::Platform.windows?
296
- user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
297
- group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
298
- Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
299
- FileUtils.chown(user, group, Puppet[:confdir]) if user || group
300
- end
263
+ # TODO when we drop support for ruby < 2.5 we can remove the extra block here
264
+ begin
265
+ device_url = URI.parse(device.url)
266
+ # Handle nil scheme & port
267
+ scheme = "#{device_url.scheme}://" if device_url.scheme
268
+ port = ":#{device_url.port}" if device_url.port
269
+
270
+ # override local $vardir and $certname
271
+ Puppet[:ssldir] = ::File.join(Puppet[:deviceconfdir], device.name, 'ssl')
272
+ Puppet[:confdir] = ::File.join(Puppet[:devicedir], device.name)
273
+ Puppet[:libdir] = options[:libdir] || ::File.join(Puppet[:devicedir], device.name, 'lib')
274
+ Puppet[:vardir] = ::File.join(Puppet[:devicedir], device.name)
275
+ Puppet[:certname] = device.name
276
+ ssl_context = nil
277
+
278
+ # create device directory under $deviceconfdir
279
+ Puppet::FileSystem.dir_mkpath(Puppet[:ssldir]) unless Puppet::FileSystem.dir_exist?(Puppet[:ssldir])
280
+
281
+ # this will reload and recompute default settings and create device-specific sub vardir
282
+ Puppet.settings.use :main, :agent, :ssl
283
+
284
+ # Workaround for PUP-8736: store ssl certs outside the cache directory to prevent accidental removal and keep the old path as symlink
285
+ optssldir = File.join(Puppet[:confdir], 'ssl')
286
+ Puppet::FileSystem.symlink(Puppet[:ssldir], optssldir) unless Puppet::FileSystem.exist?(optssldir)
287
+
288
+ unless options[:resource] || options[:facts] || options[:apply]
289
+ # Since it's too complicated to fix properly in the default settings, we workaround for PUP-9642 here.
290
+ # See https://github.com/puppetlabs/puppet/pull/7483#issuecomment-483455997 for details.
291
+ # This has to happen after `settings.use` above, so the directory is created and before `setup_host` below, where the SSL
292
+ # routines would fail with access errors
293
+ if Puppet.features.root? && !Puppet::Util::Platform.windows?
294
+ user = Puppet::Type.type(:user).new(name: Puppet[:user]).exists? ? Puppet[:user] : nil
295
+ group = Puppet::Type.type(:group).new(name: Puppet[:group]).exists? ? Puppet[:group] : nil
296
+ Puppet.debug("Fixing perms for #{user}:#{group} on #{Puppet[:confdir]}")
297
+ FileUtils.chown(user, group, Puppet[:confdir]) if user || group
298
+ end
301
299
 
302
- ssl_context = setup_context
300
+ ssl_context = setup_context
303
301
 
304
- unless options[:libdir]
305
- Puppet.override(ssl_context: ssl_context) do
306
- Puppet::Configurer::PluginHandler.new.download_plugins(env) if Puppet::Configurer.should_pluginsync?
307
- end
302
+ unless options[:libdir]
303
+ Puppet.override(ssl_context: ssl_context) do
304
+ Puppet::Configurer::PluginHandler.new.download_plugins(env) if Puppet::Configurer.should_pluginsync?
308
305
  end
309
306
  end
307
+ end
310
308
 
311
- # this inits the device singleton, so that the facts terminus
312
- # and the various network_device provider can use it
313
- Puppet::Util::NetworkDevice.init(device)
314
-
315
- if options[:resource]
316
- type, name = parse_args(command_line.args)
317
- Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
318
- resources = find_resources(type, name)
319
- if options[:to_yaml]
320
- data = resources.map do |resource|
321
- resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
322
- end.inject(:merge!)
323
- text = YAML.dump(type.downcase => data)
324
- else
325
- text = resources.map do |resource|
326
- resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
327
- end.join("\n")
328
- end
329
- (puts text)
330
- 0
331
- elsif options[:facts]
332
- Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
333
- remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
334
- # Give a proper name to the facts
335
- remote_facts.name = remote_facts.values['clientcert']
336
- renderer = Puppet::Network::FormatHandler.format(:console)
337
- puts renderer.render(remote_facts)
338
- 0
339
- elsif options[:apply]
340
- # avoid reporting to server
341
- Puppet::Transaction::Report.indirection.terminus_class = :yaml
342
- Puppet::Resource::Catalog.indirection.cache_class = nil
343
-
344
- require 'puppet/application/apply'
345
- begin
346
- Puppet[:node_terminus] = :plain
347
- Puppet[:catalog_terminus] = :compiler
348
- Puppet[:catalog_cache_terminus] = nil
349
- Puppet[:facts_terminus] = :network_device
350
- Puppet.override(:network_device => true) do
351
- Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
352
- end
353
- end
309
+ # this inits the device singleton, so that the facts terminus
310
+ # and the various network_device provider can use it
311
+ Puppet::Util::NetworkDevice.init(device)
312
+
313
+ if options[:resource]
314
+ type, name = parse_args(command_line.args)
315
+ Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
316
+ resources = find_resources(type, name)
317
+ if options[:to_yaml]
318
+ data = resources.map do |resource|
319
+ resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
320
+ end.inject(:merge!)
321
+ text = YAML.dump(type.downcase => data)
354
322
  else
355
- Puppet.info _("starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
356
-
357
- overrides = {}
358
- overrides[:ssl_context] = ssl_context if ssl_context
359
- Puppet.override(overrides) do
360
- configurer = Puppet::Configurer.new
361
- configurer.run(:network_device => true, :pluginsync => false)
323
+ text = resources.map do |resource|
324
+ resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
325
+ end.join("\n")
326
+ end
327
+ (puts text)
328
+ 0
329
+ elsif options[:facts]
330
+ Puppet.info _("retrieving facts from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
331
+ remote_facts = Puppet::Node::Facts.indirection.find(name, :environment => env)
332
+ # Give a proper name to the facts
333
+ remote_facts.name = remote_facts.values['clientcert']
334
+ renderer = Puppet::Network::FormatHandler.format(:console)
335
+ puts renderer.render(remote_facts)
336
+ 0
337
+ elsif options[:apply]
338
+ # avoid reporting to server
339
+ Puppet::Transaction::Report.indirection.terminus_class = :yaml
340
+ Puppet::Resource::Catalog.indirection.cache_class = nil
341
+
342
+ require 'puppet/application/apply'
343
+ begin
344
+ Puppet[:node_terminus] = :plain
345
+ Puppet[:catalog_terminus] = :compiler
346
+ Puppet[:catalog_cache_terminus] = nil
347
+ Puppet[:facts_terminus] = :network_device
348
+ Puppet.override(:network_device => true) do
349
+ Puppet::Application::Apply.new(Puppet::Util::CommandLine.new('puppet', ["apply", options[:apply]])).run_command
362
350
  end
363
351
  end
364
- rescue => detail
365
- Puppet.log_exception(detail)
366
- # If we rescued an error, then we return 1 as the exit code
367
- 1
368
- ensure
369
- pool.close
370
- Puppet[:libdir] = libdir
371
- Puppet[:vardir] = vardir
372
- Puppet[:confdir] = confdir
373
- Puppet[:ssldir] = ssldir
374
- Puppet[:certname] = certname
352
+ else
353
+ Puppet.info _("starting applying configuration to %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
354
+
355
+ overrides = {}
356
+ overrides[:ssl_context] = ssl_context if ssl_context
357
+ Puppet.override(overrides) do
358
+ configurer = Puppet::Configurer.new
359
+ configurer.run(:network_device => true, :pluginsync => false)
360
+ end
375
361
  end
362
+ rescue => detail
363
+ Puppet.log_exception(detail)
364
+ # If we rescued an error, then we return 1 as the exit code
365
+ 1
366
+ ensure
367
+ Puppet[:libdir] = libdir
368
+ Puppet[:vardir] = vardir
369
+ Puppet[:confdir] = confdir
370
+ Puppet[:ssldir] = ssldir
371
+ Puppet[:certname] = certname
376
372
  end
377
373
  end
378
374
  end
@@ -16,6 +16,10 @@ class Puppet::Application::Filebucket < Puppet::Application
16
16
  _("Store and retrieve files in a filebucket")
17
17
  end
18
18
 
19
+ def digest_algorithm
20
+ Puppet.default_digest_algorithm
21
+ end
22
+
19
23
  def help
20
24
  <<-HELP
21
25
 
@@ -38,14 +42,14 @@ Puppet filebucket can operate in three modes, with only one mode per call:
38
42
 
39
43
  backup:
40
44
  Send one or more files to the specified file bucket. Each sent file is
41
- printed with its resulting md5 sum.
45
+ printed with its resulting #{digest_algorithm} sum.
42
46
 
43
47
  get:
44
- Return the text associated with an md5 sum. The text is printed to
48
+ Return the text associated with an #{digest_algorithm} sum. The text is printed to
45
49
  stdout, and only one file can be retrieved at a time.
46
50
 
47
51
  restore:
48
- Given a file path and an md5 sum, store the content associated with
52
+ Given a file path and an #{digest_algorithm} sum, store the content associated with
49
53
  the sum into the specified file path. You can specify an entirely new
50
54
  path to this argument; you are not restricted to restoring the content
51
55
  to its original location.
@@ -212,8 +216,8 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
212
216
  end
213
217
 
214
218
  def get
215
- md5 = args.shift
216
- out = @client.getfile(md5)
219
+ digest = args.shift
220
+ out = @client.getfile(digest)
217
221
  print out
218
222
  end
219
223
 
@@ -229,8 +233,8 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
229
233
  $stderr.puts _("%{file}: cannot read file") % { file: file }
230
234
  next
231
235
  end
232
- md5 = @client.backup(file)
233
- puts "#{file}: #{md5}"
236
+ digest = @client.backup(file)
237
+ puts "#{file}: #{digest}"
234
238
  end
235
239
  end
236
240
 
@@ -243,8 +247,8 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
243
247
 
244
248
  def restore
245
249
  file = args.shift
246
- md5 = args.shift
247
- @client.restore(file, md5)
250
+ digest = args.shift
251
+ @client.restore(file, digest)
248
252
  end
249
253
 
250
254
  def diff
@@ -248,7 +248,7 @@ END
248
248
  paths = {
249
249
  'private key' => Puppet[:hostprivkey],
250
250
  'public key' => Puppet[:hostpubkey],
251
- 'certificate request' => File.join(Puppet[:requestdir], "#{Puppet[:certname]}.pem"),
251
+ 'certificate request' => Puppet[:hostcsr],
252
252
  'certificate' => Puppet[:hostcert],
253
253
  'private key password file' => Puppet[:passfile]
254
254
  }
@@ -202,7 +202,6 @@ class Puppet::Configurer
202
202
  # This just passes any options on to the catalog,
203
203
  # which accepts :tags and :ignoreschedules.
204
204
  def run(options = {})
205
- pool = Puppet.runtime[:http].pool
206
205
  # We create the report pre-populated with default settings for
207
206
  # environment and transaction_uuid very early, this is to ensure
208
207
  # they are sent regardless of any catalog compilation failures or
@@ -215,41 +214,40 @@ class Puppet::Configurer
215
214
 
216
215
  completed = nil
217
216
  begin
218
- Puppet.override(:http_pool => pool) do
219
- # Skip failover logic if the server_list setting is empty
220
- do_failover = Puppet.settings[:server_list] && !Puppet.settings[:server_list].empty?
221
-
222
- # When we are passed a catalog, that means we're in apply
223
- # mode. We shouldn't try to do any failover in that case.
224
- if options[:catalog].nil? && do_failover
225
- server, port = find_functional_server
226
- if server.nil?
227
- 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) }
228
- if Puppet[:usecacheonfailure]
229
- options[:pluginsync] = false
230
- @running_failure = true
231
-
232
- server = Puppet[:server_list].first[0]
233
- port = Puppet[:server_list].first[1] || Puppet[:serverport]
234
-
235
- Puppet.err(detail)
236
- else
237
- raise Puppet::Error, detail
238
- end
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)
239
234
  else
240
- #TRANSLATORS 'server_list' is the name of a setting and should not be translated
241
- Puppet.debug _("Selected puppet server from the `server_list` setting: %{server}:%{port}") % { server: server, port: port }
242
- report.server_used = "#{server}:#{port}"
243
- end
244
- Puppet.override(server: server, serverport: port) do
245
- completed = run_internal(options)
235
+ raise Puppet::Error, detail
246
236
  end
247
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
248
243
  completed = run_internal(options)
249
244
  end
245
+ else
246
+ completed = run_internal(options)
250
247
  end
251
248
  ensure
252
- pool.close
249
+ # we may sleep for awhile, close connections now
250
+ Puppet.runtime[:http].close
253
251
  end
254
252
 
255
253
  completed ? report.exit_status : nil
@@ -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))
@@ -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,29 +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
- value = munge(value)
81
- if value && Puppet::Util::Package.versioncmp(Facter.value('facterversion'), '4.0.0') < 0
82
- begin
83
- original_facter = Object.const_get(:Facter)
84
- Object.send(:remove_const, :Facter)
85
-
86
- require 'facter-ng'
87
- # It is required to re-setup logger for facter-ng
88
- Puppet::Util::Logging.setup_facter_logging!
89
- rescue LoadError
90
- Object.const_set(:Facter, original_facter)
91
- raise ArgumentError, 'facter-ng could not be loaded'
92
- end
93
- end
94
- end
95
- },
96
89
  :confdir => {
97
90
  :default => nil,
98
91
  :type => :directory,
@@ -219,7 +212,7 @@ module Puppet
219
212
  end
220
213
  },
221
214
  :disable_i18n => {
222
- :default => false,
215
+ :default => true,
223
216
  :type => :boolean,
224
217
  :desc => "If true, turns off all translations of Puppet and module
225
218
  log messages, which affects error, warning, and info log messages,
@@ -264,13 +257,6 @@ module Puppet
264
257
  :type => :boolean,
265
258
  :desc => "Whether to enable experimental performance profiling",
266
259
  },
267
- :future_features => {
268
- :default => false,
269
- :type => :boolean,
270
- :desc => "Whether or not to enable all features currently being developed for future
271
- major releases of Puppet. Should be used with caution, as in development
272
- features are experimental and can have unexpected effects."
273
- },
274
260
  :versioned_environment_dirs => {
275
261
  :default => false,
276
262
  :type => :boolean,
@@ -285,6 +271,11 @@ module Puppet
285
271
  which occurs only on a Puppet Server master when the `code-id-command` and
286
272
  `code-content-command` settings are configured in its `puppetserver.conf` file.",
287
273
  },
274
+ :settings_catalog => {
275
+ :default => true,
276
+ :type => :boolean,
277
+ :desc => "Whether to compile and apply the settings catalog",
278
+ },
288
279
  :strict_environment_mode => {
289
280
  :default => false,
290
281
  :type => :boolean,
@@ -707,9 +698,8 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
707
698
  A value of `0` will disable caching. This setting can also be set to
708
699
  `unlimited`, which will cache environments until the server is restarted
709
700
  or told to refresh the cache. All other values will result in Puppet
710
- server evicting expired environments. The expiration time is computed
711
- based on either when the environment was created or last accessed, see
712
- `environment_timeout_mode`.
701
+ server evicting environments that haven't been used within the last
702
+ `environment_timeout` seconds.
713
703
 
714
704
  You should change this setting once your Puppet deployment is doing
715
705
  non-trivial work. We chose the default value of `0` because it lets new
@@ -722,32 +712,13 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
722
712
  * Setting this to a number that will keep your most actively used
723
713
  environments cached, but allow testing environments to fall out of the
724
714
  cache and reduce memory usage. A value of 3 minutes (3m) is a reasonable
725
- value. This option requires setting `environment_timeout_mode` to
726
- `from_last_used`.
715
+ value.
727
716
 
728
717
  Once you set `environment_timeout` to a non-zero value, you need to tell
729
718
  Puppet server to read new code from disk using the `environment-cache` API
730
719
  endpoint after you deploy new code. See the docs for the Puppet Server
731
720
  [administrative API](https://puppet.com/docs/puppetserver/latest/admin-api/v1/environment-cache.html).
732
- ",
733
- :hook => proc do |val|
734
- if Puppet[:environment_timeout_mode] == :from_created
735
- unless [0, 'unlimited', Float::INFINITY].include?(val)
736
- Puppet.deprecation_warning("Evicting environments based on their creation time is deprecated, please set `environment_timeout_mode` to `from_last_used` instead.")
737
- end
738
- end
739
- end
740
- },
741
- :environment_timeout_mode => {
742
- :default => :from_created,
743
- :type => :symbolic_enum,
744
- :values => [:from_created, :from_last_used],
745
- :desc => "How Puppet interprets the `environment_timeout` setting when
746
- `environment_timeout` is neither `0` nor `unlimited`. If set to
747
- `from_created`, then the environment will be evicted `environment_timeout`
748
- seconds from when it was created. If set to `from_last_used` then the
749
- environment will be evicted `environment_timeout` seconds from when it
750
- was last used."
721
+ "
751
722
  },
752
723
  :environment_data_provider => {
753
724
  :desc => "The name of a registered environment data provider used when obtaining environment
@@ -822,7 +793,7 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
822
793
  `certname` setting as its requested Subject CN.
823
794
 
824
795
  This is the name used when managing a node's permissions in
825
- [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).
826
797
  In most cases, it is also used as the node's name when matching
827
798
  [node definitions](https://puppet.com/docs/puppet/latest/lang_node_definitions.html)
828
799
  and requesting data from an ENC. (This can be changed with the `node_name_value`
@@ -837,9 +808,9 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
837
808
  only use lowercase letters, numbers, periods, underscores, and dashes. (That is,
838
809
  it should match `/\A[a-z0-9._-]+\Z/`.)
839
810
  * The special value `ca` is reserved, and can't be used as the certname
840
- for a normal node.
811
+ for a normal node.
841
812
 
842
- **Note:** You must set the certname in the main section of the puppet.conf file. Setting it in a different section causes errors.
813
+ **Note:** You must set the certname in the main section of the puppet.conf file. Setting it in a different section causes errors.
843
814
 
844
815
  Defaults to the node's fully qualified domain name.",
845
816
  :call_hook => :on_initialize_and_write,
@@ -972,13 +943,13 @@ EOT
972
943
  Generally unused."
973
944
  },
974
945
  :hostcsr => {
975
- :default => "$ssldir/csr_$certname.pem",
946
+ :default => "$requestdir/$certname.pem",
976
947
  :type => :file,
977
948
  :mode => "0644",
978
949
  :owner => "service",
979
950
  :group => "service",
980
- :deprecated => :completely,
981
- :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."
982
953
  },
983
954
  :hostcert => {
984
955
  :default => "$certdir/$certname.pem",
@@ -1029,29 +1000,6 @@ EOT
1029
1000
  puppet module tool and the 'http' report processor. This setting is ignored when
1030
1001
  making requests to puppet:// URLs such as catalog and report requests.",
1031
1002
  },
1032
- :ssl_client_ca_auth => {
1033
- :type => :file,
1034
- :mode => "0644",
1035
- :owner => "service",
1036
- :group => "service",
1037
- :desc => "Certificate authorities who issue server certificates. SSL servers will not be
1038
- considered authentic unless they possess a certificate issued by an authority
1039
- listed in this file. If this setting has no value then the Puppet master's CA
1040
- certificate (localcacert) will be used.",
1041
- :hook => proc do |val|
1042
- Puppet.deprecation_warning(_("Setting 'ssl_client_ca_auth' is deprecated."))
1043
- end
1044
- },
1045
- :ssl_server_ca_auth => {
1046
- :type => :file,
1047
- :mode => "0644",
1048
- :owner => "service",
1049
- :group => "service",
1050
- :deprecated => :completely,
1051
- :desc => "The setting is deprecated and has no effect. Ensure all root and
1052
- intermediate certificate authorities used to issue client certificates are
1053
- contained in the server's `cacert` file on the server."
1054
- },
1055
1003
  :hostcrl => {
1056
1004
  :default => "$ssldir/crl.pem",
1057
1005
  :type => :file,
@@ -1142,7 +1090,7 @@ EOT
1142
1090
  :desc => "The name to use the Certificate Authority certificate.",
1143
1091
  },
1144
1092
  :cadir => {
1145
- :default => "$ssldir/ca",
1093
+ :default => lambda { default_cadir },
1146
1094
  :type => :directory,
1147
1095
  :desc => "The root directory for the certificate authority.",
1148
1096
  },
@@ -1373,6 +1321,7 @@ EOT
1373
1321
  },
1374
1322
  :masterport => {
1375
1323
  :default => 8140,
1324
+ :type => :port,
1376
1325
  :desc => "The default port puppet subcommands use to communicate
1377
1326
  with Puppet Server. (eg `puppet facts upload`, `puppet agent`). May be
1378
1327
  overridden by more specific settings (see `ca_port`, `report_port`).",
@@ -1381,25 +1330,6 @@ EOT
1381
1330
  :type => :alias,
1382
1331
  :alias_for => :masterport
1383
1332
  },
1384
- :node_name => {
1385
- :default => 'cert',
1386
- :type => :enum,
1387
- :values => ['cert', 'facter'],
1388
- :deprecated => :completely,
1389
- :hook => proc { |val|
1390
- if val != 'cert'
1391
- Puppet.deprecation_warning("The node_name setting is deprecated and will be removed in a future release.")
1392
- end
1393
- },
1394
- :desc => "How the puppet master determines the client's identity
1395
- and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
1396
- in particular for determining which 'node' statement applies to the client.
1397
- Possible values are 'cert' (use the subject's CN in the client's
1398
- certificate) and 'facter' (use the hostname that the client
1399
- reported in its facts).
1400
-
1401
- This setting is deprecated, please use explicit fact matching for classification.",
1402
- },
1403
1333
  :bucketdir => {
1404
1334
  :default => "$vardir/bucket",
1405
1335
  :type => :directory,
@@ -1408,15 +1338,6 @@ EOT
1408
1338
  :group => "service",
1409
1339
  :desc => "Where FileBucket files are stored."
1410
1340
  },
1411
- :rest_authconfig => {
1412
- :default => "$confdir/auth.conf",
1413
- :type => :file,
1414
- :deprecated => :completely,
1415
- :desc => "The configuration file that defines the rights to the different
1416
- rest indirections. This can be used as a fine-grained authorization system for
1417
- `puppet master`. The `puppet master` command is deprecated and Puppet Server
1418
- uses its own auth.conf that must be placed within its configuration directory.",
1419
- },
1420
1341
  :trusted_oid_mapping_file => {
1421
1342
  :default => "$confdir/custom_trusted_oid_mapping.yaml",
1422
1343
  :type => :file,
@@ -1519,23 +1440,7 @@ EOT
1519
1440
  :default => "$confdir/fileserver.conf",
1520
1441
  :type => :file,
1521
1442
  :desc => "Where the fileserver configuration is stored.",
1522
- },
1523
- :strict_hostname_checking => {
1524
- :default => true,
1525
- :type => :boolean,
1526
- :desc => "Whether to only search for the complete
1527
- hostname as it is in the certificate when searching for node information
1528
- in the catalogs or to match dot delimited segments of the cert's certname
1529
- and the hostname, fqdn, and/or domain facts.
1530
-
1531
- This setting is deprecated and will be removed in a future release.",
1532
- :hook => proc { |val|
1533
- if val != true
1534
- 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).")
1535
- end
1536
- }
1537
- }
1538
- )
1443
+ })
1539
1444
 
1540
1445
  settings.define_settings(:device,
1541
1446
  :devicedir => {
@@ -1557,17 +1462,15 @@ EOT
1557
1462
  :default => "$certname",
1558
1463
  :desc => "The explicit value used for the node name for all requests the agent
1559
1464
  makes to the master. WARNING: This setting is mutually exclusive with
1560
- node_name_fact. Changing this setting also requires changes to the default
1561
- auth.conf configuration on the Puppet Master. Please see
1562
- http://links.puppet.com/node_name_value for more information."
1465
+ node_name_fact. Changing this setting also requires changes to
1466
+ Puppet Server's default [auth.conf](https://puppet.com/docs/puppetserver/latest/config_file_auth.html)."
1563
1467
  },
1564
1468
  :node_name_fact => {
1565
1469
  :default => "",
1566
1470
  :desc => "The fact name used to determine the node name used for all requests the agent
1567
1471
  makes to the master. WARNING: This setting is mutually exclusive with
1568
- node_name_value. Changing this setting also requires changes to the default
1569
- auth.conf configuration on the Puppet Master. Please see
1570
- http://links.puppet.com/node_name_fact for more information.",
1472
+ node_name_value. Changing this setting also requires changes to
1473
+ Puppet Server's default [auth.conf](https://puppet.com/docs/puppetserver/latest/config_file_auth.html).",
1571
1474
  :hook => proc do |value|
1572
1475
  if !value.empty? and Puppet[:node_name_value] != Puppet[:certname]
1573
1476
  raise "Cannot specify both the node_name_value and node_name_fact settings"
@@ -1665,8 +1568,8 @@ EOT
1665
1568
  :server_list => {
1666
1569
  :default => [],
1667
1570
  :type => :server_list,
1668
- :desc => "The list of puppet master servers to which the puppet agent should connect,
1669
- in the order that they will be tried.",
1571
+ :desc => "The list of Puppet master servers to which the Puppet agent should connect,
1572
+ 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.",
1670
1573
  },
1671
1574
  :use_srv_records => {
1672
1575
  :default => false,
@@ -1742,6 +1645,7 @@ EOT
1742
1645
  },
1743
1646
  :ca_port => {
1744
1647
  :default => "$serverport",
1648
+ :type => :port,
1745
1649
  :desc => "The port to use for the certificate authority.",
1746
1650
  },
1747
1651
  :preferred_serialization_format => {
@@ -1831,6 +1735,7 @@ EOT
1831
1735
  },
1832
1736
  :report_port => {
1833
1737
  :default => "$serverport",
1738
+ :type => :port,
1834
1739
  :desc => "The port to communicate with the report_server.",
1835
1740
  },
1836
1741
  :report => {
@@ -1860,10 +1765,16 @@ EOT
1860
1765
  for the node stored in puppetdb are current. However, this will double the fact
1861
1766
  submission load on puppetdb, so it is disabled by default.",
1862
1767
  },
1768
+ :publicdir => {
1769
+ :default => nil,
1770
+ :type => :directory,
1771
+ :mode => "0755",
1772
+ :desc => "Where Puppet stores public files."
1773
+ },
1863
1774
  :lastrunfile => {
1864
- :default => "$statedir/last_run_summary.yaml",
1775
+ :default => "$publicdir/last_run_summary.yaml",
1865
1776
  :type => :file,
1866
- :mode => "0644",
1777
+ :mode => "0640",
1867
1778
  :desc => "Where puppet agent stores the last run report summary in yaml format."
1868
1779
  },
1869
1780
  :lastrunreport => {
@@ -1943,7 +1854,7 @@ EOT
1943
1854
  :type => :ttl,
1944
1855
  :desc => "The maximum amount of time the puppet agent should wait for an
1945
1856
  already running puppet agent to finish before starting a new one. This is set by default to 1 minute.
1946
- A value of `unlimited` will cause puppet agent to wait indefinitely.
1857
+ A value of `unlimited` will cause puppet agent to wait indefinitely.
1947
1858
  #{AS_DURATION}",
1948
1859
  }
1949
1860
  )
@@ -2000,7 +1911,7 @@ EOT
2000
1911
  :desc => "What files to ignore when pulling down plugins.",
2001
1912
  },
2002
1913
  :ignore_plugin_errors => {
2003
- :default => true,
1914
+ :default => false,
2004
1915
  :type => :boolean,
2005
1916
  :desc => "Whether the puppet run should ignore errors during pluginsync. If the setting
2006
1917
  is false and there are errors during pluginsync, then the agent will abort the run and
@@ -2215,22 +2126,6 @@ EOT
2215
2126
  referencing variables that are explicitly set to undef).
2216
2127
  EOT
2217
2128
  },
2218
- :func3x_check => {
2219
- :default => true,
2220
- :type => :boolean,
2221
- :desc => <<-'EOT',
2222
- Causes validation of loaded legacy Ruby functions (3x API) to raise errors about illegal constructs that
2223
- could cause harm or that simply does not work. This flag is on by default. This flag is made available
2224
- so that the validation can be turned off in case the method of validation is faulty - if encountered, please
2225
- file a bug report.
2226
- EOT
2227
- :call_hook => :on_initialize_and_write,
2228
- :hook => proc do |value|
2229
- unless value
2230
- Puppet.deprecation_warning(_("The 'func3x_check' setting is deprecated and will be removed in a future release."))
2231
- end
2232
- end
2233
- },
2234
2129
  :tasks => {
2235
2130
  :default => false,
2236
2131
  :type => :boolean,