puppet 6.20.0-x64-mingw32 → 7.0.0-x64-mingw32

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

Potentially problematic release.


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

Files changed (484) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/Gemfile +0 -2
  4. data/Gemfile.lock +18 -24
  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/project_data.yaml +1 -14
  10. data/ext/redhat/puppet.spec.erb +0 -1
  11. data/ext/windows/service/daemon.rb +6 -5
  12. data/install.rb +21 -17
  13. data/lib/puppet.rb +11 -20
  14. data/lib/puppet/application.rb +178 -108
  15. data/lib/puppet/application/agent.rb +0 -1
  16. data/lib/puppet/application/apply.rb +2 -3
  17. data/lib/puppet/application/device.rb +100 -105
  18. data/lib/puppet/application/filebucket.rb +13 -9
  19. data/lib/puppet/application/script.rb +0 -1
  20. data/lib/puppet/application/ssl.rb +1 -1
  21. data/lib/puppet/application_support.rb +0 -7
  22. data/lib/puppet/configurer.rb +30 -45
  23. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  24. data/lib/puppet/defaults.rb +97 -167
  25. data/lib/puppet/environments.rb +59 -58
  26. data/lib/puppet/face/facts.rb +51 -51
  27. data/lib/puppet/face/help.rb +1 -1
  28. data/lib/puppet/face/plugin.rb +5 -8
  29. data/lib/puppet/ffi/windows.rb +12 -0
  30. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  31. data/lib/puppet/ffi/windows/constants.rb +404 -0
  32. data/lib/puppet/ffi/windows/functions.rb +628 -0
  33. data/lib/puppet/ffi/windows/structs.rb +338 -0
  34. data/lib/puppet/file_serving/configuration.rb +0 -5
  35. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  36. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  37. data/lib/puppet/file_serving/mount.rb +1 -2
  38. data/lib/puppet/forge/repository.rb +0 -1
  39. data/lib/puppet/generate/models/type/type.rb +4 -1
  40. data/lib/puppet/http.rb +22 -13
  41. data/lib/puppet/http/client.rb +164 -114
  42. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  43. data/lib/puppet/http/errors.rb +16 -0
  44. data/lib/puppet/http/external_client.rb +5 -7
  45. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  46. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  47. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  48. data/lib/puppet/http/proxy.rb +137 -0
  49. data/lib/puppet/http/redirector.rb +4 -12
  50. data/lib/puppet/http/resolver.rb +5 -15
  51. data/lib/puppet/http/resolver/server_list.rb +6 -10
  52. data/lib/puppet/http/resolver/settings.rb +4 -7
  53. data/lib/puppet/http/resolver/srv.rb +7 -11
  54. data/lib/puppet/http/response.rb +36 -54
  55. data/lib/puppet/http/response_converter.rb +24 -0
  56. data/lib/puppet/http/response_net_http.rb +42 -0
  57. data/lib/puppet/http/retry_after_handler.rb +4 -13
  58. data/lib/puppet/http/service.rb +12 -26
  59. data/lib/puppet/http/service/ca.rb +11 -22
  60. data/lib/puppet/http/service/compiler.rb +22 -69
  61. data/lib/puppet/http/service/file_server.rb +18 -27
  62. data/lib/puppet/http/service/puppetserver.rb +26 -12
  63. data/lib/puppet/http/service/report.rb +8 -10
  64. data/lib/puppet/http/session.rb +11 -20
  65. data/lib/puppet/{network/http → http}/site.rb +1 -2
  66. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  67. data/lib/puppet/indirector/facts/facter.rb +24 -3
  68. data/lib/puppet/indirector/facts/rest.rb +3 -22
  69. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  70. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  71. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  72. data/lib/puppet/indirector/file_server.rb +1 -8
  73. data/lib/puppet/indirector/generic_http.rb +0 -11
  74. data/lib/puppet/indirector/node/rest.rb +2 -4
  75. data/lib/puppet/indirector/report/rest.rb +3 -8
  76. data/lib/puppet/indirector/request.rb +0 -101
  77. data/lib/puppet/indirector/rest.rb +12 -263
  78. data/lib/puppet/module_tool/applications.rb +0 -1
  79. data/lib/puppet/module_tool/applications/installer.rb +2 -48
  80. data/lib/puppet/module_tool/errors/shared.rb +2 -17
  81. data/lib/puppet/network/authconfig.rb +2 -96
  82. data/lib/puppet/network/authorization.rb +13 -35
  83. data/lib/puppet/network/http.rb +3 -3
  84. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  85. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  86. data/lib/puppet/network/http/connection.rb +247 -316
  87. data/lib/puppet/network/http/handler.rb +0 -1
  88. data/lib/puppet/network/http_pool.rb +16 -34
  89. data/lib/puppet/node.rb +1 -30
  90. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  91. data/lib/puppet/pal/pal_impl.rb +3 -1
  92. data/lib/puppet/parser/ast/leaf.rb +2 -3
  93. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  94. data/lib/puppet/parser/compiler.rb +0 -198
  95. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  96. data/lib/puppet/parser/resource.rb +0 -69
  97. data/lib/puppet/parser/templatewrapper.rb +1 -1
  98. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  99. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  100. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  101. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  102. data/lib/puppet/pops/issues.rb +0 -5
  103. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  104. data/lib/puppet/pops/model/ast.pp +0 -42
  105. data/lib/puppet/pops/model/ast.rb +0 -290
  106. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  107. data/lib/puppet/pops/model/factory.rb +0 -45
  108. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  109. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  110. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  111. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  112. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  113. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  114. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  115. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  116. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  117. data/lib/puppet/pops/types/type_parser.rb +0 -4
  118. data/lib/puppet/pops/types/types.rb +0 -1
  119. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  120. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  121. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  122. data/lib/puppet/provider.rb +0 -13
  123. data/lib/puppet/provider/nameservice.rb +0 -18
  124. data/lib/puppet/provider/package/apt.rb +0 -4
  125. data/lib/puppet/provider/package/dpkg.rb +0 -10
  126. data/lib/puppet/provider/package/gem.rb +23 -3
  127. data/lib/puppet/provider/package/pip.rb +0 -1
  128. data/lib/puppet/provider/package/pkg.rb +0 -4
  129. data/lib/puppet/provider/package/portage.rb +1 -1
  130. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  131. data/lib/puppet/provider/service/smf.rb +191 -73
  132. data/lib/puppet/provider/user/aix.rb +2 -2
  133. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  134. data/lib/puppet/reference/configuration.rb +7 -6
  135. data/lib/puppet/reference/indirection.rb +1 -1
  136. data/lib/puppet/resource.rb +1 -89
  137. data/lib/puppet/resource/catalog.rb +1 -14
  138. data/lib/puppet/resource/type.rb +3 -119
  139. data/lib/puppet/resource/type_collection.rb +3 -48
  140. data/lib/puppet/runtime.rb +1 -2
  141. data/lib/puppet/settings.rb +73 -66
  142. data/lib/puppet/settings/integer_setting.rb +17 -0
  143. data/lib/puppet/settings/port_setting.rb +15 -0
  144. data/lib/puppet/settings/priority_setting.rb +5 -4
  145. data/lib/puppet/ssl.rb +10 -6
  146. data/lib/puppet/ssl/base.rb +3 -5
  147. data/lib/puppet/ssl/certificate.rb +0 -6
  148. data/lib/puppet/ssl/certificate_request.rb +1 -12
  149. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  150. data/lib/puppet/ssl/oids.rb +3 -1
  151. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  152. data/lib/puppet/ssl/state_machine.rb +3 -1
  153. data/lib/puppet/ssl/verifier.rb +2 -0
  154. data/lib/puppet/test/test_helper.rb +1 -3
  155. data/lib/puppet/transaction.rb +1 -7
  156. data/lib/puppet/transaction/report.rb +2 -4
  157. data/lib/puppet/type.rb +0 -76
  158. data/lib/puppet/type/file.rb +5 -7
  159. data/lib/puppet/type/file/checksum.rb +1 -1
  160. data/lib/puppet/type/file/source.rb +1 -1
  161. data/lib/puppet/type/filebucket.rb +3 -3
  162. data/lib/puppet/type/package.rb +5 -13
  163. data/lib/puppet/util/autoload.rb +8 -1
  164. data/lib/puppet/util/execution.rb +0 -11
  165. data/lib/puppet/util/http_proxy.rb +2 -215
  166. data/lib/puppet/util/monkey_patches.rb +0 -46
  167. data/lib/puppet/util/posix.rb +5 -54
  168. data/lib/puppet/util/rdoc.rb +0 -7
  169. data/lib/puppet/util/retry_action.rb +1 -1
  170. data/lib/puppet/util/run_mode.rb +9 -1
  171. data/lib/puppet/util/windows.rb +3 -8
  172. data/lib/puppet/util/windows/daemon.rb +360 -0
  173. data/lib/puppet/util/windows/error.rb +1 -0
  174. data/lib/puppet/util/windows/eventlog.rb +4 -9
  175. data/lib/puppet/util/windows/file.rb +8 -242
  176. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  177. data/lib/puppet/util/windows/process.rb +4 -226
  178. data/lib/puppet/util/windows/service.rb +9 -460
  179. data/lib/puppet/util/windows/string.rb +12 -13
  180. data/lib/puppet/util/yaml.rb +0 -22
  181. data/lib/puppet/vendor/require_vendored.rb +0 -1
  182. data/lib/puppet/version.rb +1 -1
  183. data/lib/puppet/x509.rb +5 -1
  184. data/lib/puppet/x509/cert_provider.rb +29 -1
  185. data/locales/puppet.pot +587 -1312
  186. data/man/man5/puppet.conf.5 +39 -99
  187. data/man/man8/puppet-agent.8 +2 -2
  188. data/man/man8/puppet-apply.8 +2 -2
  189. data/man/man8/puppet-catalog.8 +1 -1
  190. data/man/man8/puppet-config.8 +1 -1
  191. data/man/man8/puppet-describe.8 +1 -1
  192. data/man/man8/puppet-device.8 +2 -2
  193. data/man/man8/puppet-doc.8 +1 -1
  194. data/man/man8/puppet-epp.8 +1 -1
  195. data/man/man8/puppet-facts.8 +51 -36
  196. data/man/man8/puppet-filebucket.8 +4 -4
  197. data/man/man8/puppet-generate.8 +1 -1
  198. data/man/man8/puppet-help.8 +1 -1
  199. data/man/man8/puppet-lookup.8 +1 -1
  200. data/man/man8/puppet-module.8 +1 -58
  201. data/man/man8/puppet-node.8 +1 -1
  202. data/man/man8/puppet-parser.8 +1 -1
  203. data/man/man8/puppet-plugin.8 +1 -1
  204. data/man/man8/puppet-report.8 +1 -1
  205. data/man/man8/puppet-resource.8 +1 -1
  206. data/man/man8/puppet-script.8 +2 -2
  207. data/man/man8/puppet-ssl.8 +1 -1
  208. data/man/man8/puppet.8 +2 -2
  209. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  210. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  211. data/spec/integration/application/agent_spec.rb +27 -138
  212. data/spec/integration/application/apply_spec.rb +1 -20
  213. data/spec/integration/application/filebucket_spec.rb +16 -16
  214. data/spec/integration/application/help_spec.rb +2 -0
  215. data/spec/integration/application/plugin_spec.rb +23 -1
  216. data/spec/integration/defaults_spec.rb +14 -3
  217. data/spec/integration/network/http_pool_spec.rb +3 -21
  218. data/spec/integration/parser/catalog_spec.rb +0 -38
  219. data/spec/integration/parser/node_spec.rb +0 -9
  220. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  221. data/spec/integration/resource/type_collection_spec.rb +6 -2
  222. data/spec/integration/transaction_spec.rb +9 -4
  223. data/spec/integration/type/file_spec.rb +5 -4
  224. data/spec/integration/util/windows/adsi_spec.rb +1 -3
  225. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  226. data/spec/integration/util/windows/registry_spec.rb +10 -0
  227. data/spec/integration/util/windows/security_spec.rb +1 -1
  228. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  229. data/spec/lib/puppet_spec/settings.rb +1 -0
  230. data/spec/spec_helper.rb +6 -1
  231. data/spec/unit/agent_spec.rb +6 -10
  232. data/spec/unit/application/agent_spec.rb +1 -0
  233. data/spec/unit/application/facts_spec.rb +35 -0
  234. data/spec/unit/application/filebucket_spec.rb +43 -39
  235. data/spec/unit/application/ssl_spec.rb +2 -2
  236. data/spec/unit/application_spec.rb +9 -51
  237. data/spec/unit/certificate_factory_spec.rb +1 -1
  238. data/spec/unit/configurer/downloader_spec.rb +6 -2
  239. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  240. data/spec/unit/configurer_spec.rb +12 -9
  241. data/spec/unit/confine/feature_spec.rb +1 -1
  242. data/spec/unit/confine_spec.rb +2 -8
  243. data/spec/unit/context/trusted_information_spec.rb +2 -6
  244. data/spec/unit/defaults_spec.rb +72 -42
  245. data/spec/unit/environments_spec.rb +19 -99
  246. data/spec/unit/face/facts_spec.rb +4 -0
  247. data/spec/unit/face/node_spec.rb +11 -0
  248. data/spec/unit/face/plugin_spec.rb +73 -33
  249. data/spec/unit/file_bucket/file_spec.rb +1 -1
  250. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
  251. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  252. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  253. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  254. data/spec/unit/forge/module_release_spec.rb +7 -2
  255. data/spec/unit/functions/camelcase_spec.rb +1 -1
  256. data/spec/unit/functions/capitalize_spec.rb +1 -1
  257. data/spec/unit/functions/downcase_spec.rb +1 -1
  258. data/spec/unit/functions/upcase_spec.rb +1 -1
  259. data/spec/unit/http/client_spec.rb +7 -8
  260. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  261. data/spec/unit/http/external_client_spec.rb +4 -4
  262. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  263. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  264. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  265. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  266. data/spec/unit/http/resolver_spec.rb +13 -13
  267. data/spec/unit/http/service/compiler_spec.rb +0 -62
  268. data/spec/unit/http/service/file_server_spec.rb +3 -3
  269. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  270. data/spec/unit/http/service_spec.rb +0 -1
  271. data/spec/unit/http/session_spec.rb +16 -14
  272. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  273. data/spec/unit/indirector/face_spec.rb +1 -0
  274. data/spec/unit/indirector/facts/facter_spec.rb +98 -0
  275. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  276. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  277. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  278. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  279. data/spec/unit/indirector/file_server_spec.rb +1 -15
  280. data/spec/unit/indirector/indirection_spec.rb +12 -8
  281. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  282. data/spec/unit/indirector/request_spec.rb +0 -264
  283. data/spec/unit/indirector/rest_spec.rb +98 -752
  284. data/spec/unit/indirector_spec.rb +2 -2
  285. data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
  286. data/spec/unit/network/authconfig_spec.rb +2 -129
  287. data/spec/unit/network/authorization_spec.rb +2 -55
  288. data/spec/unit/network/formats_spec.rb +4 -4
  289. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  290. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  291. data/spec/unit/network/http/api_spec.rb +10 -0
  292. data/spec/unit/network/http/connection_spec.rb +19 -41
  293. data/spec/unit/network/http/handler_spec.rb +0 -1
  294. data/spec/unit/network/http_pool_spec.rb +0 -4
  295. data/spec/unit/node/environment_spec.rb +33 -21
  296. data/spec/unit/node_spec.rb +2 -54
  297. data/spec/unit/parser/compiler_spec.rb +19 -3
  298. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  299. data/spec/unit/parser/resource_spec.rb +8 -14
  300. data/spec/unit/parser/templatewrapper_spec.rb +3 -4
  301. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  302. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  303. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  304. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  305. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  306. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  307. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  308. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  309. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  310. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  311. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  312. data/spec/unit/pops/visitor_spec.rb +1 -1
  313. data/spec/unit/property_spec.rb +0 -1
  314. data/spec/unit/provider/nameservice_spec.rb +64 -122
  315. data/spec/unit/provider/package/apt_spec.rb +8 -4
  316. data/spec/unit/provider/package/base_spec.rb +5 -6
  317. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  318. data/spec/unit/provider/package/gem_spec.rb +32 -0
  319. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  320. data/spec/unit/provider/package/pip_spec.rb +11 -6
  321. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  322. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  323. data/spec/unit/provider/service/smf_spec.rb +401 -165
  324. data/spec/unit/provider/service/windows_spec.rb +0 -1
  325. data/spec/unit/provider/user/aix_spec.rb +0 -5
  326. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  327. data/spec/unit/provider/user/pw_spec.rb +0 -2
  328. data/spec/unit/provider/user/useradd_spec.rb +0 -1
  329. data/spec/unit/provider_spec.rb +8 -18
  330. data/spec/unit/resource/type_collection_spec.rb +2 -22
  331. data/spec/unit/resource/type_spec.rb +1 -1
  332. data/spec/unit/resource_spec.rb +10 -67
  333. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  334. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  335. data/spec/unit/settings/port_setting_spec.rb +31 -0
  336. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  337. data/spec/unit/settings_spec.rb +23 -13
  338. data/spec/unit/ssl/base_spec.rb +37 -3
  339. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  340. data/spec/unit/ssl/certificate_spec.rb +2 -11
  341. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  342. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  343. data/spec/unit/ssl/verifier_spec.rb +0 -21
  344. data/spec/unit/transaction/additional_resource_generator_spec.rb +7 -3
  345. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  346. data/spec/unit/transaction/report_spec.rb +0 -2
  347. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  348. data/spec/unit/transaction_spec.rb +48 -91
  349. data/spec/unit/type/file/checksum_spec.rb +6 -6
  350. data/spec/unit/type/file/content_spec.rb +2 -1
  351. data/spec/unit/type/file/ensure_spec.rb +1 -1
  352. data/spec/unit/type/file/mode_spec.rb +1 -1
  353. data/spec/unit/type/file/selinux_spec.rb +2 -0
  354. data/spec/unit/type/file/source_spec.rb +0 -1
  355. data/spec/unit/type/file_spec.rb +18 -6
  356. data/spec/unit/type/group_spec.rb +6 -13
  357. data/spec/unit/type/package_spec.rb +1 -1
  358. data/spec/unit/type/resources_spec.rb +7 -7
  359. data/spec/unit/type/service_spec.rb +1 -1
  360. data/spec/unit/type/tidy_spec.rb +1 -0
  361. data/spec/unit/type_spec.rb +22 -2
  362. data/spec/unit/util/at_fork_spec.rb +2 -2
  363. data/spec/unit/util/autoload_spec.rb +1 -5
  364. data/spec/unit/util/backups_spec.rb +2 -3
  365. data/spec/unit/util/execution_spec.rb +11 -44
  366. data/spec/unit/util/inifile_spec.rb +14 -6
  367. data/spec/unit/util/log_spec.rb +7 -8
  368. data/spec/unit/util/logging_spec.rb +3 -3
  369. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  370. data/spec/unit/util/posix_spec.rb +15 -363
  371. data/spec/unit/util/run_mode_spec.rb +21 -121
  372. data/spec/unit/util/selinux_spec.rb +52 -76
  373. data/spec/unit/util/storage_spec.rb +1 -3
  374. data/spec/unit/util/suidmanager_spec.rb +41 -44
  375. data/spec/unit/util/windows/string_spec.rb +1 -3
  376. data/spec/unit/util/yaml_spec.rb +0 -54
  377. data/spec/unit/util_spec.rb +6 -31
  378. metadata +40 -233
  379. data/conf/auth.conf +0 -150
  380. data/lib/puppet/application/cert.rb +0 -76
  381. data/lib/puppet/application/key.rb +0 -4
  382. data/lib/puppet/application/man.rb +0 -4
  383. data/lib/puppet/application/status.rb +0 -4
  384. data/lib/puppet/face/key.rb +0 -16
  385. data/lib/puppet/face/man.rb +0 -145
  386. data/lib/puppet/face/module/build.rb +0 -14
  387. data/lib/puppet/face/module/generate.rb +0 -14
  388. data/lib/puppet/face/module/search.rb +0 -103
  389. data/lib/puppet/face/status.rb +0 -51
  390. data/lib/puppet/ffi/posix.rb +0 -10
  391. data/lib/puppet/ffi/posix/constants.rb +0 -14
  392. data/lib/puppet/ffi/posix/functions.rb +0 -24
  393. data/lib/puppet/indirector/certificate/file.rb +0 -9
  394. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  395. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  396. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  397. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  398. data/lib/puppet/indirector/file_content/http.rb +0 -22
  399. data/lib/puppet/indirector/key/file.rb +0 -46
  400. data/lib/puppet/indirector/key/memory.rb +0 -7
  401. data/lib/puppet/indirector/ssl_file.rb +0 -162
  402. data/lib/puppet/indirector/status.rb +0 -3
  403. data/lib/puppet/indirector/status/local.rb +0 -12
  404. data/lib/puppet/indirector/status/rest.rb +0 -27
  405. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  406. data/lib/puppet/network/auth_config_parser.rb +0 -90
  407. data/lib/puppet/network/authstore.rb +0 -283
  408. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  409. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  410. data/lib/puppet/network/http/base_pool.rb +0 -36
  411. data/lib/puppet/network/http/compression.rb +0 -127
  412. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  413. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  414. data/lib/puppet/network/rest_controller.rb +0 -2
  415. data/lib/puppet/network/rights.rb +0 -210
  416. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  417. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  418. data/lib/puppet/parser/environment_compiler.rb +0 -202
  419. data/lib/puppet/pops/types/enumeration.rb +0 -16
  420. data/lib/puppet/resource/capability_finder.rb +0 -154
  421. data/lib/puppet/rest/errors.rb +0 -15
  422. data/lib/puppet/rest/response.rb +0 -35
  423. data/lib/puppet/rest/route.rb +0 -85
  424. data/lib/puppet/rest/routes.rb +0 -135
  425. data/lib/puppet/settings/alias_setting.rb +0 -37
  426. data/lib/puppet/ssl/host.rb +0 -505
  427. data/lib/puppet/ssl/key.rb +0 -61
  428. data/lib/puppet/ssl/validator.rb +0 -61
  429. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  430. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  431. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  432. data/lib/puppet/status.rb +0 -40
  433. data/lib/puppet/util/connection.rb +0 -88
  434. data/lib/puppet/util/fact_dif.rb +0 -62
  435. data/lib/puppet/util/ssl.rb +0 -83
  436. data/lib/puppet/util/windows/api_types.rb +0 -309
  437. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  438. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  439. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  440. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  441. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  442. data/lib/puppet/vendor/pathspec/README.md +0 -53
  443. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  444. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  445. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  446. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  447. data/man/man8/puppet-key.8 +0 -126
  448. data/man/man8/puppet-man.8 +0 -76
  449. data/man/man8/puppet-status.8 +0 -108
  450. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  451. data/spec/integration/network/authconfig_spec.rb +0 -256
  452. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  453. data/spec/unit/application/man_spec.rb +0 -52
  454. data/spec/unit/capability_spec.rb +0 -414
  455. data/spec/unit/face/key_spec.rb +0 -9
  456. data/spec/unit/face/module/search_spec.rb +0 -231
  457. data/spec/unit/face/status_spec.rb +0 -9
  458. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  459. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  460. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  461. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  462. data/spec/unit/indirector/key/file_spec.rb +0 -78
  463. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  464. data/spec/unit/indirector/status/local_spec.rb +0 -10
  465. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  466. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  467. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  468. data/spec/unit/network/authstore_spec.rb +0 -422
  469. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  470. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  471. data/spec/unit/network/http/compression_spec.rb +0 -240
  472. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  473. data/spec/unit/network/http_spec.rb +0 -9
  474. data/spec/unit/network/rights_spec.rb +0 -439
  475. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  476. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  477. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  478. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  479. data/spec/unit/rest/route_spec.rb +0 -132
  480. data/spec/unit/ssl/host_spec.rb +0 -645
  481. data/spec/unit/ssl/key_spec.rb +0 -173
  482. data/spec/unit/ssl/validator_spec.rb +0 -278
  483. data/spec/unit/status_spec.rb +0 -45
  484. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,10 +1,8 @@
