puppet 6.19.0-x86-mingw32 → 7.3.0-x86-mingw32

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

Potentially problematic release.


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

Files changed (513) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -16
  3. data/Gemfile +3 -4
  4. data/Gemfile.lock +33 -28
  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 +2 -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 +182 -104
  15. data/lib/puppet/application/agent.rb +1 -0
  16. data/lib/puppet/application/apply.rb +3 -2
  17. data/lib/puppet/application/device.rb +101 -104
  18. data/lib/puppet/application/filebucket.rb +15 -11
  19. data/lib/puppet/application/script.rb +1 -0
  20. data/lib/puppet/application/ssl.rb +1 -1
  21. data/lib/puppet/application_support.rb +7 -0
  22. data/lib/puppet/configurer.rb +44 -36
  23. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  24. data/lib/puppet/defaults.rb +71 -170
  25. data/lib/puppet/environments.rb +44 -75
  26. data/lib/puppet/face/config.rb +10 -0
  27. data/lib/puppet/face/epp.rb +12 -2
  28. data/lib/puppet/face/facts.rb +80 -6
  29. data/lib/puppet/face/help.rb +1 -1
  30. data/lib/puppet/face/node/clean.rb +8 -0
  31. data/lib/puppet/face/plugin.rb +5 -8
  32. data/lib/puppet/ffi/posix.rb +10 -0
  33. data/lib/puppet/ffi/posix/constants.rb +14 -0
  34. data/lib/puppet/ffi/posix/functions.rb +24 -0
  35. data/lib/puppet/ffi/windows.rb +12 -0
  36. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  37. data/lib/puppet/ffi/windows/constants.rb +404 -0
  38. data/lib/puppet/ffi/windows/functions.rb +628 -0
  39. data/lib/puppet/ffi/windows/structs.rb +338 -0
  40. data/lib/puppet/file_serving/configuration.rb +0 -5
  41. data/lib/puppet/file_serving/configuration/parser.rb +6 -32
  42. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  43. data/lib/puppet/file_serving/mount.rb +1 -2
  44. data/lib/puppet/forge/repository.rb +0 -1
  45. data/lib/puppet/functions/epp.rb +1 -0
  46. data/lib/puppet/functions/inline_epp.rb +1 -0
  47. data/lib/puppet/generate/models/type/type.rb +4 -1
  48. data/lib/puppet/http.rb +22 -13
  49. data/lib/puppet/http/client.rb +164 -114
  50. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  51. data/lib/puppet/http/errors.rb +16 -0
  52. data/lib/puppet/http/external_client.rb +5 -7
  53. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  54. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  55. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  56. data/lib/puppet/http/proxy.rb +137 -0
  57. data/lib/puppet/http/redirector.rb +4 -12
  58. data/lib/puppet/http/resolver.rb +5 -15
  59. data/lib/puppet/http/resolver/server_list.rb +6 -10
  60. data/lib/puppet/http/resolver/settings.rb +4 -7
  61. data/lib/puppet/http/resolver/srv.rb +7 -11
  62. data/lib/puppet/http/response.rb +36 -54
  63. data/lib/puppet/http/response_converter.rb +24 -0
  64. data/lib/puppet/http/response_net_http.rb +42 -0
  65. data/lib/puppet/http/retry_after_handler.rb +4 -13
  66. data/lib/puppet/http/service.rb +12 -26
  67. data/lib/puppet/http/service/ca.rb +11 -22
  68. data/lib/puppet/http/service/compiler.rb +22 -69
  69. data/lib/puppet/http/service/file_server.rb +18 -27
  70. data/lib/puppet/http/service/puppetserver.rb +26 -12
  71. data/lib/puppet/http/service/report.rb +8 -10
  72. data/lib/puppet/http/session.rb +11 -20
  73. data/lib/puppet/{network/http → http}/site.rb +1 -2
  74. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  75. data/lib/puppet/indirector/fact_search.rb +60 -0
  76. data/lib/puppet/indirector/facts/facter.rb +24 -3
  77. data/lib/puppet/indirector/facts/json.rb +27 -0
  78. data/lib/puppet/indirector/facts/rest.rb +3 -22
  79. data/lib/puppet/indirector/facts/yaml.rb +3 -58
  80. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  81. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  82. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  83. data/lib/puppet/indirector/file_server.rb +1 -8
  84. data/lib/puppet/indirector/generic_http.rb +0 -11
  85. data/lib/puppet/indirector/json.rb +5 -1
  86. data/lib/puppet/indirector/node/json.rb +8 -0
  87. data/lib/puppet/indirector/node/rest.rb +2 -4
  88. data/lib/puppet/indirector/report/json.rb +34 -0
  89. data/lib/puppet/indirector/report/rest.rb +3 -8
  90. data/lib/puppet/indirector/request.rb +0 -101
  91. data/lib/puppet/indirector/rest.rb +12 -263
  92. data/lib/puppet/module_tool/applications.rb +0 -1
  93. data/lib/puppet/module_tool/applications/installer.rb +48 -2
  94. data/lib/puppet/module_tool/errors/shared.rb +17 -2
  95. data/lib/puppet/network/authconfig.rb +2 -96
  96. data/lib/puppet/network/authorization.rb +13 -35
  97. data/lib/puppet/network/formats.rb +69 -1
  98. data/lib/puppet/network/http.rb +3 -3
  99. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  100. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  101. data/lib/puppet/network/http/connection.rb +247 -316
  102. data/lib/puppet/network/http/handler.rb +0 -1
  103. data/lib/puppet/network/http_pool.rb +16 -34
  104. data/lib/puppet/node.rb +1 -30
  105. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  106. data/lib/puppet/pal/pal_impl.rb +73 -18
  107. data/lib/puppet/parser/ast/leaf.rb +3 -2
  108. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  109. data/lib/puppet/parser/compiler.rb +0 -198
  110. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  111. data/lib/puppet/parser/resource.rb +0 -69
  112. data/lib/puppet/parser/templatewrapper.rb +1 -1
  113. data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
  114. data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
  115. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  116. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  117. data/lib/puppet/pops/issues.rb +0 -5
  118. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  119. data/lib/puppet/pops/model/ast.pp +0 -42
  120. data/lib/puppet/pops/model/ast.rb +0 -290
  121. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  122. data/lib/puppet/pops/model/factory.rb +0 -45
  123. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  124. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  125. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  126. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  127. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  128. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  129. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  130. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  131. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  132. data/lib/puppet/pops/types/type_parser.rb +0 -4
  133. data/lib/puppet/pops/types/types.rb +0 -1
  134. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  135. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  136. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  137. data/lib/puppet/provider.rb +0 -13
  138. data/lib/puppet/provider/nameservice.rb +0 -18
  139. data/lib/puppet/provider/package/apt.rb +4 -0
  140. data/lib/puppet/provider/package/dpkg.rb +0 -10
  141. data/lib/puppet/provider/package/gem.rb +23 -3
  142. data/lib/puppet/provider/package/pip.rb +0 -1
  143. data/lib/puppet/provider/package/pkg.rb +0 -4
  144. data/lib/puppet/provider/package/portage.rb +1 -1
  145. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  146. data/lib/puppet/provider/service/smf.rb +191 -73
  147. data/lib/puppet/provider/user/aix.rb +2 -2
  148. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  149. data/lib/puppet/reference/configuration.rb +8 -5
  150. data/lib/puppet/reference/indirection.rb +1 -1
  151. data/lib/puppet/resource.rb +1 -89
  152. data/lib/puppet/resource/catalog.rb +1 -14
  153. data/lib/puppet/resource/type.rb +3 -119
  154. data/lib/puppet/resource/type_collection.rb +3 -48
  155. data/lib/puppet/runtime.rb +1 -2
  156. data/lib/puppet/settings.rb +88 -48
  157. data/lib/puppet/settings/alias_setting.rb +37 -0
  158. data/lib/puppet/settings/base_setting.rb +26 -2
  159. data/lib/puppet/settings/integer_setting.rb +17 -0
  160. data/lib/puppet/settings/port_setting.rb +15 -0
  161. data/lib/puppet/settings/priority_setting.rb +5 -4
  162. data/lib/puppet/ssl.rb +10 -6
  163. data/lib/puppet/ssl/base.rb +3 -5
  164. data/lib/puppet/ssl/certificate.rb +0 -6
  165. data/lib/puppet/ssl/certificate_request.rb +1 -12
  166. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  167. data/lib/puppet/ssl/oids.rb +3 -1
  168. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  169. data/lib/puppet/ssl/state_machine.rb +3 -1
  170. data/lib/puppet/ssl/verifier.rb +2 -0
  171. data/lib/puppet/test/test_helper.rb +1 -3
  172. data/lib/puppet/transaction.rb +1 -7
  173. data/lib/puppet/transaction/report.rb +2 -4
  174. data/lib/puppet/type.rb +0 -76
  175. data/lib/puppet/type/file.rb +5 -7
  176. data/lib/puppet/type/file/checksum.rb +1 -1
  177. data/lib/puppet/type/file/source.rb +1 -1
  178. data/lib/puppet/type/filebucket.rb +3 -3
  179. data/lib/puppet/type/package.rb +5 -13
  180. data/lib/puppet/type/user.rb +1 -1
  181. data/lib/puppet/util/autoload.rb +1 -8
  182. data/lib/puppet/util/execution.rb +0 -11
  183. data/lib/puppet/util/http_proxy.rb +2 -215
  184. data/lib/puppet/util/monkey_patches.rb +0 -46
  185. data/lib/puppet/util/posix.rb +54 -5
  186. data/lib/puppet/util/rdoc.rb +0 -7
  187. data/lib/puppet/util/retry_action.rb +1 -1
  188. data/lib/puppet/util/rubygems.rb +5 -1
  189. data/lib/puppet/util/run_mode.rb +9 -1
  190. data/lib/puppet/util/windows.rb +3 -8
  191. data/lib/puppet/util/windows/daemon.rb +360 -0
  192. data/lib/puppet/util/windows/error.rb +1 -0
  193. data/lib/puppet/util/windows/eventlog.rb +4 -9
  194. data/lib/puppet/util/windows/file.rb +8 -242
  195. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  196. data/lib/puppet/util/windows/process.rb +4 -226
  197. data/lib/puppet/util/windows/service.rb +9 -460
  198. data/lib/puppet/util/windows/string.rb +12 -13
  199. data/lib/puppet/util/yaml.rb +0 -22
  200. data/lib/puppet/vendor/require_vendored.rb +0 -1
  201. data/lib/puppet/version.rb +1 -1
  202. data/lib/puppet/x509.rb +5 -1
  203. data/lib/puppet/x509/cert_provider.rb +29 -1
  204. data/locales/puppet.pot +629 -1314
  205. data/man/man5/puppet.conf.5 +39 -99
  206. data/man/man8/puppet-agent.8 +2 -2
  207. data/man/man8/puppet-apply.8 +2 -2
  208. data/man/man8/puppet-catalog.8 +1 -1
  209. data/man/man8/puppet-config.8 +1 -1
  210. data/man/man8/puppet-describe.8 +1 -1
  211. data/man/man8/puppet-device.8 +2 -2
  212. data/man/man8/puppet-doc.8 +1 -1
  213. data/man/man8/puppet-epp.8 +1 -1
  214. data/man/man8/puppet-facts.8 +58 -9
  215. data/man/man8/puppet-filebucket.8 +6 -6
  216. data/man/man8/puppet-generate.8 +1 -1
  217. data/man/man8/puppet-help.8 +1 -1
  218. data/man/man8/puppet-lookup.8 +1 -1
  219. data/man/man8/puppet-module.8 +1 -58
  220. data/man/man8/puppet-node.8 +4 -1
  221. data/man/man8/puppet-parser.8 +1 -1
  222. data/man/man8/puppet-plugin.8 +1 -1
  223. data/man/man8/puppet-report.8 +4 -1
  224. data/man/man8/puppet-resource.8 +1 -1
  225. data/man/man8/puppet-script.8 +2 -2
  226. data/man/man8/puppet-ssl.8 +1 -1
  227. data/man/man8/puppet.8 +2 -2
  228. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
  229. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  230. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
  231. data/spec/integration/application/agent_spec.rb +151 -14
  232. data/spec/integration/application/apply_spec.rb +20 -1
  233. data/spec/integration/application/filebucket_spec.rb +16 -16
  234. data/spec/integration/application/help_spec.rb +2 -0
  235. data/spec/integration/application/plugin_spec.rb +23 -1
  236. data/spec/integration/defaults_spec.rb +7 -10
  237. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  238. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
  239. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
  240. data/spec/integration/network/http_pool_spec.rb +3 -21
  241. data/spec/integration/parser/catalog_spec.rb +0 -38
  242. data/spec/integration/parser/node_spec.rb +0 -9
  243. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  244. data/spec/integration/resource/type_collection_spec.rb +2 -6
  245. data/spec/integration/transaction_spec.rb +4 -9
  246. data/spec/integration/type/file_spec.rb +5 -4
  247. data/spec/integration/util/windows/adsi_spec.rb +3 -1
  248. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  249. data/spec/integration/util/windows/registry_spec.rb +0 -10
  250. data/spec/integration/util/windows/security_spec.rb +1 -1
  251. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  252. data/spec/lib/puppet_spec/settings.rb +7 -1
  253. data/spec/spec_helper.rb +3 -4
  254. data/spec/unit/agent_spec.rb +8 -8
  255. data/spec/unit/application/agent_spec.rb +0 -1
  256. data/spec/unit/application/config_spec.rb +224 -4
  257. data/spec/unit/application/facts_spec.rb +35 -0
  258. data/spec/unit/application/filebucket_spec.rb +41 -41
  259. data/spec/unit/application/ssl_spec.rb +2 -2
  260. data/spec/unit/application_spec.rb +51 -9
  261. data/spec/unit/certificate_factory_spec.rb +1 -1
  262. data/spec/unit/configurer/downloader_spec.rb +6 -2
  263. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  264. data/spec/unit/configurer_spec.rb +12 -9
  265. data/spec/unit/confine/feature_spec.rb +1 -1
  266. data/spec/unit/confine_spec.rb +8 -2
  267. data/spec/unit/context/trusted_information_spec.rb +2 -6
  268. data/spec/unit/defaults_spec.rb +26 -32
  269. data/spec/unit/environments_spec.rb +96 -22
  270. data/spec/unit/face/config_spec.rb +27 -32
  271. data/spec/unit/face/facts_spec.rb +4 -0
  272. data/spec/unit/face/node_spec.rb +14 -13
  273. data/spec/unit/face/plugin_spec.rb +73 -33
  274. data/spec/unit/file_bucket/file_spec.rb +1 -1
  275. data/spec/unit/file_serving/configuration/parser_spec.rb +22 -19
  276. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  277. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  278. data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
  279. data/spec/unit/forge/module_release_spec.rb +2 -7
  280. data/spec/unit/functions/camelcase_spec.rb +1 -1
  281. data/spec/unit/functions/capitalize_spec.rb +1 -1
  282. data/spec/unit/functions/downcase_spec.rb +1 -1
  283. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  284. data/spec/unit/functions/upcase_spec.rb +1 -1
  285. data/spec/unit/http/client_spec.rb +7 -8
  286. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  287. data/spec/unit/http/external_client_spec.rb +4 -4
  288. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  289. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  290. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  291. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  292. data/spec/unit/http/resolver_spec.rb +13 -13
  293. data/spec/unit/http/service/compiler_spec.rb +49 -62
  294. data/spec/unit/http/service/file_server_spec.rb +3 -3
  295. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  296. data/spec/unit/http/service_spec.rb +1 -2
  297. data/spec/unit/http/session_spec.rb +16 -14
  298. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  299. data/spec/unit/indirector/face_spec.rb +0 -1
  300. data/spec/unit/indirector/facts/facter_spec.rb +104 -1
  301. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  302. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  303. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
  304. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  305. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  306. data/spec/unit/indirector/file_server_spec.rb +1 -15
  307. data/spec/unit/indirector/indirection_spec.rb +8 -12
  308. data/spec/unit/indirector/node/json_spec.rb +33 -0
  309. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  310. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  311. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  312. data/spec/unit/indirector/request_spec.rb +0 -264
  313. data/spec/unit/indirector/rest_spec.rb +98 -752
  314. data/spec/unit/indirector_spec.rb +2 -2
  315. data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
  316. data/spec/unit/network/authconfig_spec.rb +2 -132
  317. data/spec/unit/network/authorization_spec.rb +2 -55
  318. data/spec/unit/network/formats_spec.rb +45 -4
  319. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -101
  320. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  321. data/spec/unit/network/http/api_spec.rb +10 -0
  322. data/spec/unit/network/http/connection_spec.rb +19 -41
  323. data/spec/unit/network/http/handler_spec.rb +0 -6
  324. data/spec/unit/network/http_pool_spec.rb +0 -4
  325. data/spec/unit/node/environment_spec.rb +33 -21
  326. data/spec/unit/node_spec.rb +2 -54
  327. data/spec/unit/parser/compiler_spec.rb +3 -19
  328. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  329. data/spec/unit/parser/resource_spec.rb +14 -8
  330. data/spec/unit/parser/templatewrapper_spec.rb +4 -3
  331. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
  332. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  333. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  334. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  335. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  336. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  337. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  338. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  339. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  340. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  341. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  342. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  343. data/spec/unit/pops/visitor_spec.rb +1 -1
  344. data/spec/unit/property_spec.rb +1 -0
  345. data/spec/unit/provider/nameservice_spec.rb +66 -122
  346. data/spec/unit/provider/package/apt_spec.rb +4 -8
  347. data/spec/unit/provider/package/base_spec.rb +6 -5
  348. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  349. data/spec/unit/provider/package/gem_spec.rb +32 -0
  350. data/spec/unit/provider/package/pacman_spec.rb +18 -12
  351. data/spec/unit/provider/package/pip_spec.rb +6 -11
  352. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
  353. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  354. data/spec/unit/provider/service/smf_spec.rb +401 -165
  355. data/spec/unit/provider/service/windows_spec.rb +0 -1
  356. data/spec/unit/provider/user/aix_spec.rb +5 -0
  357. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  358. data/spec/unit/provider/user/pw_spec.rb +2 -0
  359. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  360. data/spec/unit/provider_spec.rb +6 -20
  361. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  362. data/spec/unit/resource/type_collection_spec.rb +2 -22
  363. data/spec/unit/resource/type_spec.rb +1 -1
  364. data/spec/unit/resource_spec.rb +11 -66
  365. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  366. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  367. data/spec/unit/settings/port_setting_spec.rb +31 -0
  368. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  369. data/spec/unit/settings_spec.rb +560 -228
  370. data/spec/unit/ssl/base_spec.rb +36 -4
  371. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  372. data/spec/unit/ssl/certificate_spec.rb +2 -11
  373. data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
  374. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  375. data/spec/unit/ssl/verifier_spec.rb +0 -21
  376. data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
  377. data/spec/unit/transaction/event_manager_spec.rb +14 -11
  378. data/spec/unit/transaction/report_spec.rb +0 -2
  379. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  380. data/spec/unit/transaction_spec.rb +57 -82
  381. data/spec/unit/type/file/checksum_spec.rb +6 -6
  382. data/spec/unit/type/file/content_spec.rb +1 -2
  383. data/spec/unit/type/file/ensure_spec.rb +1 -1
  384. data/spec/unit/type/file/mode_spec.rb +1 -1
  385. data/spec/unit/type/file/selinux_spec.rb +0 -2
  386. data/spec/unit/type/file/source_spec.rb +0 -1
  387. data/spec/unit/type/file_spec.rb +12 -12
  388. data/spec/unit/type/group_spec.rb +13 -6
  389. data/spec/unit/type/package_spec.rb +1 -1
  390. data/spec/unit/type/resources_spec.rb +7 -7
  391. data/spec/unit/type/service_spec.rb +1 -1
  392. data/spec/unit/type/tidy_spec.rb +0 -1
  393. data/spec/unit/type_spec.rb +22 -2
  394. data/spec/unit/util/at_fork_spec.rb +2 -2
  395. data/spec/unit/util/autoload_spec.rb +5 -1
  396. data/spec/unit/util/backups_spec.rb +1 -4
  397. data/spec/unit/util/execution_spec.rb +15 -40
  398. data/spec/unit/util/inifile_spec.rb +6 -14
  399. data/spec/unit/util/log_spec.rb +8 -7
  400. data/spec/unit/util/logging_spec.rb +3 -3
  401. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  402. data/spec/unit/util/posix_spec.rb +363 -15
  403. data/spec/unit/util/rubygems_spec.rb +2 -2
  404. data/spec/unit/util/run_mode_spec.rb +21 -121
  405. data/spec/unit/util/selinux_spec.rb +76 -52
  406. data/spec/unit/util/storage_spec.rb +3 -1
  407. data/spec/unit/util/suidmanager_spec.rb +44 -41
  408. data/spec/unit/util/windows/string_spec.rb +1 -3
  409. data/spec/unit/util/yaml_spec.rb +0 -54
  410. data/spec/unit/util_spec.rb +13 -24
  411. metadata +66 -226
  412. data/conf/auth.conf +0 -150
  413. data/lib/puppet/application/cert.rb +0 -76
  414. data/lib/puppet/application/key.rb +0 -4
  415. data/lib/puppet/application/man.rb +0 -4
  416. data/lib/puppet/application/status.rb +0 -4
  417. data/lib/puppet/face/key.rb +0 -16
  418. data/lib/puppet/face/man.rb +0 -145
  419. data/lib/puppet/face/module/build.rb +0 -14
  420. data/lib/puppet/face/module/generate.rb +0 -14
  421. data/lib/puppet/face/module/search.rb +0 -103
  422. data/lib/puppet/face/status.rb +0 -51
  423. data/lib/puppet/indirector/certificate/file.rb +0 -9
  424. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  425. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  426. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  427. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  428. data/lib/puppet/indirector/file_content/http.rb +0 -22
  429. data/lib/puppet/indirector/key/file.rb +0 -46
  430. data/lib/puppet/indirector/key/memory.rb +0 -7
  431. data/lib/puppet/indirector/ssl_file.rb +0 -162
  432. data/lib/puppet/indirector/status.rb +0 -3
  433. data/lib/puppet/indirector/status/local.rb +0 -12
  434. data/lib/puppet/indirector/status/rest.rb +0 -27
  435. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  436. data/lib/puppet/network/auth_config_parser.rb +0 -90
  437. data/lib/puppet/network/authstore.rb +0 -283
  438. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  439. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  440. data/lib/puppet/network/http/base_pool.rb +0 -36
  441. data/lib/puppet/network/http/compression.rb +0 -127
  442. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  443. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  444. data/lib/puppet/network/rest_controller.rb +0 -2
  445. data/lib/puppet/network/rights.rb +0 -210
  446. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  447. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  448. data/lib/puppet/parser/environment_compiler.rb +0 -202
  449. data/lib/puppet/pops/types/enumeration.rb +0 -16
  450. data/lib/puppet/resource/capability_finder.rb +0 -154
  451. data/lib/puppet/rest/errors.rb +0 -15
  452. data/lib/puppet/rest/response.rb +0 -35
  453. data/lib/puppet/rest/route.rb +0 -85
  454. data/lib/puppet/rest/routes.rb +0 -135
  455. data/lib/puppet/ssl/host.rb +0 -505
  456. data/lib/puppet/ssl/key.rb +0 -61
  457. data/lib/puppet/ssl/validator.rb +0 -61
  458. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  459. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  460. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  461. data/lib/puppet/status.rb +0 -40
  462. data/lib/puppet/util/connection.rb +0 -88
  463. data/lib/puppet/util/ssl.rb +0 -83
  464. data/lib/puppet/util/windows/api_types.rb +0 -309
  465. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  466. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  467. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  468. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  469. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  470. data/lib/puppet/vendor/pathspec/README.md +0 -53
  471. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  472. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  473. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  474. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  475. data/man/man8/puppet-key.8 +0 -126
  476. data/man/man8/puppet-man.8 +0 -76
  477. data/man/man8/puppet-status.8 +0 -108
  478. data/spec/integration/application/config_spec.rb +0 -74
  479. data/spec/integration/network/authconfig_spec.rb +0 -256
  480. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  481. data/spec/unit/application/man_spec.rb +0 -52
  482. data/spec/unit/capability_spec.rb +0 -414
  483. data/spec/unit/face/catalog_spec.rb +0 -6
  484. data/spec/unit/face/key_spec.rb +0 -9
  485. data/spec/unit/face/module/search_spec.rb +0 -231
  486. data/spec/unit/face/module_spec.rb +0 -3
  487. data/spec/unit/face/status_spec.rb +0 -9
  488. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  489. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  490. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  491. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  492. data/spec/unit/indirector/key/file_spec.rb +0 -79
  493. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  494. data/spec/unit/indirector/status/local_spec.rb +0 -10
  495. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  496. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  497. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  498. data/spec/unit/network/authstore_spec.rb +0 -422
  499. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  500. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  501. data/spec/unit/network/http/compression_spec.rb +0 -240
  502. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  503. data/spec/unit/network/http_spec.rb +0 -9
  504. data/spec/unit/network/rights_spec.rb +0 -439
  505. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  506. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  507. data/spec/unit/resource/capability_finder_spec.rb +0 -143
  508. data/spec/unit/rest/route_spec.rb +0 -132
  509. data/spec/unit/ssl/host_spec.rb +0 -650
  510. data/spec/unit/ssl/key_spec.rb +0 -173
  511. data/spec/unit/ssl/validator_spec.rb +0 -278
  512. data/spec/unit/status_spec.rb +0 -45
  513. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -50,4 +50,39 @@ describe Puppet::Application::Facts do
