puppet 6.21.1 → 7.4.1

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 (402) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -4
  3. data/Gemfile.lock +5 -5
  4. data/README.md +1 -1
  5. data/conf/fileserver.conf +5 -10
  6. data/ext/build_defaults.yaml +1 -2
  7. data/ext/osx/file_mapping.yaml +0 -5
  8. data/ext/project_data.yaml +2 -14
  9. data/ext/redhat/puppet.spec.erb +0 -1
  10. data/ext/windows/service/daemon.rb +6 -5
  11. data/install.rb +21 -17
  12. data/lib/puppet.rb +11 -20
  13. data/lib/puppet/application.rb +172 -98
  14. data/lib/puppet/application/device.rb +100 -104
  15. data/lib/puppet/application/filebucket.rb +13 -9
  16. data/lib/puppet/application/ssl.rb +1 -1
  17. data/lib/puppet/configurer.rb +27 -29
  18. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  19. data/lib/puppet/defaults.rb +57 -162
  20. data/lib/puppet/environments.rb +8 -23
  21. data/lib/puppet/face/facts.rb +73 -49
  22. data/lib/puppet/face/help.rb +1 -1
  23. data/lib/puppet/face/node/clean.rb +8 -0
  24. data/lib/puppet/face/plugin.rb +5 -8
  25. data/lib/puppet/ffi/windows.rb +12 -0
  26. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  27. data/lib/puppet/ffi/windows/constants.rb +404 -0
  28. data/lib/puppet/ffi/windows/functions.rb +628 -0
  29. data/lib/puppet/ffi/windows/structs.rb +338 -0
  30. data/lib/puppet/file_serving/configuration.rb +0 -5
  31. data/lib/puppet/file_serving/configuration/parser.rb +6 -32
  32. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  33. data/lib/puppet/file_serving/mount.rb +1 -2
  34. data/lib/puppet/forge/repository.rb +0 -1
  35. data/lib/puppet/generate/models/type/type.rb +4 -1
  36. data/lib/puppet/http.rb +22 -13
  37. data/lib/puppet/http/client.rb +164 -114
  38. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  39. data/lib/puppet/http/errors.rb +16 -0
  40. data/lib/puppet/http/external_client.rb +5 -7
  41. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  42. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  43. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  44. data/lib/puppet/http/proxy.rb +137 -0
  45. data/lib/puppet/http/redirector.rb +4 -12
  46. data/lib/puppet/http/resolver.rb +5 -15
  47. data/lib/puppet/http/resolver/server_list.rb +6 -10
  48. data/lib/puppet/http/resolver/settings.rb +4 -7
  49. data/lib/puppet/http/resolver/srv.rb +7 -11
  50. data/lib/puppet/http/response.rb +36 -54
  51. data/lib/puppet/http/response_converter.rb +24 -0
  52. data/lib/puppet/http/response_net_http.rb +42 -0
  53. data/lib/puppet/http/retry_after_handler.rb +4 -13
  54. data/lib/puppet/http/service.rb +12 -26
  55. data/lib/puppet/http/service/ca.rb +11 -22
  56. data/lib/puppet/http/service/compiler.rb +22 -69
  57. data/lib/puppet/http/service/file_server.rb +18 -27
  58. data/lib/puppet/http/service/puppetserver.rb +26 -12
  59. data/lib/puppet/http/service/report.rb +8 -10
  60. data/lib/puppet/http/session.rb +11 -20
  61. data/lib/puppet/{network/http → http}/site.rb +1 -2
  62. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  63. data/lib/puppet/indirector/facts/facter.rb +25 -3
  64. data/lib/puppet/indirector/facts/rest.rb +3 -22
  65. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  66. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  67. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  68. data/lib/puppet/indirector/file_server.rb +1 -8
  69. data/lib/puppet/indirector/generic_http.rb +0 -11
  70. data/lib/puppet/indirector/node/rest.rb +2 -4
  71. data/lib/puppet/indirector/report/rest.rb +3 -8
  72. data/lib/puppet/indirector/request.rb +0 -101
  73. data/lib/puppet/indirector/rest.rb +12 -263
  74. data/lib/puppet/module_tool/applications.rb +0 -1
  75. data/lib/puppet/network/authconfig.rb +2 -96
  76. data/lib/puppet/network/authorization.rb +13 -35
  77. data/lib/puppet/network/formats.rb +67 -0
  78. data/lib/puppet/network/http.rb +3 -3
  79. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  80. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  81. data/lib/puppet/network/http/connection.rb +247 -316
  82. data/lib/puppet/network/http/handler.rb +0 -1
  83. data/lib/puppet/network/http_pool.rb +16 -34
  84. data/lib/puppet/node.rb +1 -30
  85. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  86. data/lib/puppet/pal/pal_impl.rb +3 -1
  87. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  88. data/lib/puppet/parser/compiler.rb +0 -198
  89. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  90. data/lib/puppet/parser/resource.rb +0 -69
  91. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  92. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  93. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  94. data/lib/puppet/pops/issues.rb +0 -5
  95. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  96. data/lib/puppet/pops/model/ast.pp +0 -42
  97. data/lib/puppet/pops/model/ast.rb +0 -290
  98. data/lib/puppet/pops/model/factory.rb +0 -45
  99. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  100. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  101. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  102. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  103. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  104. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  105. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  106. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  107. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  108. data/lib/puppet/pops/types/type_parser.rb +0 -4
  109. data/lib/puppet/pops/types/types.rb +0 -1
  110. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  111. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  112. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  113. data/lib/puppet/provider.rb +0 -13
  114. data/lib/puppet/provider/nameservice.rb +0 -18
  115. data/lib/puppet/provider/package/dpkg.rb +0 -10
  116. data/lib/puppet/provider/package/gem.rb +23 -3
  117. data/lib/puppet/provider/package/pip.rb +0 -1
  118. data/lib/puppet/provider/package/pkg.rb +0 -4
  119. data/lib/puppet/provider/package/portage.rb +1 -1
  120. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  121. data/lib/puppet/provider/service/smf.rb +191 -73
  122. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  123. data/lib/puppet/reference/configuration.rb +7 -5
  124. data/lib/puppet/reference/indirection.rb +1 -1
  125. data/lib/puppet/resource.rb +1 -89
  126. data/lib/puppet/resource/catalog.rb +1 -14
  127. data/lib/puppet/resource/type.rb +3 -119
  128. data/lib/puppet/resource/type_collection.rb +3 -48
  129. data/lib/puppet/runtime.rb +1 -2
  130. data/lib/puppet/settings.rb +45 -33
  131. data/lib/puppet/settings/integer_setting.rb +17 -0
  132. data/lib/puppet/settings/port_setting.rb +15 -0
  133. data/lib/puppet/settings/priority_setting.rb +5 -4
  134. data/lib/puppet/ssl.rb +10 -6
  135. data/lib/puppet/ssl/base.rb +3 -5
  136. data/lib/puppet/ssl/certificate.rb +0 -6
  137. data/lib/puppet/ssl/certificate_request.rb +1 -12
  138. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  139. data/lib/puppet/ssl/oids.rb +3 -1
  140. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  141. data/lib/puppet/ssl/state_machine.rb +3 -1
  142. data/lib/puppet/ssl/verifier.rb +2 -0
  143. data/lib/puppet/test/test_helper.rb +1 -3
  144. data/lib/puppet/transaction.rb +1 -7
  145. data/lib/puppet/transaction/report.rb +2 -4
  146. data/lib/puppet/type.rb +0 -76
  147. data/lib/puppet/type/file.rb +5 -7
  148. data/lib/puppet/type/file/checksum.rb +1 -1
  149. data/lib/puppet/type/file/source.rb +1 -1
  150. data/lib/puppet/type/filebucket.rb +3 -3
  151. data/lib/puppet/type/package.rb +5 -13
  152. data/lib/puppet/type/user.rb +1 -1
  153. data/lib/puppet/util/execution.rb +0 -11
  154. data/lib/puppet/util/http_proxy.rb +2 -215
  155. data/lib/puppet/util/monkey_patches.rb +0 -46
  156. data/lib/puppet/util/rdoc.rb +0 -7
  157. data/lib/puppet/util/retry_action.rb +1 -1
  158. data/lib/puppet/util/run_mode.rb +9 -1
  159. data/lib/puppet/util/windows.rb +3 -8
  160. data/lib/puppet/util/windows/daemon.rb +360 -0
  161. data/lib/puppet/util/windows/error.rb +1 -0
  162. data/lib/puppet/util/windows/eventlog.rb +4 -9
  163. data/lib/puppet/util/windows/file.rb +8 -242
  164. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  165. data/lib/puppet/util/windows/process.rb +4 -226
  166. data/lib/puppet/util/windows/service.rb +9 -460
  167. data/lib/puppet/util/windows/string.rb +12 -13
  168. data/lib/puppet/util/yaml.rb +0 -22
  169. data/lib/puppet/vendor/require_vendored.rb +0 -1
  170. data/lib/puppet/version.rb +1 -1
  171. data/lib/puppet/x509.rb +5 -1
  172. data/lib/puppet/x509/cert_provider.rb +29 -1
  173. data/locales/puppet.pot +521 -1226
  174. data/man/man5/puppet.conf.5 +34 -94
  175. data/man/man8/puppet-facts.8 +56 -35
  176. data/man/man8/puppet-filebucket.8 +3 -3
  177. data/man/man8/puppet-module.8 +0 -57
  178. data/man/man8/puppet.8 +1 -1
  179. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  180. data/spec/integration/application/agent_spec.rb +24 -11
  181. data/spec/integration/application/apply_spec.rb +1 -1
  182. data/spec/integration/application/filebucket_spec.rb +16 -16
  183. data/spec/integration/application/help_spec.rb +2 -0
  184. data/spec/integration/application/plugin_spec.rb +23 -1
  185. data/spec/integration/defaults_spec.rb +7 -3
  186. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
  187. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
  188. data/spec/integration/network/http_pool_spec.rb +3 -21
  189. data/spec/integration/parser/catalog_spec.rb +0 -38
  190. data/spec/integration/parser/node_spec.rb +0 -9
  191. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  192. data/spec/integration/type/file_spec.rb +5 -4
  193. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  194. data/spec/integration/util/windows/security_spec.rb +1 -1
  195. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  196. data/spec/lib/puppet_spec/settings.rb +1 -0
  197. data/spec/spec_helper.rb +2 -0
  198. data/spec/unit/agent_spec.rb +0 -2
  199. data/spec/unit/application/facts_spec.rb +86 -0
  200. data/spec/unit/application/filebucket_spec.rb +41 -39
  201. data/spec/unit/application/ssl_spec.rb +2 -2
  202. data/spec/unit/certificate_factory_spec.rb +1 -1
  203. data/spec/unit/configurer/downloader_spec.rb +6 -2
  204. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  205. data/spec/unit/configurer_spec.rb +12 -9
  206. data/spec/unit/context/trusted_information_spec.rb +2 -6
  207. data/spec/unit/defaults_spec.rb +22 -47
  208. data/spec/unit/environments_spec.rb +0 -3
  209. data/spec/unit/face/facts_spec.rb +4 -0
  210. data/spec/unit/face/node_spec.rb +14 -2
  211. data/spec/unit/face/plugin_spec.rb +73 -33
  212. data/spec/unit/file_bucket/file_spec.rb +1 -1
  213. data/spec/unit/file_serving/configuration/parser_spec.rb +22 -18
  214. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  215. data/spec/unit/functions/camelcase_spec.rb +1 -1
  216. data/spec/unit/functions/capitalize_spec.rb +1 -1
  217. data/spec/unit/functions/downcase_spec.rb +1 -1
  218. data/spec/unit/functions/upcase_spec.rb +1 -1
  219. data/spec/unit/http/client_spec.rb +7 -8
  220. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  221. data/spec/unit/http/external_client_spec.rb +4 -4
  222. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  223. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  224. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  225. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  226. data/spec/unit/http/resolver_spec.rb +13 -13
  227. data/spec/unit/http/service/compiler_spec.rb +0 -62
  228. data/spec/unit/http/service/file_server_spec.rb +3 -3
  229. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  230. data/spec/unit/http/service_spec.rb +0 -1
  231. data/spec/unit/http/session_spec.rb +16 -14
  232. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  233. data/spec/unit/indirector/facts/facter_spec.rb +113 -0
  234. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  235. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  236. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  237. data/spec/unit/indirector/file_server_spec.rb +1 -15
  238. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  239. data/spec/unit/indirector/request_spec.rb +0 -264
  240. data/spec/unit/indirector/rest_spec.rb +98 -752
  241. data/spec/unit/network/authconfig_spec.rb +2 -129
  242. data/spec/unit/network/authorization_spec.rb +2 -55
  243. data/spec/unit/network/formats_spec.rb +45 -4
  244. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
  245. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  246. data/spec/unit/network/http/api_spec.rb +10 -0
  247. data/spec/unit/network/http/connection_spec.rb +19 -41
  248. data/spec/unit/network/http/handler_spec.rb +0 -1
  249. data/spec/unit/network/http_pool_spec.rb +0 -4
  250. data/spec/unit/node/environment_spec.rb +33 -21
  251. data/spec/unit/node_spec.rb +2 -54
  252. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  253. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  254. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  255. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  256. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  257. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  258. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  259. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  260. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  261. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  262. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  263. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  264. data/spec/unit/pops/visitor_spec.rb +1 -1
  265. data/spec/unit/provider/nameservice_spec.rb +0 -57
  266. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  267. data/spec/unit/provider/package/gem_spec.rb +32 -0
  268. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  269. data/spec/unit/provider/service/smf_spec.rb +401 -165
  270. data/spec/unit/provider/service/windows_spec.rb +0 -1
  271. data/spec/unit/provider_spec.rb +0 -12
  272. data/spec/unit/resource/type_collection_spec.rb +2 -22
  273. data/spec/unit/resource_spec.rb +0 -56
  274. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  275. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  276. data/spec/unit/settings/port_setting_spec.rb +31 -0
  277. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  278. data/spec/unit/settings_spec.rb +17 -0
  279. data/spec/unit/ssl/base_spec.rb +36 -3
  280. data/spec/unit/ssl/certificate_request_spec.rb +19 -55
  281. data/spec/unit/ssl/certificate_spec.rb +2 -11
  282. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  283. data/spec/unit/ssl/verifier_spec.rb +0 -21
  284. data/spec/unit/transaction/report_spec.rb +0 -2
  285. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  286. data/spec/unit/transaction_spec.rb +45 -79
  287. data/spec/unit/type/file/checksum_spec.rb +6 -6
  288. data/spec/unit/type/file/content_spec.rb +1 -1
  289. data/spec/unit/type/file/ensure_spec.rb +1 -1
  290. data/spec/unit/type/file/mode_spec.rb +1 -1
  291. data/spec/unit/type/file/source_spec.rb +0 -1
  292. data/spec/unit/type/file_spec.rb +12 -6
  293. data/spec/unit/type/package_spec.rb +1 -1
  294. data/spec/unit/type_spec.rb +20 -0
  295. data/spec/unit/util/backups_spec.rb +0 -2
  296. data/spec/unit/util/execution_spec.rb +0 -29
  297. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  298. data/spec/unit/util/run_mode_spec.rb +21 -121
  299. data/spec/unit/util/windows/string_spec.rb +1 -3
  300. data/spec/unit/util/yaml_spec.rb +0 -54
  301. data/spec/unit/util_spec.rb +0 -18
  302. metadata +47 -162
  303. data/conf/auth.conf +0 -150
  304. data/lib/puppet/application/cert.rb +0 -76
  305. data/lib/puppet/application/key.rb +0 -4
  306. data/lib/puppet/application/man.rb +0 -4
  307. data/lib/puppet/application/status.rb +0 -4
  308. data/lib/puppet/face/key.rb +0 -16
  309. data/lib/puppet/face/man.rb +0 -145
  310. data/lib/puppet/face/module/build.rb +0 -14
  311. data/lib/puppet/face/module/generate.rb +0 -14
  312. data/lib/puppet/face/module/search.rb +0 -103
  313. data/lib/puppet/face/status.rb +0 -51
  314. data/lib/puppet/indirector/certificate/file.rb +0 -9
  315. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  316. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  317. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  318. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  319. data/lib/puppet/indirector/file_content/http.rb +0 -22
  320. data/lib/puppet/indirector/key/file.rb +0 -46
  321. data/lib/puppet/indirector/key/memory.rb +0 -7
  322. data/lib/puppet/indirector/ssl_file.rb +0 -162
  323. data/lib/puppet/indirector/status.rb +0 -3
  324. data/lib/puppet/indirector/status/local.rb +0 -12
  325. data/lib/puppet/indirector/status/rest.rb +0 -27
  326. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  327. data/lib/puppet/network/auth_config_parser.rb +0 -90
  328. data/lib/puppet/network/authstore.rb +0 -283
  329. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  330. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  331. data/lib/puppet/network/http/base_pool.rb +0 -36
  332. data/lib/puppet/network/http/compression.rb +0 -127
  333. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  334. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  335. data/lib/puppet/network/rest_controller.rb +0 -2
  336. data/lib/puppet/network/rights.rb +0 -210
  337. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  338. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  339. data/lib/puppet/parser/environment_compiler.rb +0 -202
  340. data/lib/puppet/pops/types/enumeration.rb +0 -16
  341. data/lib/puppet/resource/capability_finder.rb +0 -154
  342. data/lib/puppet/rest/errors.rb +0 -15
  343. data/lib/puppet/rest/response.rb +0 -35
  344. data/lib/puppet/rest/route.rb +0 -85
  345. data/lib/puppet/rest/routes.rb +0 -135
  346. data/lib/puppet/ssl/host.rb +0 -505
  347. data/lib/puppet/ssl/key.rb +0 -61
  348. data/lib/puppet/ssl/validator.rb +0 -61
  349. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  350. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  351. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  352. data/lib/puppet/status.rb +0 -40
  353. data/lib/puppet/util/connection.rb +0 -88
  354. data/lib/puppet/util/fact_dif.rb +0 -62
  355. data/lib/puppet/util/ssl.rb +0 -83
  356. data/lib/puppet/util/windows/api_types.rb +0 -309
  357. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  358. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  359. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  360. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  361. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  362. data/lib/puppet/vendor/pathspec/README.md +0 -53
  363. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  364. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  365. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  366. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  367. data/man/man8/puppet-key.8 +0 -126
  368. data/man/man8/puppet-man.8 +0 -76
  369. data/man/man8/puppet-status.8 +0 -108
  370. data/spec/integration/network/authconfig_spec.rb +0 -256
  371. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  372. data/spec/unit/application/man_spec.rb +0 -52
  373. data/spec/unit/capability_spec.rb +0 -414
  374. data/spec/unit/face/key_spec.rb +0 -9
  375. data/spec/unit/face/module/search_spec.rb +0 -231
  376. data/spec/unit/face/status_spec.rb +0 -9
  377. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  378. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  379. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  380. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  381. data/spec/unit/indirector/key/file_spec.rb +0 -78
  382. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  383. data/spec/unit/indirector/status/local_spec.rb +0 -10
  384. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  385. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  386. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  387. data/spec/unit/network/authstore_spec.rb +0 -422
  388. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  389. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  390. data/spec/unit/network/http/compression_spec.rb +0 -240
  391. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  392. data/spec/unit/network/http_spec.rb +0 -9
  393. data/spec/unit/network/rights_spec.rb +0 -439
  394. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  395. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  396. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  397. data/spec/unit/rest/route_spec.rb +0 -132
  398. data/spec/unit/ssl/host_spec.rb +0 -645
  399. data/spec/unit/ssl/key_spec.rb +0 -173
  400. data/spec/unit/ssl/validator_spec.rb +0 -278
  401. data/spec/unit/status_spec.rb +0 -45
  402. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -92,7 +92,7 @@ describe Puppet::Application::Ssl, unless: Puppet::Util::Platform.jruby? do