1
1
  require 'uri'
2
2
  require 'spec_helper'
3
- require 'puppet/util/http_proxy'
4
-
5
- describe Puppet::Util::HttpProxy do
6
- include Puppet::Network::HTTP::Compression.module
3
+ require 'puppet/http'
7
4
 
5
+ describe Puppet::HTTP::Proxy do
8
6
  before(:all) do
9
7
  ENV['http_proxy'] = nil
10
8
  ENV['HTTP_PROXY'] = nil
@@ -346,69 +344,4 @@ describe Puppet::Util::HttpProxy do
346
344
  end
347
345
  end
348
346
  end
349
-
350
- describe '.request_with_redirects' do
351
- let(:dest) { URI.parse('http://mydomain.com/some/path') }
352
-
353
- it 'generates accept and accept-encoding headers' do
354
- stub_request(:head, dest)
355
-
356
- headers = {
357
- 'Accept' => '*/*',
358
- 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
359
- 'User-Agent' => /Puppet/
360
- }
361
- stub_request(:get, dest).with(headers: headers)
362
-
363
- subject.request_with_redirects(dest, :get, 0)
364
- end
365
-
366
- it 'can return a compressed response body' do
367
- stub_request(:head, dest)
368
-
369
- compressed_body = [
370
- 0x1f, 0x8b, 0x08, 0x08, 0xe9, 0x08, 0x7a, 0x5a, 0x00, 0x03,
371
- 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0xcb, 0xc8, 0xe4, 0x02,
372
- 0x00, 0x7a, 0x7a, 0x6f, 0xed, 0x03, 0x00, 0x00, 0x00
373
- ].pack('C*')
374
-
375
- stub_request(:get, dest).to_return(status: 200, body: compressed_body, headers: { 'Content-Encoding' => 'gzip' })
376
-
377
- expect(
378
- uncompress_body(subject.request_with_redirects(dest, :get, 0))
379
- ).to eq("hi\n")
380
- end
381
-
382
- it 'generates accept and accept-encoding headers when a block is provided' do
383
- stub_request(:head, dest)
384
-
385
- headers = {
386
- 'Accept' => '*/*',
387
- 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
388
- 'User-Agent' => /Puppet/
389
- }
390
- stub_request(:get, dest).with(headers: headers)
391
-
392
- subject.request_with_redirects(dest, :get, 0) do
393
- # unused
394
- end
395
- end
396
-
397
- it 'only makes a single HEAD request' do
398
- stub_request(:head, dest)
399
-
400
- subject.request_with_redirects(dest, :head, 0)
401
- end
402
-
403
- it 'preserves query parameters' do
404
- url = URI.parse('http://mydomain.com/some/path?foo=bar')
405
-
406
- stub_request(:head, url)
407
- stub_request(:get, url)
408
-
409
- subject.request_with_redirects(url, :get, 0) do
410
- # unused
411
- end
412
- end
413
- end
414
347
  end