50
50
  }.to exit_with(0)
51
51
  .and output(expected).to_stdout
52
52
  end
53
+
54
+ context 'when show action is called' do
55
+ let(:expected) { "{\n \"filesystems\": \"apfs,autofs,devfs\",\n \"macaddress\": \"64:52:11:22:03:25\"\n}\n" }
56
+
57
+ before :each do
58
+ Puppet::Node::Facts.indirection.terminus_class = :facter
59
+ allow(Facter).to receive(:resolve).and_return(values)
60
+ app.command_line.args = %w{show}
61
+ end
62
+
63
+ it 'correctly displays facts with default formatting' do
64
+ expect {
65
+ app.run
66
+ }.to exit_with(0)
67
+ .and output(expected).to_stdout
68
+ end
69
+ end
70
+
71
+ context 'when default action is called' do
72
+ let(:expected) { "---\nfilesystems: apfs,autofs,devfs\nmacaddress: 64:52:11:22:03:25\n" }
73
+
74
+ before :each do
75
+ Puppet::Node::Facts.indirection.terminus_class = :facter
76
+ allow(Facter).to receive(:resolve).and_return(values)
77
+ app.command_line.args = %w{--render-as yaml}
78
+ end
79
+
80
+ it 'calls show action' do
81
+ expect {
82
+ app.run
83
+ }.to exit_with(0)
84
+ .and output(expected).to_stdout
85
+ expect(app.action.name).to eq(:show)
86
+ end
87
+ end
53
88
  end
