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,24 +1,17 @@
1
+ # Represents an abstract Puppet web service.
1
2
  #
2
- # @api private
3
- #
4
- # Represents a puppet web service
5
- #
3
+ # @abstract Subclass and implement methods for the service's REST APIs.
4
+ # @api public
6
5
  class Puppet::HTTP::Service
7
- # @api private
8
6
  # @return [URI] the url associated with this service
9
7
  attr_reader :url
10
8
 
11
- # @api private
12
9
  # @return [Array<Symbol>] available services
13
10
  SERVICE_NAMES = [:ca, :fileserver, :puppet, :puppetserver, :report].freeze
14
11
 
15
- # @api private
16
12
  # @return [Array<Symbol>] format types that are unsupported
17
13
  EXCLUDED_FORMATS = [:yaml, :b64_zlib_yaml, :dot].freeze
18
14
 
19
- #
20
- # @api private
21
- #
22
15
  # Create a new web service, which contains the URL used to connect to the
23
16
  # service. The four services implemented are `:ca`, `:fileserver`, `:puppet`,
24
17
  # and `:report`.
@@ -35,6 +28,7 @@ class Puppet::HTTP::Service
35
28
  #
36
29
  # @return [Puppet::HTTP::Service] an instance of the service type requested
37
30
  #
31
+ # @api private
38
32
  def self.create_service(client, session, name, server = nil, port = nil)
39
33
  case name
40
34
  when :ca
@@ -52,57 +46,49 @@ class Puppet::HTTP::Service
52
46
  end
53
47
  end
54
48
 
55
- #
56
- # @api private
57
- #
58
49
  # Check if the service named is included in the list of available services.
59
50
  #
60
51
  # @param [Symbol] name
61
52
  #
62
53
  # @return [Boolean]
63
54
  #
55
+ # @api private
64
56
  def self.valid_name?(name)
65
57
  SERVICE_NAMES.include?(name)
66
58
  end
67
59
 
68
- #
69
- # @api private
70
- #
71
- # Create a new service
60
+ # Create a new service. Services should be created by calling `Puppet::HTTP::Session#route_to`.
72
61
  #
73
62
  # @param [Puppet::HTTP::Client] client
74
63
  # @param [Puppet::HTTP::Session] session
75
64
  # @param [URI] url The url to connect to
76
65
  #
66
+ # @api private
77
67
  def initialize(client, session, url)
78
68
  @client = client
79
69
  @session = session
80
70
  @url = url
81
71
  end
82
72
 
83
- #
84
- # @api private
85
- #
86
73
  # Return the url with the given path encoded and appended
87
74
  #
88
75
  # @param [String] path the string to append to the base url
89
76
  #
90
77
  # @return [URI] the URI object containing the encoded path
91
78
  #
79
+ # @api public
92
80
  def with_base_url(path)
93
81
  u = @url.dup
94
82
  u.path += Puppet::Util.uri_encode(path)
95
83
  u
96
84
  end
97
85
 
86
+ # Open a connection using the given ssl context.
98
87
  #
99
- # @api private
100
- #
101
- # Open a connection using the given ssl context
102
- #
103
- # @param [Puppet::SSL::SSLContext] ssl_context (nil) optional ssl context to
104
- # connect with
88
+ # @param [Puppet::SSL::SSLContext] ssl_context An optional ssl context to connect with
89
+ # @return [void]
105
90
  #
91
+ # @api public
106
92
  def connect(ssl_context: nil)
107
93
  @client.connect(@url, options: {ssl_context: ssl_context})
108
94
  end
@@ -1,26 +1,21 @@
1
+ # The CA service is used to handle certificate related REST requests.
1
2
  #
2
- # @api private
3
- #
4
- # The Ca service is used to handle certificate requests
5
- #
3
+ # @api public
6
4
  class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
7
- # @api private
8
5
  # @return [Hash] default headers for the ca service
9
6
  HEADERS = { 'Accept' => 'text/plain' }.freeze
10
7
 
11
- # @api private
12
8
  # @return [String] default API for the ca service