@@ -28,7 +28,7 @@ describe Puppet::HTTP::Resolver do
28
28
  end
29
29
 
30
30
  it 'returns a service based on the current server_list setting' do
31
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 200)
31
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 200)
32
32
 
33
33
  service = subject.resolve(session, :ca)
34
34
  expect(service).to be_an_instance_of(Puppet::HTTP::Service::Ca)
@@ -36,7 +36,7 @@ describe Puppet::HTTP::Resolver do
36
36
  end
37
37
 
38
38
  it 'returns a service based on the current server_list setting if the server returns any success codes' do
39
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 202)
39
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 202)
40
40
 
41
41
  service = subject.resolve(session, :ca)
42
42
  expect(service).to be_an_instance_of(Puppet::HTTP::Service::Ca)
@@ -46,24 +46,24 @@ describe Puppet::HTTP::Resolver do
46
46
  it 'includes extra http headers' do
47
47
  Puppet[:http_extra_headers] = 'region:us-west'
48
48
 
49
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master")
49
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server")
50
50
  .with(headers: {'Region' => 'us-west'})
51
51
 
52
52
  subject.resolve(session, :ca)
53
53
  end
54
54
 
55
55
  it 'uses the provided ssl context during resolution' do
56
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 200)
56
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 200)
57
57
 