92
92
  end
93
93
 
94
94
  context 'when submitting a CSR' do
95
- let(:csr_path) { File.join(Puppet[:requestdir], "#{name}.pem") }
95
+ let(:csr_path) { Puppet[:hostcsr] }
96
96
 
97
97
  before do
98
98
  ssl.command_line.args << 'submit_request'
@@ -318,7 +318,7 @@ describe Puppet::Application::Ssl, unless: Puppet::Util::Platform.jruby? do
318
318
  end
319
319
 
320
320
  it 'deletes the request' do
321
- path = File.join(Puppet[:requestdir], "#{Puppet[:certname]}.pem")
321
+ path = Puppet[:hostcsr]
322
322
  File.write(path, @host[:csr].to_pem)
323
323
 
324
324
  expects_command_to_pass(%r{Removed certificate request #{path}})
@@ -7,7 +7,7 @@ describe Puppet::CertificateFactory, :unless => RUBY_PLATFORM == 'java' do
7
7
  let :serial do OpenSSL::BN.new('12') end
8
8
  let :name do "example.local" end
9
9
  let :x509_name do OpenSSL::X509::Name.new([['CN', name]]) end
10
- let :key do Puppet::SSL::Key.new(name).generate end
10
+ let :key do OpenSSL::PKey::RSA.new(Puppet[:keylength]) end
11
11
  let :csr do
12
12
  csr = Puppet::SSL::CertificateRequest.new(name)
13
13
  csr.generate(key)
@@ -189,6 +189,8 @@ describe Puppet::Configurer::Downloader do
189
189
  end
190
190
 
191
191
  it "should return all changed file paths" do
192
+ Puppet[:ignore_plugin_errors] = true
193
+
192
194
  trans = double('transaction')
193
195
 
194
196
  catalog = double('catalog')
@@ -204,6 +206,8 @@ describe Puppet::Configurer::Downloader do
204
206
  end
205
207
 
206
208
  it "should yield the resources if a block is given" do
209
+ Puppet[:ignore_plugin_errors] = true
210
+
207
211
  trans = double('transaction')
208
212
 
209
213
  catalog = double('catalog')
@@ -221,6 +225,8 @@ describe Puppet::Configurer::Downloader do
221
225
  end
222
226
 
223
227
  it "should catch and log exceptions" do
228
+ Puppet[:ignore_plugin_errors] = true
229
+
224
230
  expect(Puppet).to receive(:log_exception)
225
231
  # The downloader creates a new catalog for each apply, and really the only object
226
232
  # that it is possible to stub for the purpose of generating a puppet error
@@ -230,8 +236,6 @@ describe Puppet::Configurer::Downloader do
230
236
  end
231
237
 
232
238
  it "raises an exception if catalog application fails" do
233
- Puppet[:ignore_plugin_errors] = false
234
-
235
239
  expect(@dler.file).to receive(:retrieve).and_raise(Puppet::Error, "testing")
236
240
 
237
241
  expect {
@@ -19,30 +19,68 @@ describe Puppet::Configurer::PluginHandler do
19
19
  end
20
20
  end
21
21
 
22
- it "downloads plugins, facts, and locales" do
23
- times_called = 0
24
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
22
+ context "when i18n is enabled" do
23
+ before :each do
24
+ Puppet[:disable_i18n] = false
25
+ end
25
26
 
26
- pluginhandler.download_plugins(environment)
27
- expect(times_called).to eq(3)
28
- end
27
+ it "downloads plugins, facts, and locales" do
28
+ times_called = 0
29
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
29
30
 
30
- it "returns downloaded plugin, fact, and locale filenames" do
31
- times_called = 0
32
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
33
- times_called += 1
31
+ pluginhandler.download_plugins(environment)
32
+ expect(times_called).to eq(3)
33
+ end
34
34
 
35
- if times_called == 1
36
- %w[/a]
37
- elsif times_called == 2
38
- %w[/b]
39
- else
40
- %w[/c]
35
+ it "returns downloaded plugin, fact, and locale filenames" do
36
+ times_called = 0
37
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
38
+ times_called += 1
39
+
40
+ if times_called == 1
41
+ %w[/a]
42
+ elsif times_called == 2
43
+ %w[/b]
44
+ else
45
+ %w[/c]
46
+ end
41
47
  end
48
+
49
+ expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b /c])
50
+ expect(times_called).to eq(3)
51
+ end
52
+ end
53
+
54
+ context "when i18n is disabled" do
55
+ before :each do
56
+ Puppet[:disable_i18n] = true
57
+ end
58
+
59
+ it "downloads plugins, facts, but no locales" do
60
+ times_called = 0
61
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
62
+
63
+ pluginhandler.download_plugins(environment)
64
+ expect(times_called).to eq(2)
42
65
  end
43
66
 
44
- expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b /c])
45
- expect(times_called).to eq(3)
67
+ it "returns downloaded plugin, fact, and locale filenames" do
68
+ times_called = 0
69
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
70
+ times_called += 1
71
+
72
+ if times_called == 1
73
+ %w[/a]
74
+ elsif times_called == 2
75
+ %w[/b]
76
+ else
77
+ %w[/c]
78
+ end
79
+ end
80
+
81
+ expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b])
82
+ expect(times_called).to eq(2)
83
+ end
46
84
  end
