puppet 6.15.0-x86-mingw32 → 6.19.1-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 (418) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -7
  3. data/Gemfile +4 -2
  4. data/Gemfile.lock +29 -27
  5. data/README.md +3 -4
  6. data/Rakefile +4 -12
  7. data/lib/puppet.rb +32 -8
  8. data/lib/puppet/agent.rb +18 -4
  9. data/lib/puppet/agent/locker.rb +0 -7
  10. data/lib/puppet/application/agent.rb +23 -8
  11. data/lib/puppet/application/apply.rb +18 -20
  12. data/lib/puppet/application/device.rb +1 -1
  13. data/lib/puppet/application/doc.rb +1 -1
  14. data/lib/puppet/application/lookup.rb +16 -4
  15. data/lib/puppet/application/plugin.rb +1 -0
  16. data/lib/puppet/application/ssl.rb +1 -1
  17. data/lib/puppet/configurer.rb +61 -21
  18. data/lib/puppet/configurer/downloader.rb +31 -10
  19. data/lib/puppet/confine.rb +2 -2
  20. data/lib/puppet/confine/any.rb +1 -1
  21. data/lib/puppet/context/trusted_information.rb +14 -8
  22. data/lib/puppet/daemon.rb +13 -27
  23. data/lib/puppet/defaults.rb +119 -39
  24. data/lib/puppet/environments.rb +51 -10
  25. data/lib/puppet/face/catalog.rb +1 -1
  26. data/lib/puppet/face/config.rb +46 -16
  27. data/lib/puppet/face/facts.rb +1 -1
  28. data/lib/puppet/face/help.rb +29 -3
  29. data/lib/puppet/face/module/search.rb +5 -0
  30. data/lib/puppet/face/node.rb +3 -3
  31. data/lib/puppet/face/node/clean.rb +2 -2
  32. data/lib/puppet/face/plugin.rb +1 -1
  33. data/lib/puppet/face/status.rb +1 -1
  34. data/lib/puppet/feature/base.rb +1 -1
  35. data/lib/puppet/file_bucket/dipper.rb +1 -1
  36. data/lib/puppet/file_serving/http_metadata.rb +14 -2
  37. data/lib/puppet/file_serving/metadata.rb +4 -1
  38. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  39. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  40. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  41. data/lib/puppet/file_serving/terminus_selector.rb +7 -8
  42. data/lib/puppet/file_system/file_impl.rb +4 -4
  43. data/lib/puppet/file_system/uniquefile.rb +12 -16
  44. data/lib/puppet/forge.rb +1 -1
  45. data/lib/puppet/forge/cache.rb +1 -1
  46. data/lib/puppet/forge/repository.rb +4 -7
  47. data/lib/puppet/functions/filter.rb +1 -0
  48. data/lib/puppet/functions/lstrip.rb +4 -4
  49. data/lib/puppet/functions/new.rb +8 -3
  50. data/lib/puppet/functions/reverse_each.rb +1 -1
  51. data/lib/puppet/functions/rstrip.rb +4 -4
  52. data/lib/puppet/functions/step.rb +1 -1
  53. data/lib/puppet/functions/strip.rb +4 -4
  54. data/lib/puppet/gettext/config.rb +5 -5
  55. data/lib/puppet/gettext/module_translations.rb +4 -4
  56. data/lib/puppet/http.rb +1 -0
  57. data/lib/puppet/http/client.rb +28 -12
  58. data/lib/puppet/http/external_client.rb +0 -6
  59. data/lib/puppet/http/redirector.rb +9 -7
  60. data/lib/puppet/http/resolver.rb +5 -8
  61. data/lib/puppet/http/resolver/server_list.rb +18 -36
  62. data/lib/puppet/http/resolver/settings.rb +4 -4
  63. data/lib/puppet/http/resolver/srv.rb +5 -5
  64. data/lib/puppet/http/response.rb +19 -0
  65. data/lib/puppet/http/service.rb +3 -1
  66. data/lib/puppet/http/service/compiler.rb +1 -1
  67. data/lib/puppet/http/service/file_server.rb +1 -1
  68. data/lib/puppet/http/service/puppetserver.rb +39 -0
  69. data/lib/puppet/http/session.rb +5 -4
  70. data/lib/puppet/indirector.rb +1 -1
  71. data/lib/puppet/indirector/catalog/compiler.rb +1 -1
  72. data/lib/puppet/indirector/exec.rb +1 -1
  73. data/lib/puppet/indirector/facts/facter.rb +3 -3
  74. data/lib/puppet/indirector/facts/yaml.rb +1 -1
  75. data/lib/puppet/indirector/file_content/http.rb +5 -0
  76. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  77. data/lib/puppet/indirector/file_metadata/http.rb +28 -8
  78. data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
  79. data/lib/puppet/indirector/hiera.rb +4 -0
  80. data/lib/puppet/indirector/indirection.rb +1 -1
  81. data/lib/puppet/indirector/json.rb +1 -1
  82. data/lib/puppet/indirector/msgpack.rb +1 -1
  83. data/lib/puppet/indirector/report/processor.rb +2 -2
  84. data/lib/puppet/indirector/request.rb +5 -5
  85. data/lib/puppet/indirector/rest.rb +7 -1
  86. data/lib/puppet/indirector/yaml.rb +1 -1
  87. data/lib/puppet/module.rb +1 -2
  88. data/lib/puppet/network/format_support.rb +2 -2
  89. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  90. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  91. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  92. data/lib/puppet/network/http/compression.rb +7 -0
  93. data/lib/puppet/network/http/connection.rb +2 -0
  94. data/lib/puppet/network/http/connection_adapter.rb +184 -0
  95. data/lib/puppet/network/http/nocache_pool.rb +1 -0
  96. data/lib/puppet/network/http/route.rb +2 -2
  97. data/lib/puppet/network/http_pool.rb +2 -2
  98. data/lib/puppet/node/environment.rb +12 -5
  99. data/lib/puppet/node/facts.rb +17 -0
  100. data/lib/puppet/pal/catalog_compiler.rb +5 -0
  101. data/lib/puppet/pal/pal_impl.rb +31 -4
  102. data/lib/puppet/parameter.rb +1 -1
  103. data/lib/puppet/parser/ast/leaf.rb +5 -5
  104. data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
  105. data/lib/puppet/parser/compiler.rb +29 -26
  106. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  107. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  108. data/lib/puppet/parser/environment_compiler.rb +4 -1
  109. data/lib/puppet/parser/functions.rb +21 -17
  110. data/lib/puppet/parser/functions/create_resources.rb +11 -7
  111. data/lib/puppet/parser/functions/filter.rb +1 -0
  112. data/lib/puppet/parser/resource.rb +3 -2
  113. data/lib/puppet/parser/resource/param.rb +6 -0
  114. data/lib/puppet/parser/type_loader.rb +2 -2
  115. data/lib/puppet/pops/adaptable.rb +7 -13
  116. data/lib/puppet/pops/adapters.rb +8 -4
  117. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  118. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
  119. data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
  120. data/lib/puppet/pops/issues.rb +5 -0
  121. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
  122. data/lib/puppet/pops/loaders.rb +18 -11
  123. data/lib/puppet/pops/lookup/context.rb +1 -1
  124. data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
  125. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  126. data/lib/puppet/pops/types/iterable.rb +34 -8
  127. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  128. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  129. data/lib/puppet/pops/validation/checker4_0.rb +29 -15
  130. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  131. data/lib/puppet/provider/file/windows.rb +1 -1
  132. data/lib/puppet/provider/package/aix.rb +17 -2
  133. data/lib/puppet/provider/package/apt.rb +38 -1
  134. data/lib/puppet/provider/package/aptitude.rb +1 -1
  135. data/lib/puppet/provider/package/dnfmodule.rb +24 -4
  136. data/lib/puppet/provider/package/dpkg.rb +1 -1
  137. data/lib/puppet/provider/package/gem.rb +4 -2
  138. data/lib/puppet/provider/package/pip.rb +60 -37
  139. data/lib/puppet/provider/package/pip2.rb +17 -0
  140. data/lib/puppet/provider/package/portage.rb +2 -2
  141. data/lib/puppet/provider/package/puppet_gem.rb +5 -0
  142. data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
  143. data/lib/puppet/provider/package/yum.rb +9 -1
  144. data/lib/puppet/provider/package/zypper.rb +62 -1
  145. data/lib/puppet/provider/service/systemd.rb +21 -4
  146. data/lib/puppet/provider/service/windows.rb +23 -7
  147. data/lib/puppet/provider/user/aix.rb +1 -1
  148. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  149. data/lib/puppet/provider/user/useradd.rb +16 -5
  150. data/lib/puppet/provider/user/windows_adsi.rb +18 -1
  151. data/lib/puppet/reports/http.rb +7 -3
  152. data/lib/puppet/resource.rb +2 -1
  153. data/lib/puppet/resource/type.rb +10 -1
  154. data/lib/puppet/rest/route.rb +2 -2
  155. data/lib/puppet/runtime.rb +25 -2
  156. data/lib/puppet/settings.rb +43 -6
  157. data/lib/puppet/ssl/ssl_context.rb +2 -2
  158. data/lib/puppet/ssl/ssl_provider.rb +20 -1
  159. data/lib/puppet/ssl/state_machine.rb +33 -8
  160. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  161. data/lib/puppet/ssl/verifier_adapter.rb +9 -1
  162. data/lib/puppet/test/test_helper.rb +19 -14
  163. data/lib/puppet/transaction.rb +2 -2
  164. data/lib/puppet/transaction/persistence.rb +1 -1
  165. data/lib/puppet/transaction/report.rb +12 -8
  166. data/lib/puppet/trusted_external.rb +29 -1
  167. data/lib/puppet/type.rb +15 -7
  168. data/lib/puppet/type/file.rb +40 -15
  169. data/lib/puppet/type/file/checksum.rb +4 -4
  170. data/lib/puppet/type/file/source.rb +33 -13
  171. data/lib/puppet/type/filebucket.rb +1 -1
  172. data/lib/puppet/type/notify.rb +2 -2
  173. data/lib/puppet/type/package.rb +16 -1
  174. data/lib/puppet/type/service.rb +59 -8
  175. data/lib/puppet/type/user.rb +19 -10
  176. data/lib/puppet/util.rb +41 -3
  177. data/lib/puppet/util/autoload.rb +10 -25
  178. data/lib/puppet/util/character_encoding.rb +9 -5
  179. data/lib/puppet/util/checksums.rb +19 -4
  180. data/lib/puppet/util/connection.rb +8 -8
  181. data/lib/puppet/util/execution.rb +2 -2
  182. data/lib/puppet/util/fileparsing.rb +2 -2
  183. data/lib/puppet/util/log/destinations.rb +1 -10
  184. data/lib/puppet/util/package/version/range.rb +4 -1
  185. data/lib/puppet/util/package/version/range/eq.rb +14 -0
  186. data/lib/puppet/util/provider_features.rb +1 -1
  187. data/lib/puppet/util/reference.rb +1 -1
  188. data/lib/puppet/util/run_mode.rb +5 -1
  189. data/lib/puppet/util/windows.rb +1 -0
  190. data/lib/puppet/util/windows/api_types.rb +60 -33
  191. data/lib/puppet/util/windows/eventlog.rb +1 -6
  192. data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
  193. data/lib/puppet/util/windows/principal.rb +8 -6
  194. data/lib/puppet/util/windows/registry.rb +11 -11
  195. data/lib/puppet/util/windows/security.rb +4 -4
  196. data/lib/puppet/util/windows/service.rb +43 -26
  197. data/lib/puppet/util/windows/user.rb +242 -8
  198. data/lib/puppet/version.rb +1 -1
  199. data/locales/puppet.pot +541 -427
  200. data/man/man5/puppet.conf.5 +84 -19
  201. data/man/man8/puppet-agent.8 +7 -4
  202. data/man/man8/puppet-apply.8 +1 -1
  203. data/man/man8/puppet-catalog.8 +1 -1
  204. data/man/man8/puppet-config.8 +6 -6
  205. data/man/man8/puppet-describe.8 +1 -1
  206. data/man/man8/puppet-device.8 +1 -1
  207. data/man/man8/puppet-doc.8 +1 -1
  208. data/man/man8/puppet-epp.8 +1 -1
  209. data/man/man8/puppet-facts.8 +1 -1
  210. data/man/man8/puppet-filebucket.8 +1 -1
  211. data/man/man8/puppet-generate.8 +1 -1
  212. data/man/man8/puppet-help.8 +6 -3
  213. data/man/man8/puppet-key.8 +1 -1
  214. data/man/man8/puppet-lookup.8 +2 -2
  215. data/man/man8/puppet-man.8 +1 -1
  216. data/man/man8/puppet-module.8 +4 -1
  217. data/man/man8/puppet-node.8 +4 -4
  218. data/man/man8/puppet-parser.8 +1 -1
  219. data/man/man8/puppet-plugin.8 +1 -1
  220. data/man/man8/puppet-report.8 +1 -1
  221. data/man/man8/puppet-resource.8 +1 -1
  222. data/man/man8/puppet-script.8 +1 -1
  223. data/man/man8/puppet-ssl.8 +1 -1
  224. data/man/man8/puppet-status.8 +2 -2
  225. data/man/man8/puppet.8 +2 -2
  226. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  227. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  228. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  229. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  230. data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
  231. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  232. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
  233. data/spec/integration/application/agent_spec.rb +202 -52
  234. data/spec/integration/application/apply_spec.rb +149 -149
  235. data/spec/integration/application/config_spec.rb +74 -0
  236. data/spec/integration/application/doc_spec.rb +16 -6
  237. data/spec/integration/application/filebucket_spec.rb +70 -21
  238. data/spec/integration/application/help_spec.rb +42 -0
  239. data/spec/integration/application/lookup_spec.rb +13 -0
  240. data/spec/integration/application/module_spec.rb +68 -0
  241. data/spec/integration/application/plugin_spec.rb +75 -2
  242. data/spec/integration/configurer_spec.rb +14 -0
  243. data/spec/integration/data_binding_spec.rb +82 -0
  244. data/spec/integration/defaults_spec.rb +27 -3
  245. data/spec/integration/directory_environments_spec.rb +17 -17
  246. data/spec/integration/http/client_spec.rb +6 -1
  247. data/spec/integration/indirector/facts/facter_spec.rb +8 -6
  248. data/spec/integration/network/http_pool_spec.rb +73 -0
  249. data/spec/integration/node/environment_spec.rb +1 -1
  250. data/spec/integration/parser/compiler_spec.rb +11 -0
  251. data/spec/integration/type/file_spec.rb +1 -1
  252. data/spec/integration/util/execution_spec.rb +22 -0
  253. data/spec/integration/util/windows/adsi_spec.rb +7 -2
  254. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
  255. data/spec/integration/util/windows/process_spec.rb +26 -32
  256. data/spec/integration/util/windows/registry_spec.rb +7 -7
  257. data/spec/integration/util/windows/user_spec.rb +47 -5
  258. data/spec/integration/util_spec.rb +7 -33
  259. data/spec/lib/puppet_spec/https.rb +6 -0
  260. data/spec/lib/puppet_spec/matchers.rb +0 -80
  261. data/spec/lib/puppet_spec/puppetserver.rb +8 -0
  262. data/spec/shared_contexts/types_setup.rb +2 -0
  263. data/spec/unit/agent_spec.rb +47 -1
  264. data/spec/unit/application/agent_spec.rb +7 -8
  265. data/spec/unit/application/doc_spec.rb +2 -2
  266. data/spec/unit/application/face_base_spec.rb +6 -4
  267. data/spec/unit/application/facts_spec.rb +41 -10
  268. data/spec/unit/application/man_spec.rb +52 -0
  269. data/spec/unit/application/resource_spec.rb +3 -1
  270. data/spec/unit/application/ssl_spec.rb +15 -2
  271. data/spec/unit/application_spec.rb +9 -4
  272. data/spec/unit/configurer/downloader_spec.rb +10 -0
  273. data/spec/unit/configurer/fact_handler_spec.rb +4 -4
  274. data/spec/unit/configurer_spec.rb +86 -37
  275. data/spec/unit/confine_spec.rb +2 -1
  276. data/spec/unit/context/trusted_information_spec.rb +25 -2
  277. data/spec/unit/daemon_spec.rb +5 -64
  278. data/spec/unit/environments_spec.rb +99 -32
  279. data/spec/unit/face/config_spec.rb +59 -1
  280. data/spec/unit/face/module/search_spec.rb +17 -0
  281. data/spec/unit/face/node_spec.rb +2 -2
  282. data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
  283. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  284. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  285. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  286. data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
  287. data/spec/unit/file_system/uniquefile_spec.rb +29 -0
  288. data/spec/unit/file_system_spec.rb +1 -2
  289. data/spec/unit/http/client_spec.rb +74 -19
  290. data/spec/unit/http/external_client_spec.rb +9 -9
  291. data/spec/unit/http/resolver_spec.rb +24 -5
  292. data/spec/unit/http/response_spec.rb +6 -0
  293. data/spec/unit/http/service/ca_spec.rb +2 -3
  294. data/spec/unit/http/service/compiler_spec.rb +2 -3
  295. data/spec/unit/http/service/file_server_spec.rb +2 -3
  296. data/spec/unit/http/service/puppetserver_spec.rb +82 -0
  297. data/spec/unit/http/service/report_spec.rb +2 -3
  298. data/spec/unit/http/service_spec.rb +0 -1
  299. data/spec/unit/http/session_spec.rb +8 -21
  300. data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
  301. data/spec/unit/indirector/catalog/json_spec.rb +1 -1
  302. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  303. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  304. data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
  305. data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
  306. data/spec/unit/indirector/json_spec.rb +8 -8
  307. data/spec/unit/indirector/msgpack_spec.rb +8 -8
  308. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  309. data/spec/unit/indirector/request_spec.rb +5 -5
  310. data/spec/unit/indirector/rest_spec.rb +14 -1
  311. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  312. data/spec/unit/indirector/yaml_spec.rb +7 -7
  313. data/spec/unit/interface_spec.rb +3 -3
  314. data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
  315. data/spec/unit/network/format_support_spec.rb +3 -2
  316. data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
  317. data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
  318. data/spec/unit/network/http/connection_spec.rb +552 -190
  319. data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
  320. data/spec/unit/network/http_pool_spec.rb +63 -57
  321. data/spec/unit/network/http_spec.rb +1 -1
  322. data/spec/unit/node/environment_spec.rb +18 -1
  323. data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
  324. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  325. data/spec/unit/parser/scope_spec.rb +1 -1
  326. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
  327. data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
  328. data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
  329. data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
  330. data/spec/unit/provider/exec_spec.rb +4 -3
  331. data/spec/unit/provider/package/aix_spec.rb +29 -0
  332. data/spec/unit/provider/package/apt_spec.rb +77 -0
  333. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  334. data/spec/unit/provider/package/dnfmodule_spec.rb +25 -5
  335. data/spec/unit/provider/package/dpkg_spec.rb +22 -7
  336. data/spec/unit/provider/package/openbsd_spec.rb +2 -0
  337. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  338. data/spec/unit/provider/package/pip_spec.rb +42 -16
  339. data/spec/unit/provider/package/portage_spec.rb +5 -0
  340. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
  341. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  342. data/spec/unit/provider/package/yum_spec.rb +47 -8
  343. data/spec/unit/provider/package/zypper_spec.rb +98 -0
  344. data/spec/unit/provider/service/base_spec.rb +2 -4
  345. data/spec/unit/provider/service/bsd_spec.rb +5 -1
  346. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  347. data/spec/unit/provider/service/debian_spec.rb +3 -5
  348. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  349. data/spec/unit/provider/service/gentoo_spec.rb +4 -5
  350. data/spec/unit/provider/service/init_spec.rb +46 -5
  351. data/spec/unit/provider/service/launchd_spec.rb +5 -6
  352. data/spec/unit/provider/service/openbsd_spec.rb +9 -0
  353. data/spec/unit/provider/service/openrc_spec.rb +4 -5
  354. data/spec/unit/provider/service/openwrt_spec.rb +2 -1
  355. data/spec/unit/provider/service/redhat_spec.rb +10 -1
  356. data/spec/unit/provider/service/runit_spec.rb +2 -1
  357. data/spec/unit/provider/service/smf_spec.rb +1 -1
  358. data/spec/unit/provider/service/src_spec.rb +3 -5
  359. data/spec/unit/provider/service/systemd_spec.rb +87 -19
  360. data/spec/unit/provider/service/upstart_spec.rb +4 -5
  361. data/spec/unit/provider/service/windows_spec.rb +50 -14
  362. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  363. data/spec/unit/provider/user/useradd_spec.rb +30 -16
  364. data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
  365. data/spec/unit/puppet_pal_2pec.rb +40 -0
  366. data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
  367. data/spec/unit/puppet_spec.rb +33 -0
  368. data/spec/unit/reports/http_spec.rb +1 -1
  369. data/spec/unit/reports/store_spec.rb +17 -13
  370. data/spec/unit/resource_spec.rb +3 -3
  371. data/spec/unit/rest/route_spec.rb +4 -4
  372. data/spec/unit/settings_spec.rb +182 -22
  373. data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
  374. data/spec/unit/ssl/state_machine_spec.rb +52 -8
  375. data/spec/unit/test/test_helper_spec.rb +17 -0
  376. data/spec/unit/transaction/persistence_spec.rb +15 -0
  377. data/spec/unit/transaction/report_spec.rb +3 -1
  378. data/spec/unit/type/file/source_spec.rb +4 -4
  379. data/spec/unit/type/file_spec.rb +122 -96
  380. data/spec/unit/type/filebucket_spec.rb +1 -1
  381. data/spec/unit/type/service_spec.rb +218 -8
  382. data/spec/unit/type/user_spec.rb +32 -3
  383. data/spec/unit/type_spec.rb +50 -0
  384. data/spec/unit/util/autoload_spec.rb +2 -1
  385. data/spec/unit/util/character_encoding_spec.rb +4 -4
  386. data/spec/unit/util/checksums_spec.rb +16 -0
  387. data/spec/unit/util/command_line_spec.rb +11 -6
  388. data/spec/unit/util/log/destinations_spec.rb +1 -29
  389. data/spec/unit/util/package/version/range_spec.rb +22 -1
  390. data/spec/unit/util/run_mode_spec.rb +6 -6
  391. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  392. data/spec/unit/util/windows/service_spec.rb +4 -4
  393. data/spec/unit/util_spec.rb +3 -3
  394. data/spec/unit/x509/cert_provider_spec.rb +1 -1
  395. data/tasks/manpages.rake +5 -35
  396. metadata +43 -49
  397. data/spec/integration/faces/config_spec.rb +0 -91
  398. data/spec/integration/faces/documentation_spec.rb +0 -57
  399. data/spec/integration/file_bucket/file_spec.rb +0 -50
  400. data/spec/integration/file_serving/content_spec.rb +0 -7
  401. data/spec/integration/file_serving/fileset_spec.rb +0 -12
  402. data/spec/integration/file_serving/metadata_spec.rb +0 -8
  403. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
  404. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  405. data/spec/integration/module_tool/forge_spec.rb +0 -51
  406. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  407. data/spec/integration/provider/service/init_spec.rb +0 -48
  408. data/spec/integration/provider/service/systemd_spec.rb +0 -25
  409. data/spec/integration/provider/service/windows_spec.rb +0 -50
  410. data/spec/integration/reference/providers_spec.rb +0 -21
  411. data/spec/integration/reports_spec.rb +0 -13
  412. data/spec/integration/ssl/certificate_request_spec.rb +0 -44
  413. data/spec/integration/ssl/host_spec.rb +0 -72
  414. data/spec/integration/ssl/key_spec.rb +0 -99
  415. data/spec/integration/test/test_helper_spec.rb +0 -31
  416. data/spec/shared_behaviours/file_serving_model.rb +0 -51
  417. data/spec/unit/face/man_spec.rb +0 -25
  418. data/spec/unit/man_spec.rb +0 -31