58
58
  other_ctx = Puppet::SSL::SSLContext.new
59
- expect(client).to receive(:connect).with(URI("https://ca.example.com:8141/status/v1/simple/master"), options: {ssl_context: other_ctx}).and_call_original
59
+ expect(client).to receive(:connect).with(URI("https://ca.example.com:8141/status/v1/simple/server"), options: {ssl_context: other_ctx}).and_call_original
60
60
 
61
61
  subject.resolve(session, :ca, ssl_context: other_ctx)
62
62
  end
63
63
 
64
64
  it 'logs unsuccessful HTTP 500 responses' do
65
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: [500, 'Internal Server Error'])
66
- stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 200)
65
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: [500, 'Internal Server Error'])
66
+ stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 200)
67
67
 
68
68
  subject.resolve(session, :ca)
69
69
 
@@ -71,8 +71,8 @@ describe Puppet::HTTP::Resolver do
71
71
  end
72
72
 
73
73
  it 'cancels resolution if no servers in server_list are accessible' do
74
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 503)
75
- stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 503)
74
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 503)
75
+ stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 503)
76
76
 
77
77
  canceled = false
78
78
  canceled_handler = lambda { |cancel| canceled = cancel }
@@ -82,8 +82,8 @@ describe Puppet::HTTP::Resolver do
82
82
  end
