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
@@ -89,11 +89,30 @@ class Puppet::HTTP::Response
89
89
  end
90
90
 
91
91
  # @api private
92
+ #
93
+ # Get a header case-insensitively.
94
+ # @param [String] name The header name
95
+ # @return [String] The header value
96
+ #
92
97
  def [](name)
93
98
  @nethttp[name]
94
99
  end
95
100
 
96
101
  # @api private
102
+ #
103
+ # Yield each header name and value. Returns an enumerator if no block is given.
104
+ #
105
+ # @yieldparam [String] header name
106
+ # @yieldparam [String] header value
107
+ #
108
+ def each_header(&block)
109
+ @nethttp.each_header(&block)
110
+ end
111
+
112
+ # @api private
113
+ #
114
+ # Drain the response body.
115
+ #
97
116
  def drain
98
117
  body
99
118
  true
@@ -10,7 +10,7 @@ class Puppet::HTTP::Service
10
10
 
11
11
  # @api private
12
12
  # @return [Array<Symbol>] available services
13
- SERVICE_NAMES = [:ca, :fileserver, :puppet, :report].freeze
13
+ SERVICE_NAMES = [:ca, :fileserver, :puppet, :puppetserver, :report].freeze
14
14
 
15
15
  # @api private
16
16
  # @return [Array<Symbol>] format types that are unsupported
@@ -43,6 +43,8 @@ class Puppet::HTTP::Service
43
43
  Puppet::HTTP::Service::FileServer.new(client, session, server, port)
44
44
  when :puppet
45
45
  ::Puppet::HTTP::Service::Compiler.new(client, session, server, port)
46
+ when :puppetserver
47
+ ::Puppet::HTTP::Service::Puppetserver.new(client, session, server, port)
46
48
  when :report
47
49
  Puppet::HTTP::Service::Report.new(client, session, server, port)
48
50
  else
@@ -22,7 +22,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
22
22
  # create the service.
23
23
  #
24
24
  def initialize(client, session, server, port)
25
- url = build_url(API, server || Puppet[:server], port || Puppet[:masterport])
25
+ url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
26
26
  super(client, session, url)
27
27
  end
28
28
 
@@ -27,7 +27,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
27
27
  # create the service.
28
28
  #
29
29
  def initialize(client, session, server, port)
30
- url = build_url(API, server || Puppet[:server], port || Puppet[:masterport])
30
+ url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
31
31
  super(client, session, url)
32
32
  end
33
33
 
@@ -0,0 +1,39 @@
1
+ # The puppetserver service.
2
+ #
3
+ # @api private
4
+ #
5
+ class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
6
+ # @param [Puppet::HTTP::Client] client
7
+ # @param [Puppet::HTTP::Session] session
8
+ # @param [String] server If an explicit server is given,
9
+ # create a service using that server. If server is nil, the default value
10
+ # is used to create the service.
11
+ # @param [Integer] port If an explicit port is given, create
12
+ # a service using that port. If port is nil, the default value is used to
13
+ # create the service.
14
+ # @api private
15
+ #
16
+ def initialize(client, session, server, port)
17
+ url = build_url('', server || Puppet[:server], port || Puppet[:serverport])
18
+ super(client, session, url)
19
+ end
20
+
21
+ # Request the puppetserver's simple status
22
+ #
23
+ # @param [Puppet::SSL::SSLContext] ssl_context to use when establishing
24
+ # the connection.
25
+ # @return Puppet::HTTP::Response The HTTP response
26
+ # @api private
27
+ #
28
+ def get_simple_status(ssl_context: nil)
29
+ response = @client.get(
30
+ with_base_url("/status/v1/simple/master"),
31
+ headers: add_puppet_headers({}),
32
+ options: {ssl_context: ssl_context}
33
+ )
34
+
35
+ process_response(response)
36
+
37
+ [response, response.body.to_s]
38
+ end
39
+ end
@@ -64,20 +64,21 @@ class Puppet::HTTP::Session
64
64
  cached = @resolved_services[name]
65
65
  return cached if cached
66
66
 
