puppet 6.20.0-x86-mingw32 → 7.4.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (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,26 +1,17 @@
1
- #
2
- # @api private
3
- #
4
1
  # Resolver base class. Each resolver represents a different strategy for
5
2
  # resolving a service name into a list of candidate servers and ports.
6
3
  #
7
4
  # @abstract Subclass and override {#resolve} to create a new resolver.
8
- #
5
+ # @api public
9
6
  class Puppet::HTTP::Resolver
10
7
  #
11
- # @api private
12
- #
13
- # Create a new resolver
8
+ # Create a new resolver.
14
9
  #
15
10
  # @param [Puppet::HTTP::Client] client
16
- #
17
11
  def initialize(client)
18
12
  @client = client
19
13
  end
20
14
 
21
- #
22
- # @api private
23
- #
24
15
  # Return a working server/port for the resolver. This is the base
25
16
  # implementation and is meant to be a placeholder.
26
17
  #
@@ -33,14 +24,12 @@ class Puppet::HTTP::Resolver
33
24
  #
34
25
  # @raise [NotImplementedError] this base class is not implemented
35
26
  #
27
+ # @api public
36
28
  def resolve(session, name, ssl_context: nil, canceled_handler: nil)
37
29
  raise NotImplementedError
38
30
  end
39
31
 
40
- #
41
- # @api private
42
- #
43
- # Check a given connection to establish if it can be relied on for future use
32
+ # Check a given connection to establish if it can be relied on for future use.
44
33
  #
45
34
  # @param [Puppet::HTTP::Session] session
46
35
  # @param [Puppet::HTTP::Service] service
@@ -48,6 +37,7 @@ class Puppet::HTTP::Resolver
48
37
  #
49
38
  # @return [Boolean] Returns true if a connection is successful, false otherwise
50
39
  #
40
+ # @api public
51
41
  def check_connection?(session, service, ssl_context: nil)
52
42
  service.connect(ssl_context: ssl_context)
53
43
  return true
@@ -1,12 +1,10 @@
1
- #
2
- # @api private
3
- #
4
1
  # Use the server_list setting to resolve a service. This resolver is only used
5
2
  # if server_list is set either on the command line or in the configuration file.
6
3
  #
4
+ # @api public
7
5
  class Puppet::HTTP::Resolver::ServerList < Puppet::HTTP::Resolver
8
- #
9
- # @api private
6
+
7
+ # Create a server list resolver.
10
8
  #
11
9
  # @param [Puppet::HTTP::Client] client
12
10
  # @param [Array<String>] server_list_setting array of servers set via the
@@ -24,15 +22,12 @@ class Puppet::HTTP::Resolver::ServerList < Puppet::HTTP::Resolver
24
22
  @services = services
25
23
  end
26
24
 
27
- #
28
- # @api private
29
- #
30
25
  # Walk the server_list to find a server and port that will connect successfully.
31
26
  #
32
- # @param [Puppet::HTTP::Session] session <description>
27
+ # @param [Puppet::HTTP::Session] session
33
28
  # @param [Symbol] name the name of the service being resolved
34
29
  # @param [Puppet::SSL::SSLContext] ssl_context
35
- # @param [Proc] canceled_handler (nil) optional callback allowing a resolver
30
+ # @param [Proc] canceled_handler optional callback allowing a resolver
36
31
  # to cancel resolution.
37
32
  #
38
33
  # @return [nil] return nil if the service to be resolved does not support
@@ -43,6 +38,7 @@ class Puppet::HTTP::Resolver::ServerList < Puppet::HTTP::Resolver
43
38
  # @raise [Puppet::Error] raise if none of the servers defined in server_list
44
39
  # are available
45
40
  #
41
+ # @api public
46
42
  def resolve(session, name, ssl_context: nil, canceled_handler: nil)
47
43
  # If we're configured to use an explicit service host, e.g. report_server
48
44
  # then don't use server_list to resolve the `:report` service.
@@ -1,24 +1,21 @@
1
- #
2
- # @api private
3
- #
4
1
  # Resolve a service using settings. This is the default resolver if none of the
5
2
  # other resolvers find a functional connection.
6
3
  #
4
+ # @api public
7
5
  class Puppet::HTTP::Resolver::Settings < Puppet::HTTP::Resolver
8
- #
9
- # @api private
10
- #
6
+
11
7
  # Resolve a service using the default server and port settings for this service.
12
8
  #
13
9
  # @param [Puppet::HTTP::Session] session
14
10
  # @param [Symbol] name the name of the service to be resolved
15
11
  # @param [Puppet::SSL::SSLContext] ssl_context
16
- # @param [Proc] canceled_handler (nil) optional callback allowing a resolver
12
+ # @param [Proc] canceled_handler optional callback allowing a resolver
17
13
  # to cancel resolution.
18
14
  #
19
15
  # @return [Puppet::HTTP::Service] if the service successfully connects,
20
16
  # return it. Otherwise, return nil.
21
17
  #
18
+ # @api public
22
19
  def resolve(session, name, ssl_context: nil, canceled_handler: nil)
23
20
  service = Puppet::HTTP::Service.create_service(@client, session, name)
24
21
  check_connection?(session, service, ssl_context: ssl_context) ? service : nil
@@ -1,11 +1,9 @@
1
+ # Resolve a service using DNS SRV records.
1
2
  #
2
- # @api private
3
- #
4
- # Resolve a service using SRV
5
- #
3
+ # @api public
6
4
  class Puppet::HTTP::Resolver::SRV < Puppet::HTTP::Resolver
7
- #
8
- # @api private
5
+
6
+ # Create an DNS SRV resolver.
9
7
  #
10
8
  # @param [Puppet::HTTP::Client] client
11
9
  # @param [String] domain srv domain
@@ -14,23 +12,21 @@ class Puppet::HTTP::Resolver::SRV < Puppet::HTTP::Resolver
14
12
  def initialize(client, domain:, dns: Resolv::DNS.new)
15
13
  @client = client
16
14
  @srv_domain = domain
17
- @delegate = Puppet::Network::Resolver.new(dns)
15
+ @delegate = Puppet::HTTP::DNS.new(dns)
18
16
  end
19
17
 
20
- #
21
- # @api private
22
- #
23
18
  # Walk the available srv records and return the first that successfully connects
24
19
  #
25
20
  # @param [Puppet::HTTP::Session] session
26
21
  # @param [Symbol] name the service being resolved
27
22
  # @param [Puppet::SSL::SSLContext] ssl_context
28
- # @param [Proc] canceled_handler (nil) optional callback allowing a resolver
23
+ # @param [Proc] canceled_handler optional callback allowing a resolver
29
24
  # to cancel resolution.
30
25
  #
31
26
  # @return [Puppet::HTTP::Service] if an available service is found, return
32
27
  # it. Return nil otherwise.
33
28
  #
29
+ # @api public
34
30
  def resolve(session, name, ssl_context: nil, canceled_handler: nil)
35
31
  # Here we pass our HTTP service name as the DNS SRV service name
36
32
  # This is fine for :ca, but note that :puppet and :file are handled
@@ -1,118 +1,100 @@
1
+ # Represents the response returned from the server from an HTTP request.
1
2
  #
2
- # @api private
3
- #
4
- # Represents the response returned from the server from an HTTP request
5
- #
3
+ # @api abstract
4
+ # @api public
6
5
  class Puppet::HTTP::Response
7
- # @api private
8
- # @return [Net::HTTP] the Net::HTTP response
9
- attr_reader :nethttp
10
-
11
- # @api private
12
- # @return [URI] the response uri
6
+ # @return [URI] the response url
13
7
  attr_reader :url
14
8
 
9
+ # Create a response associated with the URL.
15
10
  #
16
- # @api private
17
- #
18
- # Object to represent the response returned from an HTTP request
19
- #
20
- # @param [Net::HTTP] nethttp the request response
21
11
  # @param [URI] url
22
- #
23
- def initialize(nethttp, url)
24
- @nethttp = nethttp
12
+ # @param [Integer] HTTP status
13
+ # @param [String] HTTP reason
14
+ def initialize(url, code, reason)
25
15
  @url = url
16
+ @code = code
17
+ @reason = reason
26
18
  end
27
19
 
28
- #
29
- # @api private
30
- #
31
- # Extract the response code
20
+ # Return the response code.
32
21
  #
33
22
  # @return [Integer] Response code for the request
34
23
  #
24
+ # @api public
35
25
  def code
36
- @nethttp.code.to_i
26
+ @code
37
27
  end
38
28
 
39
- #
40
- # @api private
41
- #
42
- # Extract the response message
29
+ # Return the response message.
43
30
  #
44
31
  # @return [String] Response message for the request
45
32
  #
33
+ # @api public
46
34
  def reason
47
- @nethttp.message
35
+ @reason
48
36
  end
49
37
 
50
- #
51
- # @api private
52
- #
53
38
  # Returns the entire response body. Can be used instead of
54
- # Puppet::HTTP::Response.read_body, but both methods cannot be used for the
39
+ # `Puppet::HTTP::Response.read_body`, but both methods cannot be used for the
55
40
  # same response.
56
41
  #
57
42
  # @return [String] Response body for the request
58
43
  #
44
+ # @api public
59
45
  def body
60
- @nethttp.body
46
+ raise NotImplementedError
61
47
  end
62
48
 
63
- #
64
- # @api private
65
- #
66
49
  # Streams the response body to the caller in chunks. Can be used instead of
67
- # Puppet::HTTP::Response.body, but both methods cannot be used for the same
50
+ # `Puppet::HTTP::Response.body`, but both methods cannot be used for the same
68
51
  # response.
69
52
  #
70
53
  # @yield [String] Streams the response body in chunks
71
54
  #
72
55
  # @raise [ArgumentError] raise if a block is not given
73
56
  #
57
+ # @api public
74
58
  def read_body(&block)
75
- raise ArgumentError, "A block is required" unless block_given?
76
-
77
- @nethttp.read_body(&block)
59
+ raise NotImplementedError
78
60
  end
79
61
 
80
- #
81
- # @api private
82
- #
83
- # Check if the request received a response of success
62
+ # Check if the request received a response of success (HTTP 2xx).
84
63
  #
85
64
  # @return [Boolean] Returns true if the response indicates success
86
65
  #
66
+ # @api public
87
67
  def success?
88
- @nethttp.is_a?(Net::HTTPSuccess)
68
+ 200 <= @code && @code < 300
89
69
  end
90
70
 
91
- # @api private
92
- #
93
71
  # Get a header case-insensitively.
72
+ #
94
73
  # @param [String] name The header name
95
74
  # @return [String] The header value
96
75
  #
76
+ # @api public
97
77
  def [](name)
98
- @nethttp[name]
78
+ raise NotImplementedError
99
79
  end
100
80
 
101
- # @api private
102
- #
103
81
  # Yield each header name and value. Returns an enumerator if no block is given.
104
82
  #
105
83
  # @yieldparam [String] header name
106
84
  # @yieldparam [String] header value
107
85
  #
86
+ # @api public
108
87
  def each_header(&block)
109
- @nethttp.each_header(&block)
88
+ raise NotImplementedError
110
89
  end
111
90
 
112
- # @api private
113
- #
114
- # Drain the response body.
91
+ # Ensure the response body is fully read so that the server is not blocked
92
+ # waiting for us to read data from the socket. Also if the caller streamed
93
+ # the response, but didn't read the data, we need a way to drain the socket
94
+ # before adding the connection back to the connection pool, otherwise the
95
+ # unread response data would "leak" into the next HTTP request/response.
115
96
  #
97
+ # @api public
116
98
  def drain
117
99
  body
118
100
  true
@@ -0,0 +1,24 @@
1
+ module Puppet::HTTP::ResponseConverter
2
+ module_function
3
+
4
+ # Borrowed from puppetserver, see https://github.com/puppetlabs/puppetserver/commit/a1ebeaaa5af590003ccd23c89f808ba4f0c89609
5
+ def to_ruby_response(response)
6
+ str_code = response.code.to_s
7
+
8
+ # Copied from Net::HTTPResponse because it is private there.
9
+ clazz = Net::HTTPResponse::CODE_TO_OBJ[str_code] or
10
+ Net::HTTPResponse::CODE_CLASS_TO_OBJ[str_code[0,1]] or
11
+ Net::HTTPUnknownResponse
12
+ result = clazz.new(nil, str_code, nil)
13
+ result.body = response.body
14
+ # This is nasty, nasty. But apparently there is no way to create
15
+ # an instance of Net::HttpResponse from outside of the library and have
16
+ # the body be readable, unless you do stupid things like this.
17
+ result.instance_variable_set(:@read, true)
18
+ response.each_header do |k,v|
19
+ result[k] = v
20
+ end
21
+ result
22
+ end
23
+ end
24
+
@@ -0,0 +1,42 @@
1
+ # Adapts Net::HTTPResponse to Puppet::HTTP::Response
2
+ #
3
+ # @api public
4
+ class Puppet::HTTP::ResponseNetHTTP < Puppet::HTTP::Response
5
+
6
+ # Create a response associated with the URL.
7
+ #
8
+ # @param [URI] url
9
+ # @param [Net::HTTPResponse] nethttp The response
10
+ def initialize(url, nethttp)
11
+ super(url, nethttp.code.to_i, nethttp.message)
12
+
13
+ @nethttp = nethttp
14
+ end
15
+
16
+ # (see Puppet::HTTP::Response#body)
17
+ def body
18
+ @nethttp.body
19
+ end
20
+
21
+ # (see Puppet::HTTP::Response#read_body)
22
+ def read_body(&block)
23
+ raise ArgumentError, "A block is required" unless block_given?
24
+
25
+ @nethttp.read_body(&block)
26
+ end
27
+
28
+ # (see Puppet::HTTP::Response#success?)
29
+ def success?
30
+ @nethttp.is_a?(Net::HTTPSuccess)
31
+ end
32
+
33
+ # (see Puppet::HTTP::Response#[])
34
+ def [](name)
35
+ @nethttp[name]
36
+ end
37
+
38
+ # (see Puppet::HTTP::Response#each_header)
39
+ def each_header(&block)
40
+ @nethttp.each_header(&block)
41
+ end
42
+ end
@@ -1,28 +1,20 @@
1
1
  require 'date'
2
2
  require 'time'
3
3
 
4
- #
5
- # @api private
6
- #
7
4
  # Parse information relating to responses containing a Retry-After headers
8
5
  #
6
+ # @api private
9
7
  class Puppet::HTTP::RetryAfterHandler
10
- #
11
- # @api private
12
- #
8
+
13
9
  # Create a handler to allow the system to sleep between HTTP requests
14
10
  #
15
11
  # @param [Integer] retry_limit number of retries allowed
16
12
  # @param [Integer] max_sleep maximum sleep time allowed
17
- #
18
13
  def initialize(retry_limit, max_sleep)
19
14
  @retry_limit = retry_limit
20
15
  @max_sleep = max_sleep
21
16
  end
22
17
 
23
- #
24
- # @api private
25
- #
26
18
  # Does the response from the server tell us to wait until we attempt the next
27
19
  # retry?
28
20
  #
@@ -32,6 +24,7 @@ class Puppet::HTTP::RetryAfterHandler
32
24
  # @return [Boolean] Return true if the response code is 429 or 503, return
33
25
  # false otherwise
34
26
  #
27
+ # @api private
35
28
  def retry_after?(request, response)
36
29
  case response.code
37
30
  when 429, 503
@@ -41,9 +34,6 @@ class Puppet::HTTP::RetryAfterHandler
41
34
  end
42
35
  end
43
36
 
44
- #
45
- # @api private
46
- #
47
37
  # The amount of time to wait before attempting a retry
48
38
  #
49
39
  # @param [Net::HTTP] request
@@ -55,6 +45,7 @@ class Puppet::HTTP::RetryAfterHandler
55
45
  # @raise [Puppet::HTTP::TooManyRetryAfters] raise if we have hit our retry
56
46
  # limit
57
47
  #
48
+ # @api private
58
49
  def retry_after_interval(request, response, retries)
59
50
  raise Puppet::HTTP::TooManyRetryAfters.new(request.uri) if retries >= @retry_limit
60
51