@@ -42,7 +42,6 @@ describe Puppet::Application::Filebucket do
42
42
  describe "during setup" do
43
43
  before :each do
44
44
  allow(Puppet::Log).to receive(:newdestination)
45
- allow(Puppet).to receive(:settraps)
46
45
  allow(Puppet::FileBucket::Dipper).to receive(:new)
47
46
  allow(@filebucket.options).to receive(:[])
48
47
  end
@@ -115,15 +114,15 @@ describe Puppet::Application::Filebucket do
115
114
  end
116
115
 
117
116
  it "should default to the first good server_list entry if server_list is set" do
118
- stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 200)
117
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 200)
119
118
  Puppet[:server_list] = "foo,bar,baz"
120
119
  expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "foo"))
121
120
  @filebucket.setup
122
121
  end
123
122
 
124
123
  it "should walk server_list until it finds a good entry" do
125
- stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 502)
126
- stub_request(:get, "https://bar:8140/status/v1/simple/master").to_return(status: 200)
124
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 502)
125
+ stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 200)
127
126
  Puppet[:server_list] = "foo,bar,baz"
128
127
  expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "bar"))
129
128
  @filebucket.setup
@@ -131,6 +130,8 @@ describe Puppet::Application::Filebucket do
131
130
 
132
131
  # FileBucket catches any exceptions raised, logs them, then just exits
