puppet 6.23.0 → 7.0.0

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 (581) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/Gemfile +1 -3
  4. data/Gemfile.lock +34 -46
  5. data/README.md +1 -1
  6. data/conf/fileserver.conf +5 -10
  7. data/ext/build_defaults.yaml +1 -1
  8. data/ext/osx/file_mapping.yaml +0 -5
  9. data/ext/osx/puppet.plist +0 -2
  10. data/ext/project_data.yaml +1 -14
  11. data/ext/redhat/puppet.spec.erb +0 -1
  12. data/ext/windows/service/daemon.rb +6 -5
  13. data/install.rb +21 -17
  14. data/lib/puppet.rb +11 -20
  15. data/lib/puppet/application.rb +178 -108
  16. data/lib/puppet/application/agent.rb +4 -12
  17. data/lib/puppet/application/apply.rb +2 -4
  18. data/lib/puppet/application/device.rb +100 -106
  19. data/lib/puppet/application/filebucket.rb +13 -9
  20. data/lib/puppet/application/resource.rb +1 -2
  21. data/lib/puppet/application/script.rb +0 -2
  22. data/lib/puppet/application/ssl.rb +1 -12
  23. data/lib/puppet/application_support.rb +0 -7
  24. data/lib/puppet/configurer.rb +30 -45
  25. data/lib/puppet/configurer/downloader.rb +1 -2
  26. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  27. data/lib/puppet/defaults.rb +100 -192
  28. data/lib/puppet/environments.rb +60 -74
  29. data/lib/puppet/face/facts.rb +5 -103
  30. data/lib/puppet/face/help.rb +1 -1
  31. data/lib/puppet/face/plugin.rb +5 -8
  32. data/lib/puppet/ffi/windows.rb +12 -0
  33. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  34. data/lib/puppet/ffi/windows/constants.rb +404 -0
  35. data/lib/puppet/ffi/windows/functions.rb +628 -0
  36. data/lib/puppet/ffi/windows/structs.rb +338 -0
  37. data/lib/puppet/file_serving/configuration.rb +0 -5
  38. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  39. data/lib/puppet/file_serving/fileset.rb +2 -14
  40. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  41. data/lib/puppet/file_serving/mount.rb +1 -2
  42. data/lib/puppet/file_system/memory_file.rb +1 -8
  43. data/lib/puppet/file_system/windows.rb +0 -2
  44. data/lib/puppet/forge/repository.rb +0 -1
  45. data/lib/puppet/functions/all.rb +1 -1
  46. data/lib/puppet/functions/camelcase.rb +1 -1
  47. data/lib/puppet/functions/capitalize.rb +2 -2
  48. data/lib/puppet/functions/downcase.rb +2 -2
  49. data/lib/puppet/functions/get.rb +5 -5
  50. data/lib/puppet/functions/group_by.rb +5 -13
  51. data/lib/puppet/functions/lest.rb +1 -1
  52. data/lib/puppet/functions/new.rb +100 -100
  53. data/lib/puppet/functions/partition.rb +4 -12
  54. data/lib/puppet/functions/require.rb +5 -5
  55. data/lib/puppet/functions/sort.rb +3 -3
  56. data/lib/puppet/functions/tree_each.rb +9 -7
  57. data/lib/puppet/functions/type.rb +4 -4
  58. data/lib/puppet/functions/upcase.rb +2 -2
  59. data/lib/puppet/generate/models/type/type.rb +4 -1
  60. data/lib/puppet/http.rb +22 -13
  61. data/lib/puppet/http/client.rb +164 -114
  62. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  63. data/lib/puppet/http/errors.rb +16 -0
  64. data/lib/puppet/http/external_client.rb +5 -7
  65. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  66. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  67. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  68. data/lib/puppet/http/proxy.rb +137 -0
  69. data/lib/puppet/http/redirector.rb +4 -12
  70. data/lib/puppet/http/resolver.rb +5 -15
  71. data/lib/puppet/http/resolver/server_list.rb +10 -25
  72. data/lib/puppet/http/resolver/settings.rb +4 -7
  73. data/lib/puppet/http/resolver/srv.rb +7 -11
  74. data/lib/puppet/http/response.rb +36 -54
  75. data/lib/puppet/http/response_converter.rb +24 -0
  76. data/lib/puppet/http/response_net_http.rb +42 -0
  77. data/lib/puppet/http/retry_after_handler.rb +4 -13
  78. data/lib/puppet/http/service.rb +12 -26
  79. data/lib/puppet/http/service/ca.rb +11 -22
  80. data/lib/puppet/http/service/compiler.rb +22 -138
  81. data/lib/puppet/http/service/file_server.rb +19 -29
  82. data/lib/puppet/http/service/puppetserver.rb +26 -12
  83. data/lib/puppet/http/service/report.rb +8 -10
  84. data/lib/puppet/http/session.rb +11 -20
  85. data/lib/puppet/{network/http → http}/site.rb +1 -2
  86. data/lib/puppet/indirector/catalog/compiler.rb +0 -1
  87. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  88. data/lib/puppet/indirector/facts/rest.rb +3 -22
  89. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  90. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  91. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  92. data/lib/puppet/indirector/file_server.rb +1 -8
  93. data/lib/puppet/indirector/generic_http.rb +0 -11
  94. data/lib/puppet/indirector/node/rest.rb +2 -4
  95. data/lib/puppet/indirector/report/rest.rb +3 -8
  96. data/lib/puppet/indirector/request.rb +0 -101
  97. data/lib/puppet/indirector/rest.rb +12 -263
  98. data/lib/puppet/module_tool/applications.rb +0 -1
  99. data/lib/puppet/module_tool/applications/installer.rb +2 -48
  100. data/lib/puppet/module_tool/errors/shared.rb +2 -17
  101. data/lib/puppet/network/authconfig.rb +2 -96
  102. data/lib/puppet/network/authorization.rb +13 -35
  103. data/lib/puppet/network/formats.rb +0 -67
  104. data/lib/puppet/network/http.rb +3 -3
  105. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  106. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  107. data/lib/puppet/network/http/connection.rb +247 -316
  108. data/lib/puppet/network/http/handler.rb +0 -1
  109. data/lib/puppet/network/http_pool.rb +16 -34
  110. data/lib/puppet/node.rb +1 -30
  111. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  112. data/lib/puppet/pal/pal_impl.rb +3 -1
  113. data/lib/puppet/parser/ast/leaf.rb +2 -3
  114. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  115. data/lib/puppet/parser/compiler.rb +0 -198
  116. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  117. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  118. data/lib/puppet/parser/resource.rb +0 -69
  119. data/lib/puppet/parser/templatewrapper.rb +1 -1
  120. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  121. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  122. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  123. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  124. data/lib/puppet/pops/issues.rb +0 -5
  125. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  126. data/lib/puppet/pops/model/ast.pp +0 -42
  127. data/lib/puppet/pops/model/ast.rb +0 -290
  128. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  129. data/lib/puppet/pops/model/factory.rb +0 -45
  130. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  131. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  132. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  133. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  134. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  135. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  136. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  137. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  138. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  139. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  140. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  141. data/lib/puppet/pops/types/type_parser.rb +0 -4
  142. data/lib/puppet/pops/types/types.rb +0 -1
  143. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  144. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  145. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  146. data/lib/puppet/property/list.rb +1 -1
  147. data/lib/puppet/provider.rb +0 -13
  148. data/lib/puppet/provider/group/groupadd.rb +8 -13
  149. data/lib/puppet/provider/nameservice.rb +0 -18
  150. data/lib/puppet/provider/package/apt.rb +2 -34
  151. data/lib/puppet/provider/package/aptitude.rb +0 -6
  152. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  153. data/lib/puppet/provider/package/dpkg.rb +0 -10
  154. data/lib/puppet/provider/package/gem.rb +23 -3
  155. data/lib/puppet/provider/package/nim.rb +6 -11
  156. data/lib/puppet/provider/package/pip.rb +0 -1
  157. data/lib/puppet/provider/package/pkg.rb +0 -4
  158. data/lib/puppet/provider/package/portage.rb +1 -1
  159. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  160. data/lib/puppet/provider/service/debian.rb +0 -2
  161. data/lib/puppet/provider/service/smf.rb +191 -73
  162. data/lib/puppet/provider/service/systemd.rb +4 -14
  163. data/lib/puppet/provider/service/windows.rb +0 -38
  164. data/lib/puppet/provider/user/aix.rb +2 -2
  165. data/lib/puppet/provider/user/directoryservice.rb +10 -33
  166. data/lib/puppet/provider/user/useradd.rb +8 -62
  167. data/lib/puppet/reference/configuration.rb +8 -7
  168. data/lib/puppet/reference/indirection.rb +1 -1
  169. data/lib/puppet/resource.rb +1 -89
  170. data/lib/puppet/resource/catalog.rb +1 -14
  171. data/lib/puppet/resource/type.rb +3 -119
  172. data/lib/puppet/resource/type_collection.rb +3 -48
  173. data/lib/puppet/runtime.rb +1 -2
  174. data/lib/puppet/settings.rb +73 -66
  175. data/lib/puppet/settings/environment_conf.rb +0 -1
  176. data/lib/puppet/settings/integer_setting.rb +17 -0
  177. data/lib/puppet/settings/port_setting.rb +15 -0
  178. data/lib/puppet/settings/priority_setting.rb +5 -4
  179. data/lib/puppet/ssl.rb +10 -6
  180. data/lib/puppet/ssl/base.rb +3 -5
  181. data/lib/puppet/ssl/certificate.rb +0 -6
  182. data/lib/puppet/ssl/certificate_request.rb +1 -12
  183. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  184. data/lib/puppet/ssl/oids.rb +3 -1
  185. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  186. data/lib/puppet/ssl/state_machine.rb +3 -1
  187. data/lib/puppet/ssl/verifier.rb +2 -0
  188. data/lib/puppet/test/test_helper.rb +1 -3
  189. data/lib/puppet/transaction.rb +1 -7
  190. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  191. data/lib/puppet/transaction/report.rb +2 -4
  192. data/lib/puppet/type.rb +0 -76
  193. data/lib/puppet/type/file.rb +6 -26
  194. data/lib/puppet/type/file/checksum.rb +1 -1
  195. data/lib/puppet/type/file/selcontext.rb +1 -1
  196. data/lib/puppet/type/file/source.rb +1 -1
  197. data/lib/puppet/type/filebucket.rb +3 -3
  198. data/lib/puppet/type/package.rb +8 -16
  199. data/lib/puppet/type/service.rb +38 -18
  200. data/lib/puppet/type/tidy.rb +2 -21
  201. data/lib/puppet/type/user.rb +20 -38
  202. data/lib/puppet/util/autoload.rb +8 -1
  203. data/lib/puppet/util/execution.rb +0 -11
  204. data/lib/puppet/util/http_proxy.rb +2 -215
  205. data/lib/puppet/util/monkey_patches.rb +0 -53
  206. data/lib/puppet/util/posix.rb +5 -54
  207. data/lib/puppet/util/rdoc.rb +0 -7
  208. data/lib/puppet/util/retry_action.rb +1 -1
  209. data/lib/puppet/util/run_mode.rb +9 -1
  210. data/lib/puppet/util/selinux.rb +4 -30
  211. data/lib/puppet/util/windows.rb +3 -8
  212. data/lib/puppet/util/windows/adsi.rb +0 -46
  213. data/lib/puppet/util/windows/daemon.rb +360 -0
  214. data/lib/puppet/util/windows/error.rb +1 -0
  215. data/lib/puppet/util/windows/eventlog.rb +4 -9
  216. data/lib/puppet/util/windows/file.rb +8 -242
  217. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  218. data/lib/puppet/util/windows/principal.rb +2 -9
  219. data/lib/puppet/util/windows/process.rb +4 -226
  220. data/lib/puppet/util/windows/service.rb +9 -460
  221. data/lib/puppet/util/windows/sid.rb +2 -4
  222. data/lib/puppet/util/windows/string.rb +12 -13
  223. data/lib/puppet/util/yaml.rb +0 -22
  224. data/lib/puppet/vendor/require_vendored.rb +0 -1
  225. data/lib/puppet/version.rb +1 -1
  226. data/lib/puppet/x509.rb +5 -1
  227. data/lib/puppet/x509/cert_provider.rb +29 -1
  228. data/locales/puppet.pot +651 -1436
  229. data/man/man5/puppet.conf.5 +266 -354
  230. data/man/man8/puppet-agent.8 +2 -2
  231. data/man/man8/puppet-apply.8 +2 -2
  232. data/man/man8/puppet-catalog.8 +1 -1
  233. data/man/man8/puppet-config.8 +1 -1
  234. data/man/man8/puppet-describe.8 +1 -1
  235. data/man/man8/puppet-device.8 +2 -2
  236. data/man/man8/puppet-doc.8 +1 -1
  237. data/man/man8/puppet-epp.8 +1 -1
  238. data/man/man8/puppet-facts.8 +4 -47
  239. data/man/man8/puppet-filebucket.8 +4 -4
  240. data/man/man8/puppet-generate.8 +1 -1
  241. data/man/man8/puppet-help.8 +1 -1
  242. data/man/man8/puppet-lookup.8 +1 -1
  243. data/man/man8/puppet-module.8 +1 -58
  244. data/man/man8/puppet-node.8 +1 -1
  245. data/man/man8/puppet-parser.8 +1 -1
  246. data/man/man8/puppet-plugin.8 +1 -1
  247. data/man/man8/puppet-report.8 +1 -1
  248. data/man/man8/puppet-resource.8 +1 -1
  249. data/man/man8/puppet-script.8 +2 -2
  250. data/man/man8/puppet-ssl.8 +1 -5
  251. data/man/man8/puppet.8 +2 -2
  252. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  253. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  254. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  255. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  256. data/spec/fixtures/ssl/ca.pem +35 -57
  257. data/spec/fixtures/ssl/crl.pem +18 -28
  258. data/spec/fixtures/ssl/ec-key.pem +11 -11
  259. data/spec/fixtures/ssl/ec.pem +24 -33
  260. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  261. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  262. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  263. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  264. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  265. data/spec/fixtures/ssl/intermediate.pem +36 -57
  266. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  267. data/spec/fixtures/ssl/pluto.pem +30 -52
  268. data/spec/fixtures/ssl/request-key.pem +57 -107
  269. data/spec/fixtures/ssl/request.pem +26 -47
  270. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  271. data/spec/fixtures/ssl/revoked.pem +30 -52
  272. data/spec/fixtures/ssl/signed-key.pem +57 -107
  273. data/spec/fixtures/ssl/signed.pem +30 -52
  274. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  275. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  276. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  277. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  278. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  279. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  280. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  281. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  282. data/spec/integration/application/agent_spec.rb +27 -171
  283. data/spec/integration/application/apply_spec.rb +1 -20
  284. data/spec/integration/application/filebucket_spec.rb +16 -16
  285. data/spec/integration/application/help_spec.rb +2 -0
  286. data/spec/integration/application/plugin_spec.rb +24 -2
  287. data/spec/integration/defaults_spec.rb +14 -3
  288. data/spec/integration/http/client_spec.rb +0 -12
  289. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  290. data/spec/integration/network/http_pool_spec.rb +3 -21
  291. data/spec/integration/parser/catalog_spec.rb +0 -38
  292. data/spec/integration/parser/node_spec.rb +0 -9
  293. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  294. data/spec/integration/resource/type_collection_spec.rb +6 -2
  295. data/spec/integration/transaction_spec.rb +9 -4
  296. data/spec/integration/type/file_spec.rb +5 -4
  297. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  298. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  299. data/spec/integration/util/windows/principal_spec.rb +0 -21
  300. data/spec/integration/util/windows/registry_spec.rb +10 -6
  301. data/spec/integration/util/windows/security_spec.rb +1 -1
  302. data/spec/lib/matchers/include.rb +27 -0
  303. data/spec/lib/matchers/include_spec.rb +32 -0
  304. data/spec/lib/puppet/test_ca.rb +2 -2
  305. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  306. data/spec/lib/puppet_spec/settings.rb +1 -0
  307. data/spec/spec_helper.rb +7 -12
  308. data/spec/unit/agent_spec.rb +6 -10
  309. data/spec/unit/application/agent_spec.rb +3 -7
  310. data/spec/unit/application/facts_spec.rb +12 -456
  311. data/spec/unit/application/filebucket_spec.rb +43 -39
  312. data/spec/unit/application/ssl_spec.rb +2 -25
  313. data/spec/unit/application_spec.rb +9 -51
  314. data/spec/unit/certificate_factory_spec.rb +1 -1
  315. data/spec/unit/configurer/downloader_spec.rb +6 -8
  316. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  317. data/spec/unit/configurer_spec.rb +12 -32
  318. data/spec/unit/confine/feature_spec.rb +1 -1
  319. data/spec/unit/confine_spec.rb +2 -8
  320. data/spec/unit/context/trusted_information_spec.rb +2 -6
  321. data/spec/unit/defaults_spec.rb +68 -54
  322. data/spec/unit/environments_spec.rb +68 -224
  323. data/spec/unit/face/node_spec.rb +11 -0
  324. data/spec/unit/face/plugin_spec.rb +73 -33
  325. data/spec/unit/file_bucket/file_spec.rb +1 -1
  326. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
  327. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  328. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  329. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  330. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  331. data/spec/unit/file_system_spec.rb +0 -9
  332. data/spec/unit/forge/module_release_spec.rb +7 -2
  333. data/spec/unit/functions/camelcase_spec.rb +1 -1
  334. data/spec/unit/functions/capitalize_spec.rb +1 -1
  335. data/spec/unit/functions/downcase_spec.rb +1 -1
  336. data/spec/unit/functions/upcase_spec.rb +1 -1
  337. data/spec/unit/gettext/config_spec.rb +0 -12
  338. data/spec/unit/http/client_spec.rb +7 -8
  339. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  340. data/spec/unit/http/external_client_spec.rb +4 -4
  341. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  342. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  343. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  344. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  345. data/spec/unit/http/resolver_spec.rb +13 -13
  346. data/spec/unit/http/service/compiler_spec.rb +0 -185
  347. data/spec/unit/http/service/file_server_spec.rb +3 -3
  348. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  349. data/spec/unit/http/service_spec.rb +0 -1
  350. data/spec/unit/http/session_spec.rb +16 -14
  351. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  352. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -14
  353. data/spec/unit/indirector/face_spec.rb +1 -0
  354. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  355. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  356. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  357. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  358. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  359. data/spec/unit/indirector/file_server_spec.rb +1 -15
  360. data/spec/unit/indirector/indirection_spec.rb +12 -8
  361. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  362. data/spec/unit/indirector/request_spec.rb +0 -264
  363. data/spec/unit/indirector/rest_spec.rb +98 -752
  364. data/spec/unit/indirector_spec.rb +2 -2
  365. data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
  366. data/spec/unit/network/authconfig_spec.rb +2 -129
  367. data/spec/unit/network/authorization_spec.rb +2 -55
  368. data/spec/unit/network/formats_spec.rb +4 -45
  369. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  370. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  371. data/spec/unit/network/http/api_spec.rb +10 -0
  372. data/spec/unit/network/http/connection_spec.rb +19 -41
  373. data/spec/unit/network/http/handler_spec.rb +0 -1
  374. data/spec/unit/network/http_pool_spec.rb +0 -4
  375. data/spec/unit/node/environment_spec.rb +33 -21
  376. data/spec/unit/node_spec.rb +2 -54
  377. data/spec/unit/parser/compiler_spec.rb +19 -3
  378. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  379. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  380. data/spec/unit/parser/resource_spec.rb +8 -14
  381. data/spec/unit/parser/templatewrapper_spec.rb +3 -4
  382. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  383. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  384. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  385. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  386. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  387. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  388. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  389. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  390. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  391. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  392. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  393. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  394. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  395. data/spec/unit/pops/visitor_spec.rb +1 -1
  396. data/spec/unit/property_spec.rb +0 -1
  397. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  398. data/spec/unit/provider/nameservice_spec.rb +64 -122
  399. data/spec/unit/provider/package/apt_spec.rb +23 -28
  400. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  401. data/spec/unit/provider/package/base_spec.rb +5 -6
  402. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  403. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  404. data/spec/unit/provider/package/gem_spec.rb +32 -0
  405. data/spec/unit/provider/package/nim_spec.rb +0 -42
  406. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  407. data/spec/unit/provider/package/pip_spec.rb +11 -6
  408. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  409. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  410. data/spec/unit/provider/service/init_spec.rb +0 -1
  411. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  412. data/spec/unit/provider/service/smf_spec.rb +401 -165
  413. data/spec/unit/provider/service/systemd_spec.rb +8 -53
  414. data/spec/unit/provider/service/windows_spec.rb +0 -203
  415. data/spec/unit/provider/user/aix_spec.rb +0 -5
  416. data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
  417. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  418. data/spec/unit/provider/user/pw_spec.rb +0 -2
  419. data/spec/unit/provider/user/useradd_spec.rb +3 -71
  420. data/spec/unit/provider_spec.rb +8 -18
  421. data/spec/unit/resource/catalog_spec.rb +1 -1
  422. data/spec/unit/resource/type_collection_spec.rb +2 -22
  423. data/spec/unit/resource/type_spec.rb +1 -1
  424. data/spec/unit/resource_spec.rb +10 -67
  425. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  426. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  427. data/spec/unit/settings/port_setting_spec.rb +31 -0
  428. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  429. data/spec/unit/settings_spec.rb +23 -13
  430. data/spec/unit/ssl/base_spec.rb +37 -3
  431. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  432. data/spec/unit/ssl/certificate_spec.rb +2 -11
  433. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  434. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  435. data/spec/unit/ssl/verifier_spec.rb +0 -21
  436. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  437. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  438. data/spec/unit/transaction/report_spec.rb +0 -2
  439. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  440. data/spec/unit/transaction_spec.rb +55 -96
  441. data/spec/unit/type/file/checksum_spec.rb +6 -6
  442. data/spec/unit/type/file/content_spec.rb +2 -1
  443. data/spec/unit/type/file/ensure_spec.rb +1 -1
  444. data/spec/unit/type/file/mode_spec.rb +1 -1
  445. data/spec/unit/type/file/selinux_spec.rb +5 -3
  446. data/spec/unit/type/file/source_spec.rb +0 -1
  447. data/spec/unit/type/file_spec.rb +18 -6
  448. data/spec/unit/type/group_spec.rb +6 -13
  449. data/spec/unit/type/package_spec.rb +1 -1
  450. data/spec/unit/type/resources_spec.rb +7 -7
  451. data/spec/unit/type/service_spec.rb +189 -60
  452. data/spec/unit/type/tidy_spec.rb +8 -17
  453. data/spec/unit/type/user_spec.rb +0 -45
  454. data/spec/unit/type_spec.rb +22 -2
  455. data/spec/unit/util/at_fork_spec.rb +2 -2
  456. data/spec/unit/util/autoload_spec.rb +1 -5
  457. data/spec/unit/util/backups_spec.rb +2 -3
  458. data/spec/unit/util/execution_spec.rb +11 -44
  459. data/spec/unit/util/inifile_spec.rb +14 -6
  460. data/spec/unit/util/log_spec.rb +7 -8
  461. data/spec/unit/util/logging_spec.rb +3 -3
  462. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  463. data/spec/unit/util/posix_spec.rb +15 -363
  464. data/spec/unit/util/run_mode_spec.rb +21 -121
  465. data/spec/unit/util/selinux_spec.rb +68 -163
  466. data/spec/unit/util/storage_spec.rb +1 -3
  467. data/spec/unit/util/suidmanager_spec.rb +41 -44
  468. data/spec/unit/util/windows/sid_spec.rb +0 -6
  469. data/spec/unit/util/windows/string_spec.rb +1 -3
  470. data/spec/unit/util/yaml_spec.rb +0 -54
  471. data/spec/unit/util_spec.rb +6 -31
  472. data/tasks/generate_cert_fixtures.rake +2 -2
  473. metadata +44 -181
  474. data/conf/auth.conf +0 -150
  475. data/lib/puppet/application/cert.rb +0 -76
  476. data/lib/puppet/application/key.rb +0 -4
  477. data/lib/puppet/application/man.rb +0 -4
  478. data/lib/puppet/application/status.rb +0 -4
  479. data/lib/puppet/face/key.rb +0 -16
  480. data/lib/puppet/face/man.rb +0 -145
  481. data/lib/puppet/face/module/build.rb +0 -14
  482. data/lib/puppet/face/module/generate.rb +0 -14
  483. data/lib/puppet/face/module/search.rb +0 -103
  484. data/lib/puppet/face/status.rb +0 -51
  485. data/lib/puppet/ffi/posix.rb +0 -10
  486. data/lib/puppet/ffi/posix/constants.rb +0 -14
  487. data/lib/puppet/ffi/posix/functions.rb +0 -24
  488. data/lib/puppet/indirector/certificate/file.rb +0 -9
  489. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  490. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  491. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  492. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  493. data/lib/puppet/indirector/file_content/http.rb +0 -22
  494. data/lib/puppet/indirector/key/file.rb +0 -46
  495. data/lib/puppet/indirector/key/memory.rb +0 -7
  496. data/lib/puppet/indirector/ssl_file.rb +0 -162
  497. data/lib/puppet/indirector/status.rb +0 -3
  498. data/lib/puppet/indirector/status/local.rb +0 -12
  499. data/lib/puppet/indirector/status/rest.rb +0 -27
  500. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  501. data/lib/puppet/network/auth_config_parser.rb +0 -90
  502. data/lib/puppet/network/authstore.rb +0 -283
  503. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  504. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  505. data/lib/puppet/network/http/base_pool.rb +0 -36
  506. data/lib/puppet/network/http/compression.rb +0 -127
  507. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  508. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  509. data/lib/puppet/network/rest_controller.rb +0 -2
  510. data/lib/puppet/network/rights.rb +0 -210
  511. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  512. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  513. data/lib/puppet/parser/environment_compiler.rb +0 -202
  514. data/lib/puppet/pops/types/enumeration.rb +0 -16
  515. data/lib/puppet/resource/capability_finder.rb +0 -154
  516. data/lib/puppet/rest/errors.rb +0 -15
  517. data/lib/puppet/rest/response.rb +0 -35
  518. data/lib/puppet/rest/route.rb +0 -85
  519. data/lib/puppet/rest/routes.rb +0 -135
  520. data/lib/puppet/settings/alias_setting.rb +0 -37
  521. data/lib/puppet/ssl/host.rb +0 -505
  522. data/lib/puppet/ssl/key.rb +0 -61
  523. data/lib/puppet/ssl/validator.rb +0 -61
  524. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  525. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  526. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  527. data/lib/puppet/status.rb +0 -40
  528. data/lib/puppet/util/connection.rb +0 -88
  529. data/lib/puppet/util/fact_dif.rb +0 -81
  530. data/lib/puppet/util/ssl.rb +0 -83
  531. data/lib/puppet/util/windows/api_types.rb +0 -309
  532. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  533. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  534. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  535. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  536. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  537. data/lib/puppet/vendor/pathspec/README.md +0 -53
  538. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  539. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  540. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  541. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  542. data/man/man8/puppet-key.8 +0 -126
  543. data/man/man8/puppet-man.8 +0 -76
  544. data/man/man8/puppet-status.8 +0 -108
  545. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  546. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  547. data/spec/integration/application/resource_spec.rb +0 -30
  548. data/spec/integration/network/authconfig_spec.rb +0 -256
  549. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  550. data/spec/unit/application/man_spec.rb +0 -52
  551. data/spec/unit/capability_spec.rb +0 -414
  552. data/spec/unit/face/key_spec.rb +0 -9
  553. data/spec/unit/face/module/search_spec.rb +0 -231
  554. data/spec/unit/face/status_spec.rb +0 -9
  555. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  556. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  557. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  558. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  559. data/spec/unit/indirector/key/file_spec.rb +0 -78
  560. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  561. data/spec/unit/indirector/status/local_spec.rb +0 -10
  562. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  563. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  564. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  565. data/spec/unit/network/authstore_spec.rb +0 -422
  566. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  567. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  568. data/spec/unit/network/http/compression_spec.rb +0 -240
  569. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  570. data/spec/unit/network/http_spec.rb +0 -9
  571. data/spec/unit/network/rights_spec.rb +0 -439
  572. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  573. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  574. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  575. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  576. data/spec/unit/rest/route_spec.rb +0 -132
  577. data/spec/unit/ssl/host_spec.rb +0 -645
  578. data/spec/unit/ssl/key_spec.rb +0 -173
  579. data/spec/unit/ssl/validator_spec.rb +0 -278
  580. data/spec/unit/status_spec.rb +0 -45
  581. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,28 +1,24 @@