83
83
 
84
84
  it 'cycles through server_list until a valid server is found' do
85
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 503)
86
- stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 200)
85
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 503)
86
+ stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 200)
87
87
 
88
88
  service = subject.resolve(session, :ca)
89
89
  expect(service).to be_an_instance_of(Puppet::HTTP::Service::Ca)
@@ -91,8 +91,8 @@ describe Puppet::HTTP::Resolver do
91
91
  end
92
92
 
93
93
  it 'resolves once per session' do
94
- failed = stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 503)
95
- passed = stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 200)
94
+ failed = stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 503)
95
+ passed = stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 200)
96
96
 
97
97
  service = subject.resolve(session, :puppet)
98
98
  expect(service).to be_a(Puppet::HTTP::Service::Compiler)
@@ -11,7 +11,6 @@ describe Puppet::HTTP::Service::Compiler do
11
11
  let(:node) { Puppet::Node.new(certname) }
12
12
  let(:facts) { Puppet::Node::Facts.new(certname) }
13
13
  let(:catalog) { Puppet::Resource::Catalog.new(certname) }
14
- let(:status) { Puppet::Status.new }
15
14
  let(:formatter) { Puppet::Network::FormatHandler.format(:json) }
16
15
 
17
16
  before :each do
@@ -466,67 +465,6 @@ describe Puppet::HTTP::Service::Compiler do
466
465
  end
