puppet 6.20.0-x64-mingw32 → 7.4.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 (430) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -4
  3. data/Gemfile.lock +13 -13
  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/property/list.rb +1 -1
  114. data/lib/puppet/provider.rb +0 -13
  115. data/lib/puppet/provider/group/groupadd.rb +13 -8
  116. data/lib/puppet/provider/nameservice.rb +0 -18
  117. data/lib/puppet/provider/package/apt.rb +30 -2
  118. data/lib/puppet/provider/package/aptitude.rb +6 -0
  119. data/lib/puppet/provider/package/dpkg.rb +0 -10
  120. data/lib/puppet/provider/package/gem.rb +23 -3
  121. data/lib/puppet/provider/package/pip.rb +0 -1
  122. data/lib/puppet/provider/package/pkg.rb +0 -4
  123. data/lib/puppet/provider/package/portage.rb +1 -1
  124. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  125. data/lib/puppet/provider/service/debian.rb +2 -0
  126. data/lib/puppet/provider/service/smf.rb +191 -73
  127. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  128. data/lib/puppet/provider/user/useradd.rb +55 -8
  129. data/lib/puppet/reference/configuration.rb +7 -5
  130. data/lib/puppet/reference/indirection.rb +1 -1
  131. data/lib/puppet/resource.rb +1 -89
  132. data/lib/puppet/resource/catalog.rb +1 -14
  133. data/lib/puppet/resource/type.rb +3 -119
  134. data/lib/puppet/resource/type_collection.rb +3 -48
  135. data/lib/puppet/runtime.rb +1 -2
  136. data/lib/puppet/settings.rb +45 -33
  137. data/lib/puppet/settings/integer_setting.rb +17 -0
  138. data/lib/puppet/settings/port_setting.rb +15 -0
  139. data/lib/puppet/settings/priority_setting.rb +5 -4
  140. data/lib/puppet/ssl.rb +10 -6
  141. data/lib/puppet/ssl/base.rb +3 -5
  142. data/lib/puppet/ssl/certificate.rb +0 -6
  143. data/lib/puppet/ssl/certificate_request.rb +1 -12
  144. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  145. data/lib/puppet/ssl/oids.rb +3 -1
  146. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  147. data/lib/puppet/ssl/state_machine.rb +3 -1
  148. data/lib/puppet/ssl/verifier.rb +2 -0
  149. data/lib/puppet/test/test_helper.rb +1 -3
  150. data/lib/puppet/transaction.rb +1 -7
  151. data/lib/puppet/transaction/report.rb +2 -4
  152. data/lib/puppet/type.rb +0 -76
  153. data/lib/puppet/type/file.rb +5 -7
  154. data/lib/puppet/type/file/checksum.rb +1 -1
  155. data/lib/puppet/type/file/source.rb +1 -1
  156. data/lib/puppet/type/filebucket.rb +3 -3
  157. data/lib/puppet/type/package.rb +8 -16
  158. data/lib/puppet/type/user.rb +1 -1
  159. data/lib/puppet/util/execution.rb +0 -11
  160. data/lib/puppet/util/http_proxy.rb +2 -215
  161. data/lib/puppet/util/monkey_patches.rb +0 -46
  162. data/lib/puppet/util/rdoc.rb +0 -7
  163. data/lib/puppet/util/retry_action.rb +1 -1
  164. data/lib/puppet/util/run_mode.rb +9 -1
  165. data/lib/puppet/util/windows.rb +3 -8
  166. data/lib/puppet/util/windows/daemon.rb +360 -0
  167. data/lib/puppet/util/windows/error.rb +1 -0
  168. data/lib/puppet/util/windows/eventlog.rb +4 -9
  169. data/lib/puppet/util/windows/file.rb +8 -242
  170. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  171. data/lib/puppet/util/windows/process.rb +4 -226
  172. data/lib/puppet/util/windows/service.rb +9 -460
  173. data/lib/puppet/util/windows/string.rb +12 -13
  174. data/lib/puppet/util/yaml.rb +0 -22
  175. data/lib/puppet/vendor/require_vendored.rb +0 -1
  176. data/lib/puppet/version.rb +1 -1
  177. data/lib/puppet/x509.rb +5 -1
  178. data/lib/puppet/x509/cert_provider.rb +29 -1
  179. data/locales/puppet.pot +521 -1226
  180. data/man/man5/puppet.conf.5 +35 -95
  181. data/man/man8/puppet-agent.8 +1 -1
  182. data/man/man8/puppet-apply.8 +1 -1
  183. data/man/man8/puppet-catalog.8 +1 -1
  184. data/man/man8/puppet-config.8 +1 -1
  185. data/man/man8/puppet-describe.8 +1 -1
  186. data/man/man8/puppet-device.8 +1 -1
  187. data/man/man8/puppet-doc.8 +1 -1
  188. data/man/man8/puppet-epp.8 +1 -1
  189. data/man/man8/puppet-facts.8 +57 -36
  190. data/man/man8/puppet-filebucket.8 +4 -4
  191. data/man/man8/puppet-generate.8 +1 -1
  192. data/man/man8/puppet-help.8 +1 -1
  193. data/man/man8/puppet-lookup.8 +1 -1
  194. data/man/man8/puppet-module.8 +1 -58
  195. data/man/man8/puppet-node.8 +1 -1
  196. data/man/man8/puppet-parser.8 +1 -1
  197. data/man/man8/puppet-plugin.8 +1 -1
  198. data/man/man8/puppet-report.8 +1 -1
  199. data/man/man8/puppet-resource.8 +1 -1
  200. data/man/man8/puppet-script.8 +1 -1
  201. data/man/man8/puppet-ssl.8 +1 -1
  202. data/man/man8/puppet.8 +2 -2
  203. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  204. data/spec/integration/application/agent_spec.rb +57 -11
  205. data/spec/integration/application/apply_spec.rb +1 -1
  206. data/spec/integration/application/filebucket_spec.rb +16 -16
  207. data/spec/integration/application/help_spec.rb +2 -0
  208. data/spec/integration/application/plugin_spec.rb +23 -1
  209. data/spec/integration/defaults_spec.rb +7 -3
  210. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
  211. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
  212. data/spec/integration/network/http_pool_spec.rb +3 -21
  213. data/spec/integration/parser/catalog_spec.rb +0 -38
  214. data/spec/integration/parser/node_spec.rb +0 -9
  215. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  216. data/spec/integration/type/file_spec.rb +5 -4
  217. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  218. data/spec/integration/util/windows/security_spec.rb +1 -1
  219. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  220. data/spec/lib/puppet_spec/settings.rb +1 -0
  221. data/spec/spec_helper.rb +2 -0
  222. data/spec/unit/agent_spec.rb +0 -2
  223. data/spec/unit/application/facts_spec.rb +86 -0
  224. data/spec/unit/application/filebucket_spec.rb +41 -39
  225. data/spec/unit/application/ssl_spec.rb +2 -2
  226. data/spec/unit/certificate_factory_spec.rb +1 -1
  227. data/spec/unit/configurer/downloader_spec.rb +6 -2
  228. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  229. data/spec/unit/configurer_spec.rb +12 -9
  230. data/spec/unit/context/trusted_information_spec.rb +2 -6
  231. data/spec/unit/defaults_spec.rb +22 -47
  232. data/spec/unit/environments_spec.rb +0 -3
  233. data/spec/unit/face/facts_spec.rb +4 -0
  234. data/spec/unit/face/node_spec.rb +14 -2
  235. data/spec/unit/face/plugin_spec.rb +73 -33
  236. data/spec/unit/file_bucket/file_spec.rb +1 -1
  237. data/spec/unit/file_serving/configuration/parser_spec.rb +22 -18
  238. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  239. data/spec/unit/functions/camelcase_spec.rb +1 -1
  240. data/spec/unit/functions/capitalize_spec.rb +1 -1
  241. data/spec/unit/functions/downcase_spec.rb +1 -1
  242. data/spec/unit/functions/upcase_spec.rb +1 -1
  243. data/spec/unit/http/client_spec.rb +7 -8
  244. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  245. data/spec/unit/http/external_client_spec.rb +4 -4
  246. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  247. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  248. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  249. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  250. data/spec/unit/http/resolver_spec.rb +13 -13
  251. data/spec/unit/http/service/compiler_spec.rb +0 -62
  252. data/spec/unit/http/service/file_server_spec.rb +3 -3
  253. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  254. data/spec/unit/http/service_spec.rb +0 -1
  255. data/spec/unit/http/session_spec.rb +16 -14
  256. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  257. data/spec/unit/indirector/facts/facter_spec.rb +113 -0
  258. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  259. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  260. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  261. data/spec/unit/indirector/file_server_spec.rb +1 -15
  262. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  263. data/spec/unit/indirector/request_spec.rb +0 -264
  264. data/spec/unit/indirector/rest_spec.rb +98 -752
  265. data/spec/unit/network/authconfig_spec.rb +2 -129
  266. data/spec/unit/network/authorization_spec.rb +2 -55
  267. data/spec/unit/network/formats_spec.rb +45 -4
  268. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
  269. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  270. data/spec/unit/network/http/api_spec.rb +10 -0
  271. data/spec/unit/network/http/connection_spec.rb +19 -41
  272. data/spec/unit/network/http/handler_spec.rb +0 -1
  273. data/spec/unit/network/http_pool_spec.rb +0 -4
  274. data/spec/unit/node/environment_spec.rb +33 -21
  275. data/spec/unit/node_spec.rb +2 -54
  276. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  277. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  278. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  279. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  280. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  281. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  282. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  283. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  284. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  285. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  286. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  287. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  288. data/spec/unit/pops/visitor_spec.rb +1 -1
  289. data/spec/unit/provider/group/groupadd_spec.rb +5 -2
  290. data/spec/unit/provider/nameservice_spec.rb +0 -57
  291. data/spec/unit/provider/package/apt_spec.rb +24 -15
  292. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  293. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  294. data/spec/unit/provider/package/gem_spec.rb +32 -0
  295. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  296. data/spec/unit/provider/service/smf_spec.rb +401 -165
  297. data/spec/unit/provider/service/windows_spec.rb +0 -1
  298. data/spec/unit/provider/user/useradd_spec.rb +55 -3
  299. data/spec/unit/provider_spec.rb +0 -12
  300. data/spec/unit/resource/type_collection_spec.rb +2 -22
  301. data/spec/unit/resource_spec.rb +0 -56
  302. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  303. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  304. data/spec/unit/settings/port_setting_spec.rb +31 -0
  305. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  306. data/spec/unit/settings_spec.rb +17 -0
  307. data/spec/unit/ssl/base_spec.rb +36 -3
  308. data/spec/unit/ssl/certificate_request_spec.rb +19 -55
  309. data/spec/unit/ssl/certificate_spec.rb +2 -11
  310. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  311. data/spec/unit/ssl/verifier_spec.rb +0 -21
  312. data/spec/unit/transaction/report_spec.rb +0 -2
  313. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  314. data/spec/unit/transaction_spec.rb +45 -79
  315. data/spec/unit/type/file/checksum_spec.rb +6 -6
  316. data/spec/unit/type/file/content_spec.rb +1 -1
  317. data/spec/unit/type/file/ensure_spec.rb +1 -1
  318. data/spec/unit/type/file/mode_spec.rb +1 -1
  319. data/spec/unit/type/file/source_spec.rb +0 -1
  320. data/spec/unit/type/file_spec.rb +12 -6
  321. data/spec/unit/type/package_spec.rb +1 -1
  322. data/spec/unit/type_spec.rb +20 -0
  323. data/spec/unit/util/backups_spec.rb +0 -2
  324. data/spec/unit/util/execution_spec.rb +0 -29
  325. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  326. data/spec/unit/util/run_mode_spec.rb +21 -121
  327. data/spec/unit/util/windows/string_spec.rb +1 -3
  328. data/spec/unit/util/yaml_spec.rb +0 -54
  329. data/spec/unit/util_spec.rb +0 -18
  330. metadata +48 -219
  331. data/conf/auth.conf +0 -150
  332. data/lib/puppet/application/cert.rb +0 -76
  333. data/lib/puppet/application/key.rb +0 -4
  334. data/lib/puppet/application/man.rb +0 -4
  335. data/lib/puppet/application/status.rb +0 -4
  336. data/lib/puppet/face/key.rb +0 -16
  337. data/lib/puppet/face/man.rb +0 -145
  338. data/lib/puppet/face/module/build.rb +0 -14
  339. data/lib/puppet/face/module/generate.rb +0 -14
  340. data/lib/puppet/face/module/search.rb +0 -103
  341. data/lib/puppet/face/status.rb +0 -51
  342. data/lib/puppet/indirector/certificate/file.rb +0 -9
  343. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  344. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  345. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  346. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  347. data/lib/puppet/indirector/file_content/http.rb +0 -22
  348. data/lib/puppet/indirector/key/file.rb +0 -46
  349. data/lib/puppet/indirector/key/memory.rb +0 -7
  350. data/lib/puppet/indirector/ssl_file.rb +0 -162
  351. data/lib/puppet/indirector/status.rb +0 -3
  352. data/lib/puppet/indirector/status/local.rb +0 -12
  353. data/lib/puppet/indirector/status/rest.rb +0 -27
  354. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  355. data/lib/puppet/network/auth_config_parser.rb +0 -90
  356. data/lib/puppet/network/authstore.rb +0 -283
  357. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  358. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  359. data/lib/puppet/network/http/base_pool.rb +0 -36
  360. data/lib/puppet/network/http/compression.rb +0 -127
  361. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  362. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  363. data/lib/puppet/network/rest_controller.rb +0 -2
  364. data/lib/puppet/network/rights.rb +0 -210
  365. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  366. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  367. data/lib/puppet/parser/environment_compiler.rb +0 -202
  368. data/lib/puppet/pops/types/enumeration.rb +0 -16
  369. data/lib/puppet/resource/capability_finder.rb +0 -154
  370. data/lib/puppet/rest/errors.rb +0 -15
  371. data/lib/puppet/rest/response.rb +0 -35
  372. data/lib/puppet/rest/route.rb +0 -85
  373. data/lib/puppet/rest/routes.rb +0 -135
  374. data/lib/puppet/ssl/host.rb +0 -505
  375. data/lib/puppet/ssl/key.rb +0 -61
  376. data/lib/puppet/ssl/validator.rb +0 -61
  377. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  378. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  379. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  380. data/lib/puppet/status.rb +0 -40
  381. data/lib/puppet/util/connection.rb +0 -88
  382. data/lib/puppet/util/fact_dif.rb +0 -62
  383. data/lib/puppet/util/ssl.rb +0 -83
  384. data/lib/puppet/util/windows/api_types.rb +0 -309
  385. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  386. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  387. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  388. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  389. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  390. data/lib/puppet/vendor/pathspec/README.md +0 -53
  391. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  392. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  393. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  394. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  395. data/man/man8/puppet-key.8 +0 -126
  396. data/man/man8/puppet-man.8 +0 -76
  397. data/man/man8/puppet-status.8 +0 -108
  398. data/spec/integration/network/authconfig_spec.rb +0 -256
  399. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  400. data/spec/unit/application/man_spec.rb +0 -52
  401. data/spec/unit/capability_spec.rb +0 -414
  402. data/spec/unit/face/key_spec.rb +0 -9
  403. data/spec/unit/face/module/search_spec.rb +0 -231
  404. data/spec/unit/face/status_spec.rb +0 -9
  405. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  406. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  407. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  408. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  409. data/spec/unit/indirector/key/file_spec.rb +0 -78
  410. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  411. data/spec/unit/indirector/status/local_spec.rb +0 -10
  412. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  413. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  414. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  415. data/spec/unit/network/authstore_spec.rb +0 -422
  416. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  417. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  418. data/spec/unit/network/http/compression_spec.rb +0 -240
  419. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  420. data/spec/unit/network/http_spec.rb +0 -9
  421. data/spec/unit/network/rights_spec.rb +0 -439
  422. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  423. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  424. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  425. data/spec/unit/rest/route_spec.rb +0 -132
  426. data/spec/unit/ssl/host_spec.rb +0 -645
  427. data/spec/unit/ssl/key_spec.rb +0 -173
  428. data/spec/unit/ssl/validator_spec.rb +0 -278
  429. data/spec/unit/status_spec.rb +0 -45
  430. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,184 +0,0 @@