133
132
  it "raises an error if there are no functional servers in server_list" do
133
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 404)
134
+ stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 404)
134
135
  stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 404)
135
136
  stub_request(:get, "https://bar:8140/status/v1/simple/master").to_return(status: 404)
136
137
  Puppet[:server] = 'horacio'
@@ -146,7 +147,7 @@ describe Puppet::Application::Filebucket do
146
147
  end
147
148
 
148
149
  it "should take both the server and port specified in server_list" do
149
- stub_request(:get, "https://foo:632/status/v1/simple/master").to_return(status: 200)
150
+ stub_request(:get, "https://foo:632/status/v1/simple/server").to_return(status: 200)
150
151
  Puppet[:server_list] = "foo:632,bar:6215,baz:351"
151
152
  expect(Puppet::FileBucket::Dipper).to receive(:new).with({ :Server => "foo", :Port => 632 })
152
153
  @filebucket.setup
@@ -157,7 +158,6 @@ describe Puppet::Application::Filebucket do
157
158
  describe "when running" do
158
159
  before :each do
159
160
  allow(Puppet::Log).to receive(:newdestination)
160
- allow(Puppet).to receive(:settraps)
161
161
  allow(Puppet::FileBucket::Dipper).to receive(:new)
162
162
  allow(@filebucket.options).to receive(:[])