47
85
  end
48
86
 
@@ -384,7 +384,7 @@ describe Puppet::Configurer do
384
384
 
385
385
  it "sets the checksum_type query param to the default supported_checksum_types in a catalog request" do
386
386
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything,
387
- hash_including(checksum_type: 'md5.sha256.sha384.sha512.sha224'))
387
+ hash_including(checksum_type: 'sha256.sha384.sha512.sha224.md5'))
388
388
  configurer.run
389
389
  end
390
390
 
@@ -657,6 +657,8 @@ describe Puppet::Configurer do
657
657
  end
658
658
 
659
659
  it "should pluginsync and compile a new catalog if none is found in the cache" do
660
+ Puppet[:ignore_plugin_errors] = true
661
+
660
662
  expects_fallback_to_new_catalog(catalog)
661
663
  stub_request(:get, %r{/puppet/v3/file_metadatas?/plugins}).to_return(:status => 404)
662
664
  stub_request(:get, %r{/puppet/v3/file_metadatas?/pluginfacts}).to_return(:status => 404)
@@ -668,6 +670,8 @@ describe Puppet::Configurer do
668
670
  end
669
671
 
670
672
  it "should not attempt to retrieve a cached catalog again if the first attempt failed" do
673
+ Puppet[:ignore_plugin_errors] = true
674
+
671
675
  expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