1
- class Puppet::Network::HTTP::ConnectionAdapter < Puppet::Network::HTTP::Connection
2
- def initialize(host, port, options = {})
3
- super(host, port, options)
4
-
5
- @client = Puppet.runtime[:http]
6
- end
7
-
8
- def get(path, headers = {}, options = {})
9
- headers ||= {}
10
- options[:ssl_context] ||= resolve_ssl_context
11
- options[:redirect_limit] ||= @redirect_limit
12
-
13
- with_error_handling do
14
- resp = @client.get(to_url(path), headers: headers, options: options)
15
- resp.nethttp
16
- end
17
- end
18
-
19
- def post(path, data, headers = nil, options = {})
20
- headers ||= {}
21
- headers['Content-Type'] ||= "application/x-www-form-urlencoded"
22
- data ||= ''
23
- options[:ssl_context] ||= resolve_ssl_context
24
- options[:redirect_limit] ||= @redirect_limit
25
-
26
- with_error_handling do
27
- resp = @client.post(to_url(path), data, headers: headers, options: options)
28
- resp.nethttp
29
- end
30
- end
31
-
32
- def head(path, headers = {}, options = {})
33
- headers ||= {}
34
- options[:ssl_context] ||= resolve_ssl_context
35
- options[:redirect_limit] ||= @redirect_limit
36
-
37
- with_error_handling do
38
- resp = @client.head(to_url(path), headers: headers, options: options)
39
- resp.nethttp
40
- end
41
- end
42
-
43
- def delete(path, headers = {'Depth' => 'Infinity'}, options = {})
44
- headers ||= {}
45
- options[:ssl_context] ||= resolve_ssl_context
46
- options[:redirect_limit] ||= @redirect_limit
47
-
48
- with_error_handling do
49
- resp = @client.delete(to_url(path), headers: headers, options: options)
50
- resp.nethttp
51
- end
52
- end
53
-
54
- def put(path, data, headers = nil, options = {})
55
- headers ||= {}
56
- headers['Content-Type'] ||= "application/x-www-form-urlencoded"
57
- data ||= ''
58
- options[:ssl_context] ||= resolve_ssl_context
59
- options[:redirect_limit] ||= @redirect_limit
60
-
61
- with_error_handling do
62
- resp = @client.put(to_url(path), data, headers: headers, options: options)
63
- resp.nethttp
64
- end
65
- end
66
-
67
- def request_get(*args, &block)
68
- path, headers = *args
69
- headers ||= {}
70
- options = {
71
- ssl_context: resolve_ssl_context,
72
- redirect_limit: @redirect_limit
73
- }
74
-
75
- resp = @client.get(to_url(path), headers: headers, options: options) do |response|
76
- yield response.nethttp if block_given?
77
- end
78
- resp.nethttp
79
- end
80
-
81
- def request_head(*args, &block)
82
- path, headers = *args
83
- headers ||= {}
84
- options = {
85
- ssl_context: resolve_ssl_context,
86
- redirect_limit: @redirect_limit
87
- }
88
-
89
- response = @client.head(to_url(path), headers: headers, options: options)
90
- yield response.nethttp if block_given?
91
- response.nethttp
92
- end
93
-
94
- def request_post(*args, &block)
95
- path, data, headers = *args
96
- headers ||= {}
97
- headers['Content-Type'] ||= "application/x-www-form-urlencoded"
98
- options = {
99
- ssl_context: resolve_ssl_context,
100
- redirect_limit: @redirect_limit
101
- }
102
-
103
- resp = @client.post(to_url(path), data, headers: headers, options: options) do |response|
104
- yield response.nethttp if block_given?
105
- end
106
- resp.nethttp
107
- end
108
-
109
- private
110
-
111
- # The old Connection class ignores the ssl_context on the Puppet stack,
112
- # and always loads certs/keys based on what is currently in the filesystem.
113
- # If the files are missing, it would attempt to bootstrap the certs/keys
114
- # while in the process of making a network request, due to the call to
115
- # Puppet.lookup(:ssl_host) in Puppet::SSL::Validator::DefaultValidator#setup_connection.
116
- # This class doesn't preserve the boostrap behavior because that is handled
117
- # outside of this class, and can only be triggered by running `puppet ssl` or
118
- # `puppet agent`.
119
- def resolve_ssl_context
120
- # don't need an ssl context for http connections
121
- return nil unless @site.use_ssl?
122
-
123
- # if our verifier has an ssl_context, use that
124
- ctx = @verifier.ssl_context
125
- return ctx if ctx
126
-
127
- # load available certs
128
- cert = Puppet::X509::CertProvider.new
129
- ssl = Puppet::SSL::SSLProvider.new
130
- begin
131
- password = cert.load_private_key_password
132
- ssl.load_context(certname: Puppet[:certname], password: password)
133
- rescue Puppet::SSL::SSLError => e
134
- Puppet.log_exception(e)
135
-
136
- # if we don't have cacerts, then create a root context that doesn't
137
- # trust anything. The old code used to fallback to VERIFY_NONE,
138
- # which we don't want to emulate.
139
- ssl.create_root_context(cacerts: [])
140
- end
141
- end
142
-
143
- def to_url(path)
144
- if path =~ /^https?:\/\//
145
- # The old Connection class accepts a URL as the request path, and sends
146
- # it in "absolute-form" in the request line, e.g. GET https://puppet:8140/.
147
- # See https://httpwg.org/specs/rfc7230.html#absolute-form. It just so happens
148
- # to work because HTTP 1.1 servers are required to accept absolute-form even
149
- # though clients are only supposed to send them to proxies, so the proxy knows
150
- # what upstream server to CONNECT to. This method creates a URL using the
151
- # scheme/host/port that the connection was created with, and appends the path
152
- # and query portions of the absolute-form. The resulting request will use "origin-form"
153
- # as it should have done all along.
154
- abs_form = URI(path)
155
- url = URI("#{@site.addr}/#{normalize_path(abs_form.path)}")
156
- url.query = abs_form.query if abs_form.query
157
- url
158
- else
159
- URI("#{@site.addr}/#{normalize_path(path)}")
160
- end
161
- end
162
-
163
- def normalize_path(path)
164
- if path[0] == '/'
165
- path[1..-1]
166
- else
167
- path
168
- end
169
- end
170
-
171
- def with_error_handling(&block)
172
- yield
173
- rescue Puppet::HTTP::TooManyRedirects => e
174
- raise Puppet::Network::HTTP::RedirectionLimitExceededException.new(_("Too many HTTP redirections for %{host}:%{port}") % { host: @host, port: @port }, e)
175
- rescue Puppet::HTTP::HTTPError => e
176
- Puppet.log_exception(e, e.message)
177
- case e.cause
178
- when Net::OpenTimeout, Net::ReadTimeout, Net::HTTPError, EOFError
179
- raise e.cause
180
- else
181
- raise e
182
- end
183
- end
184
- end
@@ -1,28 +0,0 @@
1
- # A pool that does not cache HTTP connections.
2
- #
3
- # @api private
4
- class Puppet::Network::HTTP::NoCachePool < Puppet::Network::HTTP::BasePool
5
- def initialize(factory = Puppet::Network::HTTP::Factory.new)
6
- Puppet.deprecation_warning(_('Puppet::Network::HTTP::NoCachePool is deprecated.'))
7
- @factory = factory
8
- end
9
-
10
- # Yields a <tt>Net::HTTP</tt> connection.
11
- #
12
- # @yieldparam http [Net::HTTP] An HTTP connection
13
- def with_connection(site, verifier, &block)
14
- http = @factory.create_connection(site)
15
- start(site, verifier, http)
16
- begin
17
- yield http
18
- ensure
19
- return unless http.started?
20
- Puppet.debug("Closing connection for #{site}")
21
- http.finish
22
- end
23
- end
24
-
25
- def close
26
- # do nothing
27
- end
28
- end
@@ -1,2 +0,0 @@
1
- class Puppet::Network::RESTController # :nodoc:
2
- end
@@ -1,210 +0,0 @@
1
- require 'puppet/network/authstore'
2
- require 'puppet/error'
3
-
4
- module Puppet::Network
5
-
6
- # this exception is thrown when a request is not authenticated
7
- class AuthorizationError < Puppet::Error; end
8
-
9
- # Rights class manages a list of ACLs for paths.
10
- class Rights
11
- # Check that name is allowed or not
12
- def allowed?(name, *args)
13
- !is_forbidden_and_why?(name, :node => args[0], :ip => args[1])
14
- end
15
-
16
- def is_request_forbidden_and_why?(method, path, params)
17
- methods_to_check = if method == :head
18
- # :head is ok if either :find or :save is ok.
19
- [:find, :save]
20
- else
21
- [method]
22
- end
23
- authorization_failure_exceptions = methods_to_check.map do |m|
24
- is_forbidden_and_why?(path, params.merge({:method => m}))
25
- end
26
- if authorization_failure_exceptions.include? nil
27
- # One of the methods we checked is ok, therefore this request is ok.
28
- nil
29
- else
30
- # Just need to return any of the failure exceptions.
31
- authorization_failure_exceptions.first
32
- end
33
- end
34
-
35
- def is_forbidden_and_why?(name, args = {})
36
- res = :nomatch
37
- @rights.find do |acl|
38
- found = false
39
- # an acl can return :dunno, which means "I'm not qualified to answer your question,
40
- # please ask someone else". This is used when for instance an acl matches, but not for the
41
- # current rest method, where we might think some other acl might be more specific.
42
- match = acl.match?(name)
43
- if match
44
- args[:match] = match
45
- if (res = acl.allowed?(args[:node], args[:ip], args)) != :dunno
46
- # return early if we're allowed
47
- return nil if res
48
- # we matched, select this acl
49
- found = true
50
- end
51
- end
52
- found
53
- end
54
-
55
- # if we end up here, then that means we either didn't match or failed, in any
56
- # case will return an error to the outside world
57
- msg = "#{name} [#{args[:method]}]"
58
-
59
- AuthorizationError.new(_("Forbidden request: %{msg}") % { msg: msg })
60
- end
61
-
62
- def initialize
63
- @rights = []
64
- end
65
-
66
- def [](name)
67
- @rights.find { |acl| acl == name }
68
- end
69
-
70
- def empty?
71
- @rights.empty?
72
- end
73
-
74
- def include?(name)
75
- @rights.include?(name)
76
- end
77
-
78
- def each
79
- @rights.each { |r| yield r.name,r }
80
- end
81
-
82
- # Define a new right to which access can be provided.
83
- def newright(name, line=nil, file=nil)
84
- add_right( Right.new(name, line, file) )
85
- end
86
-
87
- private
88
-
89
- def add_right(right)
90
- @rights << right
91
- right
92
- end
93
-
94
- # Retrieve a right by name.
95
- def right(name)
96
- self[name]
97
- end
98
-
99
- # A right.
100
- class Right < Puppet::Network::AuthStore
101
- attr_accessor :name, :key
102
- # Overriding Object#methods sucks for debugging. If we're in here in the
103
- # future, it would be nice to rename Right#methods
104
- attr_accessor :methods, :environment, :authentication
105
- attr_accessor :line, :file
106
-
107
- ALL = [:save, :destroy, :find, :search]
108
-
109
- Puppet::Util.logmethods(self, true)
110
-
111
- def initialize(name, line, file)
112
- @methods = []
113
- @environment = []
114
- @authentication = true # defaults to authenticated
115
- @name = name
116
- @line = line || 0
117
- @file = file
118
- @methods = ALL
119
-
120
- case name
121
- when /^\//
122
- @key = Regexp.new("^" + Regexp.escape(name))
123
- when /^~/ # this is a regex
124
- @name = name.gsub(/^~\s+/,'')
125
- @key = Regexp.new(@name)
126
- else
127
- raise ArgumentError, _("Unknown right type '%{name}'") % { name: name }
128
- end
129
-
130
- super()
131
- end
132
-
133
- def to_s
134
- "access[#{@name}]"
135
- end
136
-
137
- # There's no real check to do at this point
138
- def valid?
139
- true
140
- end
141
-
142
- # does this right is allowed for this triplet?
143
- # if this right is too restrictive (ie we don't match this access method)
144
- # then return :dunno so that upper layers have a chance to try another right
145
- # tailored to the given method
146
- def allowed?(name, ip, args = {})
147
- if not @methods.include?(args[:method])
148
- return :dunno
149
- elsif @environment.size > 0 and not @environment.include?(args[:environment])
150
- return :dunno
151
- elsif (@authentication and not args[:authenticated])
152
- return :dunno
153
- end
154
-
155
- begin
156
- # make sure any capture are replaced if needed
157
- interpolate(args[:match]) if args[:match]
158
- res = super(name,ip)
159
- ensure
160
- reset_interpolation
161
- end
162
- res
163
- end
164
-
165
- # restrict this right to some method only
166
- def restrict_method(m)
167
- m = m.intern if m.is_a?(String)
168
-
169
- raise ArgumentError, _("'%{m}' is not an allowed value for method directive") % { m: m } unless ALL.include?(m)
170
-
171
- # if we were allowing all methods, then starts from scratch
172
- if @methods === ALL
173
- @methods = []
174
- end
175
-
176
- raise ArgumentError, _("'%{m}' is already in the '%{name}' ACL") % { m: m, name: name } if @methods.include?(m)
177
-
178
- @methods << m
179
- end
180
-
181
- def restrict_environment(environment)
182
- env = Puppet.lookup(:environments).get(environment)
183
- raise ArgumentError, _("'%{env}' is already in the '%{name}' ACL") % { env: env, name: name } if @environment.include?(env)
184
-
185
- @environment << env
186
- end
187
-
188
- def restrict_authenticated(authentication)
189
- case authentication
190
- when "yes", "on", "true", true
191
- authentication = true
192
- when "no", "off", "false", false, "all" ,"any", :all, :any
193
- authentication = false
194
- else
195
- raise ArgumentError, _("'%{name}' incorrect authenticated value: %{authentication}") % { name: name, authentication: authentication }
196
- end
197
- @authentication = authentication
198
- end
199
-
200
- def match?(key)
201
- # otherwise match with the regex
202
- self.key.match(key)
203
- end
204
-
205
- def ==(name)
206
- self.name == name.gsub(/^~\s+/,'')
207
- end
208
- end
209
- end
210
- end
@@ -1,66 +0,0 @@
1
- class Puppet::Parser::Compiler
2
- # Validator that asserts that all capability resources that are referenced by 'consume' or 'require' has
3
- # been exported by some other resource in the environment
4
- #
5
- # @deprecated application orchestration will be removed in puppet 7
6
- class CatalogValidator::EnvironmentRelationshipValidator < CatalogValidator
7
-
8
- def validate
9
- assumed_exports = {}
10
- exported = {}
11
- catalog.resources.each do |resource|
12
- next unless resource.is_a?(Puppet::Parser::Resource)
13
- resource.eachparam do |param|
14
- pclass = Puppet::Type.metaparamclass(param.name)
15
- validate_relationship(resource, param, assumed_exports, exported) if !pclass.nil? && pclass < Puppet::Type::RelationshipMetaparam
16
- end
17
- end
18
- assumed_exports.each_pair do |key, (param, cap)|
19
- raise CatalogValidationError.new(_("Capability '%{cap}' referenced by '%{param}' is never exported") % { cap: cap, param: param.name }, param.file, param.line) unless exported.include?(key)
20
- end
21
- nil
22
- end
23
-
24
- private
25
-
26
- def validate_relationship(resource, param, assumed_exports, exported)
27
- case param.name
28
- when :require, :consume
29
- add_capability_ref(param, param.value, assumed_exports)
30
- when :export
31
- add_exported(resource, param, param.value, exported)
32
- end
33
- end
34
-
35
- def add_capability_ref(param, value, assumed_exports)
36
- case value
37
- when Array
38
- value.each { |v| add_capability_ref(param, v, assumed_exports) }
39
- when Puppet::Resource
40
- rt = value.resource_type
41
- unless rt.nil? || !rt.is_capability?
42
- title_key = catalog.title_key_for_ref(value.ref)
43
- assumed_exports[title_key] = [param, value]
44
- end
45
- nil
46
- end
47
- end
48
-
49
- def add_exported(resource, param, value, hash)
50
- case value
51
- when Array
52
- value.each { |v| add_exported(resource, param, v, hash) }
53
- when Puppet::Resource
54
- rt = value.resource_type
55
- unless rt.nil? || !rt.is_capability?
56
- title_key = catalog.title_key_for_ref(value.ref)
57
- if hash.include?(title_key)
58
- raise CatalogValidationError.new(_("'%{value}' is exported by both '%{hash}' and '%{resource}'") % { value: value, hash: hash[title_key], resource: resource }, param.file, param.line)
59
- else
60
- hash[title_key] = resource
61
- end
62
- end
63
- end
64
- end
65
- end
66
- end