163
163
 
@@ -187,11 +187,11 @@ describe Puppet::Application::Filebucket do
187
187
  @filebucket.get
188
188
  end
189
189
 
190
- it "should call the client getfile method with the given md5" do
191
- md5="DEADBEEF"
192
- allow(@filebucket).to receive(:args).and_return([md5])
190
+ it "should call the client getfile method with the given digest" do
191
+ digest = 'DEADBEEF'
192
+ allow(@filebucket).to receive(:args).and_return([digest])
193
193
 
194
- expect(@client).to receive(:getfile).with(md5)
194
+ expect(@client).to receive(:getfile).with(digest)
195
195
 
196
196
  @filebucket.get
197
197
  end
@@ -225,12 +225,12 @@ describe Puppet::Application::Filebucket do
225
225
  end
226
226
 
227
227
  describe "the command restore" do
228
- it "should call the client getfile method with the given md5" do
229
- md5="DEADBEEF"
230
- file="testfile"
231
- allow(@filebucket).to receive(:args).and_return([file, md5])
228
+ it "should call the client getfile method with the given digest" do
229
+ digest = 'DEADBEEF'
230
+ file = 'testfile'
231
+ allow(@filebucket).to receive(:args).and_return([file, digest])
232
232
 
233
- expect(@client).to receive(:restore).with(file,md5)
233
+ expect(@client).to receive(:restore).with(file, digest)
234
234
 