467
466
  end
468
467
 
469
- context 'when getting status' do
470
- let(:uri) { %r{/puppet/v3/status/ziggy} }
471
- let(:status_response) { { body: formatter.render(status), headers: {'Content-Type' => formatter.mime } } }
472
-
473
- it 'always sends production' do
474
- stub_request(:get, uri)
475
- .with(query: hash_including("environment" => "production"))
476
- .to_return(**status_response)
477
-
478
- subject.get_status(certname)
479
- end
480
-
481
- it 'returns a deserialized status' do
482
- stub_request(:get, uri)
483
- .to_return(**status_response)
484
-
485
- _, s = subject.get_status(certname)
486
- expect(s).to be_a(Puppet::Status)
487
- expect(s.status).to eq("is_alive" => true)
488
- end
489
-
490
- it 'returns the request response' do
491
- stub_request(:get, uri)
492
- .to_return(**status_response)
493
-
494
- resp, _ = subject.get_status(certname)
495
- expect(resp).to be_a(Puppet::HTTP::Response)
496
- end
497
-
498
- it 'raises a response error if unsuccessful' do
499
- stub_request(:get, uri)
500
- .to_return(status: [500, "Server Error"])
501
-
502
- expect {
503
- subject.get_status(certname)
504
- }.to raise_error do |err|
505
- expect(err).to be_an_instance_of(Puppet::HTTP::ResponseError)
506
- expect(err.message).to eq('Server Error')
507
- expect(err.response.code).to eq(500)
508
- end
509
- end
510
-
511
- it 'raises a protocol error if the content-type header is missing' do
512
- stub_request(:get, uri)
513
- .to_return(body: "content-type is missing")
514
-
515
- expect {
516
- subject.get_status(certname)
517
- }.to raise_error(Puppet::HTTP::ProtocolError, /No content type in http response; cannot parse/)
518
- end
519
-
520
- it 'raises a serialization error if the content is invalid' do
521
- stub_request(:get, uri)
522
- .to_return(body: "this isn't valid JSON", headers: {'Content-Type' => 'application/json'})
523
-
524
- expect {
525
- subject.get_status(certname)
526
- }.to raise_error(Puppet::HTTP::SerializationError, /Failed to deserialize Puppet::Status from json/)
527
- end
528
- end
529
-
530
468
  context 'filebucket' do
531
469
  let(:filebucket_file) { Puppet::FileBucket::File.new('file to store') }
532
470
  let(:formatter) { Puppet::Network::FormatHandler.format(:binary) }
@@ -41,7 +41,7 @@ describe Puppet::HTTP::Service::FileServer do
41
41
 
42
42
  context 'retrieving file metadata' do