67
- resolution_exceptions = []
68
- error_handler = proc { |e| resolution_exceptions << e }
67
+ canceled = false
68
+ canceled_handler = lambda { |cancel| canceled = cancel }
69
69
 
70
70
  @resolvers.each do |resolver|
71
71
  Puppet.debug("Resolving service '#{name}' using #{resolver.class}")
72
- service = resolver.resolve(self, name, ssl_context: ssl_context, error_handler: error_handler)
72
+ service = resolver.resolve(self, name, ssl_context: ssl_context, canceled_handler: canceled_handler)
73
73
  if service
74
74
  @resolved_services[name] = service
75
75
  Puppet.debug("Resolved service '#{name}' to #{service.url}")
76
76
  return service
77
+ elsif canceled
78
+ break
77
79
  end
78
80
  end
79
81
 
80
- resolution_exceptions.each { |e| Puppet.log_exception(e) }
81
82
  raise Puppet::HTTP::RouteError, "No more routes to #{name}"
82
83
  end
83
84
 
@@ -46,7 +46,7 @@ module Puppet::Indirector
46
46
 
47
47
  # instantiate the actual Terminus for that type and this name (:ldap, w/ args :node)
48
48
  # & hook the instantiated Terminus into this class (Node: @indirection = terminus)
49
- @indirection = Puppet::Indirector::Indirection.new(self, indirection, options)
49
+ @indirection = Puppet::Indirector::Indirection.new(self, indirection, **options)
50
50
  end
51
51
 
52
52
  module ClassMethods
@@ -75,7 +75,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
75
75
 
76
76
  # Is our compiler part of a network, or are we just local?
77
77
  def networked?
78
- Puppet.run_mode.master?
78
+ Puppet.run_mode.server?
79
79
  end
80
80
 
81
81
  private
@@ -22,7 +22,7 @@ class Puppet::Indirector::Exec < Puppet::Indirector::Terminus
22
22
  end
23
23
 
24
24
  if output =~ /\A\s*\Z/ # all whitespace
25
- Puppet.debug "Empty response for #{name} from #{self.name} terminus"
25
+ Puppet.debug { "Empty response for #{name} from #{self.name} terminus" }
26
26
  return nil
27
27
  else
28
28
  return output
@@ -55,7 +55,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
55
55
  if Puppet::Util::Log.sendlevel?(:info)
56
56
  Puppet.info _("Loading facts")
57
57
  Dir.glob("#{dir}/*.rb").each do |file|
58
- Puppet.debug "Loading facts from #{file}"
58
+ Puppet.debug { "Loading facts from #{file}" }
59
59
  end
60
60
  end
61
61
 
@@ -71,7 +71,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
71
71
  request.environment.modules.each do |m|
72
72
  if m.has_external_facts?
73
73
  dir = m.plugin_fact_directory
74
- Puppet.debug "Loading external facts from #{dir}"
74
+ Puppet.debug { "Loading external facts from #{dir}" }
75
75
  dirs << dir
76
76
  end
77
77
  end
@@ -79,7 +79,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
79
79
  # Add system external fact directory if it exists
80
80
  if FileTest.directory?(Puppet[:pluginfactdest])
81
81
  dir = Puppet[:pluginfactdest]
82
- Puppet.debug "Loading external facts from #{dir}"
82
+ Puppet.debug { "Loading external facts from #{dir}" }
83
83
  dirs << dir
84
84
  end
85
85
 
@@ -20,7 +20,7 @@ class Puppet::Node::Facts::Yaml < Puppet::Indirector::Yaml
20
20
 
21
21
  # Return the path to a given node's file.
22
22
  def yaml_dir_path
23
- base = Puppet.run_mode.master? ? Puppet[:yamldir] : Puppet[:clientyamldir]
23
+ base = Puppet.run_mode.server? ? Puppet[:yamldir] : Puppet[:clientyamldir]
24
24
  File.join(base, 'facts', '*.yaml')
25
25
  end
26
26
 
@@ -10,6 +10,11 @@ class Puppet::Indirector::FileContent::Http < Puppet::Indirector::GenericHttp
10
10
 
11
11
  @http_method = :get
12
12
 