@@ -6,6 +6,7 @@ require 'puppet/indirector/file_metadata/rest'
6
6
  describe Puppet::Indirector::FileMetadata::Rest do
7
7
  let(:certname) { 'ziggy' }
8
8
  let(:formatter) { Puppet::Network::FormatHandler.format(:json) }
9
+ let(:model) { described_class.model }
9
10
 
10
11
  before :each do
11
12
  described_class.indirection.terminus_class = :rest
@@ -18,13 +19,13 @@ describe Puppet::Indirector::FileMetadata::Rest do
18
19
  context "when finding" do
19
20
  let(:uri) { %r{/puppet/v3/file_metadata/:mount/path/to/file} }
20
21
  let(:key) { "puppet:///:mount/path/to/file" }
21
- let(:metadata) { Puppet::FileServing::Metadata.new('/path/to/file') }
22
+ let(:metadata) { model.new('/path/to/file') }
22
23
 
23
24
  it "returns file metadata" do
24
25
  stub_request(:get, uri)
25
26
  .to_return(status: 200, **metadata_response(metadata))
26
27
 
27
- result = described_class.indirection.find(key)
28
+ result = model.indirection.find(key)
28
29
  expect(result.path).to eq('/path/to/file')
29
30
  end
30
31
 
@@ -32,20 +33,20 @@ describe Puppet::Indirector::FileMetadata::Rest do
32
33
  stub_request(:get, %r{/puppet/v3/file_metadata/:mount/path%20to%20file})
