puppet 6.19.1-x86-mingw32 → 7.0.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 (440) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +19 -20
  4. data/README.md +1 -1
  5. data/conf/fileserver.conf +5 -10
  6. data/ext/build_defaults.yaml +1 -1
  7. data/ext/osx/file_mapping.yaml +0 -5
  8. data/ext/project_data.yaml +1 -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 +15 -11
  16. data/lib/puppet/application/ssl.rb +1 -1
  17. data/lib/puppet/configurer.rb +28 -33
  18. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  19. data/lib/puppet/defaults.rb +95 -159
  20. data/lib/puppet/environments.rb +10 -25
  21. data/lib/puppet/face/config.rb +10 -0
  22. data/lib/puppet/face/epp.rb +12 -2
  23. data/lib/puppet/face/facts.rb +66 -6
  24. data/lib/puppet/face/help.rb +1 -1
  25. data/lib/puppet/face/plugin.rb +5 -8
  26. data/lib/puppet/ffi/windows.rb +12 -0
  27. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  28. data/lib/puppet/ffi/windows/constants.rb +404 -0
  29. data/lib/puppet/ffi/windows/functions.rb +628 -0
  30. data/lib/puppet/ffi/windows/structs.rb +338 -0
  31. data/lib/puppet/file_serving/configuration.rb +0 -5
  32. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  33. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  34. data/lib/puppet/file_serving/mount.rb +1 -2
  35. data/lib/puppet/forge/repository.rb +0 -1
  36. data/lib/puppet/functions/epp.rb +1 -0
  37. data/lib/puppet/functions/inline_epp.rb +1 -0
  38. data/lib/puppet/generate/models/type/type.rb +4 -1
  39. data/lib/puppet/http.rb +22 -13
  40. data/lib/puppet/http/client.rb +164 -114
  41. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  42. data/lib/puppet/http/errors.rb +16 -0
  43. data/lib/puppet/http/external_client.rb +5 -7
  44. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  45. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  46. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  47. data/lib/puppet/http/proxy.rb +137 -0
  48. data/lib/puppet/http/redirector.rb +4 -12
  49. data/lib/puppet/http/resolver.rb +5 -15
  50. data/lib/puppet/http/resolver/server_list.rb +6 -10
  51. data/lib/puppet/http/resolver/settings.rb +4 -7
  52. data/lib/puppet/http/resolver/srv.rb +7 -11
  53. data/lib/puppet/http/response.rb +36 -54
  54. data/lib/puppet/http/response_converter.rb +24 -0
  55. data/lib/puppet/http/response_net_http.rb +42 -0
  56. data/lib/puppet/http/retry_after_handler.rb +4 -13
  57. data/lib/puppet/http/service.rb +12 -26
  58. data/lib/puppet/http/service/ca.rb +11 -22
  59. data/lib/puppet/http/service/compiler.rb +22 -69
  60. data/lib/puppet/http/service/file_server.rb +18 -27
  61. data/lib/puppet/http/service/puppetserver.rb +26 -12
  62. data/lib/puppet/http/service/report.rb +8 -10
  63. data/lib/puppet/http/session.rb +11 -20
  64. data/lib/puppet/{network/http → http}/site.rb +1 -2
  65. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  66. data/lib/puppet/indirector/fact_search.rb +60 -0
  67. data/lib/puppet/indirector/facts/facter.rb +24 -3
  68. data/lib/puppet/indirector/facts/json.rb +27 -0
  69. data/lib/puppet/indirector/facts/rest.rb +3 -22
  70. data/lib/puppet/indirector/facts/yaml.rb +3 -58
  71. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  72. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  73. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  74. data/lib/puppet/indirector/file_server.rb +1 -8
  75. data/lib/puppet/indirector/generic_http.rb +0 -11
  76. data/lib/puppet/indirector/json.rb +5 -1
  77. data/lib/puppet/indirector/node/json.rb +8 -0
  78. data/lib/puppet/indirector/node/rest.rb +2 -4
  79. data/lib/puppet/indirector/report/json.rb +34 -0
  80. data/lib/puppet/indirector/report/rest.rb +3 -8
  81. data/lib/puppet/indirector/request.rb +0 -101
  82. data/lib/puppet/indirector/rest.rb +12 -263
  83. data/lib/puppet/module_tool/applications.rb +0 -1
  84. data/lib/puppet/network/authconfig.rb +2 -96
  85. data/lib/puppet/network/authorization.rb +13 -35
  86. data/lib/puppet/network/formats.rb +2 -1
  87. data/lib/puppet/network/http.rb +3 -3
  88. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  89. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  90. data/lib/puppet/network/http/connection.rb +247 -316
  91. data/lib/puppet/network/http/handler.rb +0 -1
  92. data/lib/puppet/network/http_pool.rb +16 -34
  93. data/lib/puppet/node.rb +1 -30
  94. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  95. data/lib/puppet/pal/pal_impl.rb +73 -18
  96. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  97. data/lib/puppet/parser/compiler.rb +0 -198
  98. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  99. data/lib/puppet/parser/resource.rb +0 -69
  100. data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
  101. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  102. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  103. data/lib/puppet/pops/issues.rb +0 -5
  104. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  105. data/lib/puppet/pops/model/ast.pp +0 -42
  106. data/lib/puppet/pops/model/ast.rb +0 -290
  107. data/lib/puppet/pops/model/factory.rb +0 -45
  108. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  109. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  110. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  111. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  112. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  113. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  114. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  115. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  116. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  117. data/lib/puppet/pops/types/type_parser.rb +0 -4
  118. data/lib/puppet/pops/types/types.rb +0 -1
  119. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  120. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  121. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  122. data/lib/puppet/provider.rb +0 -13
  123. data/lib/puppet/provider/nameservice.rb +0 -18
  124. data/lib/puppet/provider/package/dpkg.rb +0 -10
  125. data/lib/puppet/provider/package/gem.rb +23 -3
  126. data/lib/puppet/provider/package/pip.rb +0 -1
  127. data/lib/puppet/provider/package/pkg.rb +0 -4
  128. data/lib/puppet/provider/package/portage.rb +1 -1
  129. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  130. data/lib/puppet/provider/service/smf.rb +191 -73
  131. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  132. data/lib/puppet/reference/configuration.rb +2 -0
  133. data/lib/puppet/reference/indirection.rb +1 -1
  134. data/lib/puppet/resource.rb +1 -89
  135. data/lib/puppet/resource/catalog.rb +1 -14
  136. data/lib/puppet/resource/type.rb +3 -119
  137. data/lib/puppet/resource/type_collection.rb +3 -48
  138. data/lib/puppet/runtime.rb +1 -2
  139. data/lib/puppet/settings.rb +45 -33
  140. data/lib/puppet/settings/base_setting.rb +26 -2
  141. data/lib/puppet/settings/integer_setting.rb +17 -0
  142. data/lib/puppet/settings/port_setting.rb +15 -0
  143. data/lib/puppet/settings/priority_setting.rb +5 -4
  144. data/lib/puppet/ssl.rb +10 -6
  145. data/lib/puppet/ssl/base.rb +3 -5
  146. data/lib/puppet/ssl/certificate.rb +0 -6
  147. data/lib/puppet/ssl/certificate_request.rb +1 -12
  148. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  149. data/lib/puppet/ssl/oids.rb +3 -1
  150. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  151. data/lib/puppet/ssl/state_machine.rb +3 -1
  152. data/lib/puppet/ssl/verifier.rb +2 -0
  153. data/lib/puppet/test/test_helper.rb +1 -3
  154. data/lib/puppet/transaction.rb +1 -7
  155. data/lib/puppet/transaction/report.rb +2 -4
  156. data/lib/puppet/type.rb +0 -76
  157. data/lib/puppet/type/file.rb +5 -7
  158. data/lib/puppet/type/file/checksum.rb +1 -1
  159. data/lib/puppet/type/file/source.rb +1 -1
  160. data/lib/puppet/type/filebucket.rb +3 -3
  161. data/lib/puppet/type/package.rb +5 -13
  162. data/lib/puppet/util/execution.rb +0 -11
  163. data/lib/puppet/util/http_proxy.rb +2 -215
  164. data/lib/puppet/util/monkey_patches.rb +0 -46
  165. data/lib/puppet/util/rdoc.rb +0 -7
  166. data/lib/puppet/util/retry_action.rb +1 -1
  167. data/lib/puppet/util/rubygems.rb +5 -1
  168. data/lib/puppet/util/run_mode.rb +9 -1
  169. data/lib/puppet/util/windows.rb +3 -8
  170. data/lib/puppet/util/windows/daemon.rb +360 -0
  171. data/lib/puppet/util/windows/error.rb +1 -0
  172. data/lib/puppet/util/windows/eventlog.rb +4 -9
  173. data/lib/puppet/util/windows/file.rb +8 -242
  174. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  175. data/lib/puppet/util/windows/process.rb +4 -226
  176. data/lib/puppet/util/windows/service.rb +9 -460
  177. data/lib/puppet/util/windows/string.rb +12 -13
  178. data/lib/puppet/util/yaml.rb +0 -22
  179. data/lib/puppet/vendor/require_vendored.rb +0 -1
  180. data/lib/puppet/version.rb +1 -1
  181. data/lib/puppet/x509.rb +5 -1
  182. data/lib/puppet/x509/cert_provider.rb +29 -1
  183. data/locales/puppet.pot +531 -1232
  184. data/man/man5/puppet.conf.5 +37 -97
  185. data/man/man8/puppet-agent.8 +1 -1
  186. data/man/man8/puppet-apply.8 +1 -1
  187. data/man/man8/puppet-catalog.8 +1 -1
  188. data/man/man8/puppet-config.8 +1 -1
  189. data/man/man8/puppet-describe.8 +1 -1
  190. data/man/man8/puppet-device.8 +1 -1
  191. data/man/man8/puppet-doc.8 +1 -1
  192. data/man/man8/puppet-epp.8 +1 -1
  193. data/man/man8/puppet-facts.8 +55 -9
  194. data/man/man8/puppet-filebucket.8 +6 -6
  195. data/man/man8/puppet-generate.8 +1 -1
  196. data/man/man8/puppet-help.8 +1 -1
  197. data/man/man8/puppet-lookup.8 +1 -1
  198. data/man/man8/puppet-module.8 +1 -58
  199. data/man/man8/puppet-node.8 +4 -1
  200. data/man/man8/puppet-parser.8 +1 -1
  201. data/man/man8/puppet-plugin.8 +1 -1
  202. data/man/man8/puppet-report.8 +4 -1
  203. data/man/man8/puppet-resource.8 +1 -1
  204. data/man/man8/puppet-script.8 +1 -1
  205. data/man/man8/puppet-ssl.8 +1 -1
  206. data/man/man8/puppet.8 +2 -2
  207. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  208. data/spec/integration/application/agent_spec.rb +24 -11
  209. data/spec/integration/application/apply_spec.rb +1 -1
  210. data/spec/integration/application/filebucket_spec.rb +16 -16
  211. data/spec/integration/application/help_spec.rb +2 -0
  212. data/spec/integration/application/plugin_spec.rb +23 -1
  213. data/spec/integration/defaults_spec.rb +7 -3
  214. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  215. data/spec/integration/network/http_pool_spec.rb +3 -21
  216. data/spec/integration/parser/catalog_spec.rb +0 -38
  217. data/spec/integration/parser/node_spec.rb +0 -9
  218. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  219. data/spec/integration/type/file_spec.rb +5 -4
  220. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  221. data/spec/integration/util/windows/security_spec.rb +1 -1
  222. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  223. data/spec/lib/puppet_spec/settings.rb +7 -1
  224. data/spec/spec_helper.rb +2 -0
  225. data/spec/unit/agent_spec.rb +0 -2
  226. data/spec/unit/application/config_spec.rb +224 -4
  227. data/spec/unit/application/facts_spec.rb +35 -0
  228. data/spec/unit/application/filebucket_spec.rb +41 -39
  229. data/spec/unit/application/ssl_spec.rb +2 -2
  230. data/spec/unit/certificate_factory_spec.rb +1 -1
  231. data/spec/unit/configurer/downloader_spec.rb +6 -2
  232. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  233. data/spec/unit/configurer_spec.rb +12 -9
  234. data/spec/unit/context/trusted_information_spec.rb +2 -6
  235. data/spec/unit/defaults_spec.rb +77 -28
  236. data/spec/unit/environments_spec.rb +0 -3
  237. data/spec/unit/face/config_spec.rb +27 -32
  238. data/spec/unit/face/facts_spec.rb +4 -0
  239. data/spec/unit/face/plugin_spec.rb +73 -33
  240. data/spec/unit/file_bucket/file_spec.rb +1 -1
  241. data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
  242. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  243. data/spec/unit/functions/camelcase_spec.rb +1 -1
  244. data/spec/unit/functions/capitalize_spec.rb +1 -1
  245. data/spec/unit/functions/downcase_spec.rb +1 -1
  246. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  247. data/spec/unit/functions/upcase_spec.rb +1 -1
  248. data/spec/unit/http/client_spec.rb +7 -8
  249. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  250. data/spec/unit/http/external_client_spec.rb +4 -4
  251. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  252. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  253. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  254. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  255. data/spec/unit/http/resolver_spec.rb +13 -13
  256. data/spec/unit/http/service/compiler_spec.rb +49 -62
  257. data/spec/unit/http/service/file_server_spec.rb +3 -3
  258. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  259. data/spec/unit/http/service_spec.rb +1 -2
  260. data/spec/unit/http/session_spec.rb +16 -14
  261. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  262. data/spec/unit/indirector/facts/facter_spec.rb +97 -0
  263. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  264. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  265. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  266. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  267. data/spec/unit/indirector/file_server_spec.rb +1 -15
  268. data/spec/unit/indirector/node/json_spec.rb +33 -0
  269. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  270. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  271. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  272. data/spec/unit/indirector/request_spec.rb +0 -264
  273. data/spec/unit/indirector/rest_spec.rb +98 -752
  274. data/spec/unit/network/authconfig_spec.rb +2 -132
  275. data/spec/unit/network/authorization_spec.rb +2 -55
  276. data/spec/unit/network/formats_spec.rb +4 -4
  277. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
  278. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  279. data/spec/unit/network/http/api_spec.rb +10 -0
  280. data/spec/unit/network/http/connection_spec.rb +19 -41
  281. data/spec/unit/network/http/handler_spec.rb +0 -6
  282. data/spec/unit/network/http_pool_spec.rb +0 -4
  283. data/spec/unit/node/environment_spec.rb +33 -21
  284. data/spec/unit/node_spec.rb +2 -54
  285. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  286. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  287. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  288. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  289. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  290. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  291. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  292. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  293. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  294. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  295. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  296. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  297. data/spec/unit/pops/visitor_spec.rb +1 -1
  298. data/spec/unit/provider/nameservice_spec.rb +0 -57
  299. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  300. data/spec/unit/provider/package/gem_spec.rb +32 -0
  301. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  302. data/spec/unit/provider/service/smf_spec.rb +401 -165
  303. data/spec/unit/provider/service/windows_spec.rb +0 -1
  304. data/spec/unit/provider_spec.rb +0 -12
  305. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  306. data/spec/unit/resource/type_collection_spec.rb +2 -22
  307. data/spec/unit/resource_spec.rb +0 -56
  308. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  309. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  310. data/spec/unit/settings/port_setting_spec.rb +31 -0
  311. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  312. data/spec/unit/settings_spec.rb +423 -236
  313. data/spec/unit/ssl/base_spec.rb +36 -3
  314. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  315. data/spec/unit/ssl/certificate_spec.rb +2 -11
  316. data/spec/unit/ssl/ssl_provider_spec.rb +11 -8
  317. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  318. data/spec/unit/ssl/verifier_spec.rb +0 -21
  319. data/spec/unit/transaction/report_spec.rb +0 -2
  320. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  321. data/spec/unit/transaction_spec.rb +45 -79
  322. data/spec/unit/type/file/checksum_spec.rb +6 -6
  323. data/spec/unit/type/file/content_spec.rb +1 -1
  324. data/spec/unit/type/file/ensure_spec.rb +1 -1
  325. data/spec/unit/type/file/mode_spec.rb +1 -1
  326. data/spec/unit/type/file/source_spec.rb +0 -1
  327. data/spec/unit/type/file_spec.rb +12 -6
  328. data/spec/unit/type/package_spec.rb +1 -1
  329. data/spec/unit/type_spec.rb +20 -0
  330. data/spec/unit/util/backups_spec.rb +0 -2
  331. data/spec/unit/util/execution_spec.rb +0 -29
  332. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  333. data/spec/unit/util/rubygems_spec.rb +2 -2
  334. data/spec/unit/util/run_mode_spec.rb +21 -121
  335. data/spec/unit/util/windows/string_spec.rb +1 -3
  336. data/spec/unit/util/yaml_spec.rb +0 -54
  337. data/spec/unit/util_spec.rb +0 -18
  338. metadata +50 -232
  339. data/conf/auth.conf +0 -150
  340. data/lib/puppet/application/cert.rb +0 -76
  341. data/lib/puppet/application/key.rb +0 -4
  342. data/lib/puppet/application/man.rb +0 -4
  343. data/lib/puppet/application/status.rb +0 -4
  344. data/lib/puppet/face/key.rb +0 -16
  345. data/lib/puppet/face/man.rb +0 -145
  346. data/lib/puppet/face/module/build.rb +0 -14
  347. data/lib/puppet/face/module/generate.rb +0 -14
  348. data/lib/puppet/face/module/search.rb +0 -103
  349. data/lib/puppet/face/status.rb +0 -51
  350. data/lib/puppet/indirector/certificate/file.rb +0 -9
  351. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  352. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  353. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  354. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  355. data/lib/puppet/indirector/file_content/http.rb +0 -22
  356. data/lib/puppet/indirector/key/file.rb +0 -46
  357. data/lib/puppet/indirector/key/memory.rb +0 -7
  358. data/lib/puppet/indirector/ssl_file.rb +0 -162
  359. data/lib/puppet/indirector/status.rb +0 -3
  360. data/lib/puppet/indirector/status/local.rb +0 -12
  361. data/lib/puppet/indirector/status/rest.rb +0 -27
  362. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  363. data/lib/puppet/network/auth_config_parser.rb +0 -90
  364. data/lib/puppet/network/authstore.rb +0 -283
  365. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  366. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  367. data/lib/puppet/network/http/base_pool.rb +0 -36
  368. data/lib/puppet/network/http/compression.rb +0 -127
  369. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  370. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  371. data/lib/puppet/network/rest_controller.rb +0 -2
  372. data/lib/puppet/network/rights.rb +0 -210
  373. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  374. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  375. data/lib/puppet/parser/environment_compiler.rb +0 -202
  376. data/lib/puppet/pops/types/enumeration.rb +0 -16
  377. data/lib/puppet/resource/capability_finder.rb +0 -154
  378. data/lib/puppet/rest/errors.rb +0 -15
  379. data/lib/puppet/rest/response.rb +0 -35
  380. data/lib/puppet/rest/route.rb +0 -85
  381. data/lib/puppet/rest/routes.rb +0 -135
  382. data/lib/puppet/ssl/host.rb +0 -505
  383. data/lib/puppet/ssl/key.rb +0 -61
  384. data/lib/puppet/ssl/validator.rb +0 -61
  385. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  386. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  387. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  388. data/lib/puppet/status.rb +0 -40
  389. data/lib/puppet/util/connection.rb +0 -88
  390. data/lib/puppet/util/ssl.rb +0 -83
  391. data/lib/puppet/util/windows/api_types.rb +0 -309
  392. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  393. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  394. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  395. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  396. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  397. data/lib/puppet/vendor/pathspec/README.md +0 -53
  398. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  399. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  400. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  401. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  402. data/man/man8/puppet-key.8 +0 -126
  403. data/man/man8/puppet-man.8 +0 -76
  404. data/man/man8/puppet-status.8 +0 -108
  405. data/spec/integration/application/config_spec.rb +0 -74
  406. data/spec/integration/network/authconfig_spec.rb +0 -256
  407. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  408. data/spec/unit/application/man_spec.rb +0 -52
  409. data/spec/unit/capability_spec.rb +0 -414
  410. data/spec/unit/face/catalog_spec.rb +0 -6
  411. data/spec/unit/face/key_spec.rb +0 -9
  412. data/spec/unit/face/module/search_spec.rb +0 -231
  413. data/spec/unit/face/module_spec.rb +0 -3
  414. data/spec/unit/face/status_spec.rb +0 -9
  415. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  416. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  417. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  418. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  419. data/spec/unit/indirector/key/file_spec.rb +0 -79
  420. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  421. data/spec/unit/indirector/status/local_spec.rb +0 -10
  422. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  423. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  424. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  425. data/spec/unit/network/authstore_spec.rb +0 -422
  426. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  427. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  428. data/spec/unit/network/http/compression_spec.rb +0 -240
  429. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  430. data/spec/unit/network/http_spec.rb +0 -9
  431. data/spec/unit/network/rights_spec.rb +0 -439
  432. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  433. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  434. data/spec/unit/resource/capability_finder_spec.rb +0 -143
  435. data/spec/unit/rest/route_spec.rb +0 -132
  436. data/spec/unit/ssl/host_spec.rb +0 -650
  437. data/spec/unit/ssl/key_spec.rb +0 -173
  438. data/spec/unit/ssl/validator_spec.rb +0 -278
  439. data/spec/unit/status_spec.rb +0 -45
  440. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,16 +1,13 @@