235
235
  @filebucket.restore
236
236
  end
@@ -238,55 +238,55 @@ describe Puppet::Application::Filebucket do
238
238
 
239
239
  describe "the command diff" do
240
240
  it "should call the client diff method with 2 given checksums" do
241
- md5a="DEADBEEF"
242
- md5b="BEEF"
241
+ digest_a = 'DEADBEEF'
242
+ digest_b = 'BEEF'
243
243
  allow(Puppet::FileSystem).to receive(:exist?).and_return(false)
244
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
244
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
245
245
 
246
- expect(@client).to receive(:diff).with(md5a,md5b, nil, nil)
246
+ expect(@client).to receive(:diff).with(digest_a, digest_b, nil, nil)
247
247
 
248
248
  @filebucket.diff
249
249
  end
250
250
 
251
- it "should call the clien diff with a path if the second argument is a file" do
252
- md5a="DEADBEEF"
253
- md5b="BEEF"
254
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(false)
255
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(true)
256
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
251
+ it "should call the client diff with a path if the second argument is a file" do
252
+ digest_a = 'DEADBEEF'
253
+ digest_b = 'BEEF'
254
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(false)
255
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
256
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
257
257
 
258
- expect(@client).to receive(:diff).with(md5a, nil, nil, md5b)
258
+ expect(@client).to receive(:diff).with(digest_a, nil, nil, digest_b)
259
259
 