1
1
  require 'puppet/file_serving/metadata'
2
2
 
3
+ # The FileServer service is used to retrieve file metadata and content.
3
4
  #
4
- # @api private
5
- #
6
- # The FileServer service is used to retrieve file metadata and content
5
+ # @api public
7
6
  #
8
7
  class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
9
- # @api private
10
8
  # @return [String] Default API for the FileServer service
11
9
  API = '/puppet/v3'.freeze
12
10
 
13
- # @api private
14
11
  # @return [RegEx] RegEx used to determine if a path contains a leading slash
15
12
  PATH_REGEX = /^\//
16
13
 
17
- #
18
- # @api private
14
+ # Use `Puppet::HTTP::Session.route_to(:fileserver)` to create or get an instance of this class.
19
15
  #
20
16
  # @param [Puppet::HTTP::Client] client
21
17
  # @param [Puppet::HTTP::Session] session
22
- # @param [String] server (Puppet[:ca_server]) If an explicit server is given,
18
+ # @param [String] server (`Puppet[:server]`) If an explicit server is given,
23
19
  # create a service using that server. If server is nil, the default value
24
20
  # is used to create the service.
25
- # @param [Integer] port (Puppet[:ca_port]) If an explicit port is given, create
21
+ # @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
26
22
  # a service using that port. If port is nil, the default value is used to