13
+ def initialize
14
+ Puppet.deprecation_warning(_("Puppet::Indirector::FileContent::Http is deprecated. Use Puppet::HTTP::Client instead."))
15
+ super
16
+ end
17
+
13
18
  def find(request)
14
19
  response = super
15
20
  model.from_binary(uncompress_body(response))
@@ -18,7 +18,7 @@ class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
18
18
  api = session.route_to(:fileserver, url: url)
19
19
 
20
20
  api.get_file_content(
21
- path: URI.unescape(url.path),
21
+ path: Puppet::Util.uri_unescape(url.path),
22
22
  environment: request.environment.to_s,
23
23
  ) do |data|
24
24
  content << data
@@ -8,20 +8,40 @@ class Puppet::Indirector::FileMetadata::Http < Puppet::Indirector::GenericHttp
8
8
 
9
9
  include Puppet::FileServing::TerminusHelper
10
10
 
11
- @http_method = :head
12
-
13
11
  def find(request)
14
- head = super
12
+ checksum_type = request.options[:checksum_type]
13
+ # See URL encoding comment in Puppet::Type::File::ParamSource#chunk_file_from_source
14
+ uri = URI(request.uri)
15
+ client = Puppet.runtime[:http]
16
+ head = client.head(uri, options: {include_system_store: true})
17
+
18
+ return create_httpmetadata(head, checksum_type) if head.success?
15
19
 
16
- if head.is_a?(Net::HTTPSuccess)
17
- metadata = Puppet::FileServing::HttpMetadata.new(head)
18
- metadata.checksum_type = request.options[:checksum_type] if request.options[:checksum_type]
19
- metadata.collect
20
- metadata
20
+ case head.code
21
+ when 403, 405
22
+ # AMZ presigned URL and puppetserver may return 403
23
+ # instead of 405. Fallback to partial get
24
+ get = partial_get(client, uri)
25
+ return create_httpmetadata(get, checksum_type) if get.success?
21
26
  end
27
+
28
+ nil
22
29
  end
23
30
 
24
31
  def search(request)
25
32
  raise Puppet::Error, _("cannot lookup multiple files")
26
33
  end
34
+
35
+ private
36
+
37
+ def partial_get(client, uri)
38
+ client.get(uri, headers: {'Range' => 'bytes=0-0'}, options: {include_system_store: true})
39
+ end
40
+
41
+ def create_httpmetadata(http_request, checksum_type)
42
+ metadata = Puppet::FileServing::HttpMetadata.new(http_request)
43
+ metadata.checksum_type = checksum_type if checksum_type
44
+ metadata.collect
45
+ metadata
46
+ end
27
47
  end
@@ -15,7 +15,7 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
15
15
  api = session.route_to(:fileserver, url: url)
16
16
 