260
260
  @filebucket.diff
261
261
  end
262
262
 
263
- it "should call the clien diff with a path if the first argument is a file" do
264
- md5a="DEADBEEF"
265
- md5b="BEEF"
266
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(true)
267
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(false)
268
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
263
+ it "should call the client diff with a path if the first argument is a file" do
264
+ digest_a = 'DEADBEEF'
265
+ digest_b = 'BEEF'
266
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
267
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(false)
268
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
269
269
 
270
- expect(@client).to receive(:diff).with(nil, md5b, md5a, nil)
270
+ expect(@client).to receive(:diff).with(nil, digest_b, digest_a, nil)
271
271
 
272
272
  @filebucket.diff
273
273
  end
274
274
 
275
275
  it "should call the clien diff with paths if the both arguments are files" do
276
- md5a="DEADBEEF"
277
- md5b="BEEF"
278
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(true)
279
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(true)
280
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
276
+ digest_a = 'DEADBEEF'
277
+ digest_b = 'BEEF'
278
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
279
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
280
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
281
281
 
282
- expect(@client).to receive(:diff).with(nil, nil, md5a, md5b)
282
+ expect(@client).to receive(:diff).with(nil, nil, digest_a, digest_b)
283
283
 
284
284
  @filebucket.diff
285
285
  end