43
43
  let(:path) { tmpfile('get_file_metadata') }
44
- let(:url) { "https://www.example.com/puppet/v3/file_metadata/:mount/#{path}?checksum_type=md5&environment=testing&links=manage&source_permissions=ignore" }
44
+ let(:url) { "https://www.example.com/puppet/v3/file_metadata/:mount/#{path}?checksum_type=sha256&environment=testing&links=manage&source_permissions=ignore" }
45
45
  let(:filemetadata) { Puppet::FileServing::Metadata.new(path) }
46
46
  let(:request_path) { "/:mount/#{path}"}
47
47
 
@@ -122,7 +122,7 @@ describe Puppet::HTTP::Service::FileServer do
122
122
 
123
123
  context 'retrieving multiple file metadatas' do
124
124
  let(:path) { tmpfile('get_file_metadatas') }
125
- let(:url) { "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=md5&links=manage&recurse=false&source_permissions=ignore&environment=testing" }
125
+ let(:url) { "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=sha256&links=manage&recurse=false&source_permissions=ignore&environment=testing" }
126
126
  let(:filemetadatas) { [Puppet::FileServing::Metadata.new(path)] }
127
127
  let(:formatter) { Puppet::Network::FormatHandler.format(:json) }
128
128
  let(:request_path) { "/:mount/#{path}"}
@@ -158,7 +158,7 @@ describe Puppet::HTTP::Service::FileServer do
158
158
  end
159
159
 
160
160
  it 'automatically converts an array of parameters to the stringified query' do
161
- url = "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=md5&environment=testing&ignore=CVS&ignore=.git&ignore=.hg&links=manage&recurse=false&source_permissions=ignore"
161
+ url = "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=sha256&environment=testing&ignore=CVS&ignore=.git&ignore=.hg&links=manage&recurse=false&source_permissions=ignore"
162
162
  stub_request(:get, url).with(
163
163
  headers: {'Accept'=>'application/json, application/x-msgpack, text/pson',}
164
164
  ).to_return(
@@ -12,7 +12,7 @@ describe Puppet::HTTP::Service::Puppetserver do
12
12
 
13
13
  context 'when making requests' do
14
14
  it 'includes default HTTP headers' do
15
- stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master").with do |request|
15
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server").with do |request|
16
16
  expect(request.headers).to include({'X-Puppet-Version' => /./, 'User-Agent' => /./})
17
17
  expect(request.headers).to_not include('X-Puppet-Profiling')
18
18
  end.to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
@@ -23,7 +23,7 @@ describe Puppet::HTTP::Service::Puppetserver do
23
23
  it 'includes extra headers' do
24
24
  Puppet[:http_extra_headers] = 'region:us-west'
25
25
 
26
- stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master")
26
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server")
27
27
  .with(headers: {'Region' => 'us-west'})
28
28
  .to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
29
29
 
@@ -36,7 +36,7 @@ describe Puppet::HTTP::Service::Puppetserver do
36
36
  Puppet[:server] = 'compiler2.example.com'
37
37
  Puppet[:serverport] = 8141
38
38
 
39
- stub_request(:get, "https://compiler2.example.com:8141/status/v1/simple/master")
39
+ stub_request(:get, "https://compiler2.example.com:8141/status/v1/simple/server")
40
40
  .to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
41
41
 
42
42
  subject.get_simple_status
@@ -44,7 +44,7 @@ describe Puppet::HTTP::Service::Puppetserver do
44
44
  end
45
45
 
46
46
  context 'when getting puppetserver status' do
47
- let(:url) { "https://puppetserver.example.com:8140/status/v1/simple/master" }
47
+ let(:url) { "https://puppetserver.example.com:8140/status/v1/simple/server" }
48
48
 
49
49
  it 'returns the request response and status' do
50
50
  stub_request(:get, url)
@@ -79,4 +79,34 @@ describe Puppet::HTTP::Service::Puppetserver do
79
79
  service.get_simple_status(ssl_context: other_ctx)
80
80
  end
81
81
  end
82
+
83
+ context 'when /status/v1/simple/server returns not found' do
84
+ it 'calls /status/v1/simple/master' do
85
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server")
86
+ .to_return(status: [404, 'not found: server'])
87
+
88
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master")
89
+ .to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
90
+
91
+ resp, status = subject.get_simple_status
92
+ expect(resp).to be_a(Puppet::HTTP::Response)
93
+ expect(status).to eq('running')
94
+ end
95
+
96
+ it 'raises a response error if fallback is unsuccessful' do
97
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server")
98
+ .to_return(status: [404, 'not found: server'])
99
+
100
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master")
101
+ .to_return(status: [404, 'not found: master'])
102
+
103
+ expect {
104
+ subject.get_simple_status
105
+ }.to raise_error do |err|
106
+ expect(err).to be_an_instance_of(Puppet::HTTP::ResponseError)
107
+ expect(err.message).to eq('not found: master')
108
+ expect(err.response.code).to eq(404)
109
+ end
110
+ end
111
+ end
82
112
  end
@@ -126,7 +126,6 @@ describe Puppet::HTTP::Service do
126
126
  Puppet::Node::Facts,
127
127
  Puppet::Transaction::Report,
128
128
  Puppet::FileServing::Metadata,
129
- Puppet::Status
130
129
  ].each do |model|
131
130
  expect(service.mime_types(model)).to eq(mimes)
132
131
  end
@@ -127,7 +127,7 @@ describe Puppet::HTTP::Session do
127
127
  Puppet[:server_list] = 'foo.example.com,bar.example.com,baz.example.com'
128
128
  Puppet[:ca_server] = 'caserver.example.com'
129
129
 