672
676
  expects_neither_new_or_cached_catalog
673
677
  expects_pluginsync
@@ -1039,11 +1043,10 @@ describe Puppet::Configurer do
1039
1043
  it "should select a server when it receives 200 OK response" do
1040
1044
  Puppet.settings[:server_list] = ["myserver:123"]
1041
1045
 
1042
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 200)
1046
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 200)
1043
1047
 
1044
1048
  options = {}
1045
1049
  configurer.run(options)
1046
- expect(options[:report].master_used).to eq('myserver:123')
1047
1050
  expect(options[:report].server_used).to eq('myserver:123')
1048
1051
  end
1049
1052
 
@@ -1051,7 +1054,7 @@ describe Puppet::Configurer do
1051
1054
  Puppet.settings[:server_list] = ["myserver:123"]
1052
1055
  Puppet[:usecacheonfailure] = false
1053
1056
 
1054
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: [500, "Internal Server Error"])
1057
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: [500, "Internal Server Error"])
1055
1058
 
1056
1059
  expect {
1057
1060
  configurer.run
@@ -1064,8 +1067,8 @@ describe Puppet::Configurer do
1064
1067
  Puppet.settings[:server_list] = "myserver:123,someotherservername"
1065
1068
  Puppet[:usecacheonfailure] = false
1066
1069
 
1067
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 400)
1068
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 400)
1070
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 400)
1071
+ stub_request(:get, 'https://someotherservername:8140/status/v1/simple/server').to_return(status: 400)
1069
1072
 