1
+ # The Report service is used to submit run reports to the report server.
1
2
  #
2
- # @api private
3
- #
4
- # The Report service is used to submit run reports to the report server
3
+ # @api public
5
4
  #
6
5
  class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
7
6
 
8
- # @api private
9
7
  # @return [String] Default API for the report service
10
8
  API = '/puppet/v3'.freeze
11
9
 
12
- #
13
- # @api private
10
+ # Use `Puppet::HTTP::Session.route_to(:report)` to create or get an instance of this class.
14
11
  #
15
12
  # @param [Puppet::HTTP::Client] client
16
13
  # @param [Puppet::HTTP::Session] session
@@ -21,15 +18,14 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
21
18
  # a service using that port. If port is nil, the default value is used to
22
19
  # create the service.
23
20
  #
21
+ # @api private
22
+ #
24
23
  def initialize(client, session, server, port)
25
24
  url = build_url(API, server || Puppet[:report_server], port || Puppet[:report_port])
26
25
  super(client, session, url)
27
26
  end
28
27
 
29
- #
30
- # @api private
31
- #
32
- # Submit a report to the report server
28
+ # Submit a report to the report server.
33
29
  #
34
30
  # @param [String] name the name of the report being submitted
35
31
  # @param [Puppet::Transaction::Report] report run report to be submitted