13
9
  API = '/puppet-ca/v1'.freeze
14
10
 
15
- #
16
- # @api private
11
+ # Use `Puppet::HTTP::Session.route_to(:ca)` to create or get an instance of this class.
17
12
  #
18
13
  # @param [Puppet::HTTP::Client] client
19
14
  # @param [Puppet::HTTP::Session] session
20
- # @param [String] server (Puppet[:ca_server]) If an explicit server is given,
15
+ # @param [String] server (`Puppet[:ca_server]`) If an explicit server is given,
21
16
  # create a service using that server. If server is nil, the default value
22
17
  # is used to create the service.
23
- # @param [Integer] port (Puppet[:ca_port]) If an explicit port is given, create
18
+ # @param [Integer] port (`Puppet[:ca_port]`) If an explicit port is given, create
24
19
  # a service using that port. If port is nil, the default value is used to
25
20
  # create the service.
26
21
  #
@@ -29,10 +24,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
29
24
  super(client, session, url)
30
25
  end
31
26
 
32
- #
33
- # @api private
34
- #
35
- # Submit a GET request to retrieve the named certificate from the server
27
+ # Submit a GET request to retrieve the named certificate from the server.
36
28
  #
37
29
  # @param [String] name name of the certificate to request
38
30
  # @param [Puppet::SSL::SSLContext] ssl_context
@@ -40,6 +32,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
40
32
  # @return [Array<Puppet::HTTP::Response, String>] An array containing the
41
33
  # request response and the stringified body of the request response
42
34
  #
35
+ # @api public
43
36
  def get_certificate(name, ssl_context: nil)