130
- allow_any_instance_of(Puppet::Network::Resolver).to receive(:each_srv_record).and_yield('mars.example.srv', 8140)
130
+ allow_any_instance_of(Puppet::HTTP::DNS).to receive(:each_srv_record).and_yield('mars.example.srv', 8140)
131
131
  service = session.route_to(:ca)
132
132
 
133
133
  expect(service.url).to eq(URI("https://mars.example.srv:8140/puppet-ca/v1"))
@@ -147,9 +147,9 @@ describe Puppet::HTTP::Session do
147
147
  Puppet[:use_srv_records] = true
148
148
  Puppet[:server_list] = 'foo.example.com,bar.example.com,baz.example.com'
149
149
 
150
- allow_any_instance_of(Puppet::Network::Resolver).to receive(:each_srv_record)
151
- stub_request(:get, "https://foo.example.com:8140/status/v1/simple/master").to_return(status: 500)
152
- stub_request(:get, "https://bar.example.com:8140/status/v1/simple/master").to_return(status: 200)
150
+ allow_any_instance_of(Puppet::HTTP::DNS).to receive(:each_srv_record)
151
+ stub_request(:get, "https://foo.example.com:8140/status/v1/simple/server").to_return(status: 500)
152
+ stub_request(:get, "https://bar.example.com:8140/status/v1/simple/server").to_return(status: 200)
153
153
 
154
154
  service = session.route_to(:ca)
155
155
 
@@ -160,7 +160,7 @@ describe Puppet::HTTP::Session do
160
160
  Puppet[:server_list] = 'foo.example.com'
161
161
 
162
162
  expect_any_instance_of(Puppet::HTTP::Resolver::Settings).to receive(:resolve).never
163
- stub_request(:get, "https://foo.example.com:8140/status/v1/simple/master").to_return(status: 500)
163
+ stub_request(:get, "https://foo.example.com:8140/status/v1/simple/server").to_return(status: 500)
164
164
 
165
165
  expect {
166
166
  session.route_to(:ca)
@@ -179,7 +179,7 @@ describe Puppet::HTTP::Session do
179
179
  Puppet::HTTP::Service::SERVICE_NAMES.each do |name|
180
180
  it "resolves #{name} using server_list" do
181
181
  Puppet[:server_list] = 'apple.example.com'
182
- req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/master").to_return(status: 200)
182
+ req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/server").to_return(status: 200)
183
183
 
184
184
  session.route_to(name)
185
185
 
@@ -201,7 +201,7 @@ describe Puppet::HTTP::Session do
201
201
 
202
202
  it 'resolves once for all services in a session' do
203
203
  Puppet[:server_list] = 'apple.example.com'
204
- req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/master").to_return(status: 200)
204
+ req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/server").to_return(status: 200)
205
205
 
206
206
  Puppet::HTTP::Service::SERVICE_NAMES.each do |name|
207
207
  session.route_to(name)
@@ -212,7 +212,7 @@ describe Puppet::HTTP::Session do
212
212
 
213
213
  it 'resolves server_list for each new session' do
214
214
  Puppet[:server_list] = 'apple.example.com'
215
- req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/master").to_return(status: 200)
215
+ req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/server").to_return(status: 200)
216
216
 
217
217
  client.create_session.route_to(:puppet)
218
218
  client.create_session.route_to(:puppet)
@@ -222,6 +222,8 @@ describe Puppet::HTTP::Session do
222
222
  end
223
223
 
224
224
  context 'when retrieving capabilities' do
225
+ let(:response) { Puppet::HTTP::Response.new(uri, 200, 'OK') }
226
+
225
227
  let(:session) do
226
228
  resolver = DummyResolver.new(good_service)
227
229
  described_class.new(client, [resolver])
@@ -242,7 +244,7 @@ describe Puppet::HTTP::Session do
242
244
  end
243
245
 
244
246
  it "supports locales if the cached service's version is 5.3.4 or greater" do
245
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '5.3.4'}, uri)
247
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('5.3.4')
246
248
 
247
249
  session.route_to(:puppet)
248
250
  session.process_response(response)
@@ -251,7 +253,7 @@ describe Puppet::HTTP::Session do
251
253
  end
252
254
 
253
255
  it "does not support locales if the cached service's version is 5.3.3" do
254
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '5.3.3'}, uri)
256
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('5.3.3')
255
257
 
256
258
  session.route_to(:puppet)
257
259
  session.process_response(response)
@@ -260,7 +262,7 @@ describe Puppet::HTTP::Session do
260
262
  end
261
263
 
262
264
  it "does not support locales if the cached service's version is missing" do
263
- response = Puppet::HTTP::Response.new({}, uri)
265
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return(nil)
264
266
 
265
267
  session.route_to(:puppet)
266
268
  session.process_response(response)
@@ -277,7 +279,7 @@ describe Puppet::HTTP::Session do
277
279
  end
278
280
 
279
281
  it "supports json if the cached service's version is 5 or greater" do
280
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '5.5.12'}, uri)
282
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('5.5.12')
281
283
 
282
284
  session.route_to(:puppet)
283
285
  session.process_response(response)
@@ -286,7 +288,7 @@ describe Puppet::HTTP::Session do
286
288
  end
287
289
 
288
290
  it "does not support json if the cached service's version is less than 5.0" do
289
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '4.10.1'}, uri)
291
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('4.10.1')
290
292
 
291
293
  session.route_to(:puppet)
292
294
  session.process_response(response)
@@ -295,7 +297,7 @@ describe Puppet::HTTP::Session do
295
297
  end
296
298
 
297
299
  it "supports json if the cached service's version is missing" do
298
- response = Puppet::HTTP::Response.new({}, uri)
300
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return(nil)
299
301
 
300
302
  session.route_to(:puppet)
301
303
  session.process_response(response)