27
23
  # create the service.
28
24
  #
@@ -31,19 +27,14 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
31
27
  super(client, session, url)
32
28
  end
33
29
 
34
- #
35
- # @api private
36
- #
37
- # Submit a GET request to the server to retrieve the metadata for a specified
38
- # file
30
+ # Submit a GET request to the server to retrieve the metadata for a specified file.
39
31
  #
40
32
  # @param [String] path path to the file to retrieve data from
41
33
  # @param [String] environment the name of the environment we are operating in
42
34
  # @param [Symbol] links Can be one of either `:follow` or `:manage`, defines
43
35
  # how links are handled.
44
36
  # @param [String] checksum_type The digest algorithm used to verify the file.
45
- # Currently if fips is enabled, this defaults to `sha256`. Otherwise, it
46
- # defaults to `md5`.
37
+ # Defaults to `sha256`.
47
38
  # @param [Symbol] source_permissions Can be one of `:use`, `:use_when_creating`,
48
39
  # or `:ignore`. This parameter tells the server if it should include the
49
40
  # file permissions in the response. If set to `:ignore`, the server will
@@ -53,6 +44,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
53
44
  # array with the request response and the deserialized metadata for the
54
45
  # file returned from the server
55
46
  #
47
+ # @api public
48
+ #
56
49
  def get_file_metadata(path:, environment:, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
57
50
  validate_path(path)
58
51
 
@@ -74,9 +67,6 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
74
67
  [response, deserialize(response, Puppet::FileServing::Metadata)]
75
68
  end
76
69
 
77
- #
78
- # @api private
79
- #
80
70
  # Submit a GET request to the server to retrieve the metadata for multiple files
81
71
  #
82
72
  # @param [String] path path to the file(s) to retrieve data from
@@ -106,7 +96,9 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
106
96
  # An array with the request response and an array of the deserialized
107
97
  # metadata for each file returned from the server
108
98
  #
109
- def get_file_metadatas(path: nil, environment:, recurse: :false, recurselimit: nil, max_files: nil, ignore: nil, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
99
+ # @api public
100
+ #
101
+ def get_file_metadatas(path: nil, environment:, recurse: :false, recurselimit: nil, ignore: nil, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
110
102
  validate_path(path)
111
103
 
112
104
  headers = add_puppet_headers('Accept' => get_mime_types(Puppet::FileServing::Metadata).join(', '))
@@ -117,7 +109,6 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
117
109
  params: {
118
110
  recurse: recurse,
119
111
  recurselimit: recurselimit,
120
- max_files: max_files,
121
112
  ignore: ignore,
122
113
  links: links,
123
114
  checksum_type: checksum_type,
@@ -131,10 +122,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
131
122
  [response, deserialize_multiple(response, Puppet::FileServing::Metadata)]
132
123
  end
133
124
 
134
- #
135
- # @api private
136
- #
137
- # Submit a GET request to the server to retrieve content of a file
125
+ # Submit a GET request to the server to retrieve content of a file.
138
126
  #
139
127
  # @param [String] path path to the file to retrieve data from
140
128
  # @param [String] environment the name of the environment we are operating in
@@ -143,6 +131,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
143
131
  #
144
132
  # @return [Puppet::HTTP::Response] The request response
145
133
  #
134
+ # @api public
135
+ #
146
136
  def get_file_content(path:, environment:, &block)
147
137
  validate_path(path)
148
138
 
@@ -164,10 +154,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
164
154
  response
165
155
  end
166
156
 
167
- #
168
- # @api private
169
- #
170
- # Submit a GET request to
157
+ # Submit a GET request to retrieve file content using the `static_file_content` API
158
+ # uniquely identified by (`code_id`, `environment`, `path`).
171
159
  #
172
160
  # @param [String] path path to the file to retrieve data from
173
161
  # @param [String] environment the name of the environment we are operating in
@@ -177,6 +165,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
177
165
  #
178
166
  # @return [Puppet::HTTP::Response] The request response
179
167
  #
168
+ # @api public
169
+ #
180
170
  def get_static_file_content(path:, environment:, code_id:, &block)
181
171
  validate_path(path)
182
172
 
@@ -1,38 +1,52 @@
1
1
  # The puppetserver service.
2
2
  #
3
- # @api private
3
+ # @api public
4
4
  #
5
5
  class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
6
+
7
+ # Use `Puppet::HTTP::Session.route_to(:puppetserver)` to create or get an instance of this class.
8
+ #
6
9
  # @param [Puppet::HTTP::Client] client
7
10
  # @param [Puppet::HTTP::Session] session
8
- # @param [String] server If an explicit server is given,
11
+ # @param [String] server (`Puppet[:server]`) If an explicit server is given,
9
12
  # create a service using that server. If server is nil, the default value
10
13
  # is used to create the service.
11
- # @param [Integer] port If an explicit port is given, create
14
+ # @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
12
15
  # a service using that port. If port is nil, the default value is used to
13
16
  # create the service.
14
- # @api private
15
17
  #
16
18
  def initialize(client, session, server, port)
17
19
  url = build_url('', server || Puppet[:server], port || Puppet[:serverport])
18
20
  super(client, session, url)
19
21
  end
20
22
 
21
- # Request the puppetserver's simple status
23
+ # Request the puppetserver's simple status.
22
24
  #
23
25
  # @param [Puppet::SSL::SSLContext] ssl_context to use when establishing
24
26
  # the connection.
25
27
  # @return Puppet::HTTP::Response The HTTP response
26
- # @api private
28
+ #
29
+ # @api public
27
30
  #
28
31
  def get_simple_status(ssl_context: nil)
29
- response = @client.get(
30
- with_base_url("/status/v1/simple/master"),
31
- headers: add_puppet_headers({}),
32
- options: {ssl_context: ssl_context}
33
- )
32
+ request_path = "/status/v1/simple/server"
33
+
34
+ begin
35
+ response = @client.get(
36
+ with_base_url(request_path),
37
+ headers: add_puppet_headers({}),
38
+ options: {ssl_context: ssl_context}
39
+ )
34
40
 
35
- process_response(response)
41
+ process_response(response)
42
+ rescue Puppet::HTTP::ResponseError => e
43
+ if e.response.code == 404 && e.response.url.path == "/status/v1/simple/server"
44
+ request_path = "/status/v1/simple/master"
45
+ retry
46
+ else
47
+ raise e
48
+ end
49
+ end
36
50
 
37
51
  [response, response.body.to_s]
38
52
  end
@@ -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)
@@ -194,7 +194,6 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
194
194
  :source_permissions => resource[:source_permissions] ? resource[:source_permissions].to_sym : :ignore,
195
195
  :recurse => true,
196
196
  :recurselimit => resource[:recurselimit],
197
- :max_files => resource[:max_files],
198
197
  :ignore => resource[:ignore],
199
198
  }
200
199
 
@@ -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
@@ -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
@@ -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