@@ -37,6 +33,8 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
37
33
  #
38
34
  # @return [Puppet::HTTP::Response] response returned by the server
39
35
  #
36
+ # @api public
37
+ #
40
38
  def put_report(name, report, environment:)
41
39
  formatter = Puppet::Network::FormatHandler.format_for(Puppet[:preferred_serialization_format])
42
40
  headers = add_puppet_headers(
@@ -1,8 +1,6 @@
1
- #
2
- # @api private
3
- #
4
1
  # The session is the mechanism by which services may be connected to and accessed.
5
2
  #
3
+ # @api public
6
4
  class Puppet::HTTP::Session
7
5
  # capabilities for a site
8
6
  CAP_LOCALES = 'locales'.freeze
@@ -14,16 +12,15 @@ class Puppet::HTTP::Session
14
12
  # puppet version where JSON was enabled by default
15
13
  SUPPORTED_JSON_DEFAULT = Gem::Version.new("5.0.0")
16
14
 
17
- #
18
- # @api private
19
- #
20
15
  # Create a new HTTP session. The session is the mechanism by which services
21
- # may be connected to and accessed.
16
+ # may be connected to and accessed. Sessions should be created using
17
+ # `Puppet::HTTP::Client#create_session`.
22
18
  #
23
19
  # @param [Puppet::HTTP::Client] client the container for this session
24
20
  # @param [Array<Puppet::HTTP::Resolver>] resolvers array of resolver strategies
25
21
  # to implement.
26
22
  #
23
+ # @api private
27
24
  def initialize(client, resolvers)
28
25
  @client = client
29
26
  @resolvers = resolvers
@@ -31,9 +28,6 @@ class Puppet::HTTP::Session
31
28
  @server_versions = {}
32
29
  end
33
30
 
34
- #
35
- # @api private
36
- #
37
31
  # If an explicit server and port are specified on the command line or
38
32
  # configuration file, this method always returns a Service with that host and
39
33
  # port. Otherwise, we walk the list of resolvers in priority order:
@@ -45,12 +39,13 @@ class Puppet::HTTP::Session
45
39
  # is cached and returned if `route_to` is called again.
46
40
  #
47
41
  # @param [Symbol] name the service to resolve
48
- # @param [URI] url (nil) optional explicit url to use, if it is already known
49
- # @param [Puppet::SSL::SSLContext] ssl_context ssl_context ssl context to be
42
+ # @param [URI] url optional explicit url to use, if it is already known
43
+ # @param [Puppet::SSL::SSLContext] ssl_context ssl context to be
50
44
  # used for connections
51
45
  #
52
46
  # @return [Puppet::HTTP::Service] the resolved service
53
47
  #
48
+ # @api public
54
49
  def route_to(name, url: nil, ssl_context: nil)
55
50
  raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
56
51
 
@@ -82,25 +77,20 @@ class Puppet::HTTP::Session
82
77
  raise Puppet::HTTP::RouteError, "No more routes to #{name}"
83
78
  end
84
79
 
85
- #
86
- # @api private
87
- #
88
80
  # Collect per-site server versions. This will allow us to modify future
89
81
  # requests based on the version of puppetserver we are talking to.
90
82
  #
91
83
  # @param [Puppet::HTTP::Response] response the request response containing headers
92
84
  #
85
+ # @api private
93
86
  def process_response(response)
94
87
  version = response[Puppet::HTTP::HEADER_PUPPET_VERSION]
95
88
  if version
96
- site = Puppet::Network::HTTP::Site.from_uri(response.url)
89
+ site = Puppet::HTTP::Site.from_uri(response.url)
97
90
  @server_versions[site] = version
98
91
  end
99
92
  end
100
93
 
101
- #
102
- # @api private
103
- #
104
94
  # Determine if a session supports a capability. Depending on the server version
105
95
  # we are talking to, we know certain features are available or not. These
106
96
  # specifications are defined here so we can modify our requests appropriately.
@@ -110,13 +100,14 @@ class Puppet::HTTP::Session
110
100
  #
111
101
  # @return [Boolean]
112
102
  #
103
+ # @api public
113
104
  def supports?(name, capability)
114
105
  raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
115
106
 
116
107
  service = @resolved_services[name]
117
108
  return false unless service
118
109
 
119
- site = Puppet::Network::HTTP::Site.from_uri(service.url)
110
+ site = Puppet::HTTP::Site.from_uri(service.url)
120
111
  server_version = @server_versions[site]
121
112
 
122
113
  case capability
@@ -4,8 +4,7 @@
4
4
  # for the second.
5
5
  #
6
6
  # @api private
7
- #
8
- class Puppet::Network::HTTP::Site
7
+ class Puppet::HTTP::Site
9
8
  attr_reader :scheme, :host, :port
10
9
 
11
10
  def self.from_uri(uri)
@@ -5,8 +5,6 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
5
5
  desc "Find resource catalogs over HTTP via REST."
6
6
 
7
7
  def find(request)
8
- return super unless use_http_client?
9
-
10
8
  checksum_type = if request.options[:checksum_type]
11
9
  request.options[:checksum_type].split('.')
12
10
  else
@@ -30,11 +28,11 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
30
28
  if e.response.code == 404
31
29
  return nil unless request.options[:fail_on_404]
32
30
 
33
- _, body = parse_response(e.response.nethttp)
31
+ _, body = parse_response(e.response)
34
32
  msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
35
33
  raise Puppet::Error, msg
36
34
  else
37
- raise convert_to_http_error(e.response.nethttp)
35
+ raise convert_to_http_error(e.response)
38
36
  end
39
37
  end
40
38
  end
@@ -0,0 +1,60 @@
1
+ # module containing common methods used by json and yaml facts indirection terminus
2
+ module Puppet::Indirector::FactSearch
3
+ def node_matches?(facts, options)
4
+ options.each do |key, value|
5
+ type, name, operator = key.to_s.split(".")
6
+ operator ||= 'eq'
7
+
8
+ return false unless node_matches_option?(type, name, operator, value, facts)
9
+ end
10
+ return true
11
+ end
12
+
13
+ def node_matches_option?(type, name, operator, value, facts)
14
+ case type
15
+ when "meta"
16
+ case name
17
+ when "timestamp"
18
+ compare_timestamp(operator, facts.timestamp, Time.parse(value))
19
+ end
20
+ when "facts"
21
+ compare_facts(operator, facts.values[name], value)
22
+ end
23
+ end
24
+
25
+ def compare_facts(operator, value1, value2)
26
+ return false unless value1
27
+
28
+ case operator
29
+ when "eq"
30
+ value1.to_s == value2.to_s
31
+ when "le"
32
+ value1.to_f <= value2.to_f
33
+ when "ge"
34
+ value1.to_f >= value2.to_f
35
+ when "lt"
36
+ value1.to_f < value2.to_f
37
+ when "gt"
38
+ value1.to_f > value2.to_f
39
+ when "ne"
40
+ value1.to_s != value2.to_s
41
+ end
42
+ end
43
+
44
+ def compare_timestamp(operator, value1, value2)
45
+ case operator
46
+ when "eq"
47
+ value1 == value2
48
+ when "le"
49
+ value1 <= value2
50
+ when "ge"
51
+ value1 >= value2
52
+ when "lt"
53
+ value1 < value2
54
+ when "gt"
55
+ value1 > value2
56
+ when "ne"
57
+ value1 != value2
58
+ end
59
+ end
60
+ end
@@ -32,8 +32,14 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
32
32
  # Initialize core Puppet facts, such as puppetversion
33
33
  Puppet.initialize_facts
34
34
 
35
- result = Puppet::Node::Facts.new(request.key, Facter.to_hash)
36
- result.add_local_facts
35
+ result = if request.options[:resolve_options]
36
+ raise(Puppet::Error, _("puppet facts show requires version 4.0.40 or greater of Facter.")) unless Facter.respond_to?(:resolve)
37
+ find_with_options(request)
38
+ else
39
+ Puppet::Node::Facts.new(request.key, Facter.to_hash)
40
+ end
41
+
42
+ result.add_local_facts unless request.options[:resolve_options]
37
43
  result.sanitize
38
44
  result
39
45
  end
@@ -61,7 +67,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
61
67
 
62
68
  true
63
69
  end
64
-
70
+ dirs << request.options[:custom_dir] if request.options[:custom_dir]
65
71
  Facter.search(*dirs)
66
72
  end
67
73
 
@@ -83,6 +89,21 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
83
89
  dirs << dir
84
90
  end
85
91
 
92
+ dirs << request.options[:external_dir] if request.options[:external_dir]
86
93
  Facter.search_external dirs
87
94
  end
95
+
96
+ private
97
+
98
+ def find_with_options(request)
99
+ options = request.options
100
+ options_for_facter = String.new
101
+ options_for_facter += options[:user_query].join(' ')
102
+ options_for_facter += " --config #{options[:config_file]}" if options[:config_file]
103
+ options_for_facter += " --show-legacy" if options[:show_legacy]
104
+ options_for_facter += " --no-block" if options[:no_block] == false
105
+ options_for_facter += " --no-cache" if options[:no_cache] == false
106
+
107
+ Puppet::Node::Facts.new(request.key, Facter.resolve(options_for_facter))
108
+ end
88
109
  end
@@ -0,0 +1,27 @@
1
+ require 'puppet/node/facts'
2
+ require 'puppet/indirector/json'
3
+ require 'puppet/indirector/fact_search'
4
+
5
+ class Puppet::Node::Facts::Json < Puppet::Indirector::JSON
6
+ desc "Store client facts as flat files, serialized using JSON, or
7
+ return deserialized facts from disk."
8
+
9
+ include Puppet::Indirector::FactSearch
10
+
11
+ def search(request)
12
+ node_names = []
13
+ Dir.glob(json_dir_path).each do |file|
14
+ facts = load_json_from_file(file, '')
15
+ if facts && node_matches?(facts, request.options)
16
+ node_names << facts.name
17
+ end
18
+ end
19
+ node_names
20
+ end
21
+
22
+ private
23
+
24
+ def json_dir_path
25
+ self.path("*")
26
+ end
27
+ end
@@ -5,8 +5,6 @@ class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
5
5
  desc "Find and save facts about nodes over HTTP via REST."
6
6
 
7
7
  def find(request)
8
- return super unless use_http_client?
9
-
10
8
  session = Puppet.lookup(:http_session)
11
9
  api = session.route_to(:puppet)
12
10
  _, facts = api.get_facts(
@@ -18,19 +16,17 @@ class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
18
16
  if e.response.code == 404
19
17
  return nil unless request.options[:fail_on_404]
20
18
 
21
- _, body = parse_response(e.response.nethttp)
19
+ _, body = parse_response(e.response)
22
20
  msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
23
21
  raise Puppet::Error, msg
24
22
  else
25
- raise convert_to_http_error(e.response.nethttp)
23
+ raise convert_to_http_error(e.response)
26
24
  end
27
25
  end
28
26
 
29
27
  def save(request)
30
28
  raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
31
29
 
32
- return legacy_save(request) unless use_http_client?
33
-
34
30
  session = Puppet.lookup(:http_session)
35
31
  api = session.route_to(:puppet)
36
32
  api.put_facts(
@@ -43,21 +39,6 @@ class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
43
39
  nil
44
40
  rescue Puppet::HTTP::ResponseError => e
45
41
  # always raise even if fail_on_404 is false
46
- raise convert_to_http_error(e.response.nethttp)
47
- end
48
-
49
- private
50
-
51
- def legacy_save(request)
52
- response = do_request(request) do |req|
53
- http_put(req, IndirectedRoutes.request_to_uri(req), req.instance.render, headers.merge({ "Content-Type" => req.instance.mime }))
54
- end
55
-
56
- if is_http_200?(response)
57
- content_type, body = parse_response(response)
58
- deserialize_save(content_type, body)
59
- else
60
- raise convert_to_http_error(response)
61
- end
42
+ raise convert_to_http_error(e.response)
62
43
  end
63
44
  end
@@ -1,10 +1,13 @@
1
1
  require 'puppet/node/facts'
2
2
  require 'puppet/indirector/yaml'
3
+ require 'puppet/indirector/fact_search'
3
4
 
4
5
  class Puppet::Node::Facts::Yaml < Puppet::Indirector::Yaml
5
6
  desc "Store client facts as flat files, serialized using YAML, or
6
7
  return deserialized facts from disk."
7
8
 
9
+ include Puppet::Indirector::FactSearch
10
+
8
11
  def search(request)
9
12
  node_names = []
10
13
  Dir.glob(yaml_dir_path).each do |file|
@@ -23,62 +26,4 @@ class Puppet::Node::Facts::Yaml < Puppet::Indirector::Yaml
23
26
  base = Puppet.run_mode.server? ? Puppet[:yamldir] : Puppet[:clientyamldir]
24
27
  File.join(base, 'facts', '*.yaml')
25
28
  end
26
-
27
- def node_matches?(facts, options)
28
- options.each do |key, value|
29
- type, name, operator = key.to_s.split(".")
30
- operator ||= 'eq'
31
-
32
- return false unless node_matches_option?(type, name, operator, value, facts)
33
- end
34
- return true
35
- end
36
-
37
- def node_matches_option?(type, name, operator, value, facts)
38
- case type
39
- when "meta"
40
- case name
41
- when "timestamp"
42
- compare_timestamp(operator, facts.timestamp, Time.parse(value))
43
- end
44
- when "facts"
45
- compare_facts(operator, facts.values[name], value)
46
- end
47
- end
48
-
49
- def compare_facts(operator, value1, value2)
50
- return false unless value1
51
-
52
- case operator
53
- when "eq"
54
- value1.to_s == value2.to_s
55
- when "le"
56
- value1.to_f <= value2.to_f
57
- when "ge"
58
- value1.to_f >= value2.to_f
59
- when "lt"
60
- value1.to_f < value2.to_f
61
- when "gt"
62
- value1.to_f > value2.to_f
63
- when "ne"
64
- value1.to_s != value2.to_s
65
- end
66
- end
67
-
68
- def compare_timestamp(operator, value1, value2)
69
- case operator
70
- when "eq"
71
- value1 == value2
72
- when "le"
73
- value1 <= value2
74
- when "ge"
75
- value1 >= value2
76
- when "lt"
77
- value1 < value2
78
- when "gt"
79
- value1 > value2
80
- when "ne"
81
- value1 != value2
82
- end
83
- end
84
29
  end
@@ -6,8 +6,6 @@ module Puppet::FileBucketFile
6
6
  desc "This is a REST based mechanism to send/retrieve file to/from the filebucket"
7
7
 
8
8
  def head(request)
9
- return super unless use_http_client?
10
-
11
9
  session = Puppet.lookup(:http_session)
12
10
  api = session.route_to(:puppet)
13
11
  api.head_filebucket_file(
@@ -17,12 +15,10 @@ module Puppet::FileBucketFile
17
15
  )
18
16
  rescue Puppet::HTTP::ResponseError => e
19
17
  return nil if e.response.code == 404
20
- raise convert_to_http_error(e.response.nethttp)
18
+ raise convert_to_http_error(e.response)
21
19
  end
22
20
 
23
21
  def find(request)
24
- return super unless use_http_client?
25
-
26
22
  session = Puppet.lookup(:http_session)
27
23
  api = session.route_to(:puppet)
28
24
  _, filebucket_file = api.get_filebucket_file(
@@ -36,12 +32,10 @@ module Puppet::FileBucketFile
36
32
  )
37
33
  filebucket_file
38
34
  rescue Puppet::HTTP::ResponseError => e
39
- raise convert_to_http_error(e.response.nethttp)
35
+ raise convert_to_http_error(e.response)
40
36
  end
41
37
 
42
38
  def save(request)
43
- return super unless use_http_client?
44
-
45
39
  session = Puppet.lookup(:http_session)
46
40
  api = session.route_to(:puppet)
47
41
  api.put_filebucket_file(
@@ -50,7 +44,7 @@ module Puppet::FileBucketFile
50
44
  environment: request.environment.to_s,
51
45
  )
52
46
  rescue Puppet::HTTP::ResponseError => e
53
- raise convert_to_http_error(e.response.nethttp)
47
+ raise convert_to_http_error(e.response)
54
48
  end
55
49
  end
56
50
  end