1070
1073
  expect{
1071
1074
  configurer.run
@@ -1076,8 +1079,8 @@ describe Puppet::Configurer do
1076
1079
  Puppet.settings[:server_list] = "myserver:123,someotherservername"
1077
1080
  Puppet[:usecacheonfailure] = true
1078
1081
 
1079
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 400)
1080
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 400)
1082
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 400)
1083
+ stub_request(:get, 'https://someotherservername:8140/status/v1/simple/server').to_return(status: 400)
1081
1084
 
1082
1085
  options = {}
1083
1086
 
@@ -1091,7 +1094,7 @@ describe Puppet::Configurer do
1091
1094
  Puppet::Node.indirection.terminus_class = :rest
1092
1095
  Puppet::Resource::Catalog.indirection.terminus_class = :rest
1093
1096
 
1094
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 200)
1097
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 200)
1095
1098
  stub_request(:post, %r{https://myserver:123/puppet/v3/catalog}).to_return(status: 200)
1096
1099
  node_request = stub_request(:get, %r{https://myserver:123/puppet/v3/node/}).to_return(status: 200)
1097
1100
 
@@ -4,11 +4,7 @@ require 'puppet/certificate_factory'
4
4
  require 'puppet/context/trusted_information'
5
5
 
6
6
  describe Puppet::Context::TrustedInformation, :unless => RUBY_PLATFORM == 'java' do
7
- let(:key) do
8
- key = Puppet::SSL::Key.new("myname")
9
- key.generate
10
- key
11
- end
7
+ let(:key) { OpenSSL::PKey::RSA.new(Puppet[:keylength]) }
12
8
 
13
9
  let(:csr) do
14
10
  csr = Puppet::SSL::CertificateRequest.new("csr")
@@ -26,7 +22,7 @@ describe Puppet::Context::TrustedInformation, :unless => RUBY_PLATFORM == 'java'
26
22
 
27
23
  # The cert must be signed so that it can be successfully be DER-decoded later
28
24
  signer = Puppet::SSL::CertificateSigner.new
29
- signer.sign(cert.content, key.content)
25
+ signer.sign(cert.content, key)
30
26
  cert
31
27
  end
32
28
 
@@ -65,9 +65,9 @@ describe "Defaults" do
65
65
  end
66
66
 
67
67
  describe '.default_digest_algorithm' do
68
- it 'defaults to md5 when FIPS is not enabled' do
68
+ it 'defaults to sha256 when FIPS is not enabled' do
69
69
  allow(Puppet::Util::Platform).to receive(:fips_enabled?).and_return(false)
70
- expect(Puppet.default_digest_algorithm).to eq('md5')
70
+ expect(Puppet.default_digest_algorithm).to eq('sha256')
71
71
  end
72
72
 
73
73
  it 'defaults to sha256 when FIPS is enabled' do
@@ -77,9 +77,9 @@ describe "Defaults" do
77
77
  end
78
78
 
79
79
  describe '.supported_checksum_types' do
80
- it 'defaults to md5, sha256, sha384, sha512, sha224 when FIPS is not enabled' do
80
+ it 'defaults to sha256, sha384, sha512, sha224, md5 when FIPS is not enabled' do
81
81
  allow(Puppet::Util::Platform).to receive(:fips_enabled?).and_return(false)
82
- expect(Puppet.default_file_checksum_types).to eq(%w[md5 sha256 sha384 sha512 sha224])
82
+ expect(Puppet.default_file_checksum_types).to eq(%w[sha256 sha384 sha512 sha224 md5])
83
83
  end
84
84
 
85
85
  it 'defaults to sha256, sha384, sha512, sha224 when FIPS is enabled' do
@@ -89,8 +89,8 @@ describe "Defaults" do
89
89
  end
90
90
 
91
91
  describe 'Puppet[:supported_checksum_types]' do
92
- it 'defaults to md5, sha256, sha512, sha384, sha224' do
93
- expect(Puppet.settings[:supported_checksum_types]).to eq(%w[md5 sha256 sha384 sha512 sha224])
92
+ it 'defaults to sha256, sha512, sha384, sha224, md5' do
93
+ expect(Puppet.settings[:supported_checksum_types]).to eq(%w[sha256 sha384 sha512 sha224 md5])
94
94
  end
95
95
 
96
96
  it 'should raise an error on an unsupported checksum type' do
@@ -182,56 +182,31 @@ describe "Defaults" do
182
182
  end
183
183
  end
184
184
 
185
- describe "facterng" do
186
- it "defaults to false" do
187
- expect(Puppet[:facterng]).to be_falsey
188
- end
189
-
190
- it "raises an exception if facter-ng could not be loaded" do
191
- allow_any_instance_of(Puppet::Settings::BooleanSetting).to receive(:require).with('facter-ng').and_raise(LoadError)
192
- allow(Facter).to receive(:value).with('facterversion').and_return('3.11.4')
193
-
194
- expect{ Puppet.settings[:facterng] = true }.to raise_exception ArgumentError, 'facter-ng could not be loaded'
195
- end
196
-
197
- context 'set logger' do
198
- before do
199
- @original_facter = Object.const_get(:Facter)
200
-
201
- Object.send(:remove_const, :Facter)
202
- facter = double('facter')
203
- allow(facter).to receive(:value).with('facterversion').and_return('3.11.4')
204
- Object.const_set(:Facter, facter)
205
-
206
- allow_any_instance_of(Puppet::Settings::BooleanSetting).to receive(:require).with('facter-ng').and_return(true)
207
- allow(Facter).to receive(:respond_to?).and_return(false)
208
- end
209
-
210
- after do
211
- Object.const_set(:Facter, @original_facter)
212
- end
213
-
214
- it 'calls setup_facter_logging!' do
215
- allow(Puppet::Util::Logging).to receive(:setup_facter_logging!).and_return(true)
216
- Puppet.settings[:facterng] = true
217
- expect(Puppet::Util::Logging).to have_received(:setup_facter_logging!).once
218
- end
219
- end
220
- end
221
-
222
185
  describe "deprecated settings" do
223
186
  it 'does not issue a deprecation warning by default' do
224
187
  expect(Puppet).to receive(:deprecation_warning).never
225
188
 
226
189
  Puppet.initialize_settings
227
190
  end
191
+ end
228
192
 
229
- it 'issues a deprecation warning when func3x_check is disabled' do
230
- Puppet[:func3x_check] = false
231
-
232
- expect(Puppet).to receive(:deprecation_warning).with("The 'func3x_check' setting is deprecated and will be removed in a future release.")
193
+ describe "the default cadir", :unless => Puppet::Util::Platform.windows? do
194
+ it 'defaults to the puppetserver confdir when no cadir is found' do
195
+ Puppet.initialize_settings
196
+ expect(Puppet[:cadir]).to eq('/etc/puppetlabs/puppetserver/ca')
197
+ end
233
198
 
199
+ it 'returns an empty string for Windows platforms', :if => Puppet::Util::Platform.windows? do
234
200
  Puppet.initialize_settings
201
+ expect(Puppet[:cadir]).to eq("")
202
+ end
203
+ end
204
+
205
+ describe '#default_cadir', :unless => Puppet::Util::Platform.windows? do
206
+ it 'warns when a CA dir exists in the current ssldir' do
207
+ cadir = File.join(Puppet[:ssldir], 'ca')
208
+ FileUtils.mkdir_p(cadir)
209
+ expect(Puppet.default_cadir).to eq(cadir)
235
210
  end
236
211
  end
237
212
  end
@@ -661,7 +661,6 @@ config_version=$vardir/random/scripts
661
661
 
662
662
  it "evicts an environment that hasn't been recently touched" do
663
663
  Puppet[:environment_timeout] = 1
664
- Puppet[:environment_timeout_mode] = :from_last_used
665
664
 
666
665
  with_environment_loaded(service) do |cached|
667
666
  future = Time.now + 60
@@ -678,7 +677,6 @@ config_version=$vardir/random/scripts
678
677
 
679
678
  it "reuses an environment that was recently touched" do
680
679
  Puppet[:environment_timeout] = 60
681
- Puppet[:environment_timeout_mode] = :from_last_used
682
680
 
683
681
  with_environment_loaded(service) do |cached|
684
682
  # reuse the already cached environment
@@ -691,7 +689,6 @@ config_version=$vardir/random/scripts
691
689
 
692
690
  it "evicts a recently touched environment" do
693
691
  Puppet[:environment_timeout] = 60
694
- Puppet[:environment_timeout_mode] = :from_last_used
695
692
 
696
693
  expect(service).to receive(:expired?).and_return(true)
697
694
 
@@ -71,4 +71,8 @@ CONF
71
71
  log.message =~ /Uploading facts for '.*' to 'puppet\.server\.test'/}
72
72
  end
73
73
  end
74
+
75
+ describe "#show" do
76
+ it { is_expected.to be_action :show }
77
+ end
74
78
  end
@@ -78,8 +78,20 @@ describe Puppet::Face[:node, '0.0.1'] do
78
78
 
79
79
  describe "when cleaning certificate", :if => Puppet.features.puppetserver_ca? do
80
80
  it "should call the CA CLI gem's clean action" do
81
- expect_any_instance_of(Puppetserver::Ca::Action::Clean).to receive(:run).with({ 'certnames' => ['hostname'] }).and_return(0)
82
- subject.clean_cert('hostname')
81
+ expect_any_instance_of(Puppetserver::Ca::Action::Clean).
82
+ to receive(:clean_certs).
83
+ with(['hostname'], anything).
84
+ and_return(:success)
85
+
86
+ if Puppet[:cadir].start_with?(Puppet[:ssldir])
87
+ expect_any_instance_of(LoggerIO).
88
+ to receive(:warn).
89
+ with(/cadir is currently configured to be inside/)
90
+ end
91
+
92
+ expect(Puppet).not_to receive(:warning)
93
+ result = subject.clean_cert('hostname')
94
+ expect(result).to eq(0)
83
95
  end
84
96
 
85
97
  it "should not call the CA CLI gem's clean action if the gem is missing" do
@@ -16,48 +16,88 @@ describe Puppet::Face[:plugin, :current] do
16
16
  end
17
17
  end
18
18
 
19
- it "downloads plugins, external facts, and locales" do
20
- receive_count = 0
21
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { receive_count += 1 }.and_return([])
19
+ context "when i18n is enabled" do
20
+ before(:each) do
21
+ Puppet[:disable_i18n] = false
22
+ end
22
23
 
23
- pluginface.download
24
- expect(receive_count).to eq(3)
25
- end
24
+ it "downloads plugins, external facts, and locales" do
25
+ receive_count = 0
26
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { receive_count += 1 }.and_return([])
26
27
 
27
- it "renders 'No plugins downloaded' if nothing was downloaded" do
28
- receive_count = 0
29
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { receive_count += 1 }.and_return([])
28
+ pluginface.download
29
+ expect(receive_count).to eq(3)
30
+ end
30
31
 
31
- result = pluginface.download
32
- expect(receive_count).to eq(3)
33
- expect(render(result)).to eq('No plugins downloaded.')
34
- end
32
+ it "renders 'No plugins downloaded' if nothing was downloaded" do
33
+ receive_count = 0
34
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { receive_count += 1 }.and_return([])
35
35
 
36
- it "renders comma separate list of downloaded file names" do
37
- receive_count = 0
38
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
39
- receive_count += 1
40
- case receive_count
41
- when 1
42
- %w[/a]
43
- when 2
44
- %w[/b]
45
- when 3
46
- %w[/c]
47
- end
36
+ result = pluginface.download
37
+ expect(receive_count).to eq(3)
38
+ expect(render(result)).to eq('No plugins downloaded.')
48
39
  end
49
40
 
50
- result = pluginface.download
51
- expect(receive_count).to eq(3)
52
- expect(render(result)).to eq('Downloaded these plugins: /a, /b, /c')
41
+ it "renders comma separate list of downloaded file names" do
42
+ receive_count = 0
43
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
44
+ receive_count += 1
45
+ case receive_count
46
+ when 1
47
+ %w[/a]
48
+ when 2
49
+ %w[/b]
50
+ when 3
51
+ %w[/c]
52
+ end
53
+ end
54
+
55
+ result = pluginface.download
56
+ expect(receive_count).to eq(3)
57
+ expect(render(result)).to eq('Downloaded these plugins: /a, /b, /c')
58
+ end
53
59
  end
54
60
 
55
- it "uses persistent HTTP pool" do
56
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
57
- expect(Puppet.lookup(:http_pool)).to be_instance_of(Puppet::Network::HTTP::Pool)
58
- end.and_return([])
61
+ context "when i18n is enabled" do
62
+ before(:each) do
63
+ Puppet[:disable_i18n] = true
64
+ end
59
65
 
60
- pluginface.download
66
+ it "downloads only plugins and external facts, no locales" do
67
+ receive_count = 0
68
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { receive_count += 1 }.and_return([])
69
+
70
+ pluginface.download
71
+ expect(receive_count).to eq(2)
72
+ end
73
+
74
+ it "renders 'No plugins downloaded' if nothing was downloaded, without checking for locales" do
75
+ receive_count = 0
76
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { receive_count += 1 }.and_return([])
77
+
78
+ result = pluginface.download
79
+ expect(receive_count).to eq(2)
80
+ expect(render(result)).to eq('No plugins downloaded.')
81
+ end
82
+
83
+ it "renders comma separate list of downloaded file names" do
84
+ receive_count = 0
85
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
86
+ receive_count += 1
87
+ case receive_count
88
+ when 1
89
+ %w[/a]
90
+ when 2
91
+ %w[/b]
92
+ when 3
93
+ %w[/c]
94
+ end
95
+ end
96
+
97
+ result = pluginface.download
98
+ expect(receive_count).to eq(2)
99
+ expect(render(result)).to eq('Downloaded these plugins: /a, /b')
100
+ end
61
101
  end
62
102
  end
63
103