17
17
  _, file_metadata = api.get_file_metadata(
18
- path: URI.unescape(url.path),
18
+ path: Puppet::Util.uri_unescape(url.path),
19
19
  environment: request.environment.to_s,
20
20
  links: request.options[:links],
21
21
  checksum_type: request.options[:checksum_type],
@@ -42,7 +42,7 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
42
42
  api = session.route_to(:fileserver, url: url)
43
43
 
44
44
  _, file_metadatas = api.get_file_metadatas(
45
- path: URI.unescape(url.path),
45
+ path: Puppet::Util.uri_unescape(url.path),
46
46
  environment: request.environment.to_s,
47
47
  recurse: request.options[:recurse],
48
48
  recurselimit: request.options[:recurselimit],
@@ -1,6 +1,10 @@
1
1
  require 'puppet/indirector/terminus'
2
2
  require 'hiera/scope'
3
3
 
4
+ # This class can't be collapsed into Puppet::Indirector::DataBindings::Hiera
5
+ # because some community plugins rely on this class directly, see PUP-1843.
6
+ # This class is deprecated and will be deleted in a future release.
7
+ # Use `Puppet::DataBinding.indirection.terminus(:hiera)` instead.
4
8
  class Puppet::Indirector::Hiera < Puppet::Indirector::Terminus
5
9
  def initialize(*args)
6
10
  if ! Puppet.features.hiera?
@@ -269,7 +269,7 @@ class Puppet::Indirector::Indirection
269
269
  return nil
270
270
  end
271
271
 
272
- Puppet.debug "Using cached #{self.name} for #{request.key}"
272
+ Puppet.debug { "Using cached #{self.name} for #{request.key}" }
273
273
  cached
274
274
  rescue => detail
275
275
  Puppet.log_exception(detail, _("Cached %{indirection} for %{request} failed: %{detail}") % { indirection: self.name, request: request.key, detail: detail })
@@ -41,7 +41,7 @@ class Puppet::Indirector::JSON < Puppet::Indirector::Terminus
41
41
  raise ArgumentError, _("invalid key")
42
42
  end
43
43
 
44
- base = Puppet.run_mode.master? ? Puppet[:server_datadir] : Puppet[:client_datadir]
44
+ base = Puppet.run_mode.server? ? Puppet[:server_datadir] : Puppet[:client_datadir]
45
45
  File.join(base, self.class.indirection_name.to_s, name.to_s + ext)
46
46
  end
47
47
 
@@ -48,7 +48,7 @@ class Puppet::Indirector::Msgpack < Puppet::Indirector::Terminus
48
48
  raise ArgumentError, _("invalid key")
49
49
  end
50
50
 
51
- base = Puppet.run_mode.master? ? Puppet[:server_datadir] : Puppet[:client_datadir]
51
+ base = Puppet.run_mode.server? ? Puppet[:server_datadir] : Puppet[:client_datadir]
52
52
  File.join(base, self.class.indirection_name.to_s, name.to_s + ext)
53
53
  end
54
54
 
@@ -26,9 +26,9 @@ class Puppet::Transaction::Report::Processor < Puppet::Indirector::Code
26
26
  # LAK:NOTE This isn't necessarily the best design, but it's backward
27
27
  # compatible and that's good enough for now.
28
28
  def process(report)
29
- Puppet.debug "Received report to process from #{report.host}"
29
+ Puppet.debug { "Received report to process from #{report.host}" }
30
30
  processors do |mod|
31
- Puppet.debug "Processing report from #{report.host} with processor #{mod}"
31
+ Puppet.debug { "Processing report from #{report.host} with processor #{mod}" }
32
32
  # We have to use a dup because we're including a module in the
33
33
  # report.
34
34
  newrep = report.dup
@@ -231,9 +231,9 @@ class Puppet::Indirector::Request
231
231
  debug_once _("Selected port from the first entry of the `server_list` setting: %{port}") % {port: primary_server[1]}
232
232
  primary_server[1]
233
233
  else
234
- #TRANSLATORS 'masterport' is the name of a setting and should not be translated
235
- debug_once _("Selected port from the `masterport` setting: %{port}") % {port: Puppet.settings[:masterport]}
236
- Puppet.settings[:masterport]
234
+ #TRANSLATORS 'serverport' is the name of a setting and should not be translated
235
+ debug_once _("Selected port from the `serverport` setting: %{port}") % {port: Puppet.settings[:serverport]}
236
+ Puppet.settings[:serverport]
237
237
  end
238
238
  end
239
239
  end
@@ -277,7 +277,7 @@ class Puppet::Indirector::Request
277
277
  # If the URI class can look up the scheme, it will provide a port,
278
278
  # otherwise it will default to '0'.
279
279
  if uri.port.to_i == 0 and uri.scheme == "puppet"
280
- @port = Puppet.settings[:masterport].to_i
280
+ @port = Puppet.settings[:serverport].to_i
281
281
  else
282
282
  @port = uri.port.to_i
283
283
  end
@@ -290,6 +290,6 @@ class Puppet::Indirector::Request
290
290
  @protocol = uri.scheme
291
291
  end
292
292
 
293
- @key = URI.unescape(uri.path.sub(/^\//, ''))
293
+ @key = Puppet::Util.uri_unescape(uri.path.sub(/^\//, ''))
294
294
  end
295
295
  end
@@ -55,7 +55,8 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
55
55
  # Should we use puppet's http client to make requests. Will return
56
56
  # false when running in puppetserver
57
57
  def use_http_client?
58
- Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::Connection
58
+ Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::Connection ||
59
+ Puppet::Network::HttpPool.http_client_class == Puppet::Network::HTTP::ConnectionAdapter
59
60
  end
60
61
 
61
62
  # Provide appropriate headers.
@@ -111,6 +112,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
111
112
  end
112
113
 
113
114
  def find(request)
115
+ Puppet.deprecation_warning(_("Puppet::Indirector::Rest#find is deprecated. Use Puppet::HTTP::Client instead."))
114
116
  uri, body = IndirectedRoutes.request_to_uri_and_body(request)
115
117
  uri_with_query_string = "#{uri}?#{body}"
116
118
 
@@ -149,6 +151,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
149
151
  end
150
152
 
151
153
  def head(request)
154
+ Puppet.deprecation_warning(_("Puppet::Indirector::Rest#head is deprecated. Use Puppet::HTTP::Client instead."))
152
155
  response = do_request(request) do |req|
153
156
  http_head(req, IndirectedRoutes.request_to_uri(req), headers)
154
157
  end
@@ -161,6 +164,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
161
164
  end
162
165
 
163
166
  def search(request)
167
+ Puppet.deprecation_warning(_("Puppet::Indirector::Rest#search is deprecated. Use Puppet::HTTP::Client instead."))
164
168
  response = do_request(request) do |req|
165
169
  http_get(req, IndirectedRoutes.request_to_uri(req), headers)
166
170
  end
@@ -174,6 +178,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
174
178
  end
175
179
 
176
180
  def destroy(request)
181
+ Puppet.deprecation_warning(_("Puppet::Indirector::Rest#destroy is deprecated. Use Puppet::HTTP::Client instead."))
177
182
  raise ArgumentError, _("DELETE does not accept options") unless request.options.empty?
178
183
 
179
184
  response = do_request(request) do |req|
@@ -189,6 +194,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
189
194
  end
190
195
 
191
196
  def save(request)
197
+ Puppet.deprecation_warning(_("Puppet::Indirector::Rest#save is deprecated. Use Puppet::HTTP::Client instead."))
192
198
  raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
193
199
 
194
200
  response = do_request(request) do |req|
@@ -40,7 +40,7 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
40
40
  raise ArgumentError, _("invalid key")
41
41
  end
42
42
 
43
- base = Puppet.run_mode.master? ? Puppet[:yamldir] : Puppet[:clientyamldir]
43
+ base = Puppet.run_mode.server? ? Puppet[:yamldir] : Puppet[:clientyamldir]
44
44
  File.join(base, self.class.indirection_name.to_s, name.to_s + ext)
45
45
  end
46
46
 
@@ -107,8 +107,7 @@ class Puppet::Module
107
107
  define_method(type + '?') do
108
108
  type_subpath = subpath(location)
109
109
  unless Puppet::FileSystem.exist?(type_subpath)
110
- Puppet.debug("No #{type} found in subpath '#{type_subpath}' " +
111
- "(file / directory does not exist)")
110
+ Puppet.debug { "No #{type} found in subpath '#{type_subpath}' (file / directory does not exist)" }
112
111
  return false
113
112
  end
114
113
 
@@ -49,7 +49,7 @@ module Puppet::Network::FormatSupport
49
49
 
50
50
  result = put_preferred_format_first(result).map(&:name)
51
51
 
52
- Puppet.debug "#{friendly_name} supports formats: #{result.join(' ')}"
52
+ Puppet.debug { "#{friendly_name} supports formats: #{result.join(' ')}" }
53
53
 
54
54
  result
55
55
  end
@@ -81,7 +81,7 @@ module Puppet::Network::FormatSupport
81
81
  }
82
82
 
83
83
  if preferred.empty?
84
- Puppet.debug "Value of 'preferred_serialization_format' (#{preferred_format}) is invalid for #{friendly_name}, using default (#{list.first.name})"
84
+ Puppet.debug { "Value of 'preferred_serialization_format' (#{preferred_format}) is invalid for #{friendly_name}, using default (#{list.first.name})" }
85
85
  else
86
86
  list = preferred + list.reject { |format|
87
87
  format.mime.end_with?(preferred_format)