33
34
  .to_return(status: 200, **metadata_response(metadata))
34
35
 
35
- described_class.indirection.find('puppet:///:mount/path to file')
36
+ model.indirection.find('puppet:///:mount/path to file')
36
37
  end
37
38
 
38
39
  it "returns nil if the content doesn't exist" do
39
40
  stub_request(:get, uri).to_return(status: 404)
40
41
 
41
- expect(described_class.indirection.find(key)).to be_nil
42
+ expect(model.indirection.find(key)).to be_nil
42
43
  end
43
44
 
44
45
  it "raises if fail_on_404 is true" do
45
46
  stub_request(:get, uri).to_return(status: 404, headers: { 'Content-Type' => 'application/json'}, body: "{}")
46
47
 
47
48
  expect {
48
- described_class.indirection.find(key, fail_on_404: true)
49
+ model.indirection.find(key, fail_on_404: true)
49
50
  }.to raise_error(Puppet::Error, %r{Find /puppet/v3/file_metadata/:mount/path/to/file resulted in 404 with the message: {}})
50
51
  end
51
52
 
@@ -53,7 +54,7 @@ describe Puppet::Indirector::FileMetadata::Rest do
53
54
  stub_request(:get, uri).to_return(status: 500, headers: { 'Content-Type' => 'application/json'}, body: "{}")