286
286
 
287
287
  it "should fail if only one checksum is given" do
288
- md5a="DEADBEEF"
289
- allow(@filebucket).to receive(:args).and_return([md5a])
288
+ digest_a = 'DEADBEEF'
289
+ allow(@filebucket).to receive(:args).and_return([digest_a])
290
290
 
291
291
  expect { @filebucket.diff }.to raise_error Puppet::Error
292
292
  end
@@ -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,8 +7,10 @@ require 'timeout'
7
7
 
8
8
  describe Puppet::Application do
9
9
  before(:each) do
10
- @app = Class.new(Puppet::Application).new
11
- @appclass = @app.class
10
+ @appclass = Class.new(Puppet::Application) do
11
+ def handle_unknown(opt, arg); end
12
+ end
13
+ @app = @appclass.new
12
14
 
13
15
  allow(@app).to receive(:name).and_return("test_app")
14
16
  end
@@ -511,6 +513,40 @@ describe Puppet::Application do
511
513
 
512
514
  expect { @app.configure_indirector_routes }.to raise_error(Puppet::Error, /mapping values are not allowed/)
513
515
  end
516
+
517
+ it "should treat master routes on server application" do
518
+ allow(@app).to receive(:name).and_return("server")
519
+
520
+ Puppet[:route_file] = tmpfile('routes')
521
+ File.open(Puppet[:route_file], 'w') do |f|
522
+ f.print <<-ROUTES
523
+ master:
524
+ node:
525
+ terminus: exec
526
+ ROUTES
527
+ end
528
+
529
+ @app.configure_indirector_routes
530
+
531
+ expect(Puppet::Node.indirection.terminus_class).to eq('exec')
532
+ end
533
+
534
+ it "should treat server routes on master application" do
535
+ allow(@app).to receive(:name).and_return("master")
536
+
537
+ Puppet[:route_file] = tmpfile('routes')
538
+ File.open(Puppet[:route_file], 'w') do |f|
539
+ f.print <<-ROUTES
540
+ server:
541
+ node:
542
+ terminus: exec
543
+ ROUTES
544
+ end
545
+
546
+ @app.configure_indirector_routes
547
+
548
+ expect(Puppet::Node.indirection.terminus_class).to eq('exec')
549
+ end
514
550
  end
515
551
 
516
552
  describe "when running" do
@@ -560,13 +596,6 @@ describe Puppet::Application do
560
596
  end
561
597
 
562
598
  it "should raise an error if dispatch returns no command" do
563
- allow(@app).to receive(:get_command).and_return(nil)
564
- expect(Puppet).to receive(:send_log).with(:err, "Could not run: No valid command or main")
565
- expect { @app.run }.to exit_with 1
566
- end
567
-
568
- it "should raise an error if dispatch returns an invalid command" do
569
- allow(@app).to receive(:get_command).and_return(:this_function_doesnt_exist)
570
599
  expect(Puppet).to receive(:send_log).with(:err, "Could not run: No valid command or main")
571
600
  expect { @app.run }.to exit_with 1
572
601
  end
@@ -684,5 +713,18 @@ describe Puppet::Application do
684
713
 
685
714
  @app.handle_logdest_arg(nil)
686
715
  end
716
+
717
+ it "accepts multiple destinations as a comma sepparated list" do
718
+ dest1 = '/tmp/path1'
719
+ dest2 = 'console'
720
+ dest3 = '/tmp/path2'
721
+ dest_args = [dest1, dest2, dest3].join(' , ')
722
+
723
+ [dest1, dest2, dest3].each do |dest|
724
+ expect(Puppet::Util::Log).to receive(:newdestination).with(dest)
725
+ end
726
+
727
+ @app.handle_logdest_arg(dest_args)
728
+ end
687
729
  end
688
730
  end
@@ -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