44
37
  response = @client.get(
45
38
  with_base_url("/certificate/#{name}"),
@@ -52,11 +45,8 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
52
45
  [response, response.body.to_s]
53
46
  end
54
47
 
55
- #
56
- # @api private
57
- #
58
48
  # Submit a GET request to retrieve the certificate revocation list from the
59
- # server
49
+ # server.
60
50
  #
61
51
  # @param [Time] if_modified_since If not nil, only download the CRL if it has
62
52
  # been modified since the specified time.
@@ -65,6 +55,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
65
55
  # @return [Array<Puppet::HTTP::Response, String>] An array containing the
66
56
  # request response and the stringified body of the request response
67
57
  #
58
+ # @api public
68
59
  def get_certificate_revocation_list(if_modified_since: nil, ssl_context: nil)
69
60
  headers = add_puppet_headers(HEADERS)
70
61
  headers['If-Modified-Since'] = if_modified_since.httpdate if if_modified_since
@@ -80,10 +71,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
80
71
  [response, response.body.to_s]
81
72
  end
82
73
 
83
- #
84
- # @api private
85
- #
86
- # Submit a PUT request to send a certificate request to the server
74
+ # Submit a PUT request to send a certificate request to the server.
87
75
  #
88
76
  # @param [String] name The name of the certificate request being sent
89
77
  # @param [OpenSSL::X509::Request] csr Certificate request to send to the
@@ -92,6 +80,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
92
80
  #
93
81
  # @return [Puppet::HTTP::Response] The request response
94
82
  #
83
+ # @api public
95
84
  def put_certificate_request(name, csr, ssl_context: nil)
96
85
  headers = add_puppet_headers(HEADERS)
97
86
  headers['Content-Type'] = 'text/plain'
@@ -1,23 +1,19 @@
1
- #
2
- # @api private
3
- #
4
1
  # The Compiler service is used to submit and retrieve data from the
5
2
  # puppetserver.
6
3
  #
4
+ # @api public
7
5
  class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
8
- # @api private
9
6
  # @return [String] Default API for the Compiler service
10
7
  API = '/puppet/v3'.freeze
11
8
 
12
- #
13
- # @api private
9
+ # Use `Puppet::HTTP::Session.route_to(:puppet)` to create or get an instance of this class.
14
10
  #
15
11
  # @param [Puppet::HTTP::Client] client
16
12
  # @param [Puppet::HTTP::Session] session
17
- # @param [String] server (Puppet[:ca_server]) If an explicit server is given,
13
+ # @param [String] server (`Puppet[:server]`) If an explicit server is given,
18
14
  # create a service using that server. If server is nil, the default value
19
15
  # is used to create the service.
20
- # @param [Integer] port (Puppet[:ca_port]) If an explicit port is given, create
16
+ # @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
21
17
  # a service using that port. If port is nil, the default value is used to
22
18
  # create the service.
23
19
  #
@@ -26,10 +22,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
26
22
  super(client, session, url)
27
23
  end
28
24
 
29
- #
30
- # @api private
31
- #
32
- # Submit a GET request to retrieve a node from the server
25
+ # Submit a GET request to retrieve a node from the server.
33
26
  #
34
27
  # @param [String] name The name of the node being requested
35
28
  # @param [String] environment The name of the environment we are operating in
@@ -41,6 +34,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
41
34
  # @return [Array<Puppet::HTTP::Response, Puppet::Node>] An array containing
42
35
  # the request response and the deserialized requested node
43
36
  #
37
+ # @api public
44
38
  def get_node(name, environment:, configured_environment: nil, transaction_uuid: nil)
45
39
  headers = add_puppet_headers('Accept' => get_mime_types(Puppet::Node).join(', '))
46
40
 
@@ -59,10 +53,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
59
53
  [response, deserialize(response, Puppet::Node)]
60
54
  end
61
55
 
62
- #
63
- # @api private
64
- #
65
- # Submit a POST request to submit a catalog to the server
56
+ # Submit a POST request to submit a catalog to the server.
66
57
  #
67
58
  # @param [String] name The name of the catalog to be submitted
68
59
  # @param [Puppet::Node::Facts] facts Facts for this catalog
@@ -77,14 +68,13 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
77
68
  # @param [Boolean] static_catalog Indicates if the file metadata(s) are inlined
78
69
  # in the catalog. This informs the agent if it needs to make a second request
79
70
  # to retrieve metadata in addition to the initial catalog request.
80
- # @param [Array<String>] checksum_type An array of accepted checksum type.
81
- # Currently defaults to `["md5", "sha256", "sha384", "sha512", "sha224"]`,
82
- # or `["sha256", "sha384", "sha512", "sha224"]` if fips is enabled.
71
+ # @param [Array<String>] checksum_type An array of accepted checksum types.
83
72
  #
84
73
  # @return [Array<Puppet::HTTP::Response, Puppet::Resource::Catalog>] An array
85
74
  # containing the request response and the deserialized catalog returned by
86
75
  # the server
87
76
  #
77
+ # @api public
88
78
  def post_catalog(name, facts:, environment:, configured_environment: nil, transaction_uuid: nil, job_uuid: nil, static_catalog: true, checksum_type: Puppet[:supported_checksum_types])
89
79
  if Puppet[:preferred_serialization_format] == "pson"
90
80
  formatter = Puppet::Network::FormatHandler.format_for(:pson)
@@ -129,79 +119,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
129
119
  [response, deserialize(response, Puppet::Resource::Catalog)]
130
120
  end
131
121
 
132
- #
133
- # @api private
134
- #
135
- # Submit a POST request to request a catalog to the server using v4 endpoint
136
- #
137
- # @param [String] certname The name of the node for which to compile the catalog.
138
- # @param [Hash] persistent A hash containing two required keys, facts and catalog,
139
- # which when set to true will cause the facts and reports to be stored in
140
- # PuppetDB, or discarded if set to false.
141
- # @param [String] environment The name of the environment for which to compile the catalog.
142
- # @param [Hash] facts A hash with a required values key, containing a hash of all the
143
- # facts for the node. If not provided, Puppet will attempt to fetch facts for the node
144
- # from PuppetDB.
145
- # @param [Hash] trusted_facts A hash with a required values key containing a hash of
146
- # the trusted facts for a node
147
- # @param [String] transaction_uuid The id for tracking the catalog compilation and
148
- # report submission.
149
- # @param [String] job_id The id of the orchestrator job that triggered this run.
150
- # @param [Hash] options A hash of options beyond direct input to catalogs. Options:
151
- # - prefer_requested_environment Whether to always override a node's classified
152
- # environment with the one supplied in the request. If this is true and no environment
153
- # is supplied, fall back to the classified environment, or finally, 'production'.
154
- # - capture_logs Whether to return the errors and warnings that occurred during
155
- # compilation alongside the catalog in the response body.
156
- # - log_level The logging level to use during the compile when capture_logs is true.
157
- # Options are 'err', 'warning', 'info', and 'debug'.
158
- #
159
- # @return [Array<Puppet::HTTP::Response, Puppet::Resource::Catalog, Array<String>>] An array
160
- # containing the request response, the deserialized catalog returned by
161
- # the server and array containing logs (log array will be empty if capture_logs is false)
162
- #
163
- def post_catalog4(certname, persistence:, environment:, facts: nil, trusted_facts: nil, transaction_uuid: nil, job_id: nil, options: nil)
164
- unless persistence.is_a?(Hash) && (missing = [:facts, :catalog] - persistence.keys.map(&:to_sym)).empty?
165
- raise ArgumentError.new("The 'persistence' hash is missing the keys: #{missing.join(', ')}")
166
- end
167
- raise ArgumentError.new("Facts must be a Hash not a #{facts.class}") unless facts.nil? || facts.is_a?(Hash)
168
- body = {
169
- certname: certname,
170
- persistence: persistence,
171
- environment: environment,
172
- transaction_uuid: transaction_uuid,
173
- job_id: job_id,
174
- options: options
175
- }
176
- body[:facts] = { values: facts } unless facts.nil?
177
- body[:trusted_facts] = { values: trusted_facts } unless trusted_facts.nil?
178
- headers = add_puppet_headers(
179
- 'Accept' => get_mime_types(Puppet::Resource::Catalog).join(', '),
180
- 'Content-Type' => 'application/json'
181
- )
182
-
183
- url = URI::HTTPS.build(host: @url.host, port: @url.port, path: Puppet::Util.uri_encode("/puppet/v4/catalog"))
184
- response = @client.post(
185
- url,
186
- body.to_json,
187
- headers: headers
188
- )
189
- process_response(response)
190
- begin
191
- response_body = JSON.parse(response.body)
192
- catalog = Puppet::Resource::Catalog.from_data_hash(response_body['catalog'])
193
- rescue => err
194
- raise Puppet::HTTP::SerializationError.new("Failed to deserialize catalog from puppetserver response: #{err.message}", err)
195
- end
196
-
197
- logs = response_body['logs'] || []
198
- [response, catalog, logs]
199
- end
200
-
201
- #
202
- # @api private
203
- #
204
- # Submit a GET request to retrieve the facts for the named node
122
+ # Submit a GET request to retrieve the facts for the named node.
205
123
  #
206
124
  # @param [String] name Name of the node to retrieve facts for
207
125
  # @param [String] environment Name of the environment we are operating in
@@ -210,6 +128,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
210
128
  # containing the request response and the deserialized facts for the
211
129
  # specified node
212
130
  #
131
+ # @api public
213
132
  def get_facts(name, environment:)
214
133
  headers = add_puppet_headers('Accept' => get_mime_types(Puppet::Node::Facts).join(', '))
215
134
 
@@ -224,10 +143,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
224
143
  [response, deserialize(response, Puppet::Node::Facts)]
225
144
  end
226
145
 
227
- #
228
- # @api private
229
- #
230
- # Submits a PUT request to submit facts for the node to the server
146
+ # Submits a PUT request to submit facts for the node to the server.
231
147
  #
232
148
  # @param [String] name Name of the node we are submitting facts for
233
149
  # @param [String] environment Name of the environment we are operating in
@@ -235,6 +151,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
235
151
  #
236
152
  # @return [Puppet::HTTP::Response] The request response
237
153
  #
154
+ # @api public
238
155
  def put_facts(name, environment:, facts:)
239
156
  formatter = Puppet::Network::FormatHandler.format_for(Puppet[:preferred_serialization_format])
240
157
 
@@ -255,39 +172,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
255
172
  response
256
173
  end
257
174
 
175
+ # Submit a GET request to retrieve a file stored with filebucket.
258
176
  #
259
- # @api private
260
- #
261
- # Submit a GET request to find the status of a compiler
262
- #
263
- # @param [String] name The name of the node that a status being requested for
264
- #
265
- # @return [Array<Puppet::HTTP::Response, Puppet::Status>] An array containing
266
- # the request response and the deserialized status returned from the server
267
- #
268
- def get_status(name)
269
- headers = add_puppet_headers('Accept' => get_mime_types(Puppet::Status).join(', '))
270
-
271
- response = @client.get(
272
- with_base_url("/status/#{name}"),
273
- headers: headers,
274
- params: {
275
- # environment is required, but meaningless, default to production
276
- environment: 'production'
277
- },
278
- )
279
-
280
- process_response(response)
281
-
282
- [response, deserialize(response, Puppet::Status)]
283
- end
284
-
285
- #
286
- # @api private
287
- #
288
- # Submit a GET request to retrieve a file stored with filebucket
289
- #
290
- # @param [String] path The request path, formatted by Puppet::FileBucket::Dipper
177
+ # @param [String] path The request path, formatted by `Puppet::FileBucket::Dipper`
291
178
  # @param [String] environment Name of the environment we are operating in.
292
179
  # This should not impact filebucket at all, but is included to be consistent
293
180
  # with legacy code.
@@ -302,6 +189,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
302
189
  # containing the request response and the deserialized file returned from
303
190
  # the server.
304
191
  #
192
+ # @api public
305
193
  def get_filebucket_file(path, environment:, bucket_path: nil, diff_with: nil, list_all: nil, fromdate: nil, todate: nil)
306
194
  headers = add_puppet_headers('Accept' => 'application/octet-stream')
307
195
 
@@ -323,12 +211,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
323
211
  [response, deserialize(response, Puppet::FileBucket::File)]
324
212
  end
325
213
 
214
+ # Submit a PUT request to store a file with filebucket.
326
215
  #
327
- # @api private
328
- #
329
- # Submit a PUT request to store a file with filebucket
330
- #
331
- # @param [String] path The request path, formatted by Puppet::FileBucket::Dipper
216
+ # @param [String] path The request path, formatted by `Puppet::FileBucket::Dipper`
332
217
  # @param [String] body The contents of the file to be backed
333
218
  # @param [String] environment Name of the environment we are operating in.
334
219
  # This should not impact filebucket at all, but is included to be consistent
@@ -336,6 +221,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
336
221
  #
337
222
  # @return [Puppet::HTTP::Response] The response request
338
223
  #
224
+ # @api public
339
225
  def put_filebucket_file(path, body:, environment:)
340
226
  headers = add_puppet_headers({
341
227
  'Accept' => 'application/octet-stream',
@@ -356,12 +242,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
356
242
  response
357
243
  end
358
244
 
245
+ # Submit a HEAD request to check the status of a file stored with filebucket.
359
246
  #
360
- # @api private
361
- #
362
- # Submit a HEAD request to check the status of a file stored with filebucket
363
- #
364
- # @param [String] path The request path, formatted by Puppet::FileBucket::Dipper
247
+ # @param [String] path The request path, formatted by `Puppet::FileBucket::Dipper`
365
248
  # @param [String] environment Name of the environment we are operating in.
366
249
  # This should not impact filebucket at all, but is included to be consistent
367
250
  # with legacy code.
@@ -369,6 +252,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
369
252
  #
370
253
  # @return [Puppet::HTTP::Response] The request response
371
254
  #
255
+ # @api public
372
256
  def head_filebucket_file(path, environment:, bucket_path: nil)
373
257
  headers = add_puppet_headers('Accept' => 'application/octet-stream')
374
258