54
55
 
55
56
  expect {
56
- described_class.indirection.find(key)
57
+ model.indirection.find(key)
57
58
  }.to raise_error(Net::HTTPError, %r{Error 500 on SERVER: })
58
59
  end
59
60
 
@@ -61,20 +62,20 @@ describe Puppet::Indirector::FileMetadata::Rest do
61
62
  stub_request(:get, %r{https://example.com:8140/puppet/v3/file_metadata/:mount/path/to/file})
62
63
  .to_return(status: 200, **metadata_response(metadata))
63
64
 
64
- described_class.indirection.find("puppet://example.com:8140/:mount/path/to/file")
65
+ model.indirection.find("puppet://example.com:8140/:mount/path/to/file")
65
66
  end
66
67
  end
67
68
 
68
69
  context "when searching" do
69
70
  let(:uri) { %r{/puppet/v3/file_metadatas/:mount/path/to/dir} }
70
71
  let(:key) { "puppet:///:mount/path/to/dir" }
71
- let(:metadatas) { [Puppet::FileServing::Metadata.new('/path/to/dir')] }
72
+ let(:metadatas) { [model.new('/path/to/dir')] }
72
73
 
73
74
  it "returns an array of file metadata" do
74
75
  stub_request(:get, uri)
75
76
  .to_return(status: 200, **metadata_response(metadatas))
76
77
 
77
- result = described_class.indirection.search(key)
78
+ result = model.indirection.search(key)
78
79
  expect(result.first.path).to eq('/path/to/dir')
79
80
  end
80
81
 
@@ -82,26 +83,26 @@ describe Puppet::Indirector::FileMetadata::Rest do
82
83
  stub_request(:get, %r{/puppet/v3/file_metadatas/:mount/path%20to%20dir})
83
84
  .to_return(status: 200, **metadata_response(metadatas))
84
85
 
85
- described_class.indirection.search('puppet:///:mount/path to dir')
86
+ model.indirection.search('puppet:///:mount/path to dir')
86
87
  end
87
88
 
88
89
  it "returns an empty array if the metadata doesn't exist" do
89
90
  stub_request(:get, uri).to_return(status: 404)
90
91
 
91
- expect(described_class.indirection.search(key)).to eq([])
92
+ expect(model.indirection.search(key)).to eq([])
92
93
  end
93
94
 
94
95
  it "returns an empty array if the metadata doesn't exist and fail_on_404 is true" do
95
96
  stub_request(:get, uri).to_return(status: 404, headers: { 'Content-Type' => 'application/json'}, body: "{}")
96
97
 
97
- expect(described_class.indirection.search(key, fail_on_404: true)).to eq([])
98
+ expect(model.indirection.search(key, fail_on_404: true)).to eq([])
98
99
  end
99
100
 
100
101
  it "raises an error on HTTP 500" do
101
102
  stub_request(:get, uri).to_return(status: 500, headers: { 'Content-Type' => 'application/json'}, body: "{}")
102
103
 
103
104
  expect {
104
- described_class.indirection.search(key)
105
+ model.indirection.search(key)
105
106
  }.to raise_error(Net::HTTPError, %r{Error 500 on SERVER: })
106
107
  end
107
108
 
@@ -109,7 +110,7 @@ describe Puppet::Indirector::FileMetadata::Rest do
109
110
  stub_request(:get, %r{https://example.com:8140/puppet/v3/file_metadatas/:mount/path/to/dir})
110
111
  .to_return(status: 200, **metadata_response(metadatas))
111
112
 
112
- described_class.indirection.search("puppet://example.com:8140/:mount/path/to/dir")
113
+ model.indirection.search("puppet://example.com:8140/:mount/path/to/dir")
113
114
  end
114
115
  end
115
116
 
@@ -11,24 +11,24 @@ describe Puppet::Indirector::JSON do
11
11
 
12
12
  context "#path" do
13
13
  before :each do
14
- Puppet[:server_datadir] = '/sample/datadir/master'
14
+ Puppet[:server_datadir] = '/sample/datadir/server'
15
15
  Puppet[:client_datadir] = '/sample/datadir/client'
16
16
  end
17
17
 
18
- it "uses the :server_datadir setting if this is the master" do
19
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
18
+ it "uses the :server_datadir setting if this is the server" do
19
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
20
20
  expected = File.join(Puppet[:server_datadir], 'indirector_testing', 'testing.json')
21
21
  expect(subject.path('testing')).to eq(expected)
22
22
  end
23
23
 
24
- it "uses the :client_datadir setting if this is not the master" do
25
- allow(Puppet.run_mode).to receive(:master?).and_return(false)
24
+ it "uses the :client_datadir setting if this is not the server" do
25
+ allow(Puppet.run_mode).to receive(:server?).and_return(false)
26
26
  expected = File.join(Puppet[:client_datadir], 'indirector_testing', 'testing.json')
27
27
  expect(subject.path('testing')).to eq(expected)
28
28
  end
29
29
 
30
30
  it "overrides the default extension with a supplied value" do
31
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
31
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
32
32
  expected = File.join(Puppet[:server_datadir], 'indirector_testing', 'testing.not-json')
33
33
  expect(subject.path('testing', '.not-json')).to eq(expected)
34
34
  end
@@ -50,7 +50,7 @@ describe Puppet::Indirector::JSON do
50
50
 
51
51
  context "handling requests" do
52
52
  before :each do
53
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
53
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
54
54
  Puppet[:server_datadir] = tmpdir('jsondir')
55
55
  FileUtils.mkdir_p(File.join(Puppet[:server_datadir], 'indirector_testing'))
56
56
  end
@@ -158,7 +158,7 @@ describe Puppet::Indirector::JSON do
158
158
 
159
159
  context "#search" do
160
160
  before :each do
161
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
161
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
162
162
  Puppet[:server_datadir] = tmpdir('jsondir')
163
163
  FileUtils.mkdir_p(File.join(Puppet[:server_datadir], 'indirector_testing'))
164
164
  end
@@ -11,24 +11,24 @@ describe Puppet::Indirector::Msgpack, :if => Puppet.features.msgpack? do
11
11
 
12
12
  context "#path" do
13
13
  before :each do
14
- Puppet[:server_datadir] = '/sample/datadir/master'
14
+ Puppet[:server_datadir] = '/sample/datadir/server'
15
15
  Puppet[:client_datadir] = '/sample/datadir/client'
16
16
  end
17
17
 
18
- it "uses the :server_datadir setting if this is the master" do
19
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
18
+ it "uses the :server_datadir setting if this is the server" do
19
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
20
20
  expected = File.join(Puppet[:server_datadir], 'indirector_testing', 'testing.msgpack')
21
21
  expect(subject.path('testing')).to eq(expected)
22
22
  end
23
23
 
24
- it "uses the :client_datadir setting if this is not the master" do
25
- allow(Puppet.run_mode).to receive(:master?).and_return(false)
24
+ it "uses the :client_datadir setting if this is not the server" do
25
+ allow(Puppet.run_mode).to receive(:server?).and_return(false)
26
26
  expected = File.join(Puppet[:client_datadir], 'indirector_testing', 'testing.msgpack')
27
27
  expect(subject.path('testing')).to eq(expected)
28
28
  end
29
29
 
30
30
  it "overrides the default extension with a supplied value" do
31
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
31
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
32
32
  expected = File.join(Puppet[:server_datadir], 'indirector_testing', 'testing.not-msgpack')
33
33
  expect(subject.path('testing', '.not-msgpack')).to eq(expected)
34
34
  end
@@ -50,7 +50,7 @@ describe Puppet::Indirector::Msgpack, :if => Puppet.features.msgpack? do
50
50
 
51
51
  context "handling requests" do
52
52
  before :each do
53
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
53
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
54
54
  Puppet[:server_datadir] = tmpdir('msgpackdir')
55
55
  FileUtils.mkdir_p(File.join(Puppet[:server_datadir], 'indirector_testing'))
56
56
  end
@@ -158,7 +158,7 @@ describe Puppet::Indirector::Msgpack, :if => Puppet.features.msgpack? do
158
158
 
159
159
  context "#search" do
160
160
  before :each do
161
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
161
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
162
162
  Puppet[:server_datadir] = tmpdir('msgpackdir')
163
163
  FileUtils.mkdir_p(File.join(Puppet[:server_datadir], 'indirector_testing'))
164
164
  end
@@ -10,7 +10,7 @@ describe Puppet::Node::Rest do
10
10
 
11
11
  before :each do
12
12
  Puppet[:server] = 'compiler.example.com'
13
- Puppet[:masterport] = 8140
13
+ Puppet[:serverport] = 8140
14
14
 
15
15
  described_class.indirection.terminus_class = :rest
16
16
  end
@@ -94,7 +94,7 @@ describe Puppet::Indirector::Request do
94
94
 
95
95
  describe "and the URI is a 'file' URI" do
96
96
  before do
97
- @request = Puppet::Indirector::Request.new(:ind, :method, "#{URI.unescape(Puppet::Util.path_to_uri(file).to_s)}", nil)
97
+ @request = Puppet::Indirector::Request.new(:ind, :method, "#{Puppet::Util.uri_unescape(Puppet::Util.path_to_uri(file).to_s)}", nil)
98
98
  end
99
99
 
100
100
  it "should set the request key to the unescaped full file path" do
@@ -126,8 +126,8 @@ describe Puppet::Indirector::Request do
126
126
  expect(Puppet::Indirector::Request.new(:ind, :method, "http://host:543/", nil).port).to eq(543)
127
127
  end
128
128
 
129
- it "should default to the masterport if the URI scheme is 'puppet'" do
130
- Puppet[:masterport] = "321"
129
+ it "should default to the serverport if the URI scheme is 'puppet'" do
130
+ Puppet[:serverport] = "321"
131
131
  expect(Puppet::Indirector::Request.new(:ind, :method, "puppet://host/", nil).port).to eq(321)
132
132
  end
133
133
 
@@ -534,7 +534,7 @@ describe Puppet::Indirector::Request do
534
534
  expect(request.server).to be_nil
535
535
  expect(request.port).to be_nil
536
536
  expect(Puppet.settings[:server]).not_to be_nil
537
- expect(Puppet.settings[:masterport]).not_to be_nil
537
+ expect(Puppet.settings[:serverport]).not_to be_nil
538
538
  end
539
539
  end
540
540
  end
@@ -552,7 +552,7 @@ describe Puppet::Indirector::Request do
552
552
  req = Puppet::Indirector::Request.new('node', 'find', 'localhost', nil)
553
553
  req.do_request() do |request|
554
554
  expect(request.server).to eq(Puppet.settings[:server])
555
- expect(request.port).to eq(Puppet.settings[:masterport])
555
+ expect(request.port).to eq(Puppet.settings[:serverport])
556
556
  end
557
557
  end
558
558
  end
@@ -45,6 +45,19 @@ shared_examples_for "a REST terminus method" do |terminus_method|
45
45
 
46
46
  expect(Puppet[:preferred_serialization_format]).to eq("pson")
47
47
  end
48
+
49
+ it "logs a deprecation warning" do
50
+ terminus.send(terminus_method, request)
51
+
52
+ expect(@logs).to include(an_object_having_attributes(level: :warning, message: /Puppet::Indirector::Rest##{terminus_method} is deprecated. Use Puppet::HTTP::Client instead./))
53
+ end
54
+
55
+ it "omits the warning when deprecations are disabled" do
56
+ Puppet[:disable_warnings] = 'deprecations'
57
+ terminus.send(terminus_method, request)
58
+
59
+ expect(@logs).to eq([])
60
+ end
48
61
  end
49
62
 
50
63
  HTTP_ERROR_CODES.each do |code|
@@ -236,7 +249,7 @@ describe Puppet::Indirector::REST do
236
249
 
237
250
  it "should default to :port for the port setting" do
238
251
  expect(terminus_class).to receive(:port_setting).and_return(nil)
239
- Puppet[:masterport] = "543"
252
+ Puppet[:serverport] = "543"
240
253
  expect(terminus_class.port).to eq(543)
241
254
  end
242
255
 
@@ -9,7 +9,7 @@ describe Puppet::Indirector::Status::Rest do
9
9
 
10
10
  before :each do
11
11
  Puppet[:server] = 'compiler.example.com'
12
- Puppet[:masterport] = 8140
12
+ Puppet[:serverport] = 8140
13
13
 
14
14
  described_class.indirection.terminus_class = :rest
15
15
  end
@@ -38,30 +38,30 @@ describe Puppet::Indirector::Yaml do
38
38
 
39
39
  before :each do
40
40
  Puppet[:clientyamldir] = dir
41
- allow(Puppet.run_mode).to receive(:master?).and_return(false)
41
+ allow(Puppet.run_mode).to receive(:server?).and_return(false)
42
42
  end
43
43
 
44
44
  describe "when choosing file location" do
45
- it "should use the server_datadir if the run_mode is master" do
46
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
45
+ it "should use the server_datadir if the run_mode is server" do
46
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
47
47
  Puppet[:yamldir] = serverdir
48
48
  expect(terminus.path(:me)).to match(/^#{serverdir}/)
49
49
  end
50
50
 
51
- it "should use the client yamldir if the run_mode is not master" do
52
- allow(Puppet.run_mode).to receive(:master?).and_return(false)
51
+ it "should use the client yamldir if the run_mode is not server" do
52
+ allow(Puppet.run_mode).to receive(:server?).and_return(false)
53
53
  Puppet[:clientyamldir] = clientdir
54
54
  expect(terminus.path(:me)).to match(/^#{clientdir}/)
55
55
  end
56
56
 
57
57
  it "should use the extension if one is specified" do
58
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
58
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
59
59
  Puppet[:yamldir] = serverdir
60
60
  expect(terminus.path(:me,'.farfignewton')).to match(%r{\.farfignewton$})
61
61
  end
62
62
 
63
63
  it "should assume an extension of .yaml if none is specified" do
64
- allow(Puppet.run_mode).to receive(:master?).and_return(true)
64
+ allow(Puppet.run_mode).to receive(:server?).and_return(true)
65
65
  Puppet[:yamldir] = serverdir
66
66
  expect(terminus.path(:me)).to match(%r{\.yaml$})
67
67
  end
@@ -180,7 +180,7 @@ describe Puppet::Interface do
180
180
  display_global_options "modulepath"
181
181
  end
182
182
  end
183
- face.display_global_options =~ ["environment"]
183
+ expect(face.display_global_options).to match(["environment"])
184
184
  end
185
185
 
186
186
  it "should not fail when a face d_g_o duplicates an action d_g_o" do
@@ -200,8 +200,8 @@ describe Puppet::Interface do
200
200
  action :foo do when_invoked {|_| true} ; display_global_options "environment" end
201
201
  action :bar do when_invoked {|_| true} ; display_global_options "environment" end
202
202
  end
203
- face.get_action(:foo).display_global_options =~ ["environment"]
204
- face.get_action(:bar).display_global_options =~ ["environment"]
203
+ expect(face.get_action(:foo).display_global_options).to match(["environment"])
204
+ expect(face.get_action(:bar).display_global_options).to match(["environment"])
205
205
  end
206
206
 
207
207
  end
@@ -86,4 +86,24 @@ describe Puppet::ModuleTool::Tar::Mini, :if => (Puppet.features.minitar? and Pup
86
86
  and_yield(type, name, {:entry => entry})
87
87
  entry
88
88
  end
89
+
90
+ describe "Extracts tars with long and short pathnames" do
91
+ let (:sourcetar) { fixtures('module.tar.gz') }
92
+ let (:longfilepath) { "puppetlabs-dsc-1.0.0/lib/puppet_x/dsc_resources/xWebAdministration/DSCResources/MSFT_xWebAppPoolDefaults/MSFT_xWebAppPoolDefaults.schema.mof" }
93
+ let (:shortfilepath) { "puppetlabs-dsc-1.0.0/README.md" }
94
+
95
+ it "unpacks a tar with a short path length" do
96
+ extractdir = PuppetSpec::Files.tmpdir('minitar')
97
+
98
+ minitar.unpack(sourcetar,extractdir,'module')
99
+ expect(File).to exist(File.expand_path("#{extractdir}/#{shortfilepath}"))
100
+ end
101
+
102
+ it "unpacks a tar with a long path length" do
103
+ extractdir = PuppetSpec::Files.tmpdir('minitar')
104
+
105
+ minitar.unpack(sourcetar,extractdir,'module')
106
+ expect(File).to exist(File.expand_path("#{extractdir}/#{longfilepath}"))
107
+ end
108
+ end
89
109
  end
@@ -67,8 +67,9 @@ describe Puppet::Network::FormatHandler do
67
67
  end
68
68
 
69
69
  it "should log a debug message" do
70
- expect(Puppet).to receive(:debug).with("Value of 'preferred_serialization_format' (unsupported) is invalid for FormatTester, using default (two)")
71
- expect(Puppet).to receive(:debug).with("FormatTester supports formats: two one")
70
+ Puppet[:log_level] = 'debug'
71
+ expect(Puppet).to receive(:debug) { |&b| expect(b.call).to eq("Value of 'preferred_serialization_format' (unsupported) is invalid for FormatTester, using default (two)") }
72
+ expect(Puppet).to receive(:debug) { |&b| expect(b.call).to eq("FormatTester supports formats: two one") }
72
73
  FormatTester.supported_formats
73
74
  end
74
75
  end
@@ -344,7 +344,8 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
344
344
 
345
345
  expect {
346
346
  handler.call(request, response)
347
- }.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAcceptableError, /No supported formats are acceptable/)
347
+ }.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAcceptableError,
348
+ %r{No supported formats are acceptable \(Accept: application/json, text/pson\)})
348
349
  end
349
350
 
350
351
  it "should return [] when searching returns an empty array" do
@@ -7,13 +7,14 @@ require 'matchers/json'
7
7
  describe Puppet::Network::HTTP::API::Master::V3::Environments do
8
8
  include JSONMatchers
9
9
 
10
- it "responds with all of the available environments" do
11
- environment = Puppet::Node::Environment.create(:production, ["/first", "/second"], '/manifests')
12
- loader = Puppet::Environments::Static.new(environment)
13
- handler = Puppet::Network::HTTP::API::Master::V3::Environments.new(loader)
14
- response = Puppet::Network::HTTP::MemoryResponse.new
10
+ let(:environment) { Puppet::Node::Environment.create(:production, ["/first", "/second"], '/manifests') }
11
+ let(:loader) { Puppet::Environments::Static.new(environment) }
12
+ let(:handler) { Puppet::Network::HTTP::API::Master::V3::Environments.new(loader) }
13
+ let(:request) { Puppet::Network::HTTP::Request.from_hash(:headers => { 'accept' => 'application/json' }) }
14
+ let(:response) { Puppet::Network::HTTP::MemoryResponse.new }
15
15
 
16
- handler.call(Puppet::Network::HTTP::Request.from_hash(:headers => { 'accept' => 'application/json' }), response)
16
+ it "responds with all of the available environments" do
17
+ handler.call(request, response)
17
18
 
18
19
  expect(response.code).to eq(200)
19
20
  expect(response.type).to eq("application/json")
@@ -33,29 +34,17 @@ describe Puppet::Network::HTTP::API::Master::V3::Environments do
33
34
  end
34
35
 
35
36
  it "the response conforms to the environments schema for unlimited timeout" do
36
- conf_stub = double('conf_stub')
37
- expect(conf_stub).to receive(:environment_timeout).and_return(Float::INFINITY)
38
- environment = Puppet::Node::Environment.create(:production, [])
39
- env_loader = Puppet::Environments::Static.new(environment)
40
- expect(env_loader).to receive(:get_conf).with(:production).and_return(conf_stub)
41
- handler = Puppet::Network::HTTP::API::Master::V3::Environments.new(env_loader)
42
- response = Puppet::Network::HTTP::MemoryResponse.new
37
+ Puppet[:environment_timeout] = 'unlimited'
43
38
 
44
- handler.call(Puppet::Network::HTTP::Request.from_hash(:headers => { 'accept' => 'application/json' }), response)
39
+ handler.call(request, response)
45
40
 
46
41
  expect(response.body).to validate_against('api/schemas/environments.json')
47
42
  end
48
43
 
49
44
  it "the response conforms to the environments schema for integer timeout" do
50
- conf_stub = double('conf_stub')
51
- expect(conf_stub).to receive(:environment_timeout).and_return(1)
52
- environment = Puppet::Node::Environment.create(:production, [])
53
- env_loader = Puppet::Environments::Static.new(environment)
54
- expect(env_loader).to receive(:get_conf).with(:production).and_return(conf_stub)
55
- handler = Puppet::Network::HTTP::API::Master::V3::Environments.new(env_loader)
56
- response = Puppet::Network::HTTP::MemoryResponse.new
57
-
58
- handler.call(Puppet::Network::HTTP::Request.from_hash(:headers => { 'accept' => 'application/json' }), response)
45
+ Puppet[:environment_timeout] = 1
46
+
47
+ handler.call(request, response)
59
48
 
60
49
  expect(response.body).to validate_against('api/schemas/environments.